You are on page 1of 16

Ch.

2: Rigid Body Motions and


Homogeneous Transforms

1. Representing position
• Definition: coordinate frame
– A set n of orthonormal basis vectors spanning Rn
– For example: ⎡1 ⎤ ⎡0 ⎤ ⎡0 ⎤
iˆ = ⎢0 ⎥ , ˆj = ⎢1 ⎥ , kˆ = ⎢0 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣0 ⎥⎦ ⎢⎣0 ⎥⎦ ⎢⎣1 ⎥⎦
• When representing a point p, we
need to specify a coordinate frame
– With respect to o0: p 0 = [5 6]
T

– With respect to o1: p1 = [ −2.8 4.2]


T

• v1 and v2 are invariant geometric entities. But the representation is


dependant upon choice of coordinate frame
⎡5 ⎤ ⎡7.77 ⎤ 0 ⎡ −5.1⎤ 1 ⎡ −2.8⎤
v10 = ⎢ ⎥ , v11 = ⎢ ⎥ , v2 = ⎢ 1 ⎥ , v2 = ⎢ 4.2 ⎥
⎣6 ⎦ ⎣ 0.8 ⎦ ⎣ ⎦ ⎣ ⎦ 2
2. Representing Rotations
• 2D rotations
– Representing one coordinate frame in terms of another
R10 = ⎡⎣ x10 y10 ⎤⎦
– Where the unit vectors are defined as:
⎡cos θ ⎤ 0 ⎡ − sin θ ⎤
x10 = xˆ1 ⎢ ⎥ 1
, y = ˆ
y1 ⎢ ⎥
⎣ sin θ ⎦ ⎣ cos θ ⎦

– This is a rotation matrix


⎡cosθ − sin θ ⎤
R10 = ⎢
⎣ sin θ cosθ ⎥⎦

Alternate approach
• Rotation matrices as projections
– Projecting the axes
of o1 onto the axes
of frame o0

⎡ xˆ ⋅ xˆ ⎤ ⎡ yˆ ⋅ xˆ ⎤
x10 = ⎢ 1 0 ⎥ , y10 = ⎢ 1 0 ⎥
⎣ xˆ1 ⋅ yˆ 0 ⎦ ⎣ yˆ1 ⋅ yˆ 0 ⎦

⎡ xˆ ⋅ xˆ yˆ1 ⋅ xˆ0 ⎤
R10 = ⎢ 1 0
⎣ xˆ1 ⋅ yˆ 0 yˆ1 ⋅ yˆ 0 ⎥⎦
⎡ ⎛ π ⎞⎤
⎢ xˆ1 xˆ0 cosθ yˆ1 xˆ0 cos ⎜ θ + ⎟ ⎥
⎝ 2 ⎠ ⎡ cosθ − sin θ ⎤
=⎢ ⎥=⎢
⎢ ⎛π ⎞ ⎥ sin θ cosθ ⎦⎥
⎢ xˆ1 yˆ 0 cos ⎜ − θ ⎟ yˆ1 yˆ 0 cosθ ⎥ ⎣
⎣ ⎝2 ⎠ ⎦ 4
Properties of rotation matrices
• Inverse rotations:

⎡ xˆ ⋅ xˆ yˆ 0 ⋅ xˆ1 ⎤
R01 = ⎢ 0 1
⎣ xˆ0 ⋅ yˆ1 yˆ 0 ⋅ yˆ1 ⎥⎦
⎡ ⎛π ⎞⎤
⎢ xˆ0 xˆ1 cosθ yˆ 0 xˆ1 cos ⎜ − θ ⎟ ⎥
⎝2 ⎠ ⎥ ⎡ cosθ sin θ ⎤
( )
T
=⎢ =⎢ ⎥ = R10
⎢ ⎛ π⎞ ⎥ ⎣ − sin θ cos θ ⎦
⎢ xˆ0 yˆ1 cos ⎜ θ + 2 ⎟ yˆ 0 yˆ1 cos θ ⎥
⎣ ⎝ ⎠ ⎦

• Or, another interpretation uses odd/even properties:


⎡cos ( −θ ) − sin ( −θ ) ⎤ ⎡ cosθ sin θ ⎤
( )
T
R01 = ⎢ ⎥=⎢ ⎥ = R10
⎣ sin ( −θ ) cos ( −θ ) ⎦ ⎣ − sin θ cosθ ⎦

Properties of rotation matrices

• Inverse of a rotation matrix:


−1
⎡ xˆ ⋅ xˆ yˆ1 ⋅ xˆ0 ⎤
( )
−1
R10 =⎢ 1 0
⎣ xˆ1 ⋅ yˆ 0 yˆ1 ⋅ yˆ 0 ⎥⎦
−1
⎡ ⎛ π ⎞⎤
⎢ xˆ1 xˆ0 cosθ yˆ1 xˆ0 cos ⎜ θ − ⎟ ⎥
⎝ 2⎠
=⎢ ⎥
⎢ ⎛π ⎞ ⎥
⎢ xˆ1 yˆ 0 cos ⎜ 2 − θ ⎟ yˆ1 yˆ 0 cos θ ⎥
⎣ ⎝ ⎠ ⎦
−1
⎡cosθ − sin θ ⎤ ⎡ cos θ sin θ ⎤
1
( )
T
=⎢ = = R10
⎣ sin θ cosθ ⎥⎦ ( )
det R10
⎢ − sin θ
⎣ cosθ ⎦⎥

• The determinant of a rotation matrix is always ±1


– +1 if we only use right-handed convention

6
Properties of rotation matrices

• Summary:
– Columns (rows) of R are mutually orthogonal
– Each column (row) of R is a unit vector

RT = R −1
det ( R ) = 1

• The set of all n x n matrices that have these properties are called
the Special Orthogonal group of order n

R ∈ SO ( n )

Properties of rotation matrices

• SO(3) is a group under multiplication


1. Closure: if R1 , R2 ∈ SO ( 3) ⇒ R1R2 ∈ SO ( 3)
2. Identity:
⎡1 0 0 ⎤
I = ⎢0 1 0 ⎥ ∈ SO ( 3)
⎢ ⎥
⎢⎣0 0 1 ⎦⎥

3. Inverse: RT = R −1
4. Associativity: ( R1R2 ) R3 = R1 ( R2 R3 )
⇒ Allows us to combine rotations: Rac = Rab Rbc

• In general, members of SO(3) do not commute


R1 R2 ≠ R2 R1

8
3D rotations
• General 3D rotation:
⎡ xˆ1 ⋅ xˆ0 yˆ1 ⋅ xˆ0 zˆ1 ⋅ xˆ0 ⎤
R10 = ⎢ xˆ1 ⋅ yˆ 0 yˆ1 ⋅ yˆ 0 zˆ1 ⋅ yˆ 0 ⎥ ∈ SO ( 3)
⎢ ⎥
⎢⎣ xˆ1 ⋅ zˆ0 yˆ1 ⋅ zˆ0 zˆ1 ⋅ zˆ0 ⎦⎥

• Special cases
– Basic rotation matrices
⎡1 0 0 ⎤
Rx ,θ ⎢
= 0 cosθ − sin θ ⎥
⎢ ⎥
⎢⎣0 sin θ cosθ ⎥⎦
⎡ cosθ 0 sin θ ⎤ ⎡cosθ − sin θ 0⎤
Ry ,θ =⎢ 0 1 0 ⎥ Rz ,θ = ⎢ sin θ cos θ 0⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ − sin θ 0 cosθ ⎥⎦ ⎣⎢ 0 0 1 ⎦⎥

3. Rotational transformations

• Now assume p is a fixed point on the rigid object with fixed


coordinate frame o1
– The point p can be represented in the frame o0 (p0) again by the
projection onto the base frame

⎡ p1 ⋅ xˆ0 ⎤ ⎡ ( uxˆ + vyˆ + wzˆ ) ⋅ xˆ ⎤


⎢ 1 ⎥ ⎢ 1 1 1 0

p = ⎢ p ⋅ yˆ 0 ⎥ = ⎢( uxˆ1 + vyˆ1 + wzˆ1 ) ⋅ yˆ 0 ⎥
0

⎢ 1 ⎥ ⎢ ˆ
⎢⎣ p ⋅ zˆ0 ⎥⎦ ⎣ ( ux1 + vy1 + wzˆ1 ) ⋅ zˆ0 ⎦
ˆ ⎥

⎡u ⎤ ⎡ xˆ1 ⋅ xˆ0 yˆ1 ⋅ xˆ0 zˆ1 ⋅ xˆ0 ⎤ ⎡ u ⎤


p1 = ⎢ v ⎥ = ⎢ xˆ1 ⋅ yˆ 0 yˆ1 ⋅ yˆ 0 zˆ1 ⋅ yˆ 0 ⎥ ⎢ v ⎥ = R10 p1
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢⎣ w⎥⎦ ⎢⎣ xˆ1 ⋅ zˆ0 yˆ1 ⋅ zˆ0 zˆ1 ⋅ zˆ0 ⎥⎦ ⎢⎣ w⎥⎦
10
Rotating a vector
• Another interpretation of a rotation matrix:
– Rotating a vector about an axis in a fixed frame
– Example: rotate v0 about y0 by π/2
⎡0⎤
v 0 = ⎢1 ⎥
⎢ ⎥
⎢⎣1 ⎥⎦
v1 = Ry ,π /2 v 0
⎡ cosθ 0 sin θ ⎤ ⎡0 ⎤
=⎢ 0 1 0 ⎥ ⎢1 ⎥
⎢ ⎥ ⎢ ⎥
⎣⎢ − sin θ 0 cos θ ⎦⎥ θ =π /2 ⎣⎢1 ⎦⎥
⎡ 0 0 1 ⎤ ⎡ 0 ⎤ ⎡1 ⎤
= ⎢ 0 1 0 ⎥ ⎢1 ⎥ = ⎢1 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢⎣ −1 0 0 ⎥⎦ ⎢⎣1 ⎥⎦ ⎢⎣0 ⎥⎦
11

Rotation matrix summary

• Three interpretations for the role of rotation matrix:


1. Representing the coordinates of a point in two different frames
2. Orientation of a transformed coordinate frame with respect to a
fixed frame
3. Rotating vectors in the same coordinate frame

12
Similarity transforms

• All coordinate frames are defined by a set of basis vectors


– These span Rn
– Ex: the unit vectors i, j, k
• In linear algebra, a n x n matrix A is a mapping from Rn to Rn
– y = Ax, where y is the image of x under the transformation A
– Think of x as a linear combination of unit vectors (basis
vectors), for example the unit vectors:

e1 = [1 0 ... 0] , ..., en = [ 0 0 ... 1]


T T

– Then the columns of A are the images of these basis vectors


– If we want to represent vectors with respect to a different
basis, e.g.: f1, …, fn, the transformation A can be represented:
A′ = T −1 AT
– Where the columns of T are the vectors f1, …, fn,
13

Similarity transforms

• A’ and A have the same eigenvalues


• An eigenvector x of A corresponds to an eigenvector T-1x of A’
• Rotation matrices are also a change of basis
– If A is a linear transformation in o0 and B is a linear transformation
in o1, then they are related as follows:
( )
−1
B = R10 AR10 ⎡ 0 0 1⎤
• Ex: the frames o0 and o1 are related as: R10 = ⎢ 0 1 0 ⎥
⎢ ⎥
⎢⎣ −1 0 0 ⎥⎦
• If the matrix A is also a rotation matrix Rz,θ (relative to o0) the rotation
expressed in o1 is:
⎡ 0 0 −1⎤ ⎡cos θ − sin θ 0 ⎤ ⎡ 0 0 1 ⎤ ⎡1 0 0 ⎤
( ) = ⎢ 0 1 0 ⎥ ⎢ sin θ ⎥ ⎢ ⎥ ⎢ sin θ ⎥
−1
B= R10 AR10 cos θ 0 0 1 0 = 0 cos θ
⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢⎣1 0 0 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ −1 0 0 ⎥⎦ ⎢⎣0 − sin θ cos θ ⎥⎦
14
4. Compositions of rotations

• Rotation with respect to the current frame


– Ex: three frames o0, o1, o2

p 0 = R10 p1
p1 = R21 p 2 p 0 = R10 R21 p 2 R20 = R10 R21
p 0 = R20 p 2

• This defines the composition law for successive rotations about the
current reference frame: post-multiplication

15

4. Compositions of rotations
• Ex1: R represents rotation about the current y-axis by φ followed
by θ about the current z-axis
R = Ry ,φ Rz ,θ
⎡ cos φ 0 sin ϕ ⎤ ⎡ cos θ − sin θ 0 ⎤ ⎡ cos φ cosθ − cos φ sin θ sin φ ⎤
=⎢ 0 1 0 ⎥ ⎢ sin θ cos θ 0 ⎥ = ⎢ sin θ cos θ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢⎣ − sin φ 0 cos φ ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ − sin φ cosθ sin φ sin θ cos φ ⎥⎦

• What about the reverse order?


16
4. Compositions of rotations

• Rotation with respect to a fixed reference frame (o0)


– Let the rotation between two frames o0 and o1 be defined by R10
– Let R be a desired rotation w/ respect to the fixed frame o0
– Using the definition of a similarity transform, we have:

( )
R20 = R10 ⎡ R10 RR10 ⎤ = RR10
−1

⎢⎣ ⎦⎥
• This defines the composition law for successive rotations about a
fixed reference frame: pre-multiplication

17

4. Compositions of rotations

• Ex2: we want a rotation matrix R that is a composition of φ about


y0 (Ry,φ) and then θ about z0 (Rz,θ)
– The second rotation needs to be projected back to the initial
fixed frame
( )
−1
R20 = Ry ,φ Rz ,θ Ry ,φ = Ry ,−φ Rz ,θ Ry ,φ

– Now the combination of the two rotations is:


R = Ry ,φ ⎡⎣ Ry ,−φ Rz ,θ Ry ,φ ⎤⎦ = Rz ,θ Ry ,φ

18
4. Compositions of rotations

• Summary:
– Consecutive rotations w/ respect to the current reference frame:
• Post-multiplying by successive rotation matrices
– w/ respect to a fixed reference frame (o0)
• Pre-multiplying by successive rotation matrices
– We have hybrid compositions of rotations w/ respect to the
current and a fixed frame using these same rules. Ex: R = ? if:

19

5. Parameterizing rotations

• There are three parameters that need to be specified to create


arbitrary rigid body rotations
– We will describe three such parameterizations:
1. Euler angles
2. Roll, Pitch, Yaw angles
3. Axis/Angle

20
5. Parameterizing rotations
• Euler angles
– Rotation by φ about the z-axis, followed by θ about the current
y-axis, then ψ about the current z-axis

⎡ cφ − sφ 0 ⎤ ⎡ cθ 0 sθ ⎤ ⎡ cψ − sψ 0⎤
RZYZ = Rz ,φ Ry ,θ Rz ,ψ = ⎢ sφ cφ 0⎥ ⎢ 0 1 0 ⎥ ⎢ sψ cψ 0⎥
⎢ ⎥⎢ ⎥⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ − sθ 0 cθ ⎦⎥ ⎢⎣ 0 0 1 ⎥⎦

21

5. Parameterizing rotations
• Euler angles
– Rotation by φ about the z-axis, followed by θ about the current
y-axis, then ψ about the current z-axis:
⎡ cφ cθ cψ − sφ sψ −cφ cθ sψ − sϕ cψ cφ sθ ⎤
⎢ ⎥
RZYZ = Rz ,φ Ry ,θ Rz ,ψ = ⎢ sφ cθ cψ + cφ sψ − sφ cθ sψ + cϕ cψ sφ sθ ⎥
⎢ − sθ cψ sθ sψ cθ ⎥⎦

– Inverse problem: determine Euler angles:

( ) (
θ = atan2 r33 , 1 − r332 , or θ = atan2 r33 , − 1 − r332 )
• If sin(θ ) > 0:
φ = atan2 ( r13 , r23 ) , ψ = atan2 ( −r31 , r32 )
• If sin(θ ) < 0:
φ = atan2 ( −r13 , −r23 ) , ψ = atan2 ( r31 , −r32 )
22
5. Parameterizing rotations
• Euler angles
– We have only discussed ZYZ Euler angles. What is the set of
all possible Euler angles that can be used to represent any
rotation matrix?
– XYZ, YZX, ZXY, XYX, YZY, ZXZ, XZY, YXZ, ZYX, XZX, YXY
– ZZY cannot be used to describe any arbitrary rotation matrix
since two consecutive rotations about the Z axis can be
composed into one rotation

23

5. Parameterizing rotations

• Roll, Pitch, Yaw angles


– Three consecutive rotations about the fixed principal axes:
• Yaw (x0) ψ, pitch (y0) θ, roll (z0) φ

RXYZ = Rz ,φ Ry ,θ Rx ,ψ
⎡ cφ − sφ 0 ⎤ ⎡ cθ 0 sθ ⎤ ⎡1 0 0 ⎤
⎢ ⎥
= ⎢ sφ cφ 0⎥ ⎢ 0 1 0 ⎥ ⎢0 cψ − sψ ⎥
⎢ ⎥⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ − sθ 0 cθ ⎥⎦ ⎢⎣0 sψ cψ ⎥⎦
⎡ cφ cθ − sφ cψ + cφ sθ sψ sφ sψ + cφ sθ cψ ⎤
⎢ ⎥
= ⎢ sφ cθ cφ cψ + sφ sθ sψ −cφ sψ + sφ sθ cψ ⎥
⎢ − sθ cθ sψ cθ cψ ⎥
⎣ ⎦

24
5. Parameterizing rotations

• Axis/Angle representation
– Any rotation matrix in SO(3) can be represented as a single
rotation about a suitable axis through a set angle ⎡kx ⎤
– For example, assume that we have a unit vector: kˆ = ⎢ k y ⎥
⎢ ⎥
– Given θ, we want to derive Rk,θ: ⎢⎣ k z ⎥⎦
• Intermediate step: project the z-axis
onto k:
Rk ,θ = RRz ,θ R −1

• Where the rotation R is given by:


R = Rz ,α Ry ,β
⇒ Rk ,θ = Rz ,α Ry ,β Rz ,θ Ry ,− β Rz ,−α

25

5. Parameterizing rotations

• Axis/Angle representation
– This is given by:
⎡ k x2 vθ + cθ k x k y vθ − k z sθ k x k z vθ + k y sθ ⎤
⎢ ⎥
Rk ,θ = ⎢ k x k y vθ + k z sθ k y2 vθ + cθ k y k z vθ − k x sθ ⎥
⎢ ⎥
⎢⎣ k x k z vθ − k y sθ k y k z vθ + k x sθ k z2 vθ + cθ ⎥⎦

– Inverse problem: Given arbitrary R, find k and θ


⎛ Tr ( R ) − 1 ⎞
θ = cos −1 ⎜ ⎟
⎝ 2 ⎠
⎡ r32 − r23 ⎤
kˆ =
1 ⎢r − r ⎥
2sin θ ⎢
13 31 ⎥
⎢⎣ r21 − r12 ⎥⎦
26
Alternative approach
• Rotation matrices in SO(3) can be derived using an alternate method
using the matrix exponential:
1. Assume that a unit vector ω represents an axis of rotation
2. Take a vector q(t) and rotate it about ω with unity velocity
⎡ 0 −ω3 ω2 ⎤
G G G
q ( t ) = ω × q ( t ) = ωˆ q ( t ) ωˆ = ⎢⎢ ω3 0 −ω1 ⎥

⎢⎣ −ω2 ω1 0 ⎥⎦
3. Now integrate to find the vector q(t):
G G
q ( t ) = eωˆ t q ( 0 )
4. Rotating for θ units of time gives:
G ˆ G G
q ( t ) = eωθ q ( 0 ) = Rω ,θ q ( 0 )
• The rotation about ω can be represented by the matrix exponential
• For notation, we can call: ωˆ ∈ so ( 3)
27

6. Rigid motions

• Rigid motion is a combination of rotation and translation


– Defined by a rotation matrix (R) and a displacement vector (d)
R ∈ SO ( 3) , d ∈ R 3
– The group of all rigid motions (d,R) is known as the Special
Euclidean group, SE(3)
SE ( 3) = R n × SO ( 3)
– Consider three frames, o0, o1, and o2 and corresponding rotation
matrices R21, and R10
• Let d21 be the vector from the origin o1 to o2, d10 from o0 to o1
• For a point p2 attached to o2, we can represent this vector in
frames o0 and o1:
p1 = R21 p 2 + d 21
( )
p 0 = R10 p1 + d10 = R10 R21 p 2 + d 21 + d10 = R10 R21 p 2 + R10 d 21 + d10
28
7. Homogeneous transforms

• We can represent rigid motions (rotations and translations) as matrix


multiplication
– Define:
⎡ R10 d10 ⎤ ⎡ R21 d 21 ⎤
H1 = ⎢
0
⎥ , H2 = ⎢
1

⎣ 0 1 ⎦ ⎣0 1⎦
– Now the point p2 can be represented in frame o0: P = H1 H 2 P
0 0 1 2

– Where the P0 and P1 are:


⎡ p 0 ⎤ 1 ⎡ p1 ⎤
P = ⎢ ⎥, P = ⎢ ⎥
0

⎣1⎦ ⎣1⎦
• The matrix multiplication H is known as a homogeneous transform
and we note that H ∈ SE ( 3)
• Inverse transforms:
⎡ RT − RT d ⎤
H −1 = ⎢ ⎥
⎣0 1 ⎦
29

7. Homogeneous transforms
• Basic transforms: Three pure translation, three pure rotation

⎡1 0 0 a⎤ ⎡1 0 0 0⎤
⎢0 1 0 0⎥ ⎢0 c − s 0⎥
Trans x ,a =⎢ ⎥ Rot x ,α =⎢ α α ⎥
⎢0 0 1 0⎥ ⎢0 sα cα 0⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦
⎡1 0 0 0⎤ ⎡ cβ 0 sβ 0⎤
⎢0 1 0 b⎥ ⎢ 0 1 0 0⎥
Trans y ,b =⎢ ⎥ Rot y ,β =⎢ ⎥
⎢0 0 1 0⎥ ⎢ − sβ 0 cβ 0⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣ 0 0 0 1⎦
⎡1 0 0 0⎤ ⎡cγ − sγ 0 0⎤
⎢0 1 0 0⎥ ⎢s cγ 0 0⎥
Trans z ,c =⎢ ⎥ Rot z ,γ =⎢ γ ⎥
⎢0 0 1 c⎥ ⎢0 0 1 0⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦
30
7. Homogeneous transforms
• Ex: Compute the homogeneous transformation representing a
translation of 3 units along the x-axis followed by a rotation of π/2
about the current z-axis followed by a translation of 1 unit along the
fixed y-axis
T = Trans y ,1.Trans x ,3 .Rot z ,π /2
⎡1 0 0 0 ⎤ ⎡1 0 0 3⎤ ⎡0 −1 0 0⎤
⎢0 1 0 1 ⎥ ⎢0 1 0 0 ⎥ ⎢1 0 0 0⎥
=⎢ ⎥⎢ ⎥⎢ ⎥
⎢0 0 1 0 ⎥ ⎢0 0 1 0⎥ ⎢0 0 1 0⎥
⎢ ⎥⎢ ⎥⎢ ⎥
⎣0 0 0 1 ⎦ ⎣0 0 0 1 ⎦ ⎣0 0 0 1⎦
⎡1 −1 0 3⎤
⎢1 0 0 1⎥
=⎢ ⎥
⎢0 0 1 0⎥
⎢ ⎥
⎣0 0 0 1⎦

31

You might also like