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!
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!