Skip to content

C3: a missing decimal point in Link1's izz makes the inertia physically impossible #6

Description

@omnilink-tech

In RX75/urdf/RX75-6FB/RXL-6F-C3/urdf/RXL-6F-C3.urdf, Link1 (inertia at
line 61) declares

<inertia
  ixx="2661.9E-6"  ixy="-31.029E-6"  ixz="9.34E-6"
  iyy="2302.5E-6"  iyz="151.466E-6"  izz="1676359E-6" />

izz is written without a decimal point, so it reads as 1.676 kg m^2 while
its two siblings are ~0.0023-0.0027. Eigenvalues:

[0.00229983, 0.00266456, 1.67635901]

The tensor is positive definite, so it passes the usual checks, but it violates
the triangle inequality on the principal moments:

J_a + J_b = 0.00496 < J_c = 1.67636      short by 99.70%

Every rigid body must satisfy J_a + J_b >= J_c, because each principal moment
is an integral of a sum of two squared coordinates. No arrangement of mass
produces this tensor.

The physical reading makes it obvious: at the declared mass="1.559", that izz
implies a radius of gyration of 1.037 m for a 1.6 kg arm link.

Link1 is the child of J1, a revolute joint, so this is a moving link.
It is the only invalid tensor of the 9 in the file.

The correction is uniquely determined

I searched every single-attribute power-of-ten rescaling across all six
components (6 attributes x 9 exponents from 10^-6 to 10^+3). Exactly one
produces a physically valid tensor:

izz="1676.359E-6"

eigenvalues [0.00164139, 0.00233479, 0.00266457], positive definite,
triangle inequality satisfied, radius of gyration 0.0413 m -- the right
scale for this link.

That is the same digits with the decimal point restored, and it matches the way
the other five values in the very same element are written: 2661.9E-6,
-31.029E-6, 9.34E-6, 2302.5E-6, 151.466E-6 all carry a decimal point;
izz alone does not.

After the change, all 9 tensors in the file are valid.

--- a/RX75/urdf/RX75-6FB/RXL-6F-C3/urdf/RXL-6F-C3.urdf
+++ b/RX75/urdf/RX75-6FB/RXL-6F-C3/urdf/RXL-6F-C3.urdf
@@ -58,7 +58,7 @@
         ixz="9.34E-6"
         iyy="2302.5E-6"
         iyz="151.466E-6"
-        izz="1676359E-6" />
+        izz="1676.359E-6" />
     </inertial>
     <visual>
       <origin

Happy to check the other RX/ECO models in the repo the same way if that would be useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions