Fuck this… here's the .pdf:
https://netfiles.uiuc.edu/bosiljev/ME598
by Andy Bosiljevac
The Euler rotation theorem states that any three-dimensional rotation can be described by
a single rotation about an oblique axis (known as the Euler axis) by an angle of θ.
Figure 1: Graphical representation of the Euler axis and angle of rotation.1
However, such rotations can be quantified by several different methods, some of which are more
mathematically difficult than others. In this report, I will explain three of the methods used,
which are referred to as the directional cosine matrix (DCM), Euler angles, and quaternions.
The DCM method of quantifying rotations is the most straightforward, but also requires
specification of a total of nine parameters to describe the system. The nine parameters simply
describe the rotated i, j, and k-axes as vectors:
(2)
where K and k are both vectors. Next, by simple vector identities, the first angle of rotation can
be found:
$\alpha = \arccos (I \cdot L)$ (3)
Then, by inspection, if the y-component of the line of nodes is positive, then α is positive. The
converse is also true. Next, in order to quantify the second Euler angle:
$\beta = \arccos (K \cdot k)$ (4)
This works only because there is a single rotation of the local z-coordinate. Again, by inspection,
if the following conditions are true, then β is positive: α is positive and the x-component of the
k-axis is positive, or α is negative and the x-component of the k-axis is negative. β is negative if
α and the x-component of the k-axis do not match signs. Lastly, the third angle is calculated:
$\gamma = \arccos (L \cdot i)$ (5)
Determining the sign of γ is done similarly to β, where positivity holds if β and the z-component
of the i-axis are both positive or negative, and negativity holds when they have opposite signs.
This technique obviously requires quite a bit of computation and if-then statements, and the
rotation matrix for a vector takes the following form:
M
!"# =
cos! cos# $ cos" sin! sin# $ cos" cos# sin! $ cos! sin# sin! sin"
cos# sin! + cos! cos" sin# cos! cos" cos# $ sin! sin# $ cos! sin"
sin" sin# cos# sin" cos"
%
&
'''
(
)
***
The final technique, which is based on the DCM method, is the method of using
quaternions. Essentially, by using three imaginary numbers, which form a three-dimensional
vector when combined, and one real number scalar, any rotation can be mapped. A few key
points about the imaginary vector components are that they are orthogonal and anticommutative,
so the following properties are true:
i = j = k = !1
ij = k
jk = i
ki = j
ji = !k
kj = !i
ik = ! j
5 of 5
These unique properties give the i, j, and k vectors properties of a right-handed coordinate
system, which can be used to define the Euler axis mentioned earlier in the report. Additionally,
the scalar portion of the four-dimensional vector can be used to represent the angle about which
to rotate. With regard to quantification, two methods exist, both of which have three degrees of
freedom: 1) the scalar and two components of the Euler axis are free, and the third is constrained
by the length of the unit vector, or 2) all three components of the vector are free and the length of
the vector describes the rotation angle. The advantages of using quaternions is that they are more
concise to describe, they do not depend on any sort of ordered rotations as Euler angles do, and
the Euler axis can be easily found by finding the eigenvector for the real number eigenvalue,
described by the DCM in the first portion of this report.
In conclusion, I contend that Euler angles and quaternions are the two fundamental
methods by which to describe three-dimensional rotations. Most of the other methods (not
mentioned) rely on one of these two methods, and as seen in this report, the DCM and quaternion
methods are co-dependent. There are ways to convert between Euler angles and quaternions my
trigonometry and matrix multiplication, but I felt they were trivial for the report. There are
different applications for each of the rotational methods, but quaternions seem to be the most
useful, especially when generating rotations. I really hope this report measures up to your
expectations (which I’m certain that it doesn't)… I wish I could have done a better job on this
project all around, but I’m spent… in my next life, I’ll do about half as much shit in one
semester.