Jump to content
  • Advertisement
Sign in to follow this  
whizmike

Inertia tensor non-diagonal elements

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

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have been trying to understand inertia tensors for a few days now - its quite perplexing. I understand that the diagonal elements store the inertia value that resists rotation on each of the 3 principle axes of the body. But what do the 6 non-diagonal elements actually represent? Are they actually neccessary? Wikipedia says: "I_xy denotes the moment of inertia around the y-axis when the objects are rotated around the x-axis" How can the moment of inertia in one axis be relevant to another axis? [Edited by - whizmike on April 1, 2008 1:46:49 PM]

Share this post


Link to post
Share on other sites
Advertisement
I do not actually know about tensors, but I have an idea about part of your problem (I may be wrong though).

Quote:

"I_xy denotes the moment of inertia around the y-axis when the objects are rotated around the x-axis"


Because angular momentum is conserved, if there is y rotation and you try to rotate around x, you will get some motion on the x axis. Like trying to push over a gyroscope. Perhaps they mean it is already rotating around y, when they do the x rotation.

Share this post


Link to post
Share on other sites
The situation is similar to the formula for an ellipse centered around 0. It's something like this:
A*x^2 + B*y^2 + C*x*y = 1

You can understand that if you start with a circle and you expand it or contract it in the x or the y direction, you would get A*x^2 + B*y^2 = 1. But, where does the term in x*y come from? The answer is rotation. If you change your basis so the x axis and the y axis coincide with the axes of the ellipse, then there will be no term in x*y.

I think something similar might be going on with the tensor of inertia. If the direction in which it is the hardest to rotate the object is not one of the axes, you'll see some non-diagonal terms. If you don't like those terms, a change of coordinates will get rid of that problem (look up "Principal moments of inertia").

Share this post


Link to post
Share on other sites
The diagonal portion (refered to as the inertia from now on) of the matrix is a component wise scalar to transform the torque into an angular acceleration. This is assuming both the inertia and torque are in world space. Since you'll likely want to specify the inertia in local space, you combine the inertia and the body's transform into one matrix. So multiplying the torque by the proper inertia matrix will essentially transform the torque into local space, component wise scale it, and then transform the result back into world space.

The scaling components are what you'll calculate with one of these popular formulas: http://howard.nebrwesleyan.edu/hhmi/fellows/pgomez/inertforms.html

Share this post


Link to post
Share on other sites
Inertia in three dimensions is not as intuitive as one would expect. It's like when you spin a top, it will tend to spin around its central axis, even though you might not be that accurate when giving it its initial motion. Angular velocity is not conserved, but angular momentum is. The Inertia tensor relates the angular velocity to the angular momentum. Velocity can be transfered from one axis to another, while the angular momentum is conserved.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!