# How do I convert an inertia tensor from body space to world space?

1. Jan 25, 2014

I've been trying to solve the following problem involving Angular Acceleration and the inertial tensor for about 2 weeks now. I know it's bad ask for a question to be solved, but I'm really at a loss here folks. I'm a high school student who has taken a physics class.

What I'm Trying To Do: I'm trying to give a 3D rigid body an angular acceleration α by applying a torque τ. This is for a program I am writing, so I need to calculate this every time the game updates. I'm working with the Navidia Physx API.

Question: How do I properly convert the inertial tensor, I, from body space to global space?

Starting Variables: desired angular acceleration α(angle axis representation) in global space, the inertia tensor of the object I in body space

What I am trying to find: The torque τ(angle axis representation) in global space that when applied to the body will give it the angular acceleration α.

I've already tried [Ig]=[R]T[Ib][R] where [R] is the rotation matrix for the rigid body in question, Ig is the inertia tensor in global space, and Ib is the inertia tensor in body space. After I find this Ig , I convert α into Euler Angle representation and multiply it against Ig:
αx * Ig xx
αy * Ig yy
αz * Ig zz

I also have tried keeping I in body space, converting α to body space and using Im=nT[Ib]n , where n is the axis of the axis angle representation of α, and Im is the scalar moment of inertia about that axis. I then take this Im and multiply it by α in global space.

Both of these calculations have ended up in error. If you would like me to post the code of both of these attempts I am willing to do so, just ask me in the comments.

If you covert between representations ( for example quaternion -> Euler angle), just mention it.

Even though this question is not from Home Work, if you think I should move this question over to HOMEWORK, just comment and I'll do so.

Thank you so much!