Archived

This topic is now archived and is closed to further replies.

Recommended Posts

feanor    122
Given an inertia tensor I am able to solve for the eigenvectors. The problem is that I need to calculate the local orientation of an object in a NED (North, East, Down) coordinate system. I''ve transformed the eigenvectors from a ENU (East, North, Up) coordinate system to NED, but I don''t know what to do with them next. Does anyone know how to take these eigenvectors and calculate the heading/pitch/roll of an object? I tried doing some dot products with the unit vectors for the NED coordinate system, but the pitch always looks wrong.

Share on other sites
grhodes_at_work    1385
By finding the eigenvalues of the inertia tensor, you have found the principle inertias (eigenvalues) and principle axes (eigenvectors) of the object. Unfortunately, the heading/pitch/roll is NOT directly tied to the principle inertias or axes. Reason being, heading/pitch/roll are functions of translational and rotational velocity of the center of mass, which can be any random direction, independent of the orientation of the geometry itself. (Think about an object that remains horizontal, but travels in a circular path without aligning with the path. The pitch will vary, but the inertia tensor will not---at least not in world space.) Therefore, you cannot do what you say you want to do.

Most simulators actually simulate the object orientation, and simply transform the inertia tensor into the simulation coordinate system, e.g. simulate change in heading/pitch/roll and, if you are simulating in world coordinates then based on object rotation transform the inertia tensor from object space inhto world space every time step. You can do the simulation in object space, but you''d still have to know/track the orientation relative to world space in order to transform world space forces into object space for the simulation step. Hopefully, this sheds some light...

Graham Rhodes
Principal Scientist
Applied Research Associates, Inc.

Share on other sites
feanor    122
Thanks for the info. Ultimately I''m trying to get Euler angles in a GCC coordinate system, but I''m totally lost at this point as to how to use the inertia tensor.

I don''t know how to do the step you described in your last post. I don''t have any orientation information from the library I''m using. All they give me is the moment tensor, the inverse of the moment tensor, and the moment tensor determinant. So are you saying that with these values there is no way to get the orientation without additional information?

If I can get the orientation in GCC I don''t even need the local orientation. Does that help at all?