Tensor Rotacao

Download as pdf or txt
Download as pdf or txt
You are on page 1of 42

1

Three-Dimensional
Rotations
A rotation is a transformation that preserves the length, the volume (with sign), and
the angle between pairs of vectors. If vector a is rotated into vector b, then the
property of length preservation is expressed as
|a| = |b|. (1.1)
Furthermore, if vectors a
1
, a
2
and a
3
are transformed by the same identical rotation
into vectors b
1
, b
2
and b
3
, respectively, by the property of volume preservation we
have
a
1
a
2
a
3
= b
1
b
2
b
3
. (1.2)
Finally, by the property of angle preservation between vectors, we have
cos
a1,a2
= a
1
a
2
= b
1
b
2
= cos
b1,b2
, (1.3)
where
i,j
indicates the angle between vector i and vector j. Because of these three
properties, a rotation is termed a rigid transformation.
In mechanics, rotations are used for expressing relationships between coordinate
systems. A rectangular coordinate system is dened by a frame. Each frame is
composed by a point, called the frame pole, and by a triad of orthogonal unit vectors
with origin in the pole. Since rotations are rigid transformations, given two triads I
and J, the latter can always be seen as obtained by a suitable rotation of the former.
Hence, rotations play a fundamental role whenever a problem is formulated in terms
of multiple coordinate systems in relative motion with respect to one another.
In the formulation of ight mechanics problems, rotations are routinely used for
transforming the components of vectors from one coordinate system to another. Fur-
thermore, the motion of a vehicle with respect to a frame of reference is described
1
2 THREE-DIMENSIONAL ROTATIONS
in terms of the position and orientation of a body attached frame that is xed to the
vehicle and moves with it. The position of the vehicle with respect to the reference
frame is given by the distance vector between the pole of the reference frame and the
pole of the vehicle attached frame. On the other hand, the orientation of the vehicle
with respect to the reference frame is given by the rotation that brings the reference
triad into the vehicle attached triad. When only the orientations are of interest, as in
most instances in the rest of this chapter, we can use triads rather than frames in order
to describe systems of coordinates.
In this chapter we study the problem of three-dimensional rotations, and we in-
troduce the main instruments that are used for describing and manipulating rotations.
The concepts and tools here exposed will be used later on in the derivation of the
vehicle equations of motion, and in their analysis and solution. Furthermore, in this
chapter we showthat rotations are characterized by special properties. In fact, as with
many other problems in mechanics, rotations can be described in terms of tensorial
quantities. In particular, the rst order tensors, called rotation vectors, belong to spe-
cial spaces whose properties imply that: a) the composition of successive rotations
can not be expressed by simply adding the corresponding rotation vectors, and b)
rotations do not commute, in the sense that changing the order in which two succes-
sive rotations are performed, changes the resulting composed rotation. These special
characteristics of rotations are found only in the three-dimensional case, while in
two spatial dimensions rotations can be added and commute, and are therefore much
simpler to analyze. The title of this chapter emphasizes the special nature of the
three-dimensional case. The treatment of the material presented herein is designed
to be self-contained, however the reader might wish to nd further information and
additional details in classical references such as [5, 4].
We shall start the study of rotations by looking rst at the problemof transforming
components between triads, which leads to the concept of direction cosine matrix.
1.1 THE DIRECTION COSINE MATRIX
Consider two orthonormal triads of unit vectors, I = (i
1
, i
2
, i
3
) and J = (j
1
, j
2
, j
3
),
as shown in gure 1.1. Each unit vector j
k
of J can be expressed in terms of the unit
vectors i
l
of I as
j
k
= (i
1
j
k
) i
1
+ (i
2
j
k
) i
2
+ (i
3
j
k
) i
3
=
3

l=1
(i
l
j
k
) i
l
, (1.4)
where k = 1, 2, 3. This relationship between the vectors of two triads can be conve-
niently expressed by means of the direction cosine matrix [], whose scalar compo-
nents are

kl
= i
k
j
l
, k, l = 1, 2, 3. (1.5)
The entries of this matrix represent the cosines of the angles between the unit vectors
of triad I and those of triad J,
i
k
j
l
= cos
i
k
,j
l
, (1.6)
THE DIRECTION COSINE MATRIX 3
i
1
i
2
j
2
j
3
i
3
j
1
Figure 1.1 Orthonormal triads of unit vectors, I = (i1, i2, i3) and J = (j1, j2, j3).
as the name of the matrix suggests.
The same matrix entries can also be interpreted in an alternative way. In fact, from
its denition, the columns of the direction cosine matrix are seen to represent the
components of the unit vectors j
k
measured in triad I. Indicating the components of
vector ain triad Awith the notation a
A
, the direction cosine matrix can be partitioned
by columns as follows:
[] =
_
j
I
1

j
I
2

j
I
3
_
. (1.7)
By a similar argument, the rows of the matrix are seen to represent the components
of the unit vectors i
k
measured in triad J:
[] =
_

_
i
J T
1
i
J T
2
i
J T
3
_

_
. (1.8)
Using nowequation (1.4) and the direction cosine matrix denition, equation (1.5),
it is readily veried that the direction cosine matrix transforms the components of the
unit vectors i
k
measured in I into the components of the unit vectors j
k
measured in
the same triad:
j
I
k
= [] i
I
k
, k = 1, 2, 3. (1.9)
We shall use this fact later on for developing the rule of transformation of components
of vectors and tensors in changing reference from one basis to another.
The direction cosine matrix is orthogonal, i.e. it enjoys the following fundamental
property:
[][]
T
= []
T
[] = [I], (1.10)
4 THREE-DIMENSIONAL ROTATIONS
where [I] is the 3 3 identity matrix. In fact, using equation (1.7) which expresses
the matrix partitioning by columns, we can immediately verify that
[]
T
[] =
_

_
j
I T
1
j
I T
2
j
I T
3
_

_
_
j
I
1

j
I
2

j
I
3
_
=
_
j
I T
k
j
I
l
_
= [
kl
] = [I], (1.11)
where
kl
is the Kronecker symbol, i.e.
kl
= 1 if k = l,
kl
= 0 if k = l. The
diagonal terms of the direction cosine matrix are equal to one because vectors j
k
are
of unit length, j
k
j
k
= 1, while the off-diagonal terms of the matrix are equal to
zero because the triad vectors are mutually orthogonal, j
k
j
l
= 0, k = l. Given
the orthogonality of the direction cosine matrix, its inverse is readily computed from
(1.10) as
[]
1
= []
T
. (1.12)
1.2 THE ANGULAR VELOCITY
Consider now [] as a function of a scalar parameter t R
+
, [] = [(t)]. This
would be the case whenever one of the two triads moves with respect to the other,
for example, because it is attached to a body that is in motion with respect to a xed
frame. Differentiating the orthogonality condition (1.10) with respect to t yields

[][]
T
+ []

[]
T
= 0, (1.13)
where the notation

() = d /dt was used to indicate differentiation with respect to
time. Setting now
[A] =

[][]
T
, (1.14)
equation (1.13) implies that [A] is a skew symmetric matrix:
[A] = [A]
T
. (1.15)
Since a 33 skewsymmetric matrix can depend on only three parameters, [A] can be
expressed in terms of the components of a vector
J/I
, termed the angular velocity
vector of triad J with respect to triad I. When there are only two triads, and where
there is no possibility of confusion, in order to simplify the notation we will indicate
the angular velocity simply with the symbol , rather than with the more precise

J/I
. Indicating the components of in I with the notation
I
= (
1
,
2
,
3
)
T
,
the skew symmetric matrix [A] can be written as
[A] =
I

=
_
_
0
3

2

3
0
1

2

1
0
_
_
. (1.16)
The symbol ()

is here used to indicate a skew symmetric tensor, whose com-


ponents in I are noted ()
I

. This notation reminds the fact that a skew symmetric


THE ANGULAR VELOCITY 5
matrix can be used for computing the components of the cross product between two
vectors. In fact, given two vectors a and b, their cross product is dened as
c = a b = |a||b| sin
a,b
n, (1.17)
where n is a unit vector orthogonal to the plane formed by a and b, and
a,b
the
angle between them. In components measured in I, equation (1.17) is expressed as
c
I
=
_
_
a
2
b
3
a
3
b
2
a
3
b
1
a
1
b
3
a
1
b
2
a
2
b
1
_
_
, (1.18)
which can also be written as
c
I
= a
I

b
I
=
_
_
0 a
3
a
2
a
3
0 a
1
a
2
a
1
0
_
_
_
_
b
1
b
2
b
3
_
_
, (1.19)
where the components of the various vectors are a
I
= (a
1
, a
2
, a
3
)
T
, b
I
= (b
1
, b
2
, b
3
)
T
,
and c
I
= (c
1
, c
2
, c
3
)
T
. Hence, the cross product between vectors a and b can be
regarded as the product between a skewsymmetric second order tensor a

