How many times have you read this statement in a paper related with the inertial navigation:
“…because of the singularity problem of Euler angles, quaternion representation is used in this study…”
It looks quite a legitimate statement, doesn’t it. It is indeed true that there is a singularity problem with the Euler angles. However, in reality, this statement is nothing but a self-confession that the authors of the paper do not know the topic they intent to write a paper.
Let’s see why this is the case.
The orientation between two coordinate systems is always uniquely represented by an orthogonal matrix. We call it direction cosine matrix (dcm) in navigation related literature. However, mathematicians prefer to call these matrices as a member SO(3) (which means set of special orthogonal set. “special” denotes that we consider only orthogonal matrices with a determinant of +1).
The key fact about dcm is that it is a unique representation. There is one and only one dcm between 2 coordinate frames.
On the other hand, dcm is an over representation. Therefore, in navigation algorithms we may prefer to use other representations with less number of elements such as euler angles, rotation vectors and quaternions.
Euler angles and rotation vectors consist of only 3 elements. However, they are not unique. In other words, between any coordinate systems we can define at least 2 different sets of Euler angles and/or rotation vectors. Furthermore, there are certain orientations which can be represented by infinitely many different euler angles/rotation vectors (e.g. 0 degree rotation vectors or 90 degree pitch for RPY).
In other words, neither euler angles nor rotation vectors are unique. The transformation between 2 coordinate systems can be represented by at least one set of euler angle/rotation vector. This is what we mean by singularity problem. Singularity does NOT mean that euler angles/rotation vectors are not defined for certain orientations. We can always use them to represent any arbitrary orientation regardless of this so-called singularity problem.
Quaternions are nothing but 4-element representation of the rotation vectors. The addition of this one more element makes quaternions also unique like dcm. Therefore, given any 2 coordinate systems, we can define one and only one quaternion.
As a result, in your next paper, if you try to state some reason for your choice of the quaternions, you had better use the following sentence instead of the one above:
“…because of the singularity problem of the rotation vectors, quaternion representation is used in this study…”
At the end of the day, any experienced navigation system designer knows that selection of attitude mechanization is completely personal. I usually prefer to use different mechanization in different projects just to keep my memory refreshed. Therefore, it is best to avoid using rookie statements like the above ones completely.
Finally, If you decide to use quaternions, do not use 4 states to represents errors on them. Small angle attitude errors are always represented by 3 states. Doing otherwise is another self-confession of ignorance. I am planning to elaborate this topic in a later blog entry.