Jump to content
  • Advertisement
Sign in to follow this  
badmoon

Inertia Tensor

This topic is 5468 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

Is anyone aware of a site, that properly explains a method to exactly calculate the inertia tensor of a polyhedron? I've come across sites that either just give source code for how to do this or give the maths but don't seem to bother to explain how they derived half the terms they use - they just pluck them out of the air and often they'll end with some obscure integral which they won't bother explaining how it's solved. So if someone knows of a site that comprehensively explains how the inertia tensor is calculated to enough detail for someone with reasonable maths knowledge to implement a program in C++ that does the job, please let me know Thanks

Share this post


Link to post
Share on other sites
Advertisement
Great, that's by far the best explanation I've seen, just what I was looking for. (I may still buy the book, coz a lot of people seem to talk about it - must be a good one)

Thanks

Share this post


Link to post
Share on other sites
can someone please explain equation (2) for me?

Integral_V[p(x,y,z) dV] = Integral_V[del . F dV] = Integral_S[N . F dS]

I don't get the second equality, why does the N appear when integrating the surface rather than the volume?

Share this post


Link to post
Share on other sites
As it states in the text immediately before the equation, "A volume integral may be converted to a surface integral via the Divergence Theorem from calculus". Look up the divergence theorm (aka Gauss's theorm). You might start here: http://mathworld.wolfram.com/DivergenceTheorem.html

I'm a bit rusty on my vector calculus, but it looks like they're defining the density function p(x, y, z) as equal to the divergence of some vector field F(x, y, z), so that they can integrate the component of this vector field that's perpendicular to the surfaces of the polyhedron (done using a dot product N.F), over the surfaces of the polyhedron, which happens to be equal to the integral of p(x, y, z) over the volume...

[Edited by - Geoff the Medio on September 27, 2004 2:13:09 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Geoff the Medio
As it states in the text immediately before the equation, "A volume integral may be converted to a surface integral via the Divergence Theorem from calculus". Look up the divergence theorm (aka Gauss's theorm). You might start here: http://mathworld.wolfram.com/DivergenceTheorem.html

I'm a bit rusty on my vector calculus, but it looks like they're defining the density function p(x, y, z) as equal to the divergence of some vector field F(x, y, z), so that they can integrate the component of this vector field that's perpendicular to the surfaces of the polyhedron (done using a dot product N.F), over the surfaces of the polyhedron, which happens to be equal to the integral of p(x, y, z) over the volume...


aah, got it. this link really helped too: http://www.mathpages.com/home/kmath330/kmath330.htm

Share this post


Link to post
Share on other sites
Ok, I've implemented code to calculate the inertia tensor. I've also got collision detection and response implemented for my physics engine I'm working at the moment. However, I have a few questions:

1. I'm using a left handed coordinate system and measuring my angular velocities counterclockwise rather than clockwise. I've found the latter has meant that I should calculate the torque of a force as follows:

Torque = F x R

rather than

Torque = R x F

where F is the force vector and R is a vector from the bodies centre of mass to the point at which the force is applied

Does this mean that my collision impulse should be calculated differenty? The collision impulse j between bodies A and B is normally given as:

-(1+e)[VA - VB] . n
-----------------------------
n.n( 1/MA + 1/MB + [XA + XB].n

where Xa is

(I-1A ( RA x n )) x RA

and similarly for Xb. e is the coefficient of restitution and n is the normal of the collision. Ri is the vector from the body's centre of mass to the collision point

2. Normally to convert the inertia tensor I from body space to world space you do the following:

Iworld = A Ibody AT

Does this change in anyway if using a left-handed coordinate system or measuring angles counterclockwise?

3. Should the inertia tensor in body space be calculated differently when using a left handed coordinate system or measuring angles counterclockwise?

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!