A rigid motion of an object is a motion which preserves distance between points. In this article, we provide a description of rigid body motion using the tools of linear algebra and screw theory.
Rotation Matrix
Representation
Suppose there are two frames
o0x0y0z0
o
0
x
0
y
0
z
0
and
o1x1y1z1
o
1
x
1
y
1
z
1
. A rotation matrix is defined as unit vectors
x1
x
1
,
y1
y
1
and
z1
z
1
in frame
o0x0y0z0
o
0
x
0
y
0
z
0
. A good way to represent rotation operation is to project
o1x1y1z1
o
1
x
1
y
1
z
1
to
o0x0y0z0
o
0
x
0
y
0
z
0
:
In fact, each entry of the rotation matrix is a dot product1 of two unit vectors, in other words, is the cosine of the angle between the two vectors, i.e. directional cosine.
R01
R
1
0
is orthogonal (
R01=(R10)T
R
1
0
=
(
R
0
1
)
T
,
(R01)T=(R01)−1
(
R
1
0
)
T
=
(
R
1
0
)
−
1
) and
detR01=±1
det
R
1
0
=
±
1
. To determine the sign of the determinant of
R01
R
1
0
, we recall from linear algebra that
detR01=rT1(r2×r3)
det
R
1
0
=
r
1
T
(
r
2
×
r
3
)
where
r
r
is its column. Since the coordinate frame is right-handed, we have that . Then
detR01=1
det
R
1
0
=
1
.
Define
R∈SO(n)
R
∈
S
O
(
n
)
which is a special orthogonal group2, satisfying:
1.
RT=R−1∈SO(n)
R
T
=
R
−
1
∈
S
O
(
n
)
;
2. Columns and rows of R are orthogonal;
3. Columns and rows of R are unit vectors;
4.
detR=1
det
R
=
1
.
Obviously, R01∈SO(3) R 1 0 ∈ S O ( 3 ) .
For illustration:
Assume that frame
o1x1y1z1
o
1
x
1
y
1
z
1
rotate
θ
θ
degrees around
z0
z
0
,
For simplicity, we define Rz,θ=R01 R z , θ = R 1 0 temporarily. Then we see
Similarly,
Rotation Transformation
Given a point
p=[u,v,w]T
p
=
[
u
,
v
,
w
]
T
, its coordinate in frame
o1x1y1z1
o
1
x
1
y
1
z
1
is
p1
p
1
satisfying
Since the principal axes of o1x1y1z1 o 1 x 1 y 1 z 1 have coordinates x10,y10,z10 x 10 , y 10 , z 10 with respect to o0x0y0z0 o 0 x 0 y 0 z 0 , the coordinate of p p relative to frame is given by
A rotation matrix preserves distance and orientation. This can be proved partially by using some algebraic properties of the cross product 3 operation between two vectors. Given R∈SO(3) R ∈ S O ( 3 )
Given a linear transformation
A
A
defined in frame . And
B
B
is the same linear transformation defined in frame . It can be showed that
Rotation Superposition
Rotation w.r.t current frame:
Rotation w.r.t fixed frame: Just reverse the multiplier order of the above equation.
Exponential Coordinates for Rotation
A common motion encountered in robotics is the rotation of a body about a given axis by some amount. Take the figure below as an illustration:
Hypothesize that we rotate the point
q
q
at a constant unit angular velocity around , then
q˙
q
˙
may be written as:
It will be convenient to represent a skew-symmetric matrix as the product of a unit skew-symmetric matrix and a real number, i.e.
ω^∈so(3),∥ω∥=1,θ∈R
ω
^
∈
s
o
(
3
)
,
‖
ω
‖
=
1
,
θ
∈
R
. Then by Taylor expansion, we can write:
Every rotation matrix can be represented as the matrix exponential of some skew-symmetric matrix, i.e. the map exp:so(3)→SO(3) exp : s o ( 3 ) → S O ( 3 ) is surjective (onto).
Euler Theorem: Any Orientation R∈SO(3) R ∈ S O ( 3 ) is equivalent to a rotation about a fixed axis ω∈R3 ω ∈ R 3 through an angle θ∈[0,2π) θ ∈ [ 0 , 2 π ) .
Rotation Parameterization
Euler-angle
Around the current frame (
Rz,ϕ→Ry,θ→Rz,ψ
R
z
,
ϕ
→
R
y
,
θ
→
R
z
,
ψ
)
Roll-Pitch-Yaw
Around the fixed frame (
Rx,ψ→Ry,θ→Rz,ϕ
R
x
,
ψ
→
R
y
,
θ
→
R
z
,
ϕ
)
Axis Angle
Let
k=[kx,ky,kz]T
k
=
[
k
x
,
k
y
,
k
z
]
T
be an unit vector in frame
o0x0y0z0
o
0
x
0
y
0
z
0
. It can be seen as an axis. Let
R=Rz,αRy,β
R
=
R
z
,
α
R
y
,
β
make the vector
k
k
rotate to axis . Then
In fact, for any
R∈SO(3)
R
∈
S
O
(
3
)
we can always define
R=Rk,θ
R
=
R
k
,
θ
in which
Rigid Motion
A mapping g:R3→R3 g : R 3 → R 3 is a rigid body transformation if it satisfies the following properties:
- Length is preserved: ∥g(p)−g(q)∥=∥p−q∥ ‖ g ( p ) − g ( q ) ‖ = ‖ p − q ‖ for all points p,q∈R3 p , q ∈ R 3 .
- The cross product is preserved: g∗(v×w)=g∗(v)×g∗(w) g ∗ ( v × w ) = g ∗ ( v ) × g ∗ ( w ) for all vectors v,w∈R3 v , w ∈ R 3 .
The representation of general rigid body motion, involving both translation and rotation, is more involved. Rigid motions is defined as a sequence (d,R) ( d , R ) , where s∈R3 s ∈ R 3 , R∈SO(3) R ∈ S O ( 3 ) . All the rigid motions form a group called Special Euclidean Group represented by SE(3) S E ( 3 ) .
Consider three frames
o0x0y0z0
o
0
x
0
y
0
z
0
,
o1x1y1z1
o
1
x
1
y
1
z
1
and
o2x2y2z2
o
2
x
2
y
2
z
2
. There happened some rigid motions:
Finally, we get
Homogeneous Transformation
Homogeneous Representation
The sequential rigid motions above can be simplified as
Define
as a homogeneous transformation. And let
Then
It is evidently that
since R R is orthogonal. It may be verified that the set of rigid transformations is a group, i.e.
- If , then
g1g2∈SE(3)
g
1
g
2
∈
S
E
(
3
)
.
- The 4×4 4 × 4 identity element I I is in .
- If
g=(d,R)∈SE(3)
g
=
(
d
,
R
)
∈
S
E
(
3
)
, then
g¯=(R0d1)(7),g¯−1=(RT0−RTd1)∈SE(3) (7) g ¯ = ( R d 0 1 ) , g ¯ − 1 = ( R T − R T d 0 1 ) ∈ S E ( 3 )So that g−1=(−RTd,RT) g − 1 = ( − R T d , R T ) .
- The composition rule for rigid body transformations is associative.
Ex: Consider the example below:
The orientation of coordinate frame B B with respect to is
Rab=⎛⎝⎜cosθsinθ0−sinθcosθ0001⎞⎠⎟ R a b = ( cos θ − sin θ 0 sin θ cos θ 0 0 0 1 )The coordinates for the origin of frame B B are
again relative to frame A A . The homogeneous representation of the configuration of the rigid body is given by
Exponential coordinates for rigid motion and twist
The notion of the exponential mapping introduced for SO(3) S O ( 3 ) can be generalized to the Euclidean group, SE(3) S E ( 3 ) . Analogous to the definition of so(3) s o ( 3 ) , we define
se(3):={(v,ω^):v∈R3,ω^∈so(3)} s e ( 3 ) := { ( v , ω ^ ) : v ∈ R 3 , ω ^ ∈ s o ( 3 ) }In homogeneous coordinates, we write an element ξ^∈se(3) ξ ^ ∈ s e ( 3 ) as
ξ^=(ω^0v0) ξ ^ = ( ω ^ v 0 0 )An element of se(3) is referred to as a twist, or a (infinitesimal) generator of the Euclidean group. We also define
(ω^0v0)∨=(vω),(vω)∧=(ω^0v0) ( ω ^ v 0 0 ) ∨ = ( v ω ) , ( v ω ) ∧ = ( ω ^ v 0 0 )Given ξ^∈se(3) ξ ^ ∈ s e ( 3 ) and θ∈R θ ∈ R , the exponential of ξ^θ ξ ^ θ is an element of SE(3) S E ( 3 ) . Moreover
eξ^θ=(eω^θ0(I−eω^θ)(ω×v)+ωωTvθ1),ω≠0 e ξ ^ θ = ( e ω ^ θ ( I − e ω ^ θ ) ( ω × v ) + ω ω T v θ 0 1 ) , ω ≠ 0
eξ^θ=(I0vθ1),ω=0 e ξ ^ θ = ( I v θ 0 1 ) , ω = 0
We interpret g=exp(ξ^θ) g = exp ( ξ ^ θ ) not as mapping points from one coordinate frame to another, but rather as mapping points from their initial coordinates to their coordinates after the rigid motion is applied:
p(θ)=eξ^θp(0) p ( θ ) = e ξ ^ θ p ( 0 )In this equation, both p(0) p ( 0 ) and p(θ) p ( θ ) are specified with respect to a single reference frame. Similarly, if we let gab(0) g a b ( 0 ) represent the initial configuration of a rigid body relative to a frame A A , then the final configuration, still with respect to , is given by
gab(θ)=eξ^θgab(0) g a b ( θ ) = e ξ ^ θ g a b ( 0 )Thus, the exponential map for a twist gives the relative motion of a rigid body. Every rigid transformation can be written as the exponential of some twist.Screw
In this section, we explore some of the geometric attributes associated with a twist ξ=(v,ω) ξ = ( v , ω ) . Consider a rigid body motion which consists of rotation about an axis in space through an angle of θ θ radians, followed by translation along the same axis by an amount d d as shown below
We call such a motion a screw motion.A screw consists of an axis l l , a pitch , and a magnitude M M . A screw motion represents rotation by an amount about the axis l l followed by translation by an amount parallel to the axis l l . If then the corresponding screw motion consists of a pure translation along the axis of the screw by a distance M M .
Recall the figure above, it can be seen that
g(p1)=(eω^θ0(I−eω^θ)q+hθω1)(p1) g ( p 1 ) = ( e ω ^ θ ( I − e ω ^ θ ) q + h θ ω 0 1 ) ( p 1 )This transformation maps points attached to the rigid body from their initial coordinates (θ=0) ( θ = 0 ) to their final coordinates, and all points are specified with respect to the fixed reference frame.In fact, if we choose v=−ω×q+hω v = − ω × q + h ω , then ξ=(v,ω) ξ = ( v , ω ) generates the screw motion. A screw motion corresponds to motion along a constant twist by an amount equal to the magnitude of the screw.
we define a unit twist to be a twist such that either ∥ω∥=1 ‖ ω ‖ = 1 , or ω=0 ω = 0 and ∥v∥=1 ‖ v ‖ = 1 ; that is, a unit twist has magnitude M=1 M = 1 . Unit twists are useful since they allow us to express rigid motions due to revolute and prismatic joints as g=exp(ξ^θ) g = exp ( ξ ^ θ ) where θ θ corresponds to the amount of rotation or translation.Chasles Theorem: Every rigid body motion can be realized by a rotation about an axis combined with a translation parallel to that axis.
Acknowledgement
- Thanks Mark W. Spong for his great work of Robot Modeling and Control.
- Thanks John J. Craig for his great work of Introduction to Robotics - Mechanics and Control, 3rd-Edition
- Thanks Zexiang Li for his great work of A Mathematical Introduction to Robotic Manipulation
- Dot Product:
a=(a1,a2,a3),b=(b1,b2,b3)
a
=
(
a
1
,
a
2
,
a
3
)
,
b
=
(
b
1
,
b
2
,
b
3
)
a⋅b=|a||b|cosθ=a1b1+a2b2+a3b3 a ⋅ b = | a | | b | cos θ = a 1 b 1 + a 2 b 2 + a 3 b 3↩ -
X
X
is a group if and only if
(1);
(2) (x1∗x2)∗x3=x1∗(x2∗x3) ( x 1 ∗ x 2 ) ∗ x 3 = x 1 ∗ ( x 2 ∗ x 3 ) ;
(3) ∃I∈X,∀x∈X→I∗x=x∗I=x ∃ I ∈ X , ∀ x ∈ X → I ∗ x = x ∗ I = x ;
(4) ∀x∈X,∃y∈Xs.t.x∗y=y∗x=I ∀ x ∈ X , ∃ y ∈ X s . t . x ∗ y = y ∗ x = I . ↩ - The cross product between two vectors
a,b∈R3
a
,
b
∈
R
3
is defined as
a×b=⎛⎝⎜a2b3−a3b2a3b1−a1b3a1b2−a2b1⎞⎠⎟ a × b = ( a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 )We can also write:a×b=(a)∧b,(a)∧=⎛⎝⎜0a3−a2−a30a1a2−a10⎞⎠⎟ a × b = ( a ) ∧ b , ( a ) ∧ = ( 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 )↩
- If
∥ω∥≠1
‖
ω
‖
≠
1
, it is verified that
eω^θ=I+ω^∥ω^∥sin(∥ω^∥θ)+ω^2∥ω^∥2(1−cos(∥ω^∥θ)) e ω ^ θ = I + ω ^ ‖ ω ^ ‖ sin ( ‖ ω ^ ‖ θ ) + ω ^ 2 ‖ ω ^ ‖ 2 ( 1 − cos ( ‖ ω ^ ‖ θ ) )↩