flexivrobotics / flexiv_rdk

RDK (Robotic Development Kit) for Flexiv robots. Supports C++ and Python. Compatible with Linux, macOS, and Windows.
https://www.flexiv.com/software/rdk
Apache License 2.0
69 stars 20 forks source link

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

Closed peteflorence closed 1 week ago

peteflorence commented 1 month ago

Version information

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.

pzhu-flexiv commented 1 month ago

@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 commented 1 month ago

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

pzhu-flexiv commented 1 month ago

@peteflorence Please advise if this is what you want: https://github.com/flexivrobotics/flexiv_rdk/commit/7d16e22d2e7463f9501c47453f5443657c82e303