Mathematics of Finite Rotations
Mathematics of Finite Rotations
A
Mathematics of
Finite Rotations
A1
Appendix A: MATHEMATICS OF FINITE ROTATIONS A2
TABLE OF CONTENTS
Page
A.1. Introduction A3
A.2. Plane vs. Spatial Rotations A3
A.3. Spinors A4
A.3.1. Spin Matrix and Axial Vector . . . . . . . . . . . . A4
A.3.2. Normalizations . . . . . . . . . . . . . . . . A5
A.3.3. Spectral Properties . . . . . . . . . . . . . . . A6
A.4. From Spinors To Rotators A7
A.4.1. The Algebraic Approach . . . . . . . . . . . . . A7
A.4.2. The Geometric Approach . . . . . . . . . . . . . A8
A.4.3. The Cayley Transform . . . . . . . . . . . . . . A9
A.4.4. Exponential Map . . . . . . . . . . . . . . . . A10
A.5. From Rotators to Spinors A10
A.6. Rotator Derivatives A11
A.7. Spinor and Rotator Transformations A12
A.8. Axial Vector Jacobian A12
A.9. Spinor and Rotator Differentiation A13
A.9.1. Angular Velocities . . . . . . . . . . . . . . . A13
A.9.2. Angular Accelerations . . . . . . . . . . . . . . A14
A.9.3. Variations . . . . . . . . . . . . . . . . . . A14
A2
A3 A.2 PLANE VS. SPATIAL ROTATIONS
A.1. Introduction
This Appendix provides a compendium of formulas and results concerning the mathematical treat-
ment of nite rotations in 3D space. Emphasis is placed on matrix representations of use in the
corotational formulation of nite elements.
The material is taken from a survey paper: C. A. Felippa and B. Haugen, A unied formulation
of small-strain corotational nite elements - I. Theory, Comp. Meths. Appl. Mech. Engrg., 194,
22852336, 2005.
A.2. Plane vs. Spatial Rotations
Plane rotations make up an easy topic. A rotation in e.g., the xy plane, is dened by just a scalar:
the rotation angle about z. Plane rotations commute:
1
+
2
=
2
+
1
, because the s are
numbers.
The study of spatial rotations is more difcult. The subject is dominated by the fundamental theorem
of Euler:
The general displacement of a rigid body with one point xed is a rotation
about some axis which passes through that point.
Consequently 3D rotations have both magnitude: the angle of rotation, and direction: the axis of
rotation. These are nominally the same two attributes that categorize vectors. Not coincidentally,
rotations are often depicted as vectors but with a double arrow.
Finite spatial rotations, however, do not obey the laws of vector calculus, although innitesimal
rotations do. Most striking is failure of commutativity: switching two successive rotations does
not yield the same answer unless the axis of rotation is kept xed. Within the framework of matrix
algebra, nite rotations can be represented as either 33 real orthogonal matrices R called rotators
or as real 3 3 skew-symmetric matrices called spinors.
The spinor representation is important in physical modeling and theoretical derivations, because
the matrix entries are closely related to the two foregoing attributes. The rotator representation is
important in numerical computations, as well as being naturally related to polar factorizations of a
transformation matrix. The two representations are related by various transformations illustrated
in Figure A.1. Of these the Cayley transform (1857) is the oldest although not the most important
one.
Axial-vector or
pseudo-vector
Rotator
R
Skew(R) axial( )
Spinor
Rot( )
Spin( )
Not unique: adjustable
by a scale factor
Unique
Figure A.1. Representations of nite space rotations and mapping operations.
A3
Appendix A: MATHEMATICS OF FINITE ROTATIONS A4
x
3
x
2
x
1
x
r
P(x)
P(x)
C
C
O
Q(x,)
Q(x,)
/2
/2
r
2r sin /2
2r cos /2
(a)
(b)
x
3
0
1
2
3
0
_
=
T
. (A.1)
Premultiplication of a vector v by is equivalent to the cross product of and v:
= v = v. (A.2)
A4
A5 A.3 SPINORS
In particular: = 0, as may be directly veried.
The converse operation to (A.1) extracts the 3-vector , called pseudovector, or axial vector, from
a given spin tensor:
= axial() =
_
3
_
. (A.3)
The length of this vector is denoted by :
= || = +
_
2
1
+
2
2
+
2
3
. (A.4)
As general notational rule, we will use corresponding upper and lower case symbols for the spin
matrix and its axial vector, respectively. For example, N and n, and , B and b.
A.3.2. Normalizations
As noted, and can be multiplied by a nonzero scalar factor to obtain various normalizations.
In general has the form g()/, where g(.) is a function of the rotation angle . The purpose
of normalizations is to simplify the connections Rot and Skew to the rotator, to avoid singularities
for special angles, and to connect the components
1
,
2
and
3
closely to the rotation amplitude.
This section review some normalizations that have practical or historical importance.
Taking = 1/ we obtain the unit axial-vector and unit spinor, which are denoted by n and N,
respectively:
n =
_
n
1
n
2
n
3
_
=
_
1
/
2
/
3
/
_
=
, N = Spin(n) =
=
_
0 n
3
n
2
n
3
0 n
1
n
2
n
3
0
_
. (A.5)
Taking = tan
1
2
/ is equivalent to multiplying the n
i
by tan
1
2
. We thus obtain the Rodrigues
parameters b
i
= n
i
tan
1
2
, i = 1, 2, 3. These are collected in the Rodrigues axial-vector b with
associated spinor B:
b = tan
1
2
n =
tan
1
2
, B = Spin(b) = tan
1
2
N =
tan
1
2
. (A.6)
This representation permits an elegant formulation of the rotator via the Cayley transform studied
later. It collapses, however, as nears 180
since tan
1
2
as 180
. One way to
circumvent the singularity is through the use of the four Euler-Rodrigues parameters, also called
quaternion coefcients:
p
0
= cos
1
2
, p
i
= n
i
sin
1
2
=
i
/sin
1
2
, i = 1, 2, 3. (A.7)
under the constraint p
2
0
+ p
2
1
+ p
2
2
+ p
2
3
= 1. This set is often used in multibody dynamics, robotics
and control. It comes at the cost of carrying along an extra parameter and an additional constraint.
A related singularity-free normalization, introduced by Fraeijs de Veubeke [243], takes =
sin
1
2
/. It is equivalent to using only the last three parameters of (A.7):
p = sin
1
2
n = (sin
1
2
/) , P = Spin(p) = sin
1
2
N = (sin
1
2
/) . (A.8)
A5
Appendix A: MATHEMATICS OF FINITE ROTATIONS A6
Finally, an important normalization that preserves three parameters while avoiding singularities is
that associated with the exponential map. Introduce a rotation vector dened as
= n = (/) , = Spin() = N = (/) . (A.9)
For this normalization the angle is the length of the rotation vector: = || =
_
2
1
+
2
2
+
2
3
.
The selection of the sign is a matter of convention.
A.3.3. Spectral Properties
Study of the spinor eigensystem v
i
=
i
v
i
is of interest for various developments. Begin by
forming the characteristic equation
det(I) =
3
2
= 0, (A.10)
where I denotes the identity matrix of order 3. It follows that the eigenvalues of are
1
= 0,
2,3
= i . Consequently is singular with rank 2 if = 0 whereas if = 0, is null.
The eigenvalues are collected in the diagonal matrix = diag(0, i, i ) and the corresponding
right eigenvectors v
i
in columns of V = [ v
1
v
2
v
3
], so that V = V. A cyclic-symmetric
expression of V, obtained through Mathematica, is
V =
_
1
1
s
2
+i (
2
3
)
1
s
2
i (
2
3
)
2
2
s
2
+i (
3
1
)
2
s
2
i (
3
1
)
3
3
s
2
+i (
1
2
)
3
s
2
i (
1
2
)
_
(A.11)
where s =
1
+
2
+
3
. Its inverse is
V
1
=
1
2
_
_
_
_
_
_
_
1
1
2
2
2
+
2
3
1
s
2
i (
2
3
)
1
2
2
2
+
2
3
1
s
2
+i (
2
3
)
2
1
2
2
3
+
2
1
2
s
2
i (
3
1
)
1
2
2
3
+
2
1
2
s
2
+i (
3
1
)
3
1
2
2
1
+
2
2
3
s
2
i (
1
2
)
1
2
2
1
+
2
2
3
s
2
+i (
1
2
)
_
_
(A.12)
The real and imaginary part of the eigenvectors v
2
and v
3
are orthogonal. This is a general property
of skew-symmetric matrices; cf. Bellman [67, p. 64].
Because the eigenvalues of are distinct if = 0, an arbitrary matrix function F() can be
explicitly obtained [314,309] as
F() = V
_
f (0) 0 0
0 f (i ) 0
0 0 f (i )
_
V
1
, (A.13)
in which f (.) is the scalar version of F(.). One important application of (A.13) is the matrix
exponential: f (.) e
(.)
.
The square of , computed through direct multiplication, is
2
=
_
2
2
+
2
3
1
2
1
2
2
3
+
2
1
2
3
2
3
2
1
+
2
2
_
=
T
2
I =
2
(nn
T
I). (A.14)
A6
A7 A.4 FROM SPINORS TO ROTATORS
This is a symmetric matrix of trace 2
2
whose eigenvalues are 0,
2
and
2
.
Bythe Cayley-Hamiltontheorem[67,309,314,636] satises its owncharacteristic equation(A.10)
3
=
2
,
4
=
2
2
, . . . and generally
n
=
2
n2
, n 3. (A.15)
Hence if n = 3, 5, . . . the odd powers
n
are skew-symmetric with distinct purely imaginary eigen-
values, whereas if n = 4, 6 . . ., the even powers
n
are symmetric with repeated real eigenvalues.
The eigenvalues of I + and I , are (1, 1 i ) and (1, 1 i ), respectively. Hence
those two matrices are guaranteed to be nonsingular. This has implications in the Cayley transform.
Example A.1. Consider the pseudo-vector = [ 6 2 3 ]
T
, for which =
6
2
+2
2
+3
2
= 7. The
associated spin matrix and its square are
=
_
0 3 2
3 0 6
2 6 0
_
,
2
=
_
13 12 18
12 45 6
18 6 40
_
. (A.16)
The eigenvalues of are (0, 7i, 7i ) while those of
2
are (0, 7, 7).
A.4. From Spinors To Rotators
Referring to Figure A.2, a rotator is an operator that maps a generic point P(x) to Q(x
) given the
rotation axis and the angle . We consider only rotator representations in the form of rotation
matrices R, dened by
x
= Rx. (A.17)
This 3 3 matrix is proper orthogonal, that is, R
T
R = I and det(R) = +1. It must reduce to I if
the rotation vanishes. Another important attribute is the trace property
trace(R) = 1 +2 cos , (A.18)
proofs of which may be found for example in Goldstein [267, p.124] or Hammermesh [285, p.325].
The problem considered in this section is the construction of R from the rotation data. The inverse
problem: given R, extract and , is treated in the next section. Nowif Ris assumed to be analytic
in it must have the Taylor expansion R = I +c
1
+c
2
2
+c
3
3
+. . ., where all c
i
must vanish
if = 0. But in view of the Cayley-Hamilton theorem (A.15) , all powers of order 3 or higher may
be eliminated, and so R must be a linear function of I, and
2
. For convenience this will be
written
R = I +( ) +( )
2
, (A.19)
in which is the scaling factor discussed above, whereas and are scalar functions of and of the
invariants of or . Since the only invariant of the latter is , we can anticipate that = (, )
and = (, ), both vanishing if = 0. Two techniques to determine those coefcients for
= 1 are discussed next. Table A.1 summarizes the most important representations of the rotator
in terms of the scaled .
A7
Appendix A: MATHEMATICS OF FINITE ROTATIONS A8
Table A.1. Rotator Forms for Various Spinors
Parametrization Spinor Rotator R
None 1
sin
2 sin
2 1
2
2
I +
sin
+
2 sin
2 1
2
2
2
Unit axial-vector
1
sin 2 sin
2 1
2
N = I +sin N +2 sin
2 1
2
N
2
,
Rodrigues-Cayley
tan
1
2
2 cos
2 1
2
2 cos
2 1
2
B = I +2 cos
2 1
2
(B +B
2
) = (I +B)(I B)
1
DeVeubeke
sin
1
2
2 cos
1
2
2 P = I +2 cos
1
2
P +2P
2
Exponential map
sin
2 sin
2 1
2
2
= I +
sin
+
2 sin
2 1
2
2
2
= e
= e
N
A.4.1. The Algebraic Approach
This approach nds and for = 1 (the unscaled spinor) directly from algebraic conditions.
Taking the trace of R given by (A.19) and applying the trace property (A.18) requires
3 2
2
= 1 +2 cos , =
1 cos
2
=
2 sin
2 1
2
2
. (A.20)
The orthogonality condition I = R
T
R = (I +
2
)(I ++
2
) = I +(2
2
)
2
+
4
= I +(2
2
2
)
2
leads to
2
2
2
= 0 =
sin
. (A.21)
Hence
R = I +
sin
+
1 cos
2
2
= I +
sin
+
2 sin
2 1
2
2
2
. (A.22)
Froma computational viewpoint the sine-squared formshould be preferred for small angles to avoid
the 1 cos cancellation. Replacing the components of and
2
gives the explicit rotator form
R =
1
2
_
_
2
1
+(
2
2
+
2
3
) cos 2
1
2
sin
2 1
2
3
sin 2
1
3
sin
2 1
2
+
2
sin
2
1
2
sin
2 1
2
+
3
sin
2
2
+(
2
3
+
2
1
) cos 2
2
3
sin
2 1
2
1
sin
2
1
3
sin
2 1
2
2
sin 2
2
3
sin
2 1
2
+
1
sin
2
3
+(
2
1
+
2
2
) cos
_
_
.
(A.23)
This is invariant to scaling of the
i
, and consequently (A.23) is unique.
A.4.2. The Geometric Approach
The vector representation of the rigid motion pictured in Figure A.2 is
x
. (A.31)
The explicit calculation of R in terms of the b
i
leads to (A.26).
A.4.4. Exponential Map
This is a nal representation of R that has both theoretical and practical importance. Given a
skew-symmetric real matrix S, the matrix exponential
Q = e
S
= Exp(S) (A.32)
is proper orthogonal. Here is the simple proof of Gantmacher [254, p 287]: Q
T
= Exp(S
T
) =
Exp(S
T
) = Q
1
. If the eigenvalues of S are
i
, then
i
i
= trace(S) = 0. The eigenvalues
of Q are
i
= exp(
i
); thus det(Q) =
i
i
= exp(
i
i
) = exp(0) = +1. The transformation
(A.32) is called an exponential map. The converse is of course S = Log(Q).
As in the case of the Cayley transform, one may pose the question of whether we can get the rotator
R = Exp( ) exactly for some factor = (, ). To study this question we need an explicit
form of the exponential. This can be obtained from (A.13) in which the function Exp so that the
diagonal matrix entries are 1 and exp( i ) = cos i sin . The following approach is more
instructive and leads directly to the nal result. Start from the denition of the matrix exponential
Exp( ) = I + +
2
2!
2
+
3
3!
3
+. . . (A.33)
and use the Cayley-Hamilton theorem (A.15) to eliminate all powers of order 3 or higher in .
Identify the coefcient series of and
2
with those of the sine and cosine, to obtain
Exp( ) = I +
sin( )
+
1 cos( )
2
2
. (A.34)
Comparing to (A.22) requires = , or = /. Introducing
i
=
i
/ and = Spin() =
N = (/) as in (A.9), one gets
R = Exp() = I +
sin
+
1 cos
2
2
= I +
sin
+
2 sin
2 1
2
2
2
. (A.35)
On substituting = N this recovers R = I +sin N +(1 cos ) N
2
, as it should.
This representation has several advantages: (i) it is singularity free, and (ii) the
i
are exactly
proportional to the angle, and (ii) it simplies differentiation. Because of these favorable properties
the exponential map has become a favorite of implementations where large angles may occur, as in
orbiting structures and robotics.
Example A.2.
Take again = [ 3 2 6 ]
T
so = 7. Consider the 3 angles = 2
, = 90
and = 180
. The rotators
calculated from (A.22) are, to 8 gures:
R = (A.36)
A10
A11 A.6 ROTATOR DERIVATIVES
A.5. From Rotators to Spinors
If R is given, the extraction of the rotation amount and the unit pseudo-vector n = / is often
required. The former is easy using the trace property (A.19):
cos =
1
2
(trace(R) 1) . (A.37)
Recovery of n is also straightforward using the particular form R = I + sin N + (1 cos )N
2
since R R
T
= 2 sin N, whence
N =
R R
T
2 sin
, n = axial(N). (A.38)
One issue is the sign of since (A.37) is satised by . If the sign is reversed, so is n. Thus in
principle it is possible to select 0 if no constraints are placed on the direction of the rotation
axis.
The above formulas are prone to numerical instability for near 0
and 180
1
d
2
2
d
2
3
_
, d
2
= Spin(d
2
),
W= cos I +sin N = R (1 cos ) nn
T
.
(A.42)
A11
Appendix A: MATHEMATICS OF FINITE ROTATIONS A12
It is convenient to depart fromR = Exp(N) = I+sin N+(1cos ) N
2
= W+(1cos )nn
T
.
Succesive differentiation gives
dR = R d(N) = R(Nd + dN), (A.43)
and
d
2
R = Rd(N) d(N) +R d
2
(N) = R
_
(Nd + dN)
2
+Nd
2
+2 d dN + d
2
N
_
(A.44)
These expressions can be simplied using the following identities:
RN = NR = N +sin N
2
+(1 cos )N
3
= cos N +sin N
2
= WN = NW,
NRN = N
2
R = RN
2
= sin N +cos N
2
= R I N
2
= R nn
T
,
dN =
d
N
T
d
2
NdN =
d
T
(
T
d) I
2
, N
2
dN =
Nd
T
(
T
d) N
2
,
RdN = R
d
WN
T
d
2
.
(A.45)
Here Nn = 0 has been used to eliminate some terms.
Inserting into (A.43) gives
dR = WNd + RdN (A.46)
This is a compacted form veried through Mathematica.
The expression of d
2
R, which is required for stiffness level and acceleration computations, will be
worked out later.
A.7. Spinor and Rotator Transformations
Suppose is a spinor and R = Rot() the associated rotator, referred to a Cartesian frame x = {x
i
}.
It is required to transform R to another Cartesian frame x = { x
i
} related by T
i j
= x
i
/x
j
, where
T
i j
are entries of a 3 3 orthogonal matrix T = x/x. Application of (?) yields
R = TRT
T
,
R
T
= TR
T
T
T
, R = T
T
RT, R = T
T
R
T
T. (A.47)
More details may be found in [267, Chapter 4]. Pre and post-multiplying (?) by T and T
T
,
respectively, yields the transformed spinor
N = TNT
T
, which is also skew-symmetric because
N
T
= TN
T
T
T
=
N. Likewise for the other spinors listed in Table A.5. Relations (?) with
QT show how axial vectors transform.
A12
A13 A.9 SPINOR AND ROTATOR DIFFERENTIATION
A.8. Axial Vector Jacobian
The Jacobian matrix H() = / of the rotational axial vector with respect to the spin axial
vector , and its inverse H()
1
= /, appear in the EICR. The latter was rst derived by
Simo [564] and Szwabowicz [602], and rederived by Nour-Omid and Rankin [433, p. 377]:
H()
1
=
=
sin
I+
1 cos
2
+
sin
3
T
= I+
1 cos
2
+
sin
3
2
. (A.48)
The last expression in (A.48), not given by the cited authors, is obtained on replacing
T
=
2
I +
2
. Use of the inversion formula (?) gives
H() =
= I
1
2
+
2
, (A.49)
in which
=
1
1
2
cot(
1
2
)
2
=
1
12
+
1
720
2
+
1
30240
4
+
1
1209600
6
+. . . (A.50)
The given in (A.50) results by simplifying the value = [sin (1 +cos )]/[
2
sin ] given by
previous investigators. Care must be taken on evaluating for small angle because it approaches
0/0. If || < 1/20, say, the series given above may be used, with error < 10
16
when 4 terms are
retained. If is a multiple of 2, blows up since cot(
1
2
) , and a modulo-2 reduction is
required.
In the formulation of the tangent stiffness matrix, the spin derivative of H()
T
contracted with a
nodal moment vector m is required:
L(, m) =
H()
T
:m =
[H()
T
m] H()
=
_
[(
T
m) I +m
T
2m
T
] +
2
m
T
1
2
Spin(m)
_
H().
(A.51)
in which
=
d/d
=
2
+4 cos + sin 4
4
4
sin
2
(
1
2
)
=
1
360
+
1
7560
2
+
1
201600
4
+
1
5987520
6
+. . . (A.52)
This expression of was obtained by simplifying results given in [433, p. 378].
A.9. Spinor and Rotator Differentiation
Derivatives, differentials and variations of axial vectors, spinors and rotators with respect to various
choices of independent variables appear in applications of nite rotations to mechanics. In this
section we present only expressions that are useful in the CR description. They are initially derived
for dynamics and then specialized to variations. Several of the formulas are new.
A13
Appendix A: MATHEMATICS OF FINITE ROTATIONS A14
A.9.1. Angular Velocities
We assume that the rotation angle (t ) = (t )n(t ) is a given function of time t , which is taken as the
independent variable. The time derivative of (t ) is
= axial(
), related to
= Spin(
) =
_
0
3
0
1
0
_
= R
R
T
,
= Spin(
) =
_
0
3
0
1
0
_
= R
T
R.
(A.53)
From (?) it follows that the axial vectors are linked by
= R
T
,
= R
. (A.54)
Corresponding relation between variations or differentials, such as = RR
T
or d =
RdR
T
are incorrect as shown in below. In CR dynamics,
is the vector of inertial angular
velocities whereas
is the vector of dynamic angular velocities.
Repeated temporal differentiation of R = Exp() gives the rotator time derivatives
R =
R,
R = (
2
)R,
...
R = (
...
+2
3
)R, . . . (A.55)
R = R
,
R = R(
2
),
...
R = R(
...
+2
3
), . . . (A.56)
The following four groupings appear often: R
R
T
,
RR
T
, R
T
R and
R
T
R. From the identities
RR
T
= I and R
T
R = I it can be shown that they are skew-symmetric, and may be associated
to axial vectors with physical meaning. For example, taking time derivatives of RR
T
= I yields
R
R
T
+
RR
T
= 0, whence R
R
T
=
RR
T
= (R
R)
T
. Pre and postmultiplication of
Rin (A.55)
and (A.56) by R and R
T
furnishes
RR
T
= R
R
T
=
, R
T
R =
R
T
R =
. (A.57)
Note that the general integral of
R =
R aside from a constant, is R = Exp(), from which (t )
can be extracted. On the other hand there is no integral relation dening (t ); only the differential
equation
R = R
.
A.9.2. Angular Accelerations
Postmultiplying the second of (A.55) by R
T
yields
RR
T
=
+
2
=
+
T
(
)
2
I =
_
0
3
0
1
0
_
+
_
2
2
2
3
2
3
2
1
2
1
2
2
_
,
(A.58)
in which (
)
2
=
2
1
+
2
2
+
2
3
. When applied to a vector r, (
)r =
r +
T
r (
)
2
r.
This operator appears in the expression of particle accelerations in a moving frame. The second and
third term give rise to the Coriolis and centrifugal forces, respectively. Premultiplying the second
derivative in (A.56) by R yields R
R =
+
, and so on.
A14
A15 A.9 SPINOR AND ROTATOR DIFFERENTIATION
A.9.3. Variations
Some of the foregoing expressions can be directly transformed to variational and differential forms
while others cannot. For example, varying R = Exp() gives
R = R, R
T
= R
T
. (A.59)
This matches
R =
R and R
T
= R
T
from (A.55) on replacing
( ) by . On the other hand,
the counterparts of (A.56):
R = R
and
R
T
=
3
0
1
2
1
0
_
.
(A.60)
Axial vectors and can be linked as follows. Start from R = R and
R = R
. Time
differentiate the former:
R = R
+
R, and vary the latter:
R = R
+R
, equate the
two right-hand sides, premultiply by R
T
, replace R
T
R and R
T
R by
and , respectively, and
rearrange to obtain
=
+
, or
+
=
. (A.61)
The last transformation is obtained by taking the axial vectors of both sides, and using (?). It is
seen that
and