Open traversaro opened 2 years ago
@traversaro -- thank you so much for reporting this issue with plenty of details!!!
@olivier-stasse -- could you tell us why are the right values that we should use here?
@jcarpent -- perhaps, it makes sense to have such kind of "checks" in Pinocchio as Drake does.
The inertia value given in:
are not consisten with the physical constraints of inertia. In particular, they do not respect the triangle inequalities of inertia (see for example Eq. (16) in https://arxiv.org/pdf/1610.08703.pdf).
Checking this is quite simple. The
<inertia>
element of URDF gives you the inertia expressed at the center of mass of the link (see http://wiki.ros.org/urdf/XML/link). If you extract the principal moment of inertia, you can see that $J_y + J_z - J_x < 0$, while it should be $J_y + J_z - J_x \geq 0$ :In many case this is not a problem, but some libraries (such as drake) throw an error if a non-physical consistent model is loaded. Indeed, this is how @akhilsathuluri found the problem, as trying to load a Talos model from this repo resulted in:
I checked if the problem was also in the Talos models in https://github.com/pal-robotics/talos_robot, but the only instances of
gripper_left_motor_single_link
I found there (https://github.com/pal-robotics/talos_robot/blob/452fd0727ad09b616e000901ff85c3d7629a9d28/talos_description/test/calibration/displaced.urdf#L1416) had different inertial parameters.