Вы находитесь на странице: 1из 44

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
a
1
,a
2
=
a
1
a
2
|a
1
||a
2
|
=
b
1
b
2
|b
1
||b
2
|
= cos
b
1
,b
2
, (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 co-
ordinate 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 funda-
mental role whenever a problem is formulated in terms of multiple coordinate
systems in relative motion with respect to one another.
1
2 THREE-DIMENSIONAL ROTATIONS
In the formulation of ight mechanics problems, rotations are routinely
used for transforming the components of vectors from one coordinate system
to another. Furthermore, the motion of a vehicle with respect to a frame
of reference is described 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 introduce the main instruments that are used for describing and manipu-
lating 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 so-
lution. Furthermore, in this chapter we show that 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 special spaces whose
properties imply that: a) the composition of successive rotations can not be ex-
pressed by simply adding the corresponding rotation vectors, and b) rotations
do not commute, in the sense that changing the order in which two successive
rotations are performed, changes the resulting composed rotation. These spe-
cial 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 problem of trans-
forming 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)
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 = (i
1
, i
2
, i
3
) and J = (j
1
, j
2
, j
3
).
where k = 1, 2, 3. This relationship between the vectors of two triads can
be conveniently expressed by means of the direction cosine matrix [], whose
scalar components 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)
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 a in triad A with 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 com-
ponents of the unit vectors i
k
measured in triad J:
[] =
_

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

_
. (1.8)
4 THREE-DIMENSIONAL ROTATIONS
Using now equation (1.4) and the direction cosine matrix denition, equa-
tion (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 fun-
damental property:
[][]
T
= []
T
[] = [I], (1.10)
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 o-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. Dierentiating the orthogonality condition (1.10)
with respect to t yields

[][]
T
+ []

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

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

[][]
T
, (1.14)
THE ANGULAR VELOCITY 5
equation (1.13) implies that [A] is a skew symmetric matrix:
[A] = [A]
T
. (1.15)
Since a 3 3 skew symmetric 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


components in I are noted ()
I

. This notation reminds the fact that a skew


symmetric 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 skew symmetric 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 re-
maining 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

).
6 THREE-DIMENSIONAL ROTATIONS
Returning to the problem of dierentiating the orthogonality condition,
using now (1.16), equation (1.14) becomes

[] =
I

[]. (1.21)
Examined column by column, this matrix ordinary dierential 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.
1.3 THE ROTATION TENSOR
So far, we have considered the problem of 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
problem of 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 vectorial 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 problem
that is known in the literature as the parameterization of rotations.
The expression of the rotation tensor in terms of the rotation vector can be
derived in at least two alternative ways: using purely geometric arguments,
or using a dierential approach. While both ways of looking at the problem
clearly lead to the same results, both have their interesting peculiarities and
highlight dierent 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.
THE ROTATION TENSOR 7
1.3.1 Geometric Derivation of the Rotation Tensor
The geometric derivation of the rotation tensor can be based on the two
fundamental 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.
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.
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 problem is now to 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)
8 THREE-DIMENSIONAL ROTATIONS
being the angle between k and a, while unit vector i completes a right-
handed triad,
i = j k, (1.26)
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| sin i = |a| sin
(k a) k
|a| sin
= k k a, (1.28)
d = |a| sin sin j = |a| sin sin
k a
|a| sin
= sin k 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)
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 coecients are given by
R
0
= 1, R
1
=
sin

, R
2
=
1 cos

2
. (1.34)
The coecients 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)
THE ROTATION TENSOR 9
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 unaected 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)
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 rota-
tion 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 orthog-
onality 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 expres-
sion 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 ve-
hicle orientation based on measurements of the angular velocity obtained by
onboard gyros.
10 THREE-DIMENSIONAL ROTATIONS
Before starting, it should be noted that instead of considering derivatives
with respect to time, one could consider virtual variations. While time deriva-
tives 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 follow-
ing, 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)
where the coecients S
k
are found as
S
0
= 1, S
1
= R
2
=
1 cos

2
, S
2
=
1

2
_
1
sin

_
. (1.48)
These coecients 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)
THE ROTATION TENSOR 11
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 diers 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 coecients of S given in (1.48) into the identity SS
1
= I,
one can readily nd the coecients 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)
Another property between the two tensors will emerge from the dierential
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 R as a function of the scalar parameter
t R
+
, and dierentiating the orthogonality condition (1.37), yields a skew
symmetric tensor

=

RR
T
, (1.57)
12 THREE-DIMENSIONAL ROTATIONS
whose associated axial vector can be interpreted as the angular velocity.
Computing

R from (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 Dierential Approach to the Derivation of the Rotation Tensor
In the previous section, the rotation tensor was derived based solely on ge-
ometric considerations. Here it will be derived using a dierential approach
that highlights some other important characteristics of this tensor.
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.
To begin with, it is necessary to establish the functional form of 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
dierent 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
THE ROTATION TENSOR 13
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)
where R is some tensor and r some vector, both yet to be determined. How-
ever, 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 dierent argument. However, the functional form
of 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 from a 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.
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.
Tensor R

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


have
R

R
T

= I. (1.65)
14 THREE-DIMENSIONAL ROTATIONS
Dierentiating this orthogonality condition with respect to the parameter
yields
R

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

= d /d to indicate dierentiation
with respect to , and where is a yet unknown constant (with respect to
) vector. Equation (1.66) can be regarded as a rst order tensor ordinary
dierential 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 dierential equation has constant coecients, 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 unaected 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 dierent 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)
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.
THE ROTATION TENSOR 15
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 dierential
equations. To this eect, take now a virtual variation of (1.66), that gives
the following rst order tensor ordinary dierential equation in the unknown
tensor R

:
R

. (1.73)
Since R

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


ing virtual variations must vanish:
R
=0
= 0. (1.74)
These represent the initial conditions for the tensor ordinary dierential equa-
tion. 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 =

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)
16 THREE-DIMENSIONAL ROTATIONS
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 dierent 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 com-
ponents of the rotation tensor measured in I.
CHANGE OF BASIS 17
1.5 CHANGE OF BASIS
In practical applications, it is often necessary to express the components of
vectors and second order tensors in dierent 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 dierent 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 = (i
1
, i
2
, i
3
) into triad J = (j
1
, j
2
, j
3
) by R, and of
vector a into b by the same rotation.
Consider again triads I and J, where the latter triad was obtained from the
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)
since both I and a underwent the same identical rotation R to bring them
into J and b, respectively. Consequently, inserting (1.89) into (1.88), one
18 THREE-DIMENSIONAL ROTATIONS
nds
b
I
= R
I
b
J
. (1.90)
This relationship expresses the transformation of the components of vector b
changing basis from J 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 unaected 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
_
_
,
CHANGE OF BASIS 19
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 F
O,I
, with origin in O and
triad I = (i
1
, i
2
, i
3
). The body attached frame is F
C,B
, with origin in C and triad
B = (b
1
, b
2
, b
3
).
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 transformation of the components of tensors are derived next.
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)
20 THREE-DIMENSIONAL ROTATIONS
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 transformation of the components of tensor
T changing basis from J to I. The transformation from components mea-
sured in I to 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, con-
sider 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 Ris 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 F
R,R
, with origin in R and triad R = (r
1
, r
2
, r
3
).
COMPOSITION OF ROTATIONS 21
After the pitching rotation R
IB
of example 1.5.1, the rudder of the air-
craft 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 ro-
tations vectors can not be added together. We have now the tools for il-
lustrating 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)
22 THREE-DIMENSIONAL ROTATIONS
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.
and hence, eliminating the intermediate conguration J,
k
k
= R
B
R
A
i
k
, k = 1, 2, 3. (1.103)
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
COMPOSITION OF ROTATIONS 23
pk
A
pk
B
pk
A
+pk
B
Figure 1.9 At left, rotation k
A
, followed by rotation k
B
, k
B
orthogonal to k
A
. At
right, rotation about (k
A
+k
B
).
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.
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)
24 THREE-DIMENSIONAL ROTATIONS
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 aected by the bases used for measuring them.
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 R
IB
.
Example 1.6.1 With reference to example 1.5.2, the components of the rud-
der triad R in 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.
THE INVERSE PROBLEM 25
What are the components of in B
0
?
Solution. The rotation from B to B
0
can be expressed in components mea-
sured in B as
R
B
BB
0
=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
.
Hence, using the change of basis rule, equation (1.91), and the composition
of rotations rule, equation (1.113), we nd

B
0
= R
BT
BB
0
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
sin sin + 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 vec-
tor 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)
26 THREE-DIMENSIONAL ROTATIONS
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 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. Fi-
nally, 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
i
max
= max
_
diag
_
kk
T
__
, i
max
= 1, 2 or 3, (1.126)
k =
1
k
i
max
col
i
max
_
kk
T
_
, (1.127)
PARAMETERIZATION OF ROTATIONS 27
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

+ sin k

+ (1 cos )k

_
=
sin , (1.128)
and obtain the rotation angle from sin 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
BB
0
=
_
_
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 rota-
tion 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 ex-
ist: vectorial and non-vectorial. In this section, we shall illustrate the main
features of both families.
28 THREE-DIMENSIONAL ROTATIONS
However, before studying the possible forms of parameterizations, it should
be mentioned that one could also avoid the use of parameterizations alto-
gether, 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 dierential matrix equation (1.21), here reported for
convenience,

[] =
I

[]. (1.131)
These nine parameters are subjected to the orthogonality constraints
[][]
T
= [I]. (1.132)
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
PARAMETERIZATION OF ROTATIONS 29
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 dierent from zero when is dierent from zero.
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)
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 now a 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)
30 THREE-DIMENSIONAL ROTATIONS
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 coecients 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 coecients, take the time derivative of p
p =

f f

2
+
f

, (1.147)
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 coecients 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 coecient expressions (1.142);
PARAMETERIZATION OF ROTATIONS 31
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 param-
eters
2 sin(/2) < <
Cayley-Gibbs-Rodrigues parameters 2 tan(/2) < <
Wiener-Milenkovich, or conformal rota-
tion
4 tan(/4) 2 < < 2
S
p
k
= , k = 0, 1, 2, in the coecient expressions (1.149);
S
p
k
= 0, k = 0, 1, in equation (1.150).
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 maximum range 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 param-
eterization 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, con-
sider that the vehicle angular velocity has a processing motion 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 dierential equations
p
I
= S
pI
1

I
,
32 THREE-DIMENSIONAL ROTATIONS
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 coecients of S
p
1
for the Euler-Rodrigues parameterization are found
by setting 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.
Due to the nite range of vectorial parameterizations, which is in partic-
ular < < 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 dierential problem is solved with null initial
conditions using a numerical method. In this example we have used the vari-
able 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 rota-
tions, 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 incre-
mental rotation tensor is computed in terms of the coecients R
p
k
of equation
PARAMETERIZATION OF ROTATIONS 33
(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
.
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,
measured in I,
I
.
From each rotation tensor R
i
, the corresponding rotation vector
i
can be
computed using the inverse problem:

i
= R
1
(R
i
).
The resulting components
I
i
of the total rotation vector measured from I
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 .

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
34 THREE-DIMENSIONAL ROTATIONS
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 equa-
tion, instead of three free parameters as with the vectorial parameterizations
discussed above, can be oset 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 following four-dimensional array is dened by stacking the
scalar and vector components of the quaternion:
q = (q
0
, q
T
)
T
. (1.157)
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 coecients 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 pa-
rameterizations.
Similarly, the coecients 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)
PARAMETERIZATION OF ROTATIONS 35
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, dierentiating 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)
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)
36 THREE-DIMENSIONAL ROTATIONS
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 problem for 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)
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
i
max
= max(diag( q q
T
)), i
max
= 1, 2, 3 or 4, (1.181)
q =
1
q
i
max
col
i
max
_
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 dierent axes. This is yet another conse-
quence 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 consider 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)
PARAMETERIZATION OF ROTATIONS 37
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 R is 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)
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 i
1
(left), i
2
(center), and i
3
(right).
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.
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
38 THREE-DIMENSIONAL ROTATIONS
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 inter-
mediate 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 and twelve associated triples of Euler
angles.
In order to compute the components of the angular velocity vector in terms
of the Euler angles, we dierentiate (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
velocities 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)
PARAMETERIZATION OF ROTATIONS 39
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)
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)
40 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 R
3
() into J; J is rotated by
R
2
() into K; nally, K is rotated by R
1
() into L.
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
PARAMETERIZATION OF ROTATIONS 41
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 dierent
Euler sequences are used for dierent 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
= asin R
31
. (1.212)
Then the bank angle is obtained as
= atan2(R
32
, R
33
), (1.213)
and nally the heading is computed as
= atan2(R
21
, R
11
), (1.214)
where atan2(, ) is the four-quadrant arctangent operator.
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 dierential
equations
e
321
= S
I
1
321

I
,
42 THREE-DIMENSIONAL ROTATIONS
starting from the initial conditions at t = 0 as given in examples 1.5.1 and
1.6.2:
e
321
0
= (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
321
T
= (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.
Alternatively, one could start from null initial conditions at time t = 0,
e
321
0
= (0, 0, 0)
T
deg,
nding the following values of the Euler angles at time t = T:
e
321
T
= (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
.
PROBLEMS 43
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 expressed by equations (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. From your results,
compute the corresponding Euler angles 321.
1.6 Prove the following property between tensors Rand 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.
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,
Nonlinear Dynamics, 32, 7192 (2003).
44 THREE-DIMENSIONAL ROTATIONS
4. H. Goldstein, Classical Mechanics, 2nd ed., Addison-Wesley, Reading,
MA, 1980.
5. J. Stuelpnagel, On the Parameterization of the Three-Dimensional Ro-
tation Group, SIAM Review, 6, 422430 (1964).

Вам также может понравиться