and vector
b:
c = a b = a

b. (1.20)
The skew symmetric second order tensor will be extensively used in the remaining of
this chapter. For future reference, we note that given a generic second order tensor T,
its axial vector v is dened as v = axial(T), such that v

= (T T
T
)/2. Hence,
given the skew symmetric tensor a

above, vector a can be computed from tensor


a

as a = axial(a

).
Returning to the problemof differentiating the orthogonality condition, using now
(1.16), equation (1.14) becomes

[] =
I

[]. (1.21)
Examined column by column, this matrix ordinary differential equation yields the
time derivatives of the components of the j
k
unit vectors measured in the I triad:
dj
I
k
dt
=
I

j
I
k
, k = 1, 2, 3. (1.22)
Since all components are referred to the same triad I, these equations can be expressed
in vector form as
dj
k
dt
= j
k
, k = 1, 2, 3. (1.23)
These equations express the time rates of change of the unit vectors of a moving triad,
and are known as Poissons relations.
6 THREE-DIMENSIONAL ROTATIONS
1.3 THE ROTATION TENSOR
So far, we have considered the problemof transforming vector components from one
basis to another. This has lead to the concept of a direction cosine matrix, and shown
its orthogonality property. Orthogonality has then lead to the concept of angular
velocity and shown the role of the skew symmetric second order tensor. These same
concepts can be derived by looking at the problemof rotating a vector a into a vector
b, a transformation that we will indicate symbolically as
b = Rot(a). (1.24)
The analysis of the rotation problem shows that this transformation between vectors
is accomplished by a tensor, known as the rotation tensor. In this section we shall
therefore study the derivation of the rotation tensor as a function of its associated vec-
torial quantity, the rotation vector. This analysis will provide the basis for discussing
of the fundamental problem of how to describe nite rotations in terms of suitable
degrees of freedom, a problemthat is known in the literature as the parameterization
of rotations.
The expression of the rotation tensor in terms of the rotationvector canbe derivedin
at least two alternative ways: using purely geometric arguments, or using a differential
approach. While both ways of looking at the problemclearly lead to the same results,
both have their interesting peculiarities and highlight different important properties
of rotations. Hence, both paths will be illustrated in the following pages. We shall
start by the most intuitive and simple one, which is the geometric approach.
1.3.1 Geometric Derivation of the Rotation Tensor
The geometric derivation of the rotation tensor can be based on the two fundamen-
tal theorems of Euler on rotations. Eulers Displacement Theorem states that any
arbitrary displacement of a rigid body that leaves a point xed is a rotation about a
unit vector k by an angle . In other words, any three-dimensional rotation can be
interpreted as a two-dimensional rotation that takes place in a plane orthogonal to
a suitably chosen direction. Furthermore, Eulers Rotation Theorem states that any
rotation may be described in terms of only three parameters.
Consider in particular the rotation of vector a into vector b, as depicted in gure
1.2. According to Eulers Displacement Theorem, the rotation of a into b can be seen
as produced by a rotation about the rotation axis k. The problemis nowto compute
b, given a, k and . With this goal in mind, dene rst a triad of orthogonal unit
vectors i, j and k. Unit vector j is orthogonal to plane
a,k
spanned by a and k,
j =
k a
|a| sin
, (1.25)
being the angle between k and a, while unit vector i completes a right-handed
triad,
i = j k, (1.26)
THE ROTATION TENSOR 7
i
j
k
a
b
c
d
e
j
a a
p
a,k
Figure 1.2 Rotation of vector a into vector b through a rotation angle about unit vector
k.
and consequently lies in the plane
a,k
. With reference to gure 1.2, vector b can
now be expressed as the sum of four vectors
b = a +c +d +e, (1.27)
where c and e are parallel to i, while d is parallel to j. Each one of these vectors can
be readily expressed in terms of only a, k and :
c = |a| sini = |a| sin
(k a) k
|a| sin
= k k a, (1.28)
d = |a| sin sin j = |a| sinsin
k a
|a| sin
= sink a, (1.29)
e = |a| sin cos i = |a| sin cos
(k a) k
|a| sin
= cos k k a. (1.30)
Substituting these expressions into (1.27), vector b is now computed as
b = Ra, (1.31)
where
R = I + sin k

+ (1 cos )k

, (1.32)
8 THREE-DIMENSIONAL ROTATIONS
is the rotation tensor that transforms a into b, and = k is termed the rotation
vector. Note that, coherently with Eulers Rotation Theorem, R is characterized by
only three parameters: the rotation angle and the two independent parameters that
dene unit vector k. Equation (1.32) is known as the Euler-Rodrigues formula.
For future reference and ease of notation, it is convenient to write R as
R =
2

k=0
R
k
(

)
k
, (1.33)
where the rotation tensor coefcients are given by
R
0
= 1, R
1
=
sin

, R
2
=
1 cos

2
. (1.34)
The coefcients are well dened for the rotation angle that tends to zero, and in fact
lim
0
R
1
= 1, lim
0
R
2
=
1
2
. (1.35)
Hence, as expected,
lim
0
R = I, (1.36)
and b = a for = 0.
The rotation tensor enjoys some important properties. In fact, using its denition,
equation (1.33), it is readily veried that R is an orthogonal tensor:
RR
T
= R
T
R = I. (1.37)
This could also be obtained by other means, for example by recalling that a rotation
is a length-preserving transformation, property (1.1). In fact, using (1.31), the length
of vector b is
|b| =

b b =

a R
T
Ra. (1.38)
On the other hand, the length of a is
|a| =

a a, (1.39)
and the condition |b| = |a| requires R to be orthogonal, equation (1.37).
A second property of the rotation tensor is obtained by multiplication with the
rotation vector:
R = . (1.40)
This indicates that is unaffected by the rotation, as in fact expected since the rotation
takes place about k that is indeed parallel to . This property is closely related to the
eigen analysis of R. In fact, the eigenvalue problem for R is written as
(R
i
I) x
i
= 0, i = 1, 2, 3, (1.41)
THE ROTATION TENSOR 9
where
i
is the ith eigenvalue and x
i
its associated eigenvector. Rearranging (1.40)
as
(RI) = 0, (1.42)
and comparing this expression with (1.41), we conclude that the axis of rotation k can
be regarded as the (normalized to one) eigenvector of the rotation tensor corresponding
to the eigenvalue = 1. Orthogonal tensors that have a positive unit eigenvalue are
termed proper orthogonal tensors.
1.3.1.1 Virtual Variation and Angular Velocity We have already seen when
discussing of the direction cosine matrix that time derivatives of the orthogonality
property lead to the denition of the angular velocity. Here we shall take a similar
path but, having now derived the expression of the rotation tensor in terms of the
rotation vector, we will be able to derive the expression of the angular velocity as a
function of the rotation vector and of its time derivatives. This is useful in practical
ight mechanics applications, for example in the simulation of the vehicle response, or
for computing the vehicle orientation based on measurements of the angular velocity
obtained by onboard gyros.
Before starting, it should be noted that instead of considering derivatives with
respect to time, one could consider virtual variations. While time derivatives will
lead to the denition of the the angular velocity, virtual variations will lead to the
denition of the virtual rotation.
To illustrate this point, let us start by taking a virtual variation of the orthogonality
condition, equation (1.37). By the same argument used for the direction cosine matrix,
it is clear that this virtual variation leads to the denition of a skew symmetric tensor:

= RR
T
. (1.43)
The vector associated with this tensor is noted

= axial(

), and it is termed
virtual rotation. We anticipate, and it will become clear in the following, that the
virtual rotation can not be interpreted as the virtual variation of the rotation vector,
. The notation ()

, where the symbol of variation is used as a subscript, is a


reminder of this important fact.
Computing R from (1.33), one obtains
R = R
1

+ R
1

+ R
2

+ R
2
_

_
. (1.44)
Inserting into (1.43) and rearranging the terms, one gets the relationship between the
virtual rotation and the variation of the rotation vector as

= S, (1.45)
where the following property was used for eliminating the powers of

higher than
two:
(

)
3
+||

= 0. (1.46)
Tensor S has the following expression
S =
2

k=0
S
k
(

)
k
, (1.47)
10 THREE-DIMENSIONAL ROTATIONS
where the coefcients S
k
are found as
S
0
= 1, S
1
= R
2
=
1 cos

2
, S
2
=
1

2
_
1
sin

_
. (1.48)
These coefcients are well dened for the rotation angle that tends to zero:
lim
0
S
1
=
1
2
, lim
0
S
2
=
1
6
. (1.49)
Notice further that
lim
0
S = I. (1.50)
Using its denition, the determinant of S can be readily computed as
det(S) =
2

2
(1 cos ). (1.51)
Therefore, tensor S is singular for = 2k, k = (1, ). This means that the
description of rotations based on the rotation vector has only a nite range of validity:
2 < < 2. We shall come back to this problem later on when discussing of the
parameterization of rotations.
From equation (1.45) and the expression for S that we have just derived, it can be
observed that, unless = 0 or is parallel to (two-dimensional rotation), the
virtual rotation differs from the virtual variation of the rotation vector, i.e.

= , (1.52)
as previously anticipated.
The variation of the rotation vector can be computed as a function of the virtual
rotation by inverting equation (1.45), which gives
= S
1

. (1.53)
Due to the singularity of S, this relationship is not dened for = 2k, k = (1, ),
and it will be ill conditioned in the close neighborhood of these values. Setting
S
1
=
2

k=0

S
k
(

)
k
, (1.54)
and inserting the coefcients of S given in (1.48) into the identity SS
1
= I, one
can readily nd the coefcients of S
1
, which write

S
0
= 1,

S
1
=
1
2
,

S
2
=
1

3
_

sin
det(S)
_
. (1.55)
Tensors R and S are closely related. The following expressions of R in terms of
S and S
T
can be easily veried using the denitions of the two tensors:
R = SS
T
= S
T
S. (1.56)
THE ROTATION TENSOR 11
Another property between the two tensors will emerge fromthe differential approach
presented later on.
The same identical procedure that has been followed so far and that has led to the
expression between virtual rotation and variation of the rotation vector, can now be
repeated by replacing variations with derivatives. This will yield the expression of the
angular velocity in terms of the time rate of change of the rotation vector. Considering
Ras a function of the scalar parameter t R
+
, and differentiating the orthogonality
condition (1.37), yields a skew symmetric tensor

=

RR
T
, (1.57)
whose associated axial vector can be interpreted as the angular velocity. Computing

Rfrom (1.33) and inserting into the previous expression, the angular velocity can be
written as
= S

. (1.58)
Here again, notice that the angular velocity can not in general be interpreted as the
time rate of change of the rotation vector, unless the problem is two-dimensional or
we are at the origin, i.e. = 0. The inverse relationship is then

= S
1
, (1.59)
which however will be undened or ill conditioned in the neighborhood of the singular
points of S.
1.3.2 Differential Approach to the Derivation of the Rotation Tensor
In the previous section, the rotation tensor was derived based solely on geometric
considerations. Here it will be derived using a differential approach that highlights
some other important characteristics of this tensor.
To begin with, it is necessary to establish the functional formof the relation between
a generic vector a and its rotated vector b, equation (1.24). In the previous section
this relationship was found to be b = Ra, based on the geometry of the problem.
Here, we will derive this same result based on a different argument. With reference
to gure 1.3, consider two vectors a
1
and a
2
and their sum a = a
1
+a
2
. Given the
length, volume and angle preserving characteristics of rotations, equations (1.1-1.3),
the triangle formed by vectors a, a
1
and a
2
is rigidly rotated into the triangle formed
by vectors b, b
1
and b
2
. This means that it is possible to rotate the sum a of vectors
a
1
and a
2
into b, or rotate a
1
into b
1
and a
2
into b
2
and then sum the rotated vectors
to yield b = b
1
+ b
2
, obtaining the same resulting vector b in both cases. This
establishes the fact that a rotation is a linear transformation:
Rot(a
1
+a
2
) = Rot(a
1
) + Rot(a
2
). (1.60)
Consequently, the operator Rot() must have the following form
Rot() = R +r, (1.61)
12 THREE-DIMENSIONAL ROTATIONS
k
a
b
a
1
a
2
b
1
b
2
Figure 1.3 The rotation of the sum of two vectors is equivalent to the sum of the rotated
vectors.
where R is some tensor and r some vector, both yet to be determined. However, a
rotation is a length-preserving operation, i.e.
|a| = |b| = |Ra +r| =
_
a R
T
Ra +a R
T
r +r Ra +r r, (1.62)
a fact that leads to conclude that r = 0 and R is orthogonal, RR
T
= I. This
establishes the fact that the rotation of vector a into vector b can be expressed as
b = Ra, (1.63)
as previously derived by a different argument. However, the functional formof tensor
R remains yet to be determined.
With the goal of determining R, consider now a scalar parameter [0, 1], such
that
b

= R

a. (1.64)
For each , R

is a rotation, so that |b

| = |a|. Furthermore, each rotation R

has the
same rotation axis k. This way we have dened a family of parallel rotations, whose
parameter is ; for increasing values of , b

is progressively rotated froma until the


total rotation from a to b is achieved for = 1, i.e. R = R
=1
. This situation is
depicted in gure 1.4.
Tensor R

represents a rotation only if it is orthogonal. Hence, we must have


R

R
T

= I. (1.65)
Differentiating this orthogonality condition with respect to the parameter yields
R

, (1.66)
where the following notation was used ()

= d /d to indicate differentiation with


respect to , and where is a yet unknown constant (with respect to ) vector.
THE ROTATION TENSOR 13
k
a
b
b
x
xj
x=1
Figure 1.4 Family of parallel rotations, with parameter 0 1 and rotation axis k, such
that b
=0
= a, b
=1
= b.
Equation (1.66) can be regarded as a rst order tensor ordinary differential equation,
subjected to the initial conditions
R
=0
= I, (1.67)
that ensure that the rotation is null at the origin, i.e. b
=0
= a. Using the fact that this
ordinary differential equation has constant coefcients, the solution is readily found
in the form of an exponential
R

= e

, (1.68)
where the exponential of a tensor is dened through the following innite series
e
A
=

k=0
A
k
k!
. (1.69)
Evaluating (1.68) for = 1 gives
R = e

, (1.70)
which shows that the rotation tensor can be regarded as the exponential of the skew
symmetric tensor

, a property that was not immediately apparent in the geometric


derivation of the tensor pursued in the previous section.
Furthermore, using the denition of the tensor exponential in terms of innite
series of powers of

, it is immediate to verify that


e

= . (1.71)
This condition states that is unaffected by the rotation, and hence vector can be
interpreted as the rotation vector, i.e. that vector about which a rotates to go into b.
Although here we have arrived to the expression of the rotation tensor from a
different point of view than in the previous section, equations (1.70) and (1.33) must
clearly be identical:
R = e

k=0
(

)
k
k!
=
2

k=0
R
k
(

)
k
. (1.72)
14 THREE-DIMENSIONAL ROTATIONS
This is in fact the case, as it can be readily shown using property (1.46) of skew
symmetric tensors to eliminate powers of

higher than two in the innite series of


the exponential.
1.3.2.1 Virtual Variation and Angular Velocity It is possible to derive the
expression for the angular velocity, or the virtual rotation, using the same approach
that we used above, that is integrating the governing differential equations. To this
effect, take nowa virtual variation of (1.66), that gives the following rst order tensor
ordinary differential equation in the unknown tensor R

:
R

. (1.73)
Since R

satises initial conditions at = 0, equation (1.67), the corresponding


virtual variations must vanish:
R
=0
= 0. (1.74)
These represent the initial conditions for the tensor ordinary differential equation.
Integrating now (1.73) subjected to (1.74), one nds
R

= e

_

0
e

d,
= R

_

0
R
T

d. (1.75)
Taking now a variation of the orthogonality condition (1.65), gives a second form of
the unknown tensor R

, which writes
R

, (1.76)
where

is the virtual rotation. Eliminating R

between (1.76) and (1.75), the


following expression is found

=
_

0
(R

d, (1.77)
which implies, by taking the axial of both sides of the equation,

=
_
_

0
R

d
_
. (1.78)
The integral on the right hand side of this expression is readily computed using the
denition of the exponential of a tensor
_

0
R

d =
_

0

k=0
(

)
k
k!
d =

k=0
(

)
k
(k + 1)!
, (1.79)
Finally, evaluating this expression for = 1 and inserting the result into (1.78), gives

in terms of the virtual variation of the rotation vector ,

= S, (1.80)
RELATIONSHIP BETWEEN DIRECTION COSINE MATRIXAND ROTATION TENSOR 15
where
S =

k=0
(

)
k
(k + 1)!
. (1.81)
Equation (1.79) shows that tensor S can be interpreted as the integral of the rotation
tensor R, when this is expressed in terms of the rotation vector , a property that was
not immediately apparent in the derivations of the previous section. Clearly, the new
expression of tensor S, equation (1.81), must be identical to the one given previously
in (1.47),
S =

k=0
(

)
k
(k + 1)!
=
2

k=0
S
k
(

)
k
, (1.82)
as it is readily shown using here again property (1.46) to eliminate powers of

higher than two from the innite series.


Replacing variations with time derivatives, the expression for the angular velocity
as a function of the time rate of change of the rotation vector is found by exactly the
same arguments:
= S

. (1.83)
1.4 RELATIONSHIP BETWEEN DIRECTION COSINE MATRIX
AND ROTATION TENSOR
Up to this point, we have analyzed the transformation of components between two
triads and the rotation of one vector into another. The rst problem has lead to the
denition of the direction cosine matrix, while the second has lead to the expression
of the rotation tensor in terms of the rotation vector. Since any triad can always
be seen as obtained by the rotation of another triad, these two seemingly different
concepts must be related. This is in fact the case, as it can be readily shown by a
simple argument.
Consider the orthonormal triads of unit vectors I = (i
1
, i
2
, i
3
), and rotate it to
bring it into triad J = (j
1
, j
2
, j
3
). Using (1.31), the rotation of the unit vectors is
expressed as
j
k
= Ri
k
, k = 1, 2, 3. (1.84)
This relationship can be expressed in terms of components measured in I:
j
I
k
= R
I
i
I
k
, k = 1, 2, 3. (1.85)
Comparing now (1.85) with (1.9), leads to the conclusion that
[] = R
I
, (1.86)
and hence the elements of the direction cosine matrix correspond to the components
of the rotation tensor measured in I.
16 THREE-DIMENSIONAL ROTATIONS
1.5 CHANGE OF BASIS
In practical applications, it is often necessary to express the components of vectors and
second order tensors in different systems of axes. For example, in ight mechanics
it is common to have the necessity of transferring quantities between inertial and
body axes, or between different sets of body axes. This is easily accomplished using
direction cosine matrices or, which is exactly the same as just shown, using the
components of rotation tensors.
i
1
i
2
j
2
j
3
i
3
R
a
b
j
1
Figure 1.5 Rotation of triad I = (i1, i2, i3) into triad J = (j1, j2, j3) by R, and of vector
a into b by the same rotation.
Consider again triads I and J, where the latter triad was obtained fromthe former
through a rotation corresponding to a rotation tensor R. Consider further a vector
a, and rotate it by R to bring it into b:
b = Ra, (1.87)
as shown in gure 1.5. In components measured in I, this vector rotation is expressed
as
b
I
= R
I
a
I
. (1.88)
Clearly, the components of a in I, a
I
, and of b in J, b
J
, are identical,
a
I
= b
J
, (1.89)
CHANGE OF BASIS 17
since both I and a underwent the same identical rotation Rto bring them into J and
b, respectively. Consequently, inserting (1.89) into (1.88), one nds
b
I
= R
I
b
J
. (1.90)
This relationship expresses the transformation of the components of vector bchanging
basis fromJ to I. Recalling the orthogonality of R, R
1
= R
T
, the transformation
of components from I to J writes
b
J
= R
IT
b
I
. (1.91)
Recalling now the unit eigenvalue property, R = , and setting b = in
(1.91), one has

J
= R
IT

I
=
I
, (1.92)
which expresses the fact that has identical components in both systems of axes I
and J. This was expected, being unaffected by the rotation. Since R is a sole
function of , R = R(), as shown by equations (1.33) and (1.70), it is concluded
that R also has identical components in both bases I and J:
R
I
= R
J
. (1.93)
Example 1.5.1 Consider the spinning aircraft depicted in gure 1.6. Frame F
C,B
with origin in C and triad B = (b
1
, b
2
, b
3
) is rigidly attached to the vehicle and
moves with it, while the xed inertial frame is F
O,I
, with origin in O and triad
I = (i
1
, i
2
, i
3
). The orientation of B with respect to I is characterized by a rotation
vector with components in I given by

I
= (0, , 0)
T
, = 30 deg.
If the components of the angular velocity of the vehicle in I are

I
= (0, sin, cos )
T
, = 45 deg/sec, = 15 deg,
what are the components of in B?
Solution. The components of the unit vectors b
k
, k = 1, 2, 3, in the I triad are
b
1
= (cos , 0, sin)
T
, b
2
= (0, 1, 0)
T
, b
3
= (sin , 0, cos )
T
.
Using equation (1.7), the direction cosine matrix is readily obtained as
R
I
IB
=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
,
18 THREE-DIMENSIONAL ROTATIONS
i
1
i
2
,b
2
i
3
b
1
b
3
q
q
w
O,C
Figure 1.6 Spinning aircraft. The xed inertial frame is FO,I, with origin in O and triad
I = (i1, i2, i3). The body attached frame is FC,B, with origin in C and triad B = (b1, b2, b3).
where R
IB
denotes the rotation that brings I into B. Using (1.91), the components
of in B are

B
= R
IT
IB

I
=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_

_
_
0
sin
cos
_
_
,
=
_
_
sin cos
sin
cos cos
_
_
.
Denoting the components of in B as
B
= (p, q, r)
T
, the result is found as
p = 21.7333 deg/sec, q = 11.6569 deg/sec, r = 37.6432 deg/sec.

The rules of transformationof the components of tensors are derivednext. Consider
a vector c that is rotated into d through a rotation characterized by the rotation tensor
T,
d = Tc. (1.94)
This vector rotation can be expressed in terms of components measured in I
d
I
= T
I
c
I
, (1.95)
or in J
d
J
= T
J
c
J
. (1.96)
CHANGE OF BASIS 19
Using (1.91), the components of c and d in J are
c
J
= R
IT
c
I
, d
J
= R
IT
d
I
. (1.97)
Inserting these expressions into (1.96) yields
R
IT
d
I
= T
J
R
IT
c
I
, (1.98)
and therefore, multiplying from the left by R
I
,
d
I
= R
I
T
J
R
IT
c
I
= T
I
c
I
, (1.99)
that gives
T
I
= R
I
T
J
R
IT
. (1.100)
This relationship expresses the transformationof the components of tensor T changing
basis fromJ to I. The transformation fromcomponents measured in Ito components
expressed in J is readily obtained by recalling the orthogonality of R as
T
J
= R
IT
T
I
R
I
. (1.101)
Example 1.5.2 With reference to the spinning aircraft of example 1.5.1, consider a
frame F
R,R
with origin at point R and triad R = (r
1
, r
2
, r
3
), that is rigidly attached
to the rudder. Triad R is parallel to triad B in the undeected rudder position, and
the rudder hinge is parallel to r
3
.
i
1
i
2
,b
2
i
3
b
1
b
3
r
2
r
1
r
3
O,C
R
Figure 1.7 Rudder attached frame FR,R, with origin in R and triad R = (r1, r2, r3).
20 THREE-DIMENSIONAL ROTATIONS
After the pitching rotation R
IB
of example 1.5.1, the rudder of the aircraft
is deected of an angle
r
= 25 deg about its hinge r
3
, as shown in gure 1.7.
Noting as T the rotation tensor corresponding to the rudder deection, what are the
components of T in I?
Solution. The components of T measured in B are easily obtained as
T
B
=
_
_
cos
r
sin
r
0
sin
r
cos
r
0
0 0 1
_
_
.
Using (1.100), the components of T in I are computed as
T
I
= R
I
IB
T
B
R
IT
IB
,
=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
_
_
cos
r
sin
r
0
sin
r
cos
r
0
0 0 1
_
_
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
,
=
_
_
cos
2
cos
r
+ sin
2
cos sin
r
sin cos (1 cos
r
)
cos sin
r
cos
r
sin sin
r
sin cos (1 cos
r
) sin sin
r
sin
2
cos
r
+ cos
2

_
_
,
=
_
_
0.9297 0.3660 0.0406
0.3660 0.9063 0.2113
0.0406 0.2113 0.9766
_
_
.
Alternatively, we could also note that
r
I
3
= b
I
3
= R
I
IB
i
I
3
,
where i
I
3
= (0, 0, 1)
T
. Hence, r
I
3
is just the third column of matrix R
I
IB
. Then,
the components of T in I are simply the components of the rotation tensor, equation
(1.33), computed from the rotation vector =
r
r
3
, where the components of r
3
are given above.

1.6 COMPOSITION OF ROTATIONS
We have previously anticipated that rotations do not commute and that rotations
vectors can not be added together. We have nowthe tools for illustrating these points.
Consider a rotation denoted by a rotation vector
A
=
A
k
A
and rotation tensor
R
A
, that brings triad I = (i
1
, i
2
, i
3
) into triad J = (j
1
, j
2
, j
3
). This rst rotation
is followed by a second rotation, characterized by a rotation vector
B
=
B
k
B
and
rotation tensor R
B
, that brings J into K = (k
1
, k
2
, k
3
).
We have
j
k
= R
A
i
k
, k
k
= R
B
j
k
, k = 1, 2, 3, (1.102)
and hence, eliminating the intermediate conguration J,
k
k
= R
B
R
A
i
k
, k = 1, 2, 3. (1.103)
COMPOSITION OF ROTATIONS 21
i
1
i
2
j
3
i
3
j
1
j
2
k
1
k
2
k
3
R
A
R
B
Figure 1.8 Rotation of triad I into triad J, followed by rotation of J into K.
The total rotation from I to K is given by
R = R
B
R
A
. (1.104)
This product of rotations tensors is called composition of rotations. This formula
can be used recursively to compose as many successive rotations as necessary. The
word composition used when combining rotations, stresses the fact that successive
rotations can not be obtained by simply adding their corresponding rotations vectors.
In fact, if = k is the rotation vector corresponding to the composed rotation R,
then
=
A
+
B
. (1.105)
This fact can be shown by a self-evident geometric example, as the one of gure 1.9
that considers successive rotations with orthogonal axes.
Expressing the composition of rotations (1.104) using the denition of the rotation
tensor, equation (1.33), it can be shown that the relationship between = k,

A
=
A
k
A
and
B
=
B
k
B
is considerably more complicated than an addition,
and it is in fact as follows:
cos

2
= cos

A
2
cos

B
2
sin

A
2
sin

B
2
k
A
k
B
, (1.106)
sin

2
k = sin

A
2
cos

B
2
k
A
+ cos

A
2
sin

B
2
k
B
+ sin

A
2
sin

B
2
k
B
k
A
. (1.107)
Using the rst equation one can compute the rotation angle , while the second
equation can be used to determine the rotation axis k.
22 THREE-DIMENSIONAL ROTATIONS
pk
A
pk
B
pk
A
+pk
B
Figure 1.9 At left, rotation kA, followed by rotation kB, kB orthogonal to kA. At right,
rotation about (kA +kB).
Using again the denition of the rotation tensor, it is readily veried that
R
B
R
A
= R
A
R
B
, (1.108)
and hence rotations do not commute. Furthermore, we note that the order of the
matrix products that appear in the composition of successive rotations depends on the
bases in which the components of the various rotations tensors are measured. In fact,
the transformation from the I to the K triad, equation (1.103), can be expressed in
terms of components in the I, J or K bases:
k
I
k
= R
I
B
R
I
A
i
I
k
, (1.109)
k
J
k
= R
J
B
R
J
A
i
J
k
, (1.110)
k
K
k
= R
K
B
R
K
A
i
K
k
. (1.111)
However, R
B
can, for example, be measured in the J triad rather than the I triad.
This is achieved using the transformation of tensor components, equation (1.100),
which gives
R
I
B
= R
I
A
R
J
B
R
IT
A
. (1.112)
Inserting this expression for R
I
B
into (1.109), gives now
k
I
k
= R
I
B
R
I
A
i
I
k
= R
I
A
R
J
B
R
IT
A
R
I
A
i
I
k
= R
I
A
R
J
B
i
I
k
. (1.113)
Hence, we have found that
R
I
= R
I
B
R
I
A
= R
I
A
R
J
B
, (1.114)
which shows that the order of multiplication of the tensor components indeed is
affected by the bases used for measuring them.
COMPOSITION OF ROTATIONS 23
i
1
i
2
,b
2
i
3
b
1
b
3
i
1
i
3
i
2
r
2
r
3
Figure 1.10 At left, rotation of triad Rby T. At right, subsequent rotation by RIB.
Example 1.6.1 With reference to example 1.5.2, the components of the rudder
triad Rin I are obtained as
[]
rudder
=
_
r
I
1

r
I
2

r
I
3
_
= T
I
R
I
IB
.
This corresponds to having rst rotated the vehicle using R
IB
, and then having
deected the rudder using the rotation of components T
I
.
Now, try inverting the order of the composition of rotations, computing R
I
IB
T
I
.
After rotation T, the aircraft is as in gure 1.10, at left, where we have left the lower
hinge point of the rudder xed. After rotation R
IB
, the aircraft is as in gure 1.10,
at right. Clearly, rotations do not commute!

Example 1.6.2 Consider again the spinning aircraft of example 1.5.1, and apply
now a rotation of B into B
0
, obtained through a rotation vector

B
= (, 0, 0)
T
, = 25 deg.
What are the components of in B
0
?
Solution. The rotation fromB to B
0
can be expressed in components measured in
B as
R
B
BB0
=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
.
24 THREE-DIMENSIONAL ROTATIONS
Hence, using the change of basis rule, equation (1.91), and the composition of rota-
tions rule, equation (1.113), we nd

B0
= R
BT
BB0
R
IT
IB

I
,
=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_

_
_
0
sin
cos
_
_
,
=
_
_
sin cos
cos sin + cos sin cos
sinsin + cos cos cos
_
_
,
=
_
_
21.7333
26.4644
29.1942
_
_
deg/sec.

1.7 THE INVERSE PROBLEM
The term inverse problem indicates the process of obtaining the rotation vector
based on the knowledge of the rotation tensor R. We use the following notation to
indicate this operation:
= R
1
(R). (1.115)
Recalling that the rotation tensor, equation (1.32), writes
R = I + sin k

+ (1 cos )k

, (1.116)
and that the rotation vector is = k, the procedure for computing from R is as
follows:
1. Noting that trace(k

) = 0, and that trace(k

) = 2 when k is a unit
vector, we have
trace(R) = 1 + 2 cos . (1.117)
Hence, the cosine of the rotation angle can be computed as
cos =
1
2
(trace(R) 1). (1.118)
2. Next, it is necessary to distinguish between the case cos > 0 and the case
cos 0:
(a) If cos > 0, we rst compute
1
2
(RR
T
) = sin k

= z

. (1.119)
THE INVERSE PROBLEM 25
The sine of the rotation angle is then readily obtained as the length of
vector z:
sin =

z z. (1.120)
The angle of rotation follows immediately as
= atan2(sin , cos ), (1.121)
where atan2(, ) is the four-quadrant arc-tangent operation. Finally, the
rotation vector is obtained as
=

sin
z. (1.122)
If is small, say < 0.01, the sine of the angle should be replaced
with its Taylor series expansion at the origin, which yields the following
alternative expression for :
=
1
1
1
6

2
_
1
1
20

2
_ z. (1.123)
(b) If on the other hand cos 0, we begin by computing
1
1 cos
_
1
2
_
R+R
T
_
cos I
_
=
I +k

= kk
T
. (1.124)
Next, vector k is extracted from kk
T
noticing that
kk
T
=
_
k
1
k

k
2
k

k
3
k
_
. (1.125)
This is best accomplished by selecting the largest component of k, i.e.
k
2
imax
= max
_
diag
_
kk
T
__
, i
max
= 1, 2 or 3, (1.126)
k =
1
k
imax
col
imax
_
kk
T
_
, (1.127)
where col
i
() extracts the ith column from a matrix. Noticing then that
trace(k

) = 0, we compute the sine of the rotation angle as

1
2
trace(k

R) =

1
2
trace
_
k

+ sink

+ (1 cos )k

_
=
sin , (1.128)
26 THREE-DIMENSIONAL ROTATIONS
and obtain the rotation angle fromsin and cos as in the previous case:
= atan2(sin , cos ). (1.129)
Finally, the rotation vector is computed as
= k. (1.130)
Example 1.7.1 With reference to example 1.6.2, compute the rotation vector
0
that corresponds to the rotation R
0
from I to B
0
.
Solution. The components of R
0
in I are
R
I
0
= R
I
IB
R
B
BB0
=
_
_
cos sin sin sin cos
0 cos sin
sin cos sin cos cos
_
_
.
Inserting the values = 30 deg, = 25 deg, and applying the procedure just
described, we obtain

I
0
=
B
0
= (0.4263, 0.5152, 0.1142)
T
,
and
0
= |
0
| = 38.8666 deg. Note that the components of
0
do not correspond
to the angles of the two successive rotations I B and B B
0
!

1.8 PARAMETERIZATION OF ROTATIONS
In the previous sections, the rotation tensor was derived in terms of the rotation
vector . The three components of this vector were used to parameterize the rotation,
according to Eulers Rotation Theorem. However, rotations can be expressed in terms
of parameters other than the rotation vector. The choice of a parameterization is
usually made by considering the characteristics of a specic application, for example
for avoiding singularities or for reducing the computational cost of certain operations.
More often than not, the choice is also based on personal taste. Two main families of
parameterizations exist: vectorial and non-vectorial. In this section, we shall illustrate
the main features of both families.
However, before studying the possible forms of parameterizations, it should be
mentioned that one could also avoid the use of parameterizations altogether, and work
directly with the components of the direction cosine matrix. Using this approach, the
components of [] play the role of nine parameters that obey the ordinary differential
matrix equation (1.21), here reported for convenience,

[] =
I

[]. (1.131)
These nine parameters are subjected to the orthogonality constraints
[][]
T
= [I]. (1.132)
PARAMETERIZATION OF ROTATIONS 27
Notice that, due to the symmetry of (1.132), only six of these constraint conditions
are independent. Taking the upper triangle of this matrix equation, the independent
constraints write
3

n=1

kn

ln
=
kl
, k = (1, 3), l = (k, 3), (1.133)
leaving a total of three degrees of freedom, in accordance with Eulers Theorem of
Rotations.
The increase in the number of unknowns and equations, together with the need of
introducing Lagrange multipliers to enforce the satisfaction of the constraints (1.133),
makes this approach not commonly used in practical applications. On the other hand,
a possible advantage of this method is that it is free from singularities for arbitrarily
large rotations, while methods based on a minimal set of parameters have only a nite
range of validity, as we have already seen for the rotation vector and as it will be
illustrated in the following for other parameterizations.
Let us start then by considering the case of vectorial parameterizations.
1.8.1 Vectorial Parameterizations
Vectorial descriptions of rotations use as parameters the components of vectors that
are parallel to the rotation vector. The general form of such vectors is
p = fk, (1.134)
where p is termed the generalized rotation vector [2, 3], f = f() is some yet
unspecied function of the angle of rotation , termed generating function, and k is
the axis of rotation. A part for an obvious requirement on regularity, the generating
function f must obey certain conditions. First, we must have
f(0) = 0, (1.135)
which means that the magnitude of the generalized rotation vector must be null for a
null rotation angle . This ensures that if b = Ra and = 0, then b = a. Taking
now the time derivative of p in the origin
p(0) = f
,
(0) k + f(0)

k, (1.136)
we recognize that the generating function f must be such that
f
,
(0) = 0, (1.137)
in order for p(0) to be different fromzero when is different fromzero. The following
notation was used to indicate derivatives with respect to , ()
,
= d /d. Some
common parameterizations are characterized by having f
,
(0) = 1 which, although
not necessary, ensures that the behavior of the vectorial parameters matches the one
of the rotation vector in the limiting case of vanishing rotation, i.e.
lim
0
p = lim
0
. (1.138)
28 THREE-DIMENSIONAL ROTATIONS
In fact, expanding in Taylor series at the origin, we have
f = f(0) + f
,
(0) +
1
2!
f
,
(0)
2
+ . . . , (1.139)
whose leading term is if f
,
(0) = 1.
Recalling the expression for the rotation vector, = k, the relationship between
p and is readily found as
p =
f

. (1.140)
Having established the expressions of the rotation and angular velocity tensors in
terms of , it is nowa simple matter to derive the corresponding expressions in terms
of p using (1.140). Starting with the rotation tensor, equation (1.33), we get
R =
2

k=0
R
p
k
(p

)
k
, (1.141)
where
R
p
0
= 1, R
p
1
=
sin
f
, R
p
2
=
1 cos
f
2
. (1.142)
It is readily veried that, thanks to condition (1.137), the limits of R
p
1
and R
p
2
for
0 are well dened.
To express the angular velocity in terms of the generalized rotation vector p and
its time rates p, one can proceed as follows. First, note that

kk = k = (I +k

)

, (1.143)
and hence


. (1.144)
Inserting into the expression of the angular velocity, equation (1.47), we get
=
2

k=0
S
k
(

)
k

=

+ S
1


+
_
S
2

2
_


. (1.145)
Next, we seek coefcients S
p
k
, k = 0, 1, 2, such that
= S
p
p =
2

k=0
S
p
k
(p

)
k
p. (1.146)
To determine these coefcients, take the time derivative of p
p =

f f

2
+
f

, (1.147)
PARAMETERIZATION OF ROTATIONS 29
replace into (1.146) and, using (1.144), write
= S
p
0

+ S
p
1
f
2


+
f

3
_
S
p
2
f
2
S
p
0
_


. (1.148)
Matching now the various terms in (1.145) and (1.148), we get
S
p
0
=
1
f
,
, S
p
1
= R
p
2
=
1 cos
f
2
, S
p
2
=
1
f
2
_
1
f
,

sin
f
_
. (1.149)
Here again it is readily veried that the limits of S
p
k
, k = 0, 1, 2, are all well dened
for 0, based on the sole condition f
,
(0) = 0. The determinant of S
p
is
det(S
p
) =
2(1 cos )
f
2
f
,
. (1.150)
The inverse of S
p
is easily computed as
S
p
1
=
2

k=0

S
p
k
(p

)
k
, (1.151)
whose coefcients are

S
p
0
= f
,
,

S
p
1
=
1
2
,

S
p
2
=
1
f
3
f
,
_
1
ff
2
,

sin
det(S
p
)
_
. (1.152)
The range of validity in terms of magnitude of the rotation angle for each specic
choice of the generating function f can be determined by verifying the following
conditions:
f = in equation (1.134);
R
p
k
= , k = 1, 2, in the coefcient expressions (1.142);
S
p
k
= , k = 0, 1, 2, in the coefcient expressions (1.149);
S
p
k
= 0, k = 0, 1, in equation (1.150).
Table 1.1 Commonly used vectorial parameterizations of three-dimensional rotations.
Name f Range
Finite rotation vector, or exponential map or
natural parameters
2 < < 2
Linear parameters sin < <
Euler-Rodrigues, or reduced Euler parameters 2 sin(/2) < <
Cayley-Gibbs-Rodrigues parameters 2 tan(/2) < <
Wiener-Milenkovich, or conformal rotation 4 tan(/4) 2 < < 2
30 THREE-DIMENSIONAL ROTATIONS
The choices for the generating function f that are well established in the literature
are given in table 1.1. Other choices are possible, such as for example
f = k sin

k
, k = (1, ), (1.153)
or
f = k tan

k
, k = (1, ). (1.154)
In any case, the maximumrange that is achievable by a generalized rotation vector of
the form (1.134) is always limited between 2 and 2 at the most. This means that
no vectorial parameterization, or more in general, no parameterization based on only
three parameters, can be global, i.e. well dened for any value of the rotation angle.
Example 1.8.1 With reference to the spinning aircraft of example 1.6.2, consider
that the vehicle angular velocity has a processing motions about i
3
with angular
velocity = 270 deg/sec, and that at t = 0, has the value given in example 1.5.1,
i.e.

I
(0) =
I
0
= (0, sin, cos )
T
, = 45 deg/sec, = 15 deg.
Compute the orientation of the aircraft in terms of the components of its rotation
tensor in the xed I basis for t [0, T], T = 20 sec, using the Euler-Rodrigues
rotation parameters. At time t = 0, the orientation of the aircraft is given by triad B
0
as computed in example 1.6.2.
Solution. The components of the Euler-Rodrigues rotation vector in I can be
computed integrating the ordinary differential equations
p
I
= S
pI
1

I
,
for t [0, T]. The components of the vehicle angular velocity are computed as

I
= R
I
t

I
0
,
where R
t
is the rotation tensor that corresponds to the precession rotation vector
t
evaluated at the generic time instant t,

t
= ti
3
.
The coefcients of S
p
1
for the Euler-Rodrigues parameterization are foundbysetting
f = 2 sin(/2), f
,
= cos(/2) in (1.151), which gives

S
p
0
= cos

2
=
_
1
1
4
p p,

S
p
1
=
1
2
,

S
p
2
= 0.
Notice the particularly simple expression of S
p
1
in this case, due to the absence of
the p

term.
PARAMETERIZATION OF ROTATIONS 31
Due to the nite range of vectorial parameterizations, which is in particular <
< in the case of the Euler-Rodrigues parameters, we use an incremental approach.
To illustrate the procedure, consider a partition of the time range
0 t
0
< t
1
< t
2
< . . . < t
n1
< t
n
T,
composed of n 1 intervals T
i
= [t
i
, t
i+1
] of size h
i
= t
i+1
t
i
, i = (0, n1). On
each interval, the ordinary differential problem is solved with null initial conditions
using a numerical method. In this example we have used the variable order explicit
Runge-Kutta scheme implemented in the odeset Matlab [1] routines. The solution
at the end of the generic ith interval, time t
i+1
, is labelled p
I
incr,i+1
. This solution
represents the incremental rotation from time t
i
to time t
i+1
. By selecting the size
h
i
of the increments, the incremental rotation can be made suitably small and hence
within the parameterization range. In particular one could choose h
i
to coincide
with the time step size used by the time integration scheme, which will be small
for accuracy and/or stability requirements. For this example, we have simply set
h
i
= h = 1 sec, which ensures incremental rotations of about 150 deg, and hence
within the validity range.
Next, the total rotation from t
0
is updated using the composition of rotations,
equation (1.104), which in this case writes in terms of components in the xed basis
R
I
i+1
= R
I
incr,i+1
R
I
i
,
where R
I
incr,i+1
are the components of the incremental rotation tensor that corresponds
to p
I
incr,i+1
. Using the Euler-Rodrigues parameters, this incremental rotation tensor
is computed in terms of the coefcients R
p
k
of equation (1.141), which are
R
p
0
= 1, R
p
1
= cos

2
, R
p
2
=
1
2
.
The initial rotation tensor at time t = 0, R
0
, is set equal to the value of example 1.7.1,
which corresponds to the rotation from triad I to triad B
0
.
From each rotation tensor R
i
, the corresponding rotation vector
i
can be com-
puted using the inverse problem:

i
= R
1
(R
i
).
The resulting components
I
i
of the total rotation vector measured fromI are plotted
versus time in gure 1.11. Notice the switching of the rotation vector components
due to the solution of the inverse problem, every time the total rotation magnitude
goes past the value of .

32 THREE-DIMENSIONAL ROTATIONS
0 2 4 6 8 10 12 14 16 18 20
3
2
1
0
1
2
3
Time [sec]

I

[
r
a
d
]
Figure 1.11 Time history plot of the components of the total rotation vector from I, mea-
sured in I,
I
.
1.8.2 Non-Vectorial Parameterizations
1.8.2.1 Euler Parameters or Quaternions Euler parameters or quaternions
are redundant parameters dened as
q
0
= cos

2
, q = sin

2
k, (1.155)
where q
0
is the scalar component of the quaternion, while q is the vectorial component.
The vectorial component q can be regarded as a special case of the generalized
vectorial parameterization discussed in the previous section, with generating function
f = sin /2. The scalar and vector components are related by a constraint:
q
2
0
+q q = 1. (1.156)
A quaternion that satises this constraint is called a unit quaternion and can be used
for the parameterization of rotations.
The complication of working with four parameters and a constraint equation, in-
stead of three free parameters as with the vectorial parameterizations discussed above,
can be offset in certain applications by the fact that this parameterization is singularity
free, in the sense that it is well dened for < < .
It is customary to use a four-dimensional notation when working with quaternions,
since this allows for a compact expression of most relations. In particular, the follow-
ing four-dimensional array is dened by stacking the scalar and vector components
of the quaternion:
q = (q
0
, q
T
)
T
. (1.157)
PARAMETERIZATION OF ROTATIONS 33
The unit quaternion condition becomes in this case
q
T
q = 1. (1.158)
The developments of the generalized vectorial parameterization discussed in the
previous section can be readily used for the case of the Euler parameters. The coef-
cients R
p
1
, R
p
2
of the rotation tensor, equation (1.141), are found by simply setting
f = sin /2 into (1.142), obtaining
R
p
1
= 2q
0
, R
p
2
= 2, (1.159)
so that the rotation tensor has the following simple form
R = I + 2q
o
q

+ 2q

. (1.160)
The four-dimensional rotation operator associated with the rotation tensor is dened
as

R =
_
1 0
T
0 R
_
. (1.161)
Notice that here again

R q = q, (1.162)
which shows that q is the (normalized to one) eigenvalue of

Rthat corresponds to the
unitary eigenvalue, in close analogy with the generalized vectorial parameterizations.
Similarly, the coefcients S
p
k
, k = 0, 1, 2, of the angular velocity tensor, equation
(1.146), are
S
p
0
=
2
q
0
, S
p
1
= 2, S
p
2
=
2
q
0
, (1.163)
so that the angular velocity can be written as
=
_
2
q
0
+ 2q

+
2
q
0
q

_
q. (1.164)
This expression can be given a more convenient form. To this purpose, note that
q kk = (I +k

) q, (1.165)
and, differentiating the unit quaternion constraint, equation (1.156), that
q q = q
0
q
0
. (1.166)
Inserting into (1.165), we get
q

q = q
0
q
0
q (1 q
0
) q. (1.167)
Substituting into (1.164), we nd
= 2
_
q
0
q q q
0
+q

q
_
. (1.168)
34 THREE-DIMENSIONAL ROTATIONS
Next, a scalar angular velocity is dened as the time derivative of the unit quaternion
constraint:

0
= 2
_
q
0
q
0
+q q
_
. (1.169)
This quantity is clearly zero for a unit quaternion. Using even in this case a four-
dimensional notation, the scalar and vectorial parts of the angular velocity are stacked
in a single array:
= (
0
,
T
)
T
. (1.170)
This way equations (1.168) and (1.169) can be written in compact form as
=

S

q, (1.171)
which closely resembles the analogous expression of the angular velocity found for
the vectorial parameterizations, and where matrix

S is dened as

S = 2
_
q
0
q
T
q q
0
I +q

_
. (1.172)
Note that for a unit quaternion, we have
det(

S) = 16, (1.173)
so that the inverse transformation

q =

S
1
is singularity free. Furthermore, we
have

S

S
T
=

S
T

S = 4I, (1.174)
and therefore the inverse of

S is readily computed as

S
1
=
1
2
_
q
0
q
T
q q
0
I q

_
. (1.175)
Noting that f,

R,

S and

S
1
are well dened for all values of , we conclude that
the Euler parameterization is singularity free for < < . For this reason, it
is termed a global parameterization.
The inverse problemfor quaternions amounts to computing the quaternion q given
the rotation vector R:
q = R
1
q
(R). (1.176)
The problem can be solved by noticing that
q
2
0
=
1
4
_
trace(R) + 1
_
, (1.177)
and
q
0
q =
1
2
axial(R). (1.178)
Furthermore, we also note that
qq
T
=
1
4
_
_
1 trace(R)
_
I +R+R
T
_
. (1.179)
PARAMETERIZATION OF ROTATIONS 35
Hence, in order to derive q from R, one can rst compute the matrix
1
4
_
trace(R) + 1 2 axial(R)
T
2 axial(R) (1 trace R)I +R+R
T
_
= q q
T
, (1.180)
and then extract q from q q
T
as
q
2
imax
= max(diag( q q
T
)), i
max
= 1, 2, 3 or 4, (1.181)
q =
1
q
imax
col
imax
_
q q
T
_
. (1.182)
1.8.2.2 Euler Angles Finite rotations can be described through a sequence of
three planar rotations about three different axes. This is yet another consequence of
Eulers Theorem of Rotations. In this case, the angles of the three planar rotations
will play the role of the rotation parameters.
To describe the Euler angles, let us start by dening a planar rotation. Let us con-
sider a rotation = k, that brings triad I = (i
1
, i
2
, i
3
) into triad J = (j
1
, j
2
, j
3
),
j
k
= Ri
k
, k = 1, 2, 3, (1.183)
or, in components expressed in I
j
I
k
= R
I
i
I
k
, k = 1, 2, 3. (1.184)
If k = i
l
, l = 1, 2 or 3, which means that the rotation vector is parallel to one of the
unit base vectors of I, than Ris a planar rotation with respect to I. The components
in I of the three possible planar rotations are, as shown in gure 1.12,
R
I
1
=
_
_
1 0 0
0 cos
1
sin
1
0 sin
1
cos
1
_
_
, (1.185)
R
I
2
=
_
_
cos
2
0 sin
2
0 1 0
sin
2
0 cos
2
_
_
, (1.186)
and
R
I
3
=
_
_
cos
3
sin
3
0
sin
3
cos
3
0
0 0 1
_
_
. (1.187)
Let us now consider three successive planar rotations:
A. Rotation R
A
is characterized by a rotation vector
A
=
A
i
A
, A = 1, 2 or
3, and brings triad I = (i
1
, i
2
, i
3
) into triad J = (j
1
, j
2
, j
3
), j
k
= R
A
i
k
,
k = 1, 2, 3.
B. Rotation R
B
is characterized by a rotation vector
B
=
B
j
B
, B = 1, 2
or 3, B = A, and brings triad J into triad K = (k
1
, k
2
, k
3
), k
k
= R
B
j
k
,
k = 1, 2, 3.
36 THREE-DIMENSIONAL ROTATIONS
i
1
i
2
i
3
i
3
i
1
i
2
j
3
j
1
j
2
j
3
j
1
j
2
j
1
j
2
j
3
Figure 1.12 The three possible planar rotations about i1 (left), i2 (center), and i3 (right).
C. Finally, rotation R
C
is characterized by a rotation vector
C
=
C
k
C
, C =
1, 2 or 3, C = B, and brings triad K into triad L = (l
1
, l
2
, l
3
), l
k
= R
C
k
k
,
k = 1, 2, 3.
In order to avoid ambiguities, the range of the various rotations is customarily limited
between and , and hence
A
,
B
,
C
, unless this condition leads to
crossing a singular point in the parameterization. We shall come back to this problem
shortly.
The total rotation from I to L can be expressed by eliminating the intermediate
congurations as
l
k
= R
ABC
i
k
, k = 1, 2, 3, (1.188)
with
R
ABC
= R
C
R
B
R
A
. (1.189)
Expressed in I, the components of the total rotation tensor are
R
I
ABC
= R
I
C
R
I
B
R
I
A
. (1.190)
Recalling the transformation of components of a tensor due to a change of basis,
equation (1.100), we have
R
I
B
= R
I
A
R
J
B
R
IT
A
, R
J
C
= R
J
B
R
K
C
R
JT
B
, R
I
C
= R
I
A
R
J
C
R
IT
A
. (1.191)
Inserting in (1.190), we obtain the following composed rotation
R
I
ABC
= R
I
A
R
J
B
R
K
C
. (1.192)
All three matrices on the right hand side of this expression represent the components
of a planar rotation. The angles
A
,
B
and
C
are called the Euler angles, and the
sequence ABC is called the Euler sequence. Since the possible rotations are
A, B, C = 1, 2 or 3, A = B, B = C, (1.193)
there are twelve possible Euler sequences andtwelve associatedtriples of Euler angles.
PARAMETERIZATION OF ROTATIONS 37
In order to compute the components of the angular velocity vector in terms of the
Euler angles, we differentiate (1.192) with respect to time, to yield

R
I
ABC
=

R
I
A
R
J
B
R
K
C
+R
I
A

R
J
B
R
K
C
+R
I
A
R
J
B

R
K
C
. (1.194)
Next, using the orthogonality of the rotation tensors, we introduce the angular veloc-
ities of the planar rotations:

R
I
A
=
I
J/I
R
I
A
,

R
J
B
=
J
K/J
R
J
B
,

R
K
C
=
K
L/K
R
K
C
, (1.195)
where we recall that the notation
P/Q
indicates the angular velocity of triad P with
respect to triad Q. Inserting into (1.194) and multiplying from the right by R
IT
ABC
we have

R
I
ABC
R
IT
ABC
=
_

I
J/I
_

+
_
R
I
A

J
K/J
_

+
_
R
I
A
R
J
B

K
L/K
_

. (1.196)
Introducing the angular velocity
L/I
of triad L with respect to triad I,

R
ABC
R
T
ABC
=
_

L/I
_

, (1.197)
we can compute its expression as a function of the angular velocities of the single
planar rotations:

I
L/I
=
I
J/I
+R
I
A

J
K/J
+R
I
A
R
J
B

K
L/K
. (1.198)
Notice that
L/I
is an intrinsic property of the motion of triad L with respect to
triad I, and hence does not depend on the Euler sequence, and this is reected in the
notation.
In the mechanics of ight, the most commonly used sequence is ABC = 321.
The corresponding angles are indicated as
3
= , termed heading,
2
= , termed
pitch, and
1
= , termed bank. The 321 Euler sequence is illustrated in gure 1.13.
Using (1.192), the components of the rotation tensor for this sequence are readily
computed as
R
I
321
= R
I
3
()R
J
2
()R
K
1
(),
=
_
_
c c c s s s c c s c + s s
s c s s s + c c s s c c s
s c s c c
_
_
, (1.199)
where here s() = sin() and c() = cos().
The components of the angular velocity in the I triad for the 321 sequence are,
using (1.198),

I
L/I
=
I
J/I
+R
I
3
()
J
K/J
+R
I
3
()R
J
2
()
K
L/K
, (1.200)
where

I
J/I
= (0, 0,

)
T
,
J
K/J
= (0,

, 0)
T
,
K
L/K
= (

, 0, 0)
T
. (1.201)
38 THREE-DIMENSIONAL ROTATIONS
i
1
i
2
j
3
j
1
j
2
k
1
k
2
k
3
i
3
k
1
k
2
k
3
l
1
l
2
l
3
i
1
i
2
i
3
j
3
j
1
j
2
f
y
q
R( )
3
y
R( )
2
q
R( )
1
f
Figure 1.13 Euler sequence 321: triad I is rotated by R3() into J; J is rotated by R2()
into K; nally, K is rotated by R1() into L.
This gives

I
L/I
= S
I
321
e
321
, (1.202)
where e
321
= (, , )
T
is a column vector made with the three Euler angles, and
S
I
321
= I +R
I
3
()(I +R
J
2
()),
=
_
_
cos cos sin 0
sin cos cos 0
sin 0 1
_
_
. (1.203)
The components of the angular velocity in the L triad are dened as

L
L/I
= (p, q, r)
T
, (1.204)
PARAMETERIZATION OF ROTATIONS 39
and are readily obtained as

L
L/I
= R
IT
321

I
L/I
= S
L
321
e
321
, (1.205)
where
S
L
321
= R
IT
321
S
I
321
,
=
_
_
1 0 sin
0 cos cos sin
0 sin cos cos
_
_
. (1.206)
The inverse relationship gives the time rates of the 321 Euler sequence angles as a
function of the angular velocity components in the rotated triad L, a problem often
encountered in the applications, and writes
e
321
= S
L
1
321

L
L/I
, (1.207)
where
S
L
1
321
=
_
_
1 tan sin tan cos
0 cos sin
0 sec sin sec cos
_
_
. (1.208)
Notice that
det(S
I
321
) = det(S
L
321
) = cos . (1.209)
Hence, the Euler sequence 321 is singular for
=
k
2
, k = (1, ). (1.210)
To avoid crossing a singular point in the parameterization, the pitch angle of the
321 sequence is customarily limited within the range /2 /2, while
the other two angles have the usual ranges , and .
Since the pitch angle experienced in the ight envelope of most typical airplanes is
usually limited, the sequence 321 is often the most convenient for ight mechanics
applications. However, it should be stressed that each Euler sequence has its own
range of validity, and this justies the fact that different Euler sequences are used for
different applications.
The inverse problem for the Euler sequence 321,
e
321
= R
1
e
(R
I
321
), (1.211)
is easily solved using equation (1.199). Setting for convenience R
I
321
= [R
kl
],
k, l = 1, 2, 3, one rst computes
= asinR
31
. (1.212)
Then the bank angle is obtained as
= asin
R
32
cos
, (1.213)
40 THREE-DIMENSIONAL ROTATIONS
and nally the heading is computed as
= asin
R
21
cos
. (1.214)
Example 1.8.2 Solve example 1.8.1 using the Euler angles corresponding to the
321 sequence.
Solution. The problem is solved by integrating the ordinary differential equations
e
321
= S
I
1
321

I
,
starting from the initial conditions at t = 0 as given in examples 1.5.1 and 1.6.2:
e
3210
= (25, 30, 0)
T
deg.
The time history of the angles are given in gure 1.14. The heading angle was
divided by a factor of 10 in the plot, since it is substantially larger than the other two
due to the predominant spinning motion of the aircraft. The values of the Euler angles
at t = T are
e
321T
= (29.7012, 30.8612, 876.0238)
T
deg.
The corresponding rotation tensor components in I are computed using (1.199) as
R
I
IT
=
_
_
0.7843 0.5852 0.2058
0.3488 0.6904 0.6338
0.5130 0.4253 0.7456
_
_
.
0 2 4 6 8 10 12 14 16 18 20
0
10
20
30
40
50
60
70
80
90
Time [sec]
E
u
l
e
r

a
n
g
l
e
s

3
2
1
:

/
1
0

[
d
e
g
]
Figure 1.14 Time history plot of the Euler angles corresponding to the sequence 321.
PROBLEMS 41
Alternatively, one could start from null initial conditions at time t = 0,
e
3210
= (0, 0, 0)
T
deg,
nding the following values of the Euler angles at time t = T:
e
321T
= (4.0349, 0.9440, 873.6749)
T
deg.
Using these values into (1.199) gives the components of the rotation tensor that brings
B
0
into the body attached triad in the nal conguration, R
I
0T
. Combining this
rotation with the one that brings I into B
0
, matrix R
I
0
of example 1.6.2, we have
R
I
IT
= R
I
0T
R
I
0
,
which clearly yields the same values as given above starting from non-null initial
conditions.

1.9 PROBLEMS
1.1 Consider the composition of rotations expressedbyequations (1.106) and(1.107).
Which one of the classical vectorial parameterizations of table 1.1 will lead to the
simplest formula for the composed rotation?
1.2 Find a vectorial parameterization such that tensor S has no term in p

, i.e.
S
p
2
= 0 in (1.149).
1.3 Consider a launcher whose body attached triad has the unit vector b
1
along the
main axis of the vehicle. Since the launcher will operate for values of the pitch angle
in close proximity of the value /2, the Euler sequence 321 is not a convenient
choice in this case. Derive a more convenient Euler sequence for this problem.
1.4 Compute the singular points for the Euler sequence 323.
1.5 Solve example 1.8.1 using the nite rotation vector. Fromyour results, compute
the corresponding Euler angles 321.
1.6 Prove the following property between tensors R and S expressed in terms of
the rotation vector (equations (1.33), (1.47), (1.54)): R = SS
T
= S
T
S.
1.7 With reference to problem 1.6, is there an analogous property between tensors
R and S
p
expressed in terms of the generalized vectorial parameters p?
REFERENCES
1. MATLAB, Product Documentation, The MathWorks, Inc., 3 Apple Hill Drive,
Natick, MA.
42 THREE-DIMENSIONAL ROTATIONS
2. O.A. Bauchau, C.L. Bottasso, On the Design of Energy Preserving and Decaying
Schemes for Flexible, Nonlinear Multibody Systems, Computer Methods in
Applied Mechanics and Engineering, 169, 6179 (1999).
3. O.A. Bauchau, L. Trainelli, The Vectorial Parameterization of Rotation, Non-
linear Dynamics, 32, 7192 (2003).
4. H. Goldstein, Classical Mechanics, 2nd ed., Addison-Wesley, Reading, MA,
1980.
5. J. Stuelpnagel, On the Parameterization of the Three-Dimensional Rotation
Group, SIAM Review, 6, 422430 (1964).

You might also like