3.2 Motion of a Fixed Point on a Rigid
Body
Let p be rigidly attached to the body, b, such that
˙
x
p/b
=
¨
x
p/b
= 0. The velocity of the point, p, is then
˙
x
p
=
˙
x
b
+ ω × x
p/b
=
˙
x
b
+ C(ω) x
p/b
, (22)
where the skew-symmetric cross product matrix function
C : R
3
→ R
3×3
is defined by
C(ω) =
0 −ω
3
ω
2
ω
3
0 −ω
1
−ω
2
ω
1
0
. (23)
Alternatively, we may express the velocity in more conve-
nient terms by using a combination of world and body-fixed
terms:
˙
x
p
=
˙
x
b
+ R
T
³
ω
0
× x
0
p/b
´
=
˙
x
b
+ R
T
C(ω
0
) x
0
p/b
. (24)
The acceleration of p is
¨
x
p
=
¨
x
b
+
˙
ω × x
p/b
+ ω ×
¡
ω × x
p/b
¢
=
¨
x
b
+
£
C(
˙
ω) + C(ω)
2
¤
x
p/b
, (25)
or, using a combination of world and b ody-fixed terms:
¨
x
p
=
¨
x
b
+ R
T
h
˙
ω
0
× x
0
p/b
+ ω
0
×
³
ω
0
× x
0
p/b
´i
=
¨
x
b
+ R
T
£
C(
˙
ω
0
) + C(ω
0
)
2
¤
x
0
p/b
, (26)
where
C(ω)
2
=
−ω
3
2
− ω
2
2
ω
2
ω
1
ω
3
ω
1
ω
2
ω
1
−ω
3
2
− ω
1
2
ω
3
ω
2
ω
3
ω
1
ω
3
ω
2
−ω
2
2
− ω
1
2
. (27)
3.3 Motion of a Particle in a Moving Frame
Next, we consider the case in which the point is not rigidly
attached to the body, but is a particle moving relative to
it. The velocity of the particle in the world frame is
˙
x
p
=
˙
x
b
+
˙
x
p/b
+ ω × x
p/b
=
˙
x
b
+ R
T
³
˙
x
0
p/b
+ ω
0
× x
0
p/b
´
=
˙
x
b
+ R
T
³
˙
x
0
p/b
+ C(ω
0
) x
0
p/b
´
, (28)
and the acceleration is
¨
x
p
=
¨
x
b
+
angular
z }| {
˙
ω × x
p/b
+
centripetal
z }| {
ω ×
¡
ω × x
p/b
¢
+
¨
x
p/b
+ 2ω ×
˙
x
p/b
| {z }
Coriolis
. (29)
Again, we may reconfigure this to yield a more useful final
expression:
¨
x
p
=
¨
x
b
+ R
T
·
£
C(
˙
ω
0
) + C(ω
0
)
2
¤
x
0
p/b
+
¨
x
0
p/b
+ 2C(ω
0
)
˙
x
0
p/b
¸
. (30)
From these results, it can be seen that Eqs. 28-30 are strict
generalizations of Eqs. 22 and 24 and Eqs. 25 and 26.
4 Finite Difference Approximations
At several points in this paper the angular velocity of a
rigid body is related to the time derivative of the the atti-
tude parameters. In many applications, it is necessary to
approximate these time derivatives using finite difference
approximations. In this section, the most common and
useful finite difference approximations are presented and
discussed.
We will discuss a general time-varying vector quantity,
z (t) ∈ R
n
. Finite difference approximations are denoted
with the operator ∆
n
S,h
, where n is the order of the deriva-
tive, S is the stencil over which the finite difference ap-
proximation is computed, and h is the size of the time in-
crement between samples. Finite difference operators are
linear combinations of function evaluations in the neigh-
borhood of the evaluation point. A general finite difference
approximation is written
∆
n
S,h
z (t
0
) =
1
h
n
X
k∈S
a
k
z (t
0
+ kh)
=
1
c h
n
X
k∈S
b
k
z (t
0
+ kh) , (31)
where {a
k
∈ Q|k ∈ S} is the set finite difference coefficients
for which c ∈ Z and {b
k
∈ Z|k ∈ S} are a convenient ratio-
nal decomposition. The actual derivative of the function
is
z
(n)
(t
0
) = ∆
n
S,h
z (t
0
) + d h
m
z
(n+m)
(η) , (32)
where m is called the order of accuracy, and η ∈ [t
0
−h, t
0
+
h] is some unknown evaluation p oint for the truncation
error term.
The error is not typically calculated, but m indicates
how the error depends on the step size, h. For exam-
ple, halving the step size produces a fourfold improvement
in accuracy for second-order accurate methods but only a
twofold improvement for first-order accurate methods.
Tables 1 and 2 show the finite difference coefficients for
various stencils and orders.
5 Euler Angles
5.1 Rotation Sequence
Three coordinate rotations in sequence can describe any
rotation. Let us consider triple rotations in which the first
7