flexiv_rdk
flexiv_rdk copied to clipboard
[BUG] URDF difference of 4 centimeters for Rizon4
Version information
- RDK: v 1.4
- Robot software: 3.6
- OS: Ubuntu 22.04
Describe the bug There are two issues:
- In this commit, the Rizon4 URDF (
flexiv_rizon4_kinematics.urdf) changed by >4 centimeters for the end-effector pose (see script to visualize) - Neither the new URDF nor the old URDF match are able to match the TCP pose reported by the robot.
For problem #2 above, are there hidden calibration parameters (i.e. a per-robot specific URDF) that we could have access to? Or is there some other cause for the discrepancy?
For problem #1 above, here is the visualization from the script. I also changed the alpha channel of the robot so that you can more easily see them overlaid
The specific line change that causes the difference is here.
Is the new URDF or the old URDF closer to correct? How do we match the TCP pose reported by the robot?
Steps to reproduce
- Grab this script
pip install pybullet- get both the old and new URDFs into the right paths
- Run the script
Expected behavior URDF should match the robot, i.e. we should be able to take the measured joints and the URDF and calculate the same TCP pose reported by the robot.
Screenshots See screenshot above.
@peteflorence This URDF is for newly produced Rizon 4 with updated kinematics values. We will add a new API in RDK v1.5 to export the actual URDF used in the control box, but for now, the easiest solution for you is to git checkout to the commit before this URDF change and copy the old URDF out and use that.
Thanks @pzhu-flexiv, and yes please keep us posted on getting the actual URDF used in the control box.
@peteflorence Please advise if this is what you want: https://github.com/flexivrobotics/flexiv_rdk/commit/7d16e22d2e7463f9501c47453f5443657c82e303
Hi @pzhu-flexiv . I met the same issue number 2 mentioned by @peteflorence
Neither the new URDF nor the old URDF match are able to match the TCP pose reported by the robot.
The issue still happens to me even after using the URDF extracted from the Model::SyncURDF(). I've tried moving the robot to different configurations and compare the reported tcp pose with the pose calculated from synced URDF (and we tried multiple FK solvers). All the poses have an error of ~5mm. It seems like your discussion didn't resolve the issue mentioned above so I just wonder how to solve it. Thanks!
Version information: RDK: v 1.5.1 Robot software: 3.7.1 OS: Ubuntu 22.04
@TomCC7 Have you configured any tool to the robot?
@pzhu-flexiv No, I'm comparing the pose to the flange link directly
@TomCC7 In that case we will need more information to pinpoint the root cause. Could you email your sales representative at Flexiv and ask him/her to provide you with instructions to extract robot logs? When done, please send him/her:
- The robot log files.
- The URDF you extracted using
Model::SyncURDF(). - The displayed TCP pose at home position and the values you calculated using URDF and FK.
Then we'll be able to further investigate. Thanks for your time.