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.