Skip to content

[BUG] URDF difference of 4 centimeters for Rizon4 #82

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
peteflorence opened this issue Oct 3, 2024 · 7 comments · Fixed by #83 · May be fixed by #108
Open

[BUG] URDF difference of 4 centimeters for Rizon4 #82

peteflorence opened this issue Oct 3, 2024 · 7 comments · Fixed by #83 · May be fixed by #108
Assignees
Labels
bug Something isn't working
Milestone

Comments

@peteflorence
Copy link

Version information

  • RDK: v 1.4
  • Robot software: 3.6
  • OS: Ubuntu 22.04

Describe the bug
There are two issues:

  1. In this commit, the Rizon4 URDF (flexiv_rizon4_kinematics.urdf) changed by >4 centimeters for the end-effector pose (see script to visualize)
  2. 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

image

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

  1. Grab this script
  2. pip install pybullet
  3. get both the old and new URDFs into the right paths
  4. 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 peteflorence added the bug Something isn't working label Oct 3, 2024
@pzhu-flexiv
Copy link
Collaborator

@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.

@peteflorence
Copy link
Author

Thanks @pzhu-flexiv, and yes please keep us posted on getting the actual URDF used in the control box.

@pzhu-flexiv pzhu-flexiv added this to the v1.5 milestone Oct 3, 2024
@pzhu-flexiv
Copy link
Collaborator

pzhu-flexiv commented Oct 4, 2024

@peteflorence Please advise if this is what you want: 7d16e22

@pzhu-flexiv pzhu-flexiv linked a pull request Nov 12, 2024 that will close this issue
@TomCC7
Copy link

TomCC7 commented Feb 4, 2025

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

@pzhu-flexiv
Copy link
Collaborator

@TomCC7 Have you configured any tool to the robot?

@TomCC7
Copy link

TomCC7 commented Feb 4, 2025

@pzhu-flexiv No, I'm comparing the pose to the flange link directly

@pzhu-flexiv
Copy link
Collaborator

pzhu-flexiv commented Feb 4, 2025

@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:

  1. The robot log files.
  2. The URDF you extracted using Model::SyncURDF().
  3. 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.

@pzhu-flexiv pzhu-flexiv reopened this Feb 4, 2025
@pzhu-flexiv pzhu-flexiv modified the milestones: v1.5, v1.7 Mar 20, 2025
@pzhu-flexiv pzhu-flexiv linked a pull request Apr 28, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants