Inertia tensors for common shapes

Started by
9 comments, last by Eric 22 years, 2 months ago
I''m attempting a rigid body simulator, and I need the inertia tensors for some common shapes: Box, cylinder, & sphere. As I understand it, this tensor comes in the form of a 3x3 matrix, and is somehow derived from the moments of inertia around the 3 primary axi... Anyway, I''m sure there''s a table of these out there somewhere, but I''ve yet to find it. Any help is much appreciated!
Advertisement
First it's usual for symmetric shapes to align the axes along the axes/planes of symmetry of the shape when calculating the moment of inertia. If you do this the tensor is generally diagonal, i.e. it looks like this

(X 0 0)
(0 Y 0)
(0 0 Z)

The ones you want are:

Box sides 2a, 2b, 2c:
X = (b2 + c2) / 3
Y = (a2 + c2) / 3
Z = (a2 + b2) / 3

Cylinder radius r height 2h:

about axis along cylinder length:
X = r2 / 2
about other axes
Y = Z = r2 / 4 + h2 / 3

Sphere radius r:
X = Y = Z = 2 * r2 / 5

All of them are for a body with unit mass: multiply by the mass otherwise. I'm not sure of the last one but the other two I'm pretty sure of. I don't have any references with them in: whenever I need them I work them out if I don't know them. I think you can find them in books of formulae and integrals.

Edited by - johnb on August 9, 2001 12:32:22 PM
John BlackburneProgrammer, The Pitbull Syndicate
quote:Original post by johnb

Sphere radius r:
X = Y = Z = 2 * r2 / 5



This one is also correct.

I also would like to add some tips.
I. Moment of Inertia is additive. If your object is composed of some smaller shapes (eg. of two boxes and one cylinder)
then find Inertia moments of those shapes and add together
to obtain the inertia moment of whole object.
II. If you want to find an inertia moment I1 for some axis and
you know inertia moment I2 for another axis whitch is pararell to first one, then I1 = I2 + m*d2 where m - mass
d - distance between axes.
(e.g. pipe of length l and mass m rotates along axis, perpendicular to pipe and coming through pipes middle.
Then I = (1/12)*m*l2.
When pipe rotates along axis coming through its end,
then I = (1/12)*m*l2 + m*(l/2)2 = (1/3)*m*l2 )

I hope you find it usefull.

K.
quote:
I. Moment of Inertia is additive. If your object is composed of some smaller shapes (eg. of two boxes and one cylinder) then find Inertia moments of those shapes and add together to obtain the inertia moment of whole object.


This works for 2D inertia momentum, but I don''t think this will work for 3D inertia tensors. You would have to re-evaluate the volume integrals, if the shape changes. You might approximate with the tensor of a bounding box / sphere instead.

- AH
quote:Original post by Anonymous Poster


This works for 2D inertia momentum, but I don''t think this will work for 3D inertia tensors. You would have to re-evaluate the volume integrals, if the shape changes. You might approximate with the tensor of a bounding box / sphere instead.

- AH


It should work in 3D, since it does not matter if you integrate
whole volume of object or integrate volumes of its parts and
then add results together. Integrals have additive property.
(I believe that is the reason why inertia momentum is additive -
because it is defined by an integral).

K.

By the way, the first A. P. replay is mine. I forgot to login.
> It should work in 3D, since it does not matter if you integrate
> whole volume of object or integrate volumes of its parts and
> then add results together. Integrals have additive property.
> (I believe that is the reason why inertia momentum is additive -
> because it is defined by an integral).

The moment of inertia about an axis of a collection of point masses is defined as the sum of the masses x the square of their distances from the axis. Integration is just the continuous version of this, i.e. an integral is the limit of what you get from dividing a body into smaller and smaller parts then adding up their moments of inertia. The inertia tensor combines the moment of inertias about all axes into a usable form, and so needs 3 to 6 integrals/sums to work out.
John BlackburneProgrammer, The Pitbull Syndicate
Hmm, say I have a complex object, and I would like to get it''s inertia tensor. I split the object up into small tetrahedra, and calculate the tensor of each tetrahedron. How do I process those individual tensors to get the final inertia tensor for my complex object ?
btw: does someone know the formula for the inertia tensor of a tetrahedron ?

- AH
> Hmm, say I have a complex object, and I would like to get it''s
> inertia tensor. I split the object up into small tetrahedra,
> and calculate the tensor of each tetrahedron. How do I process
> those individual tensors to get the final inertia tensor for
> my complex object ?

Add them up. They''re all 3x3 matrices.

> btw: does someone know the formula for the inertia tensor of
> tetrahedron ?

If it''s a regular tetragedron, i.e. with all sides the same length and equilateral triangle faces, then I think by symmetry the inertia tensor should be a multiple of the identity matrix, but exactly what values I don''t know.

One way of evaluationg it would be start with a cube then join four vertices (chosen so none share an edge of the cube) to form a tetrahedron. This can be formed from a cube by shaving off four maximal pyramids/tetrahedra, each 1/6 the volume of the cube, from the other four corners. If you work out the moment of inertia of these, and know that of the cube, the moment of inertia of the tetrahedron can be got by subtracting one from the other.

For a more general tetrahedra you could eveluate it directly from three integrals, but these would be tricky to set up.
John BlackburneProgrammer, The Pitbull Syndicate
quote:
Add them up. They''re all 3x3 matrices.


That works ? That''s cool, makes it alot easier

The tretrahedra will be general, so I think I''ll try to evaluate the integrals numerically.

I also thought about another type of preprocess to get the inertia tensor: If I scatter a large number of ''point-masses'' at random positions inside the complex object and calculate their ''virtual'' masses, could I find the inertia tensor by adding up the individual moments of inertia of each point ? More samples would lead to a more accurate tensor.

- AH
quote:Original post by Anonymous Poster

I also thought about another type of preprocess to get the inertia tensor: If I scatter a large number of ''point-masses'' at random positions inside the complex object and calculate their ''virtual'' masses, could I find the inertia tensor by adding up the individual moments of inertia of each point ?
- AH

Yes, you can.

K.

This topic is closed to new replies.

Advertisement