Gazebo | Ignition | Community
Ask Your Question
0

A link has invalid inertia

asked 2021-10-19 15:31:25 -0500

nealtanner gravatar image

What (and where) are the constraints that are checked when loading a model to decide if a link's inertia matrix is valid or not?

In my specific example, I am trying to model a 50 kg cylinder that is 1.5 m long with a 0.2 m radius. According to this online moment of inertia calculator, I come up with Ixx=10, Iyy=10, Izz=1, which loads and runs fine. However, when I slightly change Ixx and Iyy to model a somewhat squashed (elliptical) cylinder, I receive the following error.

[Err] [Server.cc:183] Error Code 18: Msg: A link named hull has invalid inertia.

The snipped from my .sdf file is below.

  <inertial>
    <mass>50.24</mass>
    <inertia>
      <ixx>12.0</ixx>
      <ixy>0</ixy>
      <ixz>0</ixz>
      <iyy>8.0</iyy>
      <iyz>0</iyz>
      <izz>1.0</izz>
    </inertia>
  </inertial>
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2022-10-01 15:40:03 -0500

MoffKalast gravatar image

updated 2022-10-06 15:14:07 -0500

Those calculators don't seem to be correct, or at least they don't give the type of values that Gazebo expects.

What seems to work better is this, as found in some demos (for a bounding box):

ixx = mass *(y*y+z*z)/12
iyy = mass *(x*x+z*z)/12
izz = mass *(x*x+y*y)/12
edit flag offensive delete link more

Comments

This calculation is only correct for a cuboid. Other geometries have different formulae. See https://en.wikipedia.org/wiki/List_of...

Also izz should be mass * (x*x + y*y)/12

azeey gravatar imageazeey ( 2022-10-03 11:56:16 -0500 )edit

Ah yeah my bad, seems like I made an error when copying. Edited.

So according to that list, the inertia values depend heavily upon the pivot point of the object? That seems a bit odd, since the object itself doesn't exactly physically change when the pivot does and I would expect the sim to take account of the pivot movement internally when it changes depending on obstacles. Are we supposed to calculate for the joint origin or the center of mass?

MoffKalast gravatar imageMoffKalast ( 2022-10-06 15:13:30 -0500 )edit

Looking a bit futher, apparently the real intended way to generate these values is through meshlab... https://classic.gazebosim.org/tutoria...

MoffKalast gravatar imageMoffKalast ( 2022-10-06 17:13:34 -0500 )edit

So according to that list, the inertia values depend heavily upon the pivot point of the object?

In our case, we only need the moment of inertia about the center of mass. The physics engine will calculate the MOI about other axes if it needs to.

azeey gravatar imageazeey ( 2022-10-11 18:50:02 -0500 )edit
0

answered 2021-11-11 23:34:36 -0500

azeey gravatar image

The principal moments of the inertia must satisfy the triangle inequality. In your case iyy + izz < ixx, which is invalid.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2021-10-19 15:31:25 -0500

Seen: 953 times

Last updated: Oct 06 '22