1,212
edits
Changes
no edit summary
Quaternions were constructed in attempt to extend the idea of rotations in a complex plane to 3D. Each quaternion is a set of four parameters. Why four? Well, any rigid body rotation can be done about a unique axis. So, 3 parameters to specify the axis and 1 for the angle rotated about it. But we have an endless choice of vectors along the axis to represent it. Here comes an applicational constraint from the fact that we want a rotation that doesn’t scale. So we restrict to unit quaternions (quaternions of unit magnitude). In retrospection, this has also simplified the mathematical design for rotation using quaternions. <br \>
So we’ll start with vector notation for rotation and make an attempt to build a mathematical construct for unit quaternions.
[[File:Quaternion2Quaternions.png|framethumb|center|500px|Decomposing a given point x into components parallel and perpendicular to the rotation axis. Image inspired from [http://www.mlahanas.de/Math/orientation.htm here]]]
In the picture above, x is being rotated to x’ about n in anticlockwise sense. This is equivalent to keeping its component parallel to n preserved and rotating the perpendicular component. Mathematically this is given as,
[[File:Equation13.png|frame|center]]
Now, a general quaternion is written as a + b i + c j + d k (or equivalently (a,'''v''')). ‘a’ is called the scalar part and the rest is the vector part (think of i,j,k to be similar to the unit orthogonal vectors of 3D space). <br \>
To proceed, we’ll define few quaternion properties, <ref>https://en.wikipedia.org/wiki/Quaternion </ref><br \>
* '''Addition'''
The above equation is used to perform rotations using unit quaternions. All along, the requirement of preserving vector magnitude never explicitly forced us to choose unit quaternions. However, this has been ensured because we started with a vector equation that took this into account and unit quaternion was an output of subsequent manipulations of this equation. <br \>
Formulation of quaternions has made two major accomplishments. Firstly, it was able to give Euler’s rotation theorem (which says any rotation of a ‘rigid body’ is equivalent to a single rotation about a unique axis) a more solid mathematical application. Secondly, it was able to “mathematically” resolve the problem of gimbal lock ([https://www.youtube.com/watch?v=zc8b2Jo7mno here's a nice video on gimbal lock]) that euler angles face. It should be pointed out now that though quaternions provided a ‘mathematical’ alternative to euler angles, they didn’t fully dislodge them. For instance, there are still mechanical systems that perform successive rotations in a predefined manner to realise a final rotation. It is natural and convenient to describe these using euler rotation angles. Quaternions in this case can’t help circumvent the gimbal lock issue because the euler angles are a physical requirement. Quaternions are, hence, only a ‘mathematical’ antidote to gimbal lock. Nevertheless, they are a huge simplification of their existing mathematical counterparts. <br \>
----
If you are done reading this page, you can go back to [[Attitude Determination and Control Subsystem]]
== References ==