# About the inertial tensor matrix

This topic is 4648 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I have some questions about the inertial tensor matrix of an object. Boxes, cylinders, spheres and anothers have a 0 value in the off-diagonal terms of the matrix. What to say about it? does all the convex polyhedra have 0 values in the off-diagonal terms? The diagonal terms 11, 22 and 33 are related to the inertial tensor of x, y and z rotations respectivelly. To what are the off diagonal terms related? xy, xz, yx, yz, zx and zy rotations?!? I don't understand this...what is the axis for these rotations? I cant see them!! I'm using this method to compute the inertial tensor matrix for my objects. But, I have a problem. For example when computing the inertial tensor matrix of a sphere, I should get 0 values for the off-diagonal terms, right? But I'm getting a bit low values like 0.00005 aproximately and this way when I invert my matrix (to compute impulses etc...) I will get 1/0.00005 which will give a high value (20000) and it makes my simulation explode!!! Please give your opinion about this method. If you know a better one please show me... Thanks :)

##### Share on other sites
The inertial tensors for basic solids tend to be diagonal because those solids are expressed in a "simple" orientation. For instance, the cylinder was oriented along one axis, and its crosssection (dig the triple consonant!) was parallel to the other two. If your cylinder was (say) at a 45 degree angle, the tensor would no longer be diagonal.

Here's a pretty good intuition for the inertial tensor: imagine a solid sphere, centered at the origin, with moment of inertia 1. The inertial tensor is a transformation matrix which transforms that sphere into an ellipsoid. (For a diagonal tensor, it'll be an axis-aligned ellipsoid; otherwise, it won't be.) The ellipsoid has the same angular momentum properties as the object which generated the tensor.

##### Share on other sites
This sounds like a floating point precision problem. You should chop very small values to zero to avoid problems like that. Doing so, shouldn't impose a problem. (assuming your objects are not deformable - thus the inertia matrix remains constant) You should precalculate the inverse inertia matrix in model coordinates, and perform a similarity transform to the current orientation whenever you need the matrix to derive the angular velocity for the given instance.

1. 1
Rutin
26
2. 2
3. 3
4. 4
5. 5

• 9
• 11
• 10
• 13
• 20
• ### Forum Statistics

• Total Topics
632948
• Total Posts
3009388
• ### Who's Online (See full list)

There are no registered users currently online

×