# Attitude representation

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The IMUs representation of a vehicle's orientation is generally represented by a rotation of one coordinate axis into another. This is to say that the 'attitude numbers' are the numbers required to rotate one vector in the body reference frame (say the direction the nose is pointing) into a different reference frame (say the celestial sphere). This can be used for many different things (such as pointing the nose at a star)

Since this is an Inertial Navigation system, the reference frame is best to be an inertial one. ;)

More on this with some standards soon..

As for the math involved, There are generally three different commonly used representations.

The first, called euler angles, are common in everyday life. Think heading, tilt, slope, yaw, pitch, roll, etc. in aircraft and other vehicles. For spacecraft or launch vehicles that go through large translations, or are more than a few degrees off in relative orientation, this representation has serious problems.

The second, is a simple cosine matrix. Multipy a vector by this matrix and out pops the same vector in the new reference coordinates. This is used a lot, but has a few small problems. Specifically when integrating the motions to update the attitude, The trigonometric functions have truncated precision, the numbers themselves have limited precision, and the measuments themselves have limited accuracy; these all combine to make the math slightly off. Furthermore, as these errors accumulate, The matrix will start changing the length of vectors put though it, not just rotating them. Then the matrix needs to be re-normalized which is more computationally expensive than.....

The third, quaternions, a.k.a. hyper-imaginary numbers, can be thought of as a vector and scalar combined. It has been described as a vector that the transformational rotation is applied around the angle of the scalar portion. It's not as intuitive as the Euler angles nor cosine matrix, but does accumulate errors slower than the other methods (given the same precision and accuracy) and 'fixing' it is merely dividing each component by it's total magnitude