ECE447: Robotics Engineering
Lecture 4: Rigid Motions and Homogeneous Transformations (Part 2)
Dr. Haitham El-Hussieny
Electronics and Communications Engineering
Faculty of Engineering (Shoubra)
Benha University
Spring 2017
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 1 / 32
Lecture Outline:
1 Representation of Rotations in 3D.
2 Rotational Transformations.
3 Composition of Rotations.
4 Homogeneous Transformation.
5 Parameterization of Rotations.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 2 / 32
Representation of Rotations in 3D.
Table of Contents
1 Representation of Rotations in 3D.
2 Rotational Transformations.
3 Composition of Rotations.
4 Homogeneous Transformation.
5 Parameterization of Rotations.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 3 / 32
Representation of Rotations in 3D.
Representation of Rotations in 3D:
We need to project frame {1} into frame {0}:
x̂1 .x̂0 ŷ1 .x̂0 ẑ1 .x̂0
R10 = x01 | y10 | z10
= x̂1 .ŷ0 ŷ1 .ŷ0 ẑ1 .ŷ0
x̂1 .ẑ0 ŷ1 .ẑ0 ẑ1 .ẑ0
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 4 / 32
Representation of Rotations in 3D.
Representation of Rotations in 3D:
We need to project frame {1} into frame {0}:
x̂1 .x̂0 ŷ1 .x̂0 ẑ1 .x̂0
R10 = x01 | y10 | z10
= x̂1 .ŷ0 ŷ1 .ŷ0 ẑ1 .ŷ0
x̂1 .ẑ0 ŷ1 .ẑ0 ẑ1 .ẑ0
cos(θ) −sin(θ) 0
(R10 ) = sin(θ) cos(θ) 0 = Rz,θ
0 0 1
Rz,θ is the basic rotation matrix around z-axis.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 4 / 32
Representation of Rotations in 3D.
Representation of Rotations in 3D:
Basic Rotation Matrices:
y0
θ
1 0 0
x0
Rx,θ = 0 cos(θ) −sin(θ)
0 sin(θ) cos(θ)
Rx,θ
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 5 / 32
Representation of Rotations in 3D.
Representation of Rotations in 3D:
Basic Rotation Matrices:
y1 y0
y0
θ
1 0 0
θ
x0 x0
Rx,θ = 0 cos(θ) −sin(θ)
0 sin(θ) cos(θ)
cos(θ) 0 sin(θ)
Ry,θ = 0 1 0
−sin(θ) 0 cos(θ)
Rx,θ Ry,θ
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 5 / 32
Rotational Transformations.
Table of Contents
1 Representation of Rotations in 3D.
2 Rotational Transformations.
3 Composition of Rotations.
4 Homogeneous Transformation.
5 Parameterization of Rotations.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 6 / 32
Rotational Transformations.
Rotational Transformations:
The {0}-frame is our fixed frame, the
{1}-frame is fixed to a rigid body.
What will happen with points of body (let
say p) if we rotate the body, i.e. the
{1}-frame?
The coordinates of point p in the 1-frame
are constant p1 , but in the 0-frame they
are changed.
The coordinates of the point p in 0-frame
is:
p0 = R10 p1
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 7 / 32
Composition of Rotations.
Table of Contents
1 Representation of Rotations in 3D.
2 Rotational Transformations.
3 Composition of Rotations.
4 Homogeneous Transformation.
5 Parameterization of Rotations.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 8 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
Suppose that we have 3 frames:
{0} = (o0 , x0 , y0 , z0 )
y0
{1} = (o1 , x1 , y1 , z1 )
{2} = (o2 , x2 , y2 , z2 )
Any point p can be represented in any of the three P x0
coordinates:
p0 = R10 p1
p1 = R21 p2
p0 = R20 p2
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 9 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
p0 = R10 p1
p1 = R21 p2
y0
p0 = R20 p2
We can write:
p0 = R10 p1 = R10 R21 p2 P x0
p0 = R10 R21 p2
p0 = R20 p2
R20 = R10 R21 Law of composite rotation
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 10 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
Example: Suppose we rotate:
1 first the frame by angle φ around current y-axis,
2 then rotate by angle θ around the current z-axis. Find the combined rotation ?
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 11 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
Example: Suppose we rotate:
1 first the frame by angle φ around current y-axis,
2 then rotate by angle θ around the current z-axis. Find the combined rotation ?
cos(φ) 0 sin(φ)
Ry,φ = 0 1 0
−sin(φ) 0 cos(φ)
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 12 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
Example: Suppose we rotate:
1 first the frame by angle φ around current y-axis,
2 then rotate by angle θ around the current z-axis. Find the combined rotation ?
cos(θ) −sin(θ) 0
Rz,θ = sin(θ) cos(θ) 0
0 0 1
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 13 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
R20 = Ry,φ Rz,θ
cos(φ) 0 sin(φ) cos(θ) −sin(θ) 0
R20 = 0 1 0 sin(θ) cos(θ) 0
−sin(φ) 0 cos(φ) 0 0 1
cφ cθ −cφ sθ sφ
R20 = sθ cφ cθ sθ sφ
−sφ 0 cφ
Note: sφ = sin(φ) and cθ = cos(θ)
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 14 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
Important Observation: Rotations do not commute.
Ry,φ Rz,θ 6= Rz,θ Ry,φ
So that the order of rotations is important!
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 15 / 32
Composition of Rotations.
Composition of Rotations:
[1] Rotation about Current Frame:
Important Observation: Rotations do not commute.
Ry,φ Rz,θ 6= Rz,θ Ry,φ
So that the order of rotations is important!
Rule of composite rotation around the current (new) frame:
For successive rotations about the current reference frame we use the post-multiplication to
find the total rotation matrix.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 15 / 32
Composition of Rotations.
Composition of Rotations:
[2] Rotation with respect to Fixed Frame:
Example: Suppose we rotate:
1 the first rotation is by angle φ around y -axis.
0
2 then, a rotation by angle θ around z -axis (not z -axis). What is the total rotation ?
0 1
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 16 / 32
Composition of Rotations.
Composition of Rotations:
[2] Rotation with respect to Fixed Frame:
Example: Suppose we rotate:
1 the first rotation is by angle φ around y -axis.
0
2 then, a rotation by angle θ around z -axis (not z -axis). What is the total rotation ?
0 1
cos(φ) 0 sin(φ)
Ry0 ,φ = 0 1 0
−sin(φ) 0 cos(φ)
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 17 / 32
Composition of Rotations.
Composition of Rotations:
[2] Rotation with respect to Fixed Frame:
Example: Suppose we rotate:
1 the first rotation is by angle φ around y -axis.
0
2 then, a rotation by angle θ around z -axis (not z -axis). What is the total rotation ?
0 1
cos(θ) −sin(θ) 0
Rz0 ,θ = sin(θ) cos(θ) 0
0 0 1
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 18 / 32
Composition of Rotations.
Composition of Rotations:
[2] Rotation with respect to Fixed Frame:
R20 = Rz,θ Ry,φ note the order!
cos(θ) −sin(θ) 0 cos(φ) 0 sin(φ)
R20 = sin(θ) cos(θ) 0 0 1 0
0 0 1 −sin(φ) 0 cos(φ)
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 19 / 32
Composition of Rotations.
Composition of Rotations:
[2] Rotation with respect to Fixed Frame:
R20 = Rz,θ Ry,φ note the order!
cos(θ) −sin(θ) 0 cos(φ) 0 sin(φ)
R20 = sin(θ) cos(θ) 0 0 1 0
0 0 1 −sin(φ) 0 cos(φ)
Rule of composite rotation around the fixed (original) frame:
For successive rotations about the fixed reference frame we use the pre-multiplication to find
the total rotation matrix.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 19 / 32
Composition of Rotations.
Composition of Rotations:
Around fixed frame ? Around current frame ?
Pre-multiply Post-multiply
Example:
Find the rotation R defined by the following
basic rotations:
1 A rotation of θ about the current axis x;
2 A rotation of φ about the current axis z;
3 A rotation of α about the fixed axis z;
4 A rotation of β about the current axis y;
5 A rotation of δ about the fixed axis x.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 20 / 32
Composition of Rotations.
Composition of Rotations:
Around fixed frame ? Around current frame ?
Pre-multiply Post-multiply
Example: Solution:
Find the rotation R defined by the following
basic rotations: R = Rx,δ Rz,α Rx,θ Rz,φ Ry,β
1 A rotation of θ about the current axis x;
2 A rotation of φ about the current axis z;
δ = 15o , α = 30o , θ = 45o , φ = 60o , β = 90o
3 A rotation of α about the fixed axis z; R =? (Difficult ?)
4 A rotation of β about the current axis y;
5 A rotation of δ about the fixed axis x.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 20 / 32
Composition of Rotations.
Composition of Rotations:
Around fixed frame ? Around current frame ?
Pre-multiply Post-multiply
Example: Solution:
Find the rotation R defined by the following
basic rotations: R = Rx,δ Rz,α Rx,θ Rz,φ Ry,β
1 A rotation of θ about the current axis x;
2 A rotation of φ about the current axis z;
δ = 15o , α = 30o , θ = 45o , φ = 60o , β = 90o
3 A rotation of α about the fixed axis z; R =? (Difficult ?)
4 A rotation of β about the current axis y;
ROBOTICS TOOLBOX!
5 A rotation of δ about the fixed axis x.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 20 / 32
Homogeneous Transformation.
Table of Contents
1 Representation of Rotations in 3D.
2 Rotational Transformations.
3 Composition of Rotations.
4 Homogeneous Transformation.
5 Parameterization of Rotations.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 21 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Rigid Motions:
A rigid motion is an ordered pair (R, d) of rotation
R and translation d.
p0 = R10 p1 + d01 P
y0
x0
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 22 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Rigid Motions:
A rigid motion is an ordered pair (R, d) of rotation
R and translation d.
p0 = R10 p1 + d01 P
y0
If there are 3 frames corresponding to 2 rigid
motions:
p1 = R21 p2 + d12
p0 = R10 p1 + d01
Then the overall motion is: x0
p0 = R10 R21 p2 + R10 d12 + d01
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 22 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Homogeneous Transformation is a convenient way
to write the formula in a 4 ∗ 4 matrix:
P
p0 = R10 R21 p2 + R10 d12 + d01
y0
Given a rigid motion (R, d), the 4 ∗ 4-matrix T :
R3∗3 d3∗1
T =
03∗1 1 x0
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 23 / 32
Homogeneous Transformation.
Homogeneous Transformation:
To use HTs in computing coordinates of point p,
we need to extend the vectors of a point by one P
coordinate:
y0
1
px1
0
T10 1 R3∗3 py
d3∗1
P = P = p1z
03∗1 1
1
x0
For composite homogeneous transformation, the rule for pre and post multiply is valid as
rotation.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 24 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Basic Homogeneous Transformation:
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 25 / 32
Homogeneous Transformation.
Homogeneous Transformation:
1 The teabot coordinates are expressed in
camera frame, pc .
2 To express the teabot in robot frame:
pr = Tcr pc
3 To Express it in the world frame:
pw = Tcw pc = Trw Tcr pc
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 26 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Example
Find homogeneous transformation matrix T that represents a rotation by angle α about the
current x-axis followed by a translation of b units along the current x-axis, followed by a
translation of d units along the current z-axis, followed by a rotation by angle θ about the
current z-axis, is given by:
Rotx,α
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 27 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Example
Find homogeneous transformation matrix T that represents a rotation by angle α about the
current x-axis followed by a translation of b units along the current x-axis, followed by a
translation of d units along the current z-axis, followed by a rotation by angle θ about the
current z-axis, is given by:
Rotx,α T ransx,b
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 27 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Example
Find homogeneous transformation matrix T that represents a rotation by angle α about the
current x-axis followed by a translation of b units along the current x-axis, followed by a
translation of d units along the current z-axis, followed by a rotation by angle θ about the
current z-axis, is given by:
Rotx,α T ransx,b T ransx,d
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 27 / 32
Homogeneous Transformation.
Homogeneous Transformation:
Example
Find homogeneous transformation matrix T that represents a rotation by angle α about the
current x-axis followed by a translation of b units along the current x-axis, followed by a
translation of d units along the current z-axis, followed by a rotation by angle θ about the
current z-axis, is given by:
T = Rotx,α T ransx,b T ransx,d Rotz,θ
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 27 / 32
Parameterization of Rotations.
Table of Contents
1 Representation of Rotations in 3D.
2 Rotational Transformations.
3 Composition of Rotations.
4 Homogeneous Transformation.
5 Parameterization of Rotations.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 28 / 32
Parameterization of Rotations.
Parameterization of Rotations:
Example
A general rotation matrix R consists of nine
elements rij .
These nine elements are not independent quantities
due to these constraints:
1 The columns of a rotation matrix are unit vectors:
X
2
rij = 1, j ∈ {1, 2, 3}
i
2 Columns of a rotation matrix are mutually
1 0 0
orthogonal:
Rx,θ = 0 cos(θ) −sin(θ)
r1i r1j + r2i r2j + r3i r3j = 0, i 6= j 0 sin(θ) cos(θ)
These constraints define six independent equations with nine unknowns, so there are three
free variables required to define a general rotation.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 29 / 32
Parameterization of Rotations.
Parameterization of Rotations:
Example
A general rotation matrix R consists of nine
elements rij .
These nine elements are not independent quantities
due to these constraints:
1 The columns of a rotation matrix are unit vectors:
X
2
rij = 1, j ∈ {1, 2, 3}
i
2 Columns of a rotation matrix are mutually
1 0 0
orthogonal:
Rx,θ = 0 cos(θ) −sin(θ)
r1i r1j + r2i r2j + r3i r3j = 0, i 6= j 0 sin(θ) cos(θ)
Two ways are discussed to represent any arbitary rotations by three variable: Euler Angles
and Roll-Pith-Yaw parametrization
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 29 / 32
Parameterization of Rotations.
Parameterization of Rotations: ZYZ-Euler Angles
It is a common method of specifying a rotation matrix in terms of three independent
quantities called Euler Angles {φ, θ, ψ}.
Any arbitrary rotation could be represented by three successive rotations of:
1 Rotation by φ about the z-axis,
2 Followed by rotation by θ about the current y-axis.
3 then followed by ψ about the current z-axis.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 30 / 32
Parameterization of Rotations.
Parameterization of Rotations: ZYZ-Euler Angles
It is a common method of specifying a rotation matrix in terms of three independent
quantities called Euler Angles {φ, θ, ψ}.
Any arbitrary rotation could be represented by three successive rotations of:
1 Rotation by φ about the z-axis,
2 Followed by rotation by θ about the current y-axis.
3 then followed by ψ about the current z-axis.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 30 / 32
Parameterization of Rotations.
Parameterization of Rotations: Roll. Pitch and Yaw Angles
A rotation matrix R could be represented as a product of three successive rotations about
the fixed coordinates.
These rotations define the three angles: roll, pitch, yaw, {φ, θ, ψ}:
1 Rotation by φ about the x0 -axis,
2 Followed by rotation by θ about the fixed y0 -axis.
3 then followed by ψ about the fixed z0 -axis.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 31 / 32
Parameterization of Rotations.
Parameterization of Rotations: Roll. Pitch and Yaw Angles
A rotation matrix R could be represented as a product of three successive rotations about
the fixed coordinates.
These rotations define the three angles: roll, pitch, yaw, {φ, θ, ψ}:
1 Rotation by φ about the x0 -axis,
2 Followed by rotation by θ about the fixed y0 -axis.
3 then followed by ψ about the fixed z0 -axis.
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 31 / 32
Parameterization of Rotations.
End of Lecture
[email protected]
Dr. Haitham El-Hussieny ECE447: Robotics Engineering 32 / 32