SlideShare a Scribd company logo
Ridig Body Motion – Homogeneous Transformations
Claudio Melchiorri
Dipartimento di Elettronica, Informatica e Sistemistica (DEIS)
Universit`a di Bologna
email: claudio.melchiorri@unibo.it
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 1 / 80
Summary
1 Ridig Body Motion
Rotations
Translations
2 Homogeneous transformations
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 2 / 80
Ridig Body Motion
Ridig Body Motion – Homogeneous Transformations
Ridig Body Motion
Claudio Melchiorri
Dipartimento di Elettronica, Informatica e Sistemistica (DEIS)
Universit`a di Bologna
email: claudio.melchiorri@unibo.it
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 3 / 80
Ridig Body Motion
Rigid body motions - Homogeneous transformations
Description of the manipulator kinematic properties:
Description of the geometric characteristics of the robot’s motion (position,
velocity, acceleration), without considering the forces applied to it
The solution of the kinematic problem is based on:
definition of a reference frame associated to each link of the manipulator
a procedure for the computation of the relative motion (position, velocity,
acceleration) of these frames due to joints’ movements.
It is necessary to introduce some conventions to describe the position/orientation
of rigid bodies and their motion in the space:
kinematic properties of a rigid body and how to describe them
homogenous transformations
description of position and velocity (force) vectors in different reference
frames.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 4 / 80
Ridig Body Motion
Rigid body and its representation
A manipulator is composed by a series of rigid
bodies, the links, connected by joints that allow a
relative motion.
RIGID BODY: idealization of a solid body of fi-
nite size in which deformation is neglected: the
distance between any two given points of a rigid
body remains constant in time regardless of exter-
nal forces exerted on it.
||p(t) − q(t)|| = d(p(t), q(t)) = cost
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 5 / 80
Ridig Body Motion
Rigid body and its representation
Some assumptions:
The 3D operational space is represented by the vector space IR3
,
In the 3D space, are defined the inner product
uT
v =
n
i=1
ui vi = ||u||||v|| cos θ u, v ∈ IRn
and the Euclidean norm
||u|| = uT
u =
n
i=1
u2
i u ∈ IRn
We often use Cartesian (right-handed) reference frames, with homogenous
dimensions along the axes
The base frame is an inertial frame.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 6 / 80
Ridig Body Motion
Rigid body and its representation
General definition of norm:
u = uT
W u
being W a matrix:
symmetric
positive definite
Often, W is a diagonal matrix.
Since W = VT
V, then:
u = uT
W u = (uT
VT
)(Vu) = xT
x
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 7 / 80
Ridig Body Motion
Rigid body and its representation
In IR3
, a rigid body has 6 degrees of freedom (dof):
3 for the position, x, y, z;
3 for the orientation, α, β, γ.
In general, a rigid body in IRn
has
n dof for the position
n(n − 1)/2 dof for the orientation
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 8 / 80
Ridig Body Motion
Rigid body and its representation
Roto-translation motion: most general motion of a rigid body in the space,
composed by a rotation about an axis (instantaneous axis of rotation) and a
translation along the same axis.
Problem of describing the instantaneous position/orientation of a rigid body with
respect to a fixed base frame
Let 0
o1 be the origin of the frame F1 fixed to the
rigid body, expressed in F0 . Each point of the
body has coordinates
1
p = [1
px
1
py
1
pz ]T
constant with respect to F1 .
Since the body moves, the same point has coor-
dinates 0
p, expressed in F0 , variable in time
0
p = [0
px
0
py
0
pz ]T
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 9 / 80
Ridig Body Motion
Rigid body and its representation
First problem: if point p is known in
F1 , compute the equivalent represen-
tation in F0 .
1
p =⇒ 0
p
The problem is solved by using the Homogeneous Transformation Matrix 0
T1:
0
T1 =
0
R1
0
o1
0 0 0 1
=




nx sx ax ox
ny sy ay oy
nz sz az oz
0 0 0 1




defining the transformation (roto-translation) between F1 and F0 .
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 10 / 80
Ridig Body Motion
Rigid body and its representation
The problem is decomposed into two parts:
1 F0 and F1 share the same origin, and have a different orientation in space
2 F0 and F1 have parallel axes but a different origin (translation).
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 11 / 80
Ridig Body Motion
Ridig Body Motion – Homogeneous Transformations
Rotations
Claudio Melchiorri
Dipartimento di Elettronica, Informatica e Sistemistica (DEIS)
Universit`a di Bologna
email: claudio.melchiorri@unibo.it
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 12 / 80
Ridig Body Motion Rotations
Rotations
Consider two reference frames F0 and F1 with the same origin, i.e. o1 ≡ o0.
Given a vector 0
v in F0 , its components vx , vy , vz are the orthogonal projections
of 0
v on the coordinate axes.
vx = 0
vT
i = ||0
v|| cos α1
vy = 0
vT
j = ||0
v|| cosα2
vz = 0
vT
k = ||0
v|| cos α3
i, j, k: unit vectors defining the directions of x0, y0, z0
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 13 / 80
Ridig Body Motion Rotations
Rotations
If 0
v indicates an axis of F1 , e.g. 0
i1, then 0
i1 = [0
ix
0
ij
0
iz]T
, where
0
ix = 0
iT
1 i = cos α1
0
iy = 0
iT
1 j = cos α2
0
iz = 0
iT
1 k = cos α3
This is a well known result:
0
i1 = [cos α1, cos α2, cos α3]T
the components of a unit vector with respect to a reference frame are its direction
cosines.
A similar results holds for the other directions 0
j1 and 0
k1.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 14 / 80
Ridig Body Motion Rotations
Rotations
Once the direction cosines of the three axes of F1 with respect to F0 are known,
the matrix R may be defined:
R =




0
iT
1 i 0
jT
1 i 0
kT
1 i
0
iT
1 j 0
jT
1 j 0
kT
1 j
0
iT
1 k 0
jT
1 k 0
kT
1 k




0
i1, 0
j1, 0
k1: axes of F1 expressed in F0
i, j, k: axes of F0 .
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 15 / 80
Ridig Body Motion Rotations
Rotations
EXAMPLE
By projecting the unit vectors i1, j1, k1 on i0, j0, k0, the components of the
principal axes of F1 in F0 are obtained:



i1 = [0, 1/
√
2, −1/
√
2]T
j1 = [0, 1/
√
2, 1/
√
2]T
k1 = [1, 0, 0]T
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 16 / 80
Ridig Body Motion Rotations
Rotations
The rotation matrix between F0 and F1 is obtained from these three vectors:
R =


0 0 1
1√
2
1√
2
0
− 1√
2
1√
2
0


In general
x1 y1 z1
x0
y0
z0


r11 r12 r13
r21 r22 r23
r31 r32 r33


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 17 / 80
Ridig Body Motion Rotations
Rotations
Usually, in robotics the symbols n, s, a, are used to indicate the axes x1, y1, z1,
then
0
R1 = [0
n 0
s 0
a] =


nx sx ax
ny sy ay
nz sz az


defining the relative orientation between F0 and F1 .
Symbols n, s, a refer to a frame fixed on the end-
effector (e.g. gripper) with
z axis (a) along the approach direction
y axis (s) in the sliding plane of the fingers
x axis (n) in the normal direction with respect to
y, z.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 18 / 80
Ridig Body Motion Rotations
Rotations
Rotation matrix:
R = [n s a] =


nx sx ax
ny sy ay
nz sz az


From the conditions:
nT
a = sT
a = sT
n = 0
||n|| = ||s|| = ||a|| = 1
it follows that R is an orthonormal matrix, i.e.
R RT
= RT
R = I3 I3: 3 × 3 identity matrix
A rotation matrix is always invertible. By pre-multiplying by R−1
we have
R−1
= RT
i.e. 0
R−1
1 = 1
R0 = 0
RT
1
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 19 / 80
Ridig Body Motion Rotations
Elementary rotations
Consider two frames F0 and F1 with coincident origins.
Rotations of θ about the x0, y0, and z0 axes
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 20 / 80
Ridig Body Motion Rotations
Elementary rotations
In the first case, F1 is obtained with a rotation of an angle θ about the x0 axis of
F0 .
From
R =


0
iT
1 i 0
jT
1 i 0
kT
1 i
0
iT
1 j 0
jT
1 j 0
kT
1 j
0
iT
1 k 0
jT
1 k 0
kT
1 k


we have
0
R1 = Rot(x, θ) =


1 0 0
0 cos θ − sin θ
0 sin θ cos θ


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 21 / 80
Ridig Body Motion Rotations
Elementary rotations
Similarly, considering rotations about y0 and z0:
0
R1 = Rot(y, θ) =


cos θ 0 sin θ
0 1 0
− sinθ 0 cos θ


0
R1 = Rot(z, θ) =


cos θ − sin θ 0
sin θ cos θ 0
0 0 1


Rotation matrices R relate different reference frames.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 22 / 80
Ridig Body Motion Rotations
Rotations
Another interpretation for rotation matrices.
Let us consider a rotation of point 0
p1 = [7, 3, 2]T
by 90o
about z0.
The matrix expressing the rotation is
R1 = Rot(z, 90o
) =


cos 90o
− sin 90o
0
sin 90o
cos 90o
0
0 0 1


=


0 −1 0
1 0 0
0 0 1


Therefore:
0
p2 =


−3
7
2

 =


0 −1 0
1 0 0
0 0 1




7
3
2


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 23 / 80
Ridig Body Motion Rotations
Rotations
Consider now a second rotation of 90o
about y0:
0
p3 =


2
7
3

 = R2
0
p2 =


0 0 1
0 1 0
−1 0 0




−3
7
2


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 24 / 80
Ridig Body Motion Rotations
Rotations
By combining the two rotations one obtains
R = R2R1 =


0 0 1
0 1 0
−1 0 0




0 −1 0
1 0 0
0 0 1

 =


0 0 1
1 0 0
0 1 0


from which
0
p3 =


2
7
3

 = R 0
p1 =


0 0 1
1 0 0
0 1 0




7
3
2


Rotation matrices “rotates” vectors
with respect to a fixed reference frame.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 25 / 80
Ridig Body Motion Rotations
Axis/angle rotations
Rotation θ about a generic unit vector w = [wx wy wz]T
.
The rotation of the angle θ about w is equivalent
to the following procedure:
Aligne w with z0
Rotate by θ about w ≡ z0
Restore w in its original position.
Each rotation is performed with respect to F0 , then:
Rot(w, θ) = Rot(z0, α)Rot(y0, β)Rot(z0, θ)Rot(y0, −β)Rot(z0, −α)
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 26 / 80
Ridig Body Motion Rotations
Axis/angle rotations
Moreover, since ||w|| = 1, we have:
sin α =
wy
w2
x + w2
y
cos α =
wx
w2
x + w2
y
sin β = w2
x + w2
y cos β = wz
The matrix R representing the rotation is therefore given by
R(w, θ) =


wx wxVθ + Cθ wy wx Vθ − wz Sθ wz wxVθ + wy Sθ
wx wy Vθ + wz Sθ wy wy Vθ + Cθ wz wy Vθ − wxSθ
wx wz Vθ − wy Sθ wy wz Vθ + wxSθ wz wz Vθ + Cθ


being Cθ = cos θ, Sθ = sin θ, e Vθ = vers θ = 1 − cos θ.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 27 / 80
Ridig Body Motion Rotations
Proprieties of rotations
1. Not all the orthogonal matrices (RT
R = I) for which the following conditions
nT
a = sT
a = sT
n = 0
||n|| = ||s|| = ||a|| = 1
are satisfied represent rotations. For example, matrix
S =


1 0 0
0 −1 0
0 0 1


does not represent a rotation, but rather a “specular” transformation.
It is not possible, starting from F0 , to ob-
tain frame F1 with a rotation. F1 may be
obtained only by means of a specular reflec-
tion.
This is not physically feasible for a rigid
body.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 28 / 80
Ridig Body Motion Rotations
Proprieties of rotations
If matrix R represents a rigid body rotation, then
det(R) = 1
Because of their properties, the rotation matrices in IR3
belong to a “special set”,
the Special Orthogonal group of order 3, i.e. So(3).
More in general, the set of n × n matrices R satisfying the two conditions
RRT
= RT
R = I
det(R) = +1
is called So(n): Special Orthogonal group in IRn
=⇒ Special: det(R) = +1
=⇒ Orthogonal: RRT
= RT
R = I
So(n) = {R ∈ IRn×n
: RRT
= RT
R = I, det(R) = +1}
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 29 / 80
Ridig Body Motion Rotations
Proprieties of rotations
2. The equations
0
R1 = [ 0
n 0
s 0
a ] =


nx sx ax
ny sy ay
nz sz az

 0
R−1
1 = 1
R0 = 0
RT
1
allow to consider the relative rotation of two frames, and to transform in
F0 vectors defined in F1 . The expression of 1
p in F0 is given by:
0
p = 0
R1
1
p =


nx sx ax
ny sy ay
nz sz az

 1
p
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 30 / 80
Ridig Body Motion Rotations
Proprieties of rotations
The composition of more rotations is expressed by a simple matrix multiplication:
Given n + 1 reference frames F0 , ..., Fn with coincident origins and relative
orientation expressed by i−1
Ri , i = 1, . . . n, and given the vector n
p in Fn , then
0
p = 0
R1
1
R2...n−1
Rn
n
p
A note about computational complexity:
0
p = (0
R1
1
R2
2
R3) 3
p = 0
R3
3
p →
63 products
42 summations
0
p = (0
R1 (1
R2 (2
R3
3
p)
2p
)
1p
) →
27 products
18 summations
3. From 0
p = 0
R1
1
p it follows that a rotation applied to vector 1
p is a linear
function: 0
p = r(1
p) = 0
R1
1
p. Given two vectors p, q and two scalar
quantities a, b, we have
r(ap + bq) = ar(p) + br(q)
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 31 / 80
Ridig Body Motion Rotations
Proprieties of rotations
4. Rotations do not change the amplitude of a vector:
Ra = a
As a matter of fact:
Ra = aT
RT
Ra = aT
a = a
5. The inner product, and then the angle between two vectors, is invariant with
respect to rotations:
aT
b = (Ra)T
(Rb)
As a matter of fact:
(Ra)T
(Rb) = aT
RT
Rb = aT
b = a b cosθ
6. Since R is an orthogonal matrix, the following property holds
R(a × b) = Ra × Rb
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 32 / 80
Ridig Body Motion Rotations
Proprieties of rotations
7. In general, the product of rotation matrices does not commute:
RaRb = RbRa
Except the trivial case of the identity matrix (i.e. when R = I3), rotations
commute only if the rotation axis is the same!
Consider the two rotations by a 90o
angle about the x0 and y0 axes:
Ra = Rot(x, 900
) =


1 0 0
0 0 −1
0 1 0

 Rb = Rot(y, 90o
) =


0 0 1
0 1 0
−1 0 0


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 33 / 80
Ridig Body Motion Rotations
Proprieties of rotations
1)
2)
Case 1) Rb followed by Ra:
R = RbRa =


0 1 0
0 0 −1
−1 0 0


Case 2) Ra followed by Rb:
R = RaRb =


0 0 1
1 0 0
0 1 0


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 34 / 80
Ridig Body Motion Rotations
Proprieties of rotations
8. It may be of interest to define a sequence of rotations with respect to F0 , and
not with respect to the current frame Fi as assumed until now.
Consider two rotations R1 = Rot(y, φ) and R2 = Rot(z, θ)
about the axes y0 and z0 of F0 .
What is the result of applying first R1 and then R2?
Consider the vector 0
p in F0 . After the first rotation R1, the new expression of the
vector (still wrt F0 ) is
0
p1 = R1
0
p
Since also the second rotation is about an axis of F0 , we have
0
p2 = R2
0
p1 = R2 R1
0
p
More in general, given n consecutive rotations Ri , i = 1, . . . , n defined with respect to
the same reference frame F0 , then
0
pn = Rn Rn−1 . . . R1
0
p
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 35 / 80
Ridig Body Motion Rotations
Proprieties of rotations
Then, there are two different possibilities to define a sequence of consecutive
rotations:
1 If each rotation is expressed wrt the current frame Fn , Fn−1, . . . , F0 , then
the equivalent rotation matrix 0
Rn is obtained by post-multiplication of the
matrices i−1
Ri .
0
p = 0
R1
1
R2 . . . n−1
Rn
n
p
2 If matrices Ri , i = 1, . . . , n describe rotations about an axis of the base frame
F0 , the equivalent matrix is obtained by pre-multiplication of the matrices.
0
pn = Rn Rn−1 . . . R1
0
p
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 36 / 80
Ridig Body Motion Rotations
Interpretations of a rotation matrix
In summary, a rotation matrix 0
R1 has three equivalent interpretations:
1. 0
R1 describes the mutual orientation of two
reference frames F0 and F1 ; the columns of
0
R1 are the direction cosines of the axes of
F1 expressed in F0
2. 0
R1 defines the coordinate transformation
between the coordinates of a point
expressed in F0 and in F1 (common origin)
3. 0
R1 rotates a vector 0
va to 0
vb in a given
reference frame F0
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 37 / 80
Ridig Body Motion Rotations
Representations of rotations
A rotation is described with a 3 × 3 matrix with 9
elements:
R =


nx sx ax
ny sy ay
nz sz az


On the other hand, a rigid body in IR3
has 3 rotational dof
→
Three parameters should be sufficient
to describe its orientation
A 3 × 3 matrix, although computationally efficient, is redundant. Among the 9
elements of R one can define the following relations:
nT
a = sT
a = sT
n = 0
||n|| = ||s|| = ||a|| = 1
Note that it is sufficient to know 6 elements of R to define completely the matrix.
If only 5 (or less) elements are known, R cannot be determined univocally.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 38 / 80
Ridig Body Motion Rotations
Representations of rotations
Theoretically, only 3 parameters are sufficient to describe the orientation of a rigid
body in the 3D space.
There are representations based on 3 parameters only (minimal representations),
more “compact” than rotation matrices, although computationally less convenient.
Among these representations, we have:
Euler angles: three consecutive rotations about axes z, y′
, z′′
Roll, Pitch and Yaw angles: three consecutive rotations about axes z0, y0, x0
Axis/Angle representation: a unitary rotation axis r and the angle θ
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 39 / 80
Ridig Body Motion Rotations
Euler angles
Euler angles (φ, θ, ψ) represents three rotations, applied sequentially about the
axes z0, y1, z2 of the current frame F0 , F1 , F2 .
Consider a base frame F0 . By applying the three rotations we have
- A frame F1 obtained with the rotation φ about z0
- A frame F2 obtained from F1 with the rotation θ about y1
- A frame F3 obtaine from F2 with the rotation ψ about z2
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 40 / 80
Ridig Body Motion Rotations
Euler angles
By composing the three rotations, the total rotation from F0 to F3 is
0
R3 = REuler (φ, θ, ψ) = Rot(z0, φ)Rot(y1, θ)Rot(z2, ψ)
=


CφCθCψ − SφSψ −CφCθSψ − SφCψ CφSθ
SφCθCψ + CφSψ −SφCθSψ + CφCψ SφSθ
−SθCψ SθSψ Cθ


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 41 / 80
Ridig Body Motion Rotations
Euler angles
Rotation matrix corresponding to the Euler angles:
REuler (φ, θ, ψ) =


CφCθCψ − SφSψ −CφCθSψ − SφCψ CφSθ
SφCθCψ + CφSψ −SφCθSψ + CφCψ SφSθ
−SθCψ SθSψ Cθ


Inverse problem: compute the Euler angles corresponding to a given rotation
matrix R:
R =


r11 r12 r13
r21 r22 r23
r31 r32 r33

 → (φ, θ, ψ) ?
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 42 / 80
Ridig Body Motion Rotations
Atan2 function
arctan(y
x ) = arctan(−y
−x ), gives results in two quadrants (in [−π/2, +π/2])
atan2 is the arctangent with output values in the four quadrants:
two input arguments
gives values in [−π, +π]
undefined only for (0, 0)
uses the sign of both arguments to define the output quadrant
based on arctan function with output values in [−π/2, +π/2]
available in main languages (C++, Matlab, . . . )
atan2 (y, x) =



arctan(y/x) x > 0
π + arctan(y/x) y ≥ 0, x < 0
−π + arctan(y/x) y < 0, x < 0
π/2 y > 0, x = 0
−π/2 y < 0, x = 0
undefined y = 0, x = 0
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 43 / 80
Ridig Body Motion Rotations
Euler angles
Two cases are possible:
1 r2
13 + r2
23 = 0 → sin θ = 0. By assuming 0 < θ < π (sin θ > 0), one obtains:



φ = atan2 (r23, r13);
θ = atan2 ( r2
13 + r2
23, r33);
ψ = atan2 (r32, −r31)
or, with −π < θ < 0, (sin θ < 0):



φ = atan2 (−r23, −r13);
θ = atan2 (− r2
13 + r2
23, r33);
ψ = atan2 (−r32, r31)
Two possible sets of solutions depending on the sign of sin θ.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 44 / 80
Ridig Body Motion Rotations
Euler angles
2. r2
13 + r2
23 = 0 (θ = 0, π and cos θ = ±1). By choosing θ = 0 (cos θ = 1)
one obtains
θ = 0
φ + ψ = atan2 (r21, r11) = atan2 (−r12, r11);
On the other hand, if θ = π (cos θ = −1)
θ = π
φ − ψ = atan2 (−r21, −r11) = atan2 (−r12, −r11);
In both cases, infinite solutions are obtained (only the sum or difference of φ
and θ is known).
Being θ = 0, π, the rotations by the angles φ and ψ occur about parallel (the
same) axes, i.e. the z axis.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 45 / 80
Ridig Body Motion Rotations
Roll, Pitch, Yaw
Consider three consecutive rotations about the axes of the base frame F0 :
A rotation ψ about x0, (yaw),
A rotation θ about y0, (pitch)
A rotation φ about z0, (roll).
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 46 / 80
Ridig Body Motion Rotations
Roll, Pitch, Yaw
By properly composing the three rotations:
0
R3 = RRPY (φ, θ, ψ) = Rot(z0, φ)Rot(y0, θ)Rot(x0, ψ)
=


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ψ


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 47 / 80
Ridig Body Motion Rotations
Roll, Pitch, Yaw
Rotation matrix corresponding to the RPY angles:
RRPY (φ, θ, ψ) =


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ψ


Inverse problem: compute the RPY angles corresponding to a given rotation
matrix R:
R =


r11 r12 r13
r21 r22 r23
r31 r32 r33

 → (φ, θ, ψ) (?)
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 48 / 80
Ridig Body Motion Rotations
Roll, Pitch, Yaw
Two cases are possible:
1 r2
11 + r2
21 = 0 → cos θ = 0. By choosing θ ∈ [−π/2, π/2], one obtains:



φ = atan2 (r21, r11);
θ = atan2 (−r31, r2
32 + r2
33);
ψ = atan2 (r32, r33);
Otherwise, if θ ∈ [π/2, 3π/2]:



φ = atan2 (−r21, −r11);
θ = atan2 (−r31, − r2
32 + r2
33);
ψ = atan2 (−r32, −r33);
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 49 / 80
Ridig Body Motion Rotations
Roll, Pitch, Yaw
2. r2
11 + r2
21 = 0 → cos θ = 0: θ = ±π/2 and infinite solutions are possible
(sum or difference of ψ and φ).
It may be convenient to (arbitrarily) assign a value (e.g. ±90o
) to one of the
two angles (φ or ψ) a ±90o
and then compute the remaining one:
θ = ±π/2;
φ − ψ = atan2 (r23, r13) = atan2 (−r12, r22);
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 50 / 80
Ridig Body Motion Rotations
Angle/Axis representation
It is possible to describe any rotation in 3D by means of the rotation angle θ and
the corresponding rotation axis w
R =


w2
x (1 − Cθ) + Cθ wx wy (1 − Cθ) − wz Sθ wx wz (1 − Cθ) + wy Sθ
wx wy (1 − Cθ) + wz Sθ w2
y (1 − Cθ) + Cθ wy wz (1 − Cθ) − wx Sθ
wx wz (1 − Cθ) − wy Sθ wy wz (1 − Cθ) + wx Sθ w2
z (1 − Cθ) + Cθ


4 parameters: wx, wy , wz, θ
with the condition: w2
x + w2
y + w2
z = 1
=⇒ 3 dof
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 51 / 80
Ridig Body Motion Rotations
Angle/Axis representation
Inverse problem: compute the axis w and the angle θ corresponding to a given
rotation matrix R:
θ = acos
r11 + r22 + r33 − 1
2
w =
1
2 sin θ


r32 − r23
r13 − r31
r21 − r12


The trace of a rotation matrix depends only on the (cosine of) rotation angle.
This representation suffers of some drawbacks:
It is not unique: Rot(w, θ) = Rot(−w, −θ)
(we can arbitrarily assume 0 ≤ θ ≤ π)
If θ = 0 then Rot(w, 0) = I3 and w is indefinite
There are numerical problems if θ ≈ 0: in this case sin θ ≈ 0 and problems
may arise in computing w
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 52 / 80
Ridig Body Motion Rotations
Example
Compute the rotation matrix corresponding to the RPY angles 0o
, 45o
, 90o
, i.e.:
1 A rotation of 90o
about x0, (yaw)
2 A rotation of 45o
about y0, (pitch)
3 A rotation of 0o
about z0, (roll)
RPY rotations: roll = 0o , pitch = 45o , yaw = 90o
One obtains:
R =


1√
2
1√
2
0
0 0 −1
− 1√
2
1√
2
0


C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 53 / 80
Ridig Body Motion Rotations
Example
R =


1√
2
1√
2
0
0 0 −1
− 1√
2
1√
2
0


RPY rotations: roll = 0o , pitch = 45o , yaw = 90o
• The Euler angles corresponding to this rotation matrix are
φ = −90o
; θ = 90o
; ψ = 45o
• Considering the Angle/Axis representation, one obtains:
rotation of the angle θ = 98.42o
about the axis w = [0.863, 0.357, −0.357]T
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 54 / 80
Ridig Body Motion Rotations
Ridig Body Motion – Homogeneous Transformations
Translations
Claudio Melchiorri
Dipartimento di Elettronica, Informatica e Sistemistica (DEIS)
Universit`a di Bologna
email: claudio.melchiorri@unibo.it
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 55 / 80
Ridig Body Motion Translations
Translations
Rotations between two coordinate frames can be expressed in matrix form:
0
p = R 1
p
This is not possible for translations! → It is not possible to define a 3 × 3 matrix
P so that a translation can be expressed as a matrix/vector multiplication
0
p = P 1
p =⇒ not possible!!
A translation of a vector 0
p by 0
o corresponds to a
vectorial summation
0
q = 0
p + 0
o
Then
0
qx = 0
px + 0
ox
0
qy = 0
py + 0
oy
0
qz = 0
pz + 0
oz
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 56 / 80
Ridig Body Motion Translations
Translations
Then, a translation is expressed as a function t(p) = p + o
In general: t(ap + bq) = ap + bq + o = at(p) + bt(q)
Then, translations are not linear transformations!
The most general transformation between two coordinate frames cannot be
represented by a 3 × 3 matrix.
The composition of a rotation and a
translation is obtained from
0
q = 0
p + 0
o
by considering vector p defined in F1 , ro-
tated and translated with respect to F0 .
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 57 / 80
Ridig Body Motion Translations
Translations
Since vectors can be added only if they are defined with respect to the same
coordinate system:
0
p = 0
R1
1
p + 0
o1
being 0
o1 the translation from F0 to F1 and 0
R1 the mutual rotation.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 58 / 80
Ridig Body Motion
Ridig Body Motion – Homogeneous Transformations
Homogeneous transformations
Claudio Melchiorri
Dipartimento di Elettronica, Informatica e Sistemistica (DEIS)
Universit`a di Bologna
email: claudio.melchiorri@unibo.it
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 59 / 80
Homogeneous transformations
Homogeneous transformations
It is of interest to put in matrix form the equation
0
p = 0
R1
1
p + 0
o1
since, in case of successive transformations, one could obtain expressions similar to
0
p = 0
R1
1
R2...n−1
Rn
n
p
For this purpose, it is possible to add to matrix R the vector 0
o as fourth column;
in this manner a 3 × 4 matrix is obtained
M = [n s a 0
o1] = [R 0
o1]
A square matrix is obtained by adding to M the row [0 0 0 1].
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 60 / 80
Homogeneous transformations
Homogeneous transformations
The Homogeneous Transformation Matrix 0
T1 is obtained
0
T1 =
0
R1
0
o1
0 0 0 1
=




nx sx ax ox
ny sy ay oy
nz sz az oz
0 0 0 1




This matrix represents the transformation (rotation-translation) between F0 and
F1 .
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 61 / 80
Homogeneous transformations
Homogeneous transformations
By defining the homogeneous 4-dimensional (in IR4
) vector:
[pT
1]T
= [px py pz 1]T
one obtains
0
p
1
= 0
T1
1
p
1
=
0
R1
1
p + 0
o1
1
The subspace IR3
defined by the first three components represents the
transformation 0
p = 0
R1
1
p + 0
o1 on vectors in IR3
, and physically represents
the rigid body motion from F1 to F0 ; the fourth component is not affected by
the matrix multiplication.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 62 / 80
Homogeneous transformations
Homogeneous transformations
Given the homogeneous transformation matrices 0
T1, from F1 to F0 , and 1
T2,
from F2 to F1 , the composition
0
T2 = 0
T1
1
T2
can be applied to vectors [ 2
pT
1]T
defined in F2 , and the result is
0
T1(1
T2
2
p
1
) = 0
T1
1
R2
2
p + 1
o2
1
=
0
R1
1
R2
2
p + 0
R1
1
o2 + 0
o
1
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 63 / 80
Homogeneous transformations
Homogeneous transformations
This is equivalent to the product of the homogeneous matrix
0
T2 =
0
R1
1
R2
0
R1
1
o2 + 0
o
0 0 0 1
= 0
T1
1
T2
with the vector [ 2
pT
1]T
.
In general we have
0
Tn = 0
T1
1
T2 . . . n−1
Tn
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 64 / 80
Homogeneous transformations
Homogeneous transformation of coordinates
The coordinate transformation bewteen two reference frames F0 and F1 may be
expressed by a 4 × 4 matrix 0
T1:
0
p = 0
T1
1
p
Of particular interest are the elementary transformations, i.e. simple rotations or
translations along the coordinate axes.
All the coordinate transformations may be obtained by combinations of these
elementary transformations.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 65 / 80
Homogeneous transformations
Elementary rotations and translations
The homogeneous transformation matrices corresponding to rotations of an angle
θ about the axes x, y, z of F0 are:
Rot(x, θ)=



1 0 0 0
0 Cθ −Sθ 0
0 Sθ Cθ 0
0 0 0 1


 , Rot(y, θ)=



Cθ 0 Sθ 0
0 1 0 0
−Sθ 0 Cθ 0
0 0 0 1


 , Rot(z, θ)=



Cθ −Sθ 0 0
Sθ Cθ 0 0
0 0 1 0
0 0 0 1



being Cθ = cos θ, Sθ = sin θ.
The homogeneous transformation T corresponding to the translation of vector
v = [vx vy vz ]T
is
T = Trasl(v) =




1 0 0 vx
0 1 0 vy
0 0 1 vz
0 0 0 1




C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 66 / 80
Homogeneous transformations
Example
The frame F1 , with respect to F0 , is translated of
1 along x0 and of 3 along y0 , moreover, it is rotated
by 30o
about z0.
The transformation matrix from F1 to F0 is
0
T1 =




0.866 −0.500 0 1
0.500 0.866 0 3
0 0 1 0
0 0 0 1




C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 67 / 80
Homogeneous transformations
Example
Consider a point defined in F1 by
1
p =


2
1
0


Its coordinates in F0 are
0
p = 0
T1
1
p =




0.866 −0.500 0 1
0.500 0.866 0 3
0 0 1 0
0 0 0 1








2
1
0
1



 =




2.232
4.866
0
1




C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 68 / 80
Homogeneous transformations
Example
Consider the point in F0
0
pa =


2
1
0


Let us apply to 0
p a translation of 1 along x0, of 3 along y0; then rotate the vector
by 30o
about z0. The result is obtained by multiplying vector 0
p by the matrix
T =




0.866 −0.500 0 1
0.500 0.866 0 3
0 0 1 0
0 0 0 1




C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 69 / 80
Homogeneous transformations
Example
Then
0
pb = T 0
pa = T =




0.866 −0.500 0 1
0.500 0.866 0 3
0 0 1 0
0 0 0 1








2
1
0
1



 =




2.232
4.866
0
1




The same numerical result is obtained, although the physical interpretation is
different.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 70 / 80
Homogeneous transformations
Interpretations of a homogeneous transformation matrix
Similarly to rotation matrices, also an homogeneous transformation matrix 0
T1
0
T1 =
0
R1
0
v
0 0 0 1
has three possible physical interpretations:
1 Description of F1 in F0 : in particular 0
v represents the origin of F1 with
respect to F0 , and the elements of 0
R1 give the direction of the axes of F1
2 Coordinate transformation of vectors between F1 and F0 , 1
p → 0
p;
3 Translates and rotates a generic vector 0
pa to 0
pb in a given reference frame
F0
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 71 / 80
Homogeneous transformations
Inverse transformation
Once the position/orientation of F1 with respect to F0 are known, defined by the
homogeneous transformation matrix 0
T1, it is simple to compute the inverse
transformation 1
T0 = (0
T1)−1
, defining the position/orientation of F0 with
respect to F1 .
From
0
T1
1
T0 = I4
it follows that
1
T0 =
0
RT
1 −0
RT
1 v
0 0 0 1
=




nx ny nz −vT
n
sx sy sz −vT
s
ax ay az −vT
a
0 0 0 1




C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 72 / 80
Homogeneous transformations
Inverse transformation
As a matter of fact, if
1
T0 =
M x
0 0 0 1
then
R v
0 0 0 1
M x
0 0 0 1
=




1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1




and therefore
I3 = RM
0 = Rx + v
=⇒
M = RT
x = −RT
v
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 73 / 80
Homogeneous transformations
Example
Given
T =




0 0 1 2
1 0 0 1
0 1 0 0
0 0 0 1




compute its inverse transformation.
Solution:
T−1
= RT
−RT
v
0 0 0 1
=



nx ny nz −vT
n
sx sy sz −vT
s
ax ay az −vT
a
0 0 0 1


 =



0 1 0 −1
0 0 1 0
1 0 0 −2
0 0 0 1



C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 74 / 80
Homogeneous transformations
Homogeneous transformations
The term homogeneous derives from projective geometry.
Equations describing lines and planes in projective geometry in IR3
are
homogeneous in the four variables x1, x2, x3, x4 in IR4
.
In IR3
these equations, affine transformations, are non homogeneous in
x1, x2, x3, (lines or planes not passing through the origin present a constant
term - non function of x1, x2, x3 - in their expression).
In general, computations of an affine transformations in IRn−1
may be
expressed as homogeneous linear transformations in IRn
:
0
p = 0
R1
1
p + 0
o1 affine transformation
0
p′
=
0
p
1
=
0
R1
0
o1
0 1
1
p
1
homogeneous transformation
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 75 / 80
Homogeneous transformations
Homogeneous transformations
The most general expression for an homogeneous transformation is
T =
D3×3 p3×1
f1×3 s
=
Deformation Translation
Perspective Scale
Note the terms D, f1×3 and s.
These quantities, in robotics, are alway assumed as:
A rotation matrix (D = R),
The null vector [0 0 0] (f1×3 = [0 0 0]),
The unit gain (s = 1)
In other cases (e.g. computer graphics), these quantities are used to obtain
deformations, perspective distortions, change of scaling factors, and so on (in
general: effects non applicable to rigid bodies).
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 76 / 80
Homogeneous transformations
Example
Consider the transformation matrix
T =




a 0 0 0
0 b 0 0
0 0 c 0
0 0 0 1




This transformation applies a different “gain” along the three reference axes
x, y, z. A deformation of the body is obtained.
Point p = [1, 1, 1]T
is transformed to
p1 = T p =




a 0 0 0
0 b 0 0
0 0 c 0
0 0 0 1








1
1
1
1



 =




a
b
c
1




With this matrix, a cube is transformed in a parallelepiped.
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 77 / 80
Homogeneous transformations
Example
Similarly, the transformation
T =




1 0 0 0
0 1 0 0
0 0 1 0
0 −1
f
0 1




performs a perspective transformation along y. The coordinates x, y, z of a point
p are transformed in
x′
=
x
1 − y/f
y′
=
y
1 − y/f
z′
=
z
1 − y/f
0 10 20 30 40 50 60 70 80
0
10
20
30
40
50
60
70
80
x
y
z
f = −20
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 78 / 80
Homogeneous transformations
Equations with homogeneous transformations
Usually, in robotics it is necessary to specify the position/orientation of an object
with respect to different reference frames (e.g. wrt to the end-effector, to the base
frame, to other machines/tools, . . . ).
The following equation must be verified if the robot has to grasp the object:
B B
T6E = OG
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 79 / 80
Homogeneous transformations
Equations with homogeneous transformations
B B
T6E = OG
Usually, matrices B, O, G, E are known (and constant). Therefore, the equation
can be solved in terms of B
T6
B
T6 = B−1
OGE−1
The robot configuration is then obtained.
Otherwise, the object position O (if not known) can be computed as
O = B B
T6EG−1
C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 80 / 80

More Related Content

What's hot

Multi degree of freedom systems
Multi degree of freedom systemsMulti degree of freedom systems
Multi degree of freedom systems
YeltsinHUAMANAQUINO1
 
Lateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beamLateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beam
M. Ahmad
 
Torsional vibrations
Torsional  vibrationsTorsional  vibrations
Torsional vibrations
M.D.Raj Kamal
 
Robotics
RoboticsRobotics
Robotics
Deepam Goyal
 
Manipulator Jacobian
Manipulator JacobianManipulator Jacobian
Manipulator Jacobian
Hitesh Mohapatra
 
Modern Control - Lec 02 - Mathematical Modeling of Systems
Modern Control - Lec 02 - Mathematical Modeling of SystemsModern Control - Lec 02 - Mathematical Modeling of Systems
Modern Control - Lec 02 - Mathematical Modeling of Systems
Amr E. Mohamed
 
DYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBE
DYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBEDYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBE
DYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBE
KIT-Kalaignar Karunanidhi Institute of Technology
 
Introduction of control engineering
Introduction of control engineeringIntroduction of control engineering
Introduction of control engineering
Ashvani Shukla
 
Chapter 2 robot kinematics
Chapter 2   robot kinematicsChapter 2   robot kinematics
Chapter 2 robot kinematics
nguyendattdh
 
Dynamics of Machines - Unit III - Longitudinal Vibration
Dynamics of Machines - Unit III - Longitudinal VibrationDynamics of Machines - Unit III - Longitudinal Vibration
Dynamics of Machines - Unit III - Longitudinal Vibration
Dr.S.SURESH
 
two degree of freddom system
two degree of freddom systemtwo degree of freddom system
two degree of freddom system
Yash Patel
 
COMMUTATOR MOTOR
COMMUTATOR MOTORCOMMUTATOR MOTOR
COMMUTATOR MOTOR
vishalgohel12195
 
Robot manipulator
Robot manipulatorRobot manipulator
Robot manipulator
Ganesh Murugan
 
Exercise 1a transfer functions - solutions
Exercise 1a   transfer functions - solutionsExercise 1a   transfer functions - solutions
Exercise 1a transfer functions - solutions
wondimu wolde
 
Force Damped Vibrations
Force Damped VibrationsForce Damped Vibrations
Force Damped Vibrations
Manthan Kanani
 
Robot Manipulation Basics
Robot Manipulation BasicsRobot Manipulation Basics
Robot Manipulation Basics
Robots Alive India
 
continous system
continous systemcontinous system
continous system
amrit raj
 
Introduction to control system 1
Introduction to control system 1Introduction to control system 1
Introduction to control system 1
turna67
 
single degree of freedom systems forced vibrations
single degree of freedom systems forced vibrations single degree of freedom systems forced vibrations
single degree of freedom systems forced vibrations
KESHAV
 
Ec6003 robotics and automation notes
Ec6003   robotics and automation notesEc6003   robotics and automation notes
Ec6003 robotics and automation notes
JAIGANESH SEKAR
 

What's hot (20)

Multi degree of freedom systems
Multi degree of freedom systemsMulti degree of freedom systems
Multi degree of freedom systems
 
Lateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beamLateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beam
 
Torsional vibrations
Torsional  vibrationsTorsional  vibrations
Torsional vibrations
 
Robotics
RoboticsRobotics
Robotics
 
Manipulator Jacobian
Manipulator JacobianManipulator Jacobian
Manipulator Jacobian
 
Modern Control - Lec 02 - Mathematical Modeling of Systems
Modern Control - Lec 02 - Mathematical Modeling of SystemsModern Control - Lec 02 - Mathematical Modeling of Systems
Modern Control - Lec 02 - Mathematical Modeling of Systems
 
DYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBE
DYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBEDYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBE
DYNAMICS OF MACHINES UNIT -3&4 BY Mr.P.RAMACHANDRAN/AP/MECH/KIT/CBE
 
Introduction of control engineering
Introduction of control engineeringIntroduction of control engineering
Introduction of control engineering
 
Chapter 2 robot kinematics
Chapter 2   robot kinematicsChapter 2   robot kinematics
Chapter 2 robot kinematics
 
Dynamics of Machines - Unit III - Longitudinal Vibration
Dynamics of Machines - Unit III - Longitudinal VibrationDynamics of Machines - Unit III - Longitudinal Vibration
Dynamics of Machines - Unit III - Longitudinal Vibration
 
two degree of freddom system
two degree of freddom systemtwo degree of freddom system
two degree of freddom system
 
COMMUTATOR MOTOR
COMMUTATOR MOTORCOMMUTATOR MOTOR
COMMUTATOR MOTOR
 
Robot manipulator
Robot manipulatorRobot manipulator
Robot manipulator
 
Exercise 1a transfer functions - solutions
Exercise 1a   transfer functions - solutionsExercise 1a   transfer functions - solutions
Exercise 1a transfer functions - solutions
 
Force Damped Vibrations
Force Damped VibrationsForce Damped Vibrations
Force Damped Vibrations
 
Robot Manipulation Basics
Robot Manipulation BasicsRobot Manipulation Basics
Robot Manipulation Basics
 
continous system
continous systemcontinous system
continous system
 
Introduction to control system 1
Introduction to control system 1Introduction to control system 1
Introduction to control system 1
 
single degree of freedom systems forced vibrations
single degree of freedom systems forced vibrations single degree of freedom systems forced vibrations
single degree of freedom systems forced vibrations
 
Ec6003 robotics and automation notes
Ec6003   robotics and automation notesEc6003   robotics and automation notes
Ec6003 robotics and automation notes
 

Similar to Fir 03 rbody

Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...
Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...
Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...
inventionjournals
 
Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)
Amarildo Pasha
 
Fir 04 kinem
Fir 04 kinemFir 04 kinem
Fir 04 kinem
Praveen Djadhav
 
2.1. fundamental of computer graphics
2.1. fundamental of computer graphics2.1. fundamental of computer graphics
2.1. fundamental of computer graphics
Ratnadeepsinh Jadeja
 
6 dof.pdf
6 dof.pdf6 dof.pdf
6 dof.pdf
anu200770
 
2A_ROBOT KINEMATICS.pptx
2A_ROBOT KINEMATICS.pptx2A_ROBOT KINEMATICS.pptx
2A_ROBOT KINEMATICS.pptx
TanujBanerji1
 
Angular momentum
Angular momentumAngular momentum
Angular momentum
jamilmalik19
 
2d transformation
2d transformation2d transformation
2d transformation
Sarkunavathi Aribal
 
v2chap2.pdf
v2chap2.pdfv2chap2.pdf
v2chap2.pdf
RicardoGulapa1
 
robot kinematics
robot kinematicsrobot kinematics
robot kinematics
Sumit Kumar
 
7600088.ppt
7600088.ppt7600088.ppt
7600088.ppt
MUST
 
09transformation3d
09transformation3d09transformation3d
09transformation3d
Ketan Jani
 
transformation 3d
transformation 3dtransformation 3d
transformation 3d
HiteshJain007
 
kinematics_lec1.ppt
kinematics_lec1.pptkinematics_lec1.ppt
kinematics_lec1.ppt
Abhishek597701
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
SHIVANI SONI
 
Centroid and Moment of Inertia from mechanics of material by hibbler related ...
Centroid and Moment of Inertia from mechanics of material by hibbler related ...Centroid and Moment of Inertia from mechanics of material by hibbler related ...
Centroid and Moment of Inertia from mechanics of material by hibbler related ...
FREE LAUNCER
 
How to Prepare Rotational Motion (Physics) for JEE Main
How to Prepare Rotational Motion (Physics) for JEE MainHow to Prepare Rotational Motion (Physics) for JEE Main
How to Prepare Rotational Motion (Physics) for JEE Main
Ednexa
 
Robotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse KinematicsRobotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse Kinematics
Damian T. Gordon
 
Kinematics final
Kinematics finalKinematics final
Kinematics final
Angga Fajarianto
 
Corpo rigido
Corpo rigidoCorpo rigido
Corpo rigido
elysioruggeri
 

Similar to Fir 03 rbody (20)

Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...
Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...
Stereo 3D Simulation of Rigid Body Inertia Ellipsoid for The Purpose of Unman...
 
Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)
 
Fir 04 kinem
Fir 04 kinemFir 04 kinem
Fir 04 kinem
 
2.1. fundamental of computer graphics
2.1. fundamental of computer graphics2.1. fundamental of computer graphics
2.1. fundamental of computer graphics
 
6 dof.pdf
6 dof.pdf6 dof.pdf
6 dof.pdf
 
2A_ROBOT KINEMATICS.pptx
2A_ROBOT KINEMATICS.pptx2A_ROBOT KINEMATICS.pptx
2A_ROBOT KINEMATICS.pptx
 
Angular momentum
Angular momentumAngular momentum
Angular momentum
 
2d transformation
2d transformation2d transformation
2d transformation
 
v2chap2.pdf
v2chap2.pdfv2chap2.pdf
v2chap2.pdf
 
robot kinematics
robot kinematicsrobot kinematics
robot kinematics
 
7600088.ppt
7600088.ppt7600088.ppt
7600088.ppt
 
09transformation3d
09transformation3d09transformation3d
09transformation3d
 
transformation 3d
transformation 3dtransformation 3d
transformation 3d
 
kinematics_lec1.ppt
kinematics_lec1.pptkinematics_lec1.ppt
kinematics_lec1.ppt
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
 
Centroid and Moment of Inertia from mechanics of material by hibbler related ...
Centroid and Moment of Inertia from mechanics of material by hibbler related ...Centroid and Moment of Inertia from mechanics of material by hibbler related ...
Centroid and Moment of Inertia from mechanics of material by hibbler related ...
 
How to Prepare Rotational Motion (Physics) for JEE Main
How to Prepare Rotational Motion (Physics) for JEE MainHow to Prepare Rotational Motion (Physics) for JEE Main
How to Prepare Rotational Motion (Physics) for JEE Main
 
Robotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse KinematicsRobotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse Kinematics
 
Kinematics final
Kinematics finalKinematics final
Kinematics final
 
Corpo rigido
Corpo rigidoCorpo rigido
Corpo rigido
 

More from Praveen Djadhav

Santosh g kelshekar hyd pumping theory
Santosh g kelshekar  hyd pumping theorySantosh g kelshekar  hyd pumping theory
Santosh g kelshekar hyd pumping theory
Praveen Djadhav
 
Prof.n.nagraj pneumatic control
Prof.n.nagraj pneumatic controlProf.n.nagraj pneumatic control
Prof.n.nagraj pneumatic control
Praveen Djadhav
 
Hydraulic cylinder e_notes
Hydraulic cylinder e_notesHydraulic cylinder e_notes
Hydraulic cylinder e_notes
Praveen Djadhav
 
Hydra&amp;pneum ramani pumptypes and operations
Hydra&amp;pneum ramani pumptypes and operationsHydra&amp;pneum ramani pumptypes and operations
Hydra&amp;pneum ramani pumptypes and operations
Praveen Djadhav
 
Cylinder presentation2
Cylinder presentation2Cylinder presentation2
Cylinder presentation2
Praveen Djadhav
 
Analog readserial
Analog readserialAnalog readserial
Analog readserial
Praveen Djadhav
 
Lecture 22&amp;23
Lecture 22&amp;23Lecture 22&amp;23
Lecture 22&amp;23
Praveen Djadhav
 
Lecture 22&amp;23 (1)
Lecture 22&amp;23 (1)Lecture 22&amp;23 (1)
Lecture 22&amp;23 (1)
Praveen Djadhav
 
Lecture 21
Lecture 21Lecture 21
Lecture 21
Praveen Djadhav
 
Lecture 20
Lecture 20Lecture 20
Lecture 20
Praveen Djadhav
 
Lecture 19
Lecture 19Lecture 19
Lecture 19
Praveen Djadhav
 
Lecture 18
Lecture 18Lecture 18
Lecture 18
Praveen Djadhav
 
Lecture 17
Lecture 17Lecture 17
Lecture 17
Praveen Djadhav
 
Lecture 16
Lecture 16Lecture 16
Lecture 16
Praveen Djadhav
 
Lecture 15
Lecture 15Lecture 15
Lecture 15
Praveen Djadhav
 
Lecture 6
Lecture 6Lecture 6
Lecture 6
Praveen Djadhav
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
Praveen Djadhav
 
Lecture 4 (1)
Lecture 4 (1)Lecture 4 (1)
Lecture 4 (1)
Praveen Djadhav
 
Actuators3
Actuators3Actuators3
Actuators3
Praveen Djadhav
 
Actuators2
Actuators2Actuators2
Actuators2
Praveen Djadhav
 

More from Praveen Djadhav (20)

Santosh g kelshekar hyd pumping theory
Santosh g kelshekar  hyd pumping theorySantosh g kelshekar  hyd pumping theory
Santosh g kelshekar hyd pumping theory
 
Prof.n.nagraj pneumatic control
Prof.n.nagraj pneumatic controlProf.n.nagraj pneumatic control
Prof.n.nagraj pneumatic control
 
Hydraulic cylinder e_notes
Hydraulic cylinder e_notesHydraulic cylinder e_notes
Hydraulic cylinder e_notes
 
Hydra&amp;pneum ramani pumptypes and operations
Hydra&amp;pneum ramani pumptypes and operationsHydra&amp;pneum ramani pumptypes and operations
Hydra&amp;pneum ramani pumptypes and operations
 
Cylinder presentation2
Cylinder presentation2Cylinder presentation2
Cylinder presentation2
 
Analog readserial
Analog readserialAnalog readserial
Analog readserial
 
Lecture 22&amp;23
Lecture 22&amp;23Lecture 22&amp;23
Lecture 22&amp;23
 
Lecture 22&amp;23 (1)
Lecture 22&amp;23 (1)Lecture 22&amp;23 (1)
Lecture 22&amp;23 (1)
 
Lecture 21
Lecture 21Lecture 21
Lecture 21
 
Lecture 20
Lecture 20Lecture 20
Lecture 20
 
Lecture 19
Lecture 19Lecture 19
Lecture 19
 
Lecture 18
Lecture 18Lecture 18
Lecture 18
 
Lecture 17
Lecture 17Lecture 17
Lecture 17
 
Lecture 16
Lecture 16Lecture 16
Lecture 16
 
Lecture 15
Lecture 15Lecture 15
Lecture 15
 
Lecture 6
Lecture 6Lecture 6
Lecture 6
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Lecture 4 (1)
Lecture 4 (1)Lecture 4 (1)
Lecture 4 (1)
 
Actuators3
Actuators3Actuators3
Actuators3
 
Actuators2
Actuators2Actuators2
Actuators2
 

Recently uploaded

spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Yasser Mahgoub
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
NazakatAliKhoso2
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
KrishnaveniKrishnara1
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
NidhalKahouli2
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 

Recently uploaded (20)

spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 

Fir 03 rbody

  • 1. Ridig Body Motion – Homogeneous Transformations Claudio Melchiorri Dipartimento di Elettronica, Informatica e Sistemistica (DEIS) Universit`a di Bologna email: claudio.melchiorri@unibo.it C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 1 / 80
  • 2. Summary 1 Ridig Body Motion Rotations Translations 2 Homogeneous transformations C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 2 / 80
  • 3. Ridig Body Motion Ridig Body Motion – Homogeneous Transformations Ridig Body Motion Claudio Melchiorri Dipartimento di Elettronica, Informatica e Sistemistica (DEIS) Universit`a di Bologna email: claudio.melchiorri@unibo.it C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 3 / 80
  • 4. Ridig Body Motion Rigid body motions - Homogeneous transformations Description of the manipulator kinematic properties: Description of the geometric characteristics of the robot’s motion (position, velocity, acceleration), without considering the forces applied to it The solution of the kinematic problem is based on: definition of a reference frame associated to each link of the manipulator a procedure for the computation of the relative motion (position, velocity, acceleration) of these frames due to joints’ movements. It is necessary to introduce some conventions to describe the position/orientation of rigid bodies and their motion in the space: kinematic properties of a rigid body and how to describe them homogenous transformations description of position and velocity (force) vectors in different reference frames. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 4 / 80
  • 5. Ridig Body Motion Rigid body and its representation A manipulator is composed by a series of rigid bodies, the links, connected by joints that allow a relative motion. RIGID BODY: idealization of a solid body of fi- nite size in which deformation is neglected: the distance between any two given points of a rigid body remains constant in time regardless of exter- nal forces exerted on it. ||p(t) − q(t)|| = d(p(t), q(t)) = cost C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 5 / 80
  • 6. Ridig Body Motion Rigid body and its representation Some assumptions: The 3D operational space is represented by the vector space IR3 , In the 3D space, are defined the inner product uT v = n i=1 ui vi = ||u||||v|| cos θ u, v ∈ IRn and the Euclidean norm ||u|| = uT u = n i=1 u2 i u ∈ IRn We often use Cartesian (right-handed) reference frames, with homogenous dimensions along the axes The base frame is an inertial frame. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 6 / 80
  • 7. Ridig Body Motion Rigid body and its representation General definition of norm: u = uT W u being W a matrix: symmetric positive definite Often, W is a diagonal matrix. Since W = VT V, then: u = uT W u = (uT VT )(Vu) = xT x C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 7 / 80
  • 8. Ridig Body Motion Rigid body and its representation In IR3 , a rigid body has 6 degrees of freedom (dof): 3 for the position, x, y, z; 3 for the orientation, α, β, γ. In general, a rigid body in IRn has n dof for the position n(n − 1)/2 dof for the orientation C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 8 / 80
  • 9. Ridig Body Motion Rigid body and its representation Roto-translation motion: most general motion of a rigid body in the space, composed by a rotation about an axis (instantaneous axis of rotation) and a translation along the same axis. Problem of describing the instantaneous position/orientation of a rigid body with respect to a fixed base frame Let 0 o1 be the origin of the frame F1 fixed to the rigid body, expressed in F0 . Each point of the body has coordinates 1 p = [1 px 1 py 1 pz ]T constant with respect to F1 . Since the body moves, the same point has coor- dinates 0 p, expressed in F0 , variable in time 0 p = [0 px 0 py 0 pz ]T C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 9 / 80
  • 10. Ridig Body Motion Rigid body and its representation First problem: if point p is known in F1 , compute the equivalent represen- tation in F0 . 1 p =⇒ 0 p The problem is solved by using the Homogeneous Transformation Matrix 0 T1: 0 T1 = 0 R1 0 o1 0 0 0 1 =     nx sx ax ox ny sy ay oy nz sz az oz 0 0 0 1     defining the transformation (roto-translation) between F1 and F0 . C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 10 / 80
  • 11. Ridig Body Motion Rigid body and its representation The problem is decomposed into two parts: 1 F0 and F1 share the same origin, and have a different orientation in space 2 F0 and F1 have parallel axes but a different origin (translation). C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 11 / 80
  • 12. Ridig Body Motion Ridig Body Motion – Homogeneous Transformations Rotations Claudio Melchiorri Dipartimento di Elettronica, Informatica e Sistemistica (DEIS) Universit`a di Bologna email: claudio.melchiorri@unibo.it C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 12 / 80
  • 13. Ridig Body Motion Rotations Rotations Consider two reference frames F0 and F1 with the same origin, i.e. o1 ≡ o0. Given a vector 0 v in F0 , its components vx , vy , vz are the orthogonal projections of 0 v on the coordinate axes. vx = 0 vT i = ||0 v|| cos α1 vy = 0 vT j = ||0 v|| cosα2 vz = 0 vT k = ||0 v|| cos α3 i, j, k: unit vectors defining the directions of x0, y0, z0 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 13 / 80
  • 14. Ridig Body Motion Rotations Rotations If 0 v indicates an axis of F1 , e.g. 0 i1, then 0 i1 = [0 ix 0 ij 0 iz]T , where 0 ix = 0 iT 1 i = cos α1 0 iy = 0 iT 1 j = cos α2 0 iz = 0 iT 1 k = cos α3 This is a well known result: 0 i1 = [cos α1, cos α2, cos α3]T the components of a unit vector with respect to a reference frame are its direction cosines. A similar results holds for the other directions 0 j1 and 0 k1. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 14 / 80
  • 15. Ridig Body Motion Rotations Rotations Once the direction cosines of the three axes of F1 with respect to F0 are known, the matrix R may be defined: R =     0 iT 1 i 0 jT 1 i 0 kT 1 i 0 iT 1 j 0 jT 1 j 0 kT 1 j 0 iT 1 k 0 jT 1 k 0 kT 1 k     0 i1, 0 j1, 0 k1: axes of F1 expressed in F0 i, j, k: axes of F0 . C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 15 / 80
  • 16. Ridig Body Motion Rotations Rotations EXAMPLE By projecting the unit vectors i1, j1, k1 on i0, j0, k0, the components of the principal axes of F1 in F0 are obtained:    i1 = [0, 1/ √ 2, −1/ √ 2]T j1 = [0, 1/ √ 2, 1/ √ 2]T k1 = [1, 0, 0]T C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 16 / 80
  • 17. Ridig Body Motion Rotations Rotations The rotation matrix between F0 and F1 is obtained from these three vectors: R =   0 0 1 1√ 2 1√ 2 0 − 1√ 2 1√ 2 0   In general x1 y1 z1 x0 y0 z0   r11 r12 r13 r21 r22 r23 r31 r32 r33   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 17 / 80
  • 18. Ridig Body Motion Rotations Rotations Usually, in robotics the symbols n, s, a, are used to indicate the axes x1, y1, z1, then 0 R1 = [0 n 0 s 0 a] =   nx sx ax ny sy ay nz sz az   defining the relative orientation between F0 and F1 . Symbols n, s, a refer to a frame fixed on the end- effector (e.g. gripper) with z axis (a) along the approach direction y axis (s) in the sliding plane of the fingers x axis (n) in the normal direction with respect to y, z. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 18 / 80
  • 19. Ridig Body Motion Rotations Rotations Rotation matrix: R = [n s a] =   nx sx ax ny sy ay nz sz az   From the conditions: nT a = sT a = sT n = 0 ||n|| = ||s|| = ||a|| = 1 it follows that R is an orthonormal matrix, i.e. R RT = RT R = I3 I3: 3 × 3 identity matrix A rotation matrix is always invertible. By pre-multiplying by R−1 we have R−1 = RT i.e. 0 R−1 1 = 1 R0 = 0 RT 1 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 19 / 80
  • 20. Ridig Body Motion Rotations Elementary rotations Consider two frames F0 and F1 with coincident origins. Rotations of θ about the x0, y0, and z0 axes C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 20 / 80
  • 21. Ridig Body Motion Rotations Elementary rotations In the first case, F1 is obtained with a rotation of an angle θ about the x0 axis of F0 . From R =   0 iT 1 i 0 jT 1 i 0 kT 1 i 0 iT 1 j 0 jT 1 j 0 kT 1 j 0 iT 1 k 0 jT 1 k 0 kT 1 k   we have 0 R1 = Rot(x, θ) =   1 0 0 0 cos θ − sin θ 0 sin θ cos θ   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 21 / 80
  • 22. Ridig Body Motion Rotations Elementary rotations Similarly, considering rotations about y0 and z0: 0 R1 = Rot(y, θ) =   cos θ 0 sin θ 0 1 0 − sinθ 0 cos θ   0 R1 = Rot(z, θ) =   cos θ − sin θ 0 sin θ cos θ 0 0 0 1   Rotation matrices R relate different reference frames. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 22 / 80
  • 23. Ridig Body Motion Rotations Rotations Another interpretation for rotation matrices. Let us consider a rotation of point 0 p1 = [7, 3, 2]T by 90o about z0. The matrix expressing the rotation is R1 = Rot(z, 90o ) =   cos 90o − sin 90o 0 sin 90o cos 90o 0 0 0 1   =   0 −1 0 1 0 0 0 0 1   Therefore: 0 p2 =   −3 7 2   =   0 −1 0 1 0 0 0 0 1     7 3 2   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 23 / 80
  • 24. Ridig Body Motion Rotations Rotations Consider now a second rotation of 90o about y0: 0 p3 =   2 7 3   = R2 0 p2 =   0 0 1 0 1 0 −1 0 0     −3 7 2   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 24 / 80
  • 25. Ridig Body Motion Rotations Rotations By combining the two rotations one obtains R = R2R1 =   0 0 1 0 1 0 −1 0 0     0 −1 0 1 0 0 0 0 1   =   0 0 1 1 0 0 0 1 0   from which 0 p3 =   2 7 3   = R 0 p1 =   0 0 1 1 0 0 0 1 0     7 3 2   Rotation matrices “rotates” vectors with respect to a fixed reference frame. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 25 / 80
  • 26. Ridig Body Motion Rotations Axis/angle rotations Rotation θ about a generic unit vector w = [wx wy wz]T . The rotation of the angle θ about w is equivalent to the following procedure: Aligne w with z0 Rotate by θ about w ≡ z0 Restore w in its original position. Each rotation is performed with respect to F0 , then: Rot(w, θ) = Rot(z0, α)Rot(y0, β)Rot(z0, θ)Rot(y0, −β)Rot(z0, −α) C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 26 / 80
  • 27. Ridig Body Motion Rotations Axis/angle rotations Moreover, since ||w|| = 1, we have: sin α = wy w2 x + w2 y cos α = wx w2 x + w2 y sin β = w2 x + w2 y cos β = wz The matrix R representing the rotation is therefore given by R(w, θ) =   wx wxVθ + Cθ wy wx Vθ − wz Sθ wz wxVθ + wy Sθ wx wy Vθ + wz Sθ wy wy Vθ + Cθ wz wy Vθ − wxSθ wx wz Vθ − wy Sθ wy wz Vθ + wxSθ wz wz Vθ + Cθ   being Cθ = cos θ, Sθ = sin θ, e Vθ = vers θ = 1 − cos θ. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 27 / 80
  • 28. Ridig Body Motion Rotations Proprieties of rotations 1. Not all the orthogonal matrices (RT R = I) for which the following conditions nT a = sT a = sT n = 0 ||n|| = ||s|| = ||a|| = 1 are satisfied represent rotations. For example, matrix S =   1 0 0 0 −1 0 0 0 1   does not represent a rotation, but rather a “specular” transformation. It is not possible, starting from F0 , to ob- tain frame F1 with a rotation. F1 may be obtained only by means of a specular reflec- tion. This is not physically feasible for a rigid body. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 28 / 80
  • 29. Ridig Body Motion Rotations Proprieties of rotations If matrix R represents a rigid body rotation, then det(R) = 1 Because of their properties, the rotation matrices in IR3 belong to a “special set”, the Special Orthogonal group of order 3, i.e. So(3). More in general, the set of n × n matrices R satisfying the two conditions RRT = RT R = I det(R) = +1 is called So(n): Special Orthogonal group in IRn =⇒ Special: det(R) = +1 =⇒ Orthogonal: RRT = RT R = I So(n) = {R ∈ IRn×n : RRT = RT R = I, det(R) = +1} C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 29 / 80
  • 30. Ridig Body Motion Rotations Proprieties of rotations 2. The equations 0 R1 = [ 0 n 0 s 0 a ] =   nx sx ax ny sy ay nz sz az   0 R−1 1 = 1 R0 = 0 RT 1 allow to consider the relative rotation of two frames, and to transform in F0 vectors defined in F1 . The expression of 1 p in F0 is given by: 0 p = 0 R1 1 p =   nx sx ax ny sy ay nz sz az   1 p C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 30 / 80
  • 31. Ridig Body Motion Rotations Proprieties of rotations The composition of more rotations is expressed by a simple matrix multiplication: Given n + 1 reference frames F0 , ..., Fn with coincident origins and relative orientation expressed by i−1 Ri , i = 1, . . . n, and given the vector n p in Fn , then 0 p = 0 R1 1 R2...n−1 Rn n p A note about computational complexity: 0 p = (0 R1 1 R2 2 R3) 3 p = 0 R3 3 p → 63 products 42 summations 0 p = (0 R1 (1 R2 (2 R3 3 p) 2p ) 1p ) → 27 products 18 summations 3. From 0 p = 0 R1 1 p it follows that a rotation applied to vector 1 p is a linear function: 0 p = r(1 p) = 0 R1 1 p. Given two vectors p, q and two scalar quantities a, b, we have r(ap + bq) = ar(p) + br(q) C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 31 / 80
  • 32. Ridig Body Motion Rotations Proprieties of rotations 4. Rotations do not change the amplitude of a vector: Ra = a As a matter of fact: Ra = aT RT Ra = aT a = a 5. The inner product, and then the angle between two vectors, is invariant with respect to rotations: aT b = (Ra)T (Rb) As a matter of fact: (Ra)T (Rb) = aT RT Rb = aT b = a b cosθ 6. Since R is an orthogonal matrix, the following property holds R(a × b) = Ra × Rb C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 32 / 80
  • 33. Ridig Body Motion Rotations Proprieties of rotations 7. In general, the product of rotation matrices does not commute: RaRb = RbRa Except the trivial case of the identity matrix (i.e. when R = I3), rotations commute only if the rotation axis is the same! Consider the two rotations by a 90o angle about the x0 and y0 axes: Ra = Rot(x, 900 ) =   1 0 0 0 0 −1 0 1 0   Rb = Rot(y, 90o ) =   0 0 1 0 1 0 −1 0 0   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 33 / 80
  • 34. Ridig Body Motion Rotations Proprieties of rotations 1) 2) Case 1) Rb followed by Ra: R = RbRa =   0 1 0 0 0 −1 −1 0 0   Case 2) Ra followed by Rb: R = RaRb =   0 0 1 1 0 0 0 1 0   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 34 / 80
  • 35. Ridig Body Motion Rotations Proprieties of rotations 8. It may be of interest to define a sequence of rotations with respect to F0 , and not with respect to the current frame Fi as assumed until now. Consider two rotations R1 = Rot(y, φ) and R2 = Rot(z, θ) about the axes y0 and z0 of F0 . What is the result of applying first R1 and then R2? Consider the vector 0 p in F0 . After the first rotation R1, the new expression of the vector (still wrt F0 ) is 0 p1 = R1 0 p Since also the second rotation is about an axis of F0 , we have 0 p2 = R2 0 p1 = R2 R1 0 p More in general, given n consecutive rotations Ri , i = 1, . . . , n defined with respect to the same reference frame F0 , then 0 pn = Rn Rn−1 . . . R1 0 p C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 35 / 80
  • 36. Ridig Body Motion Rotations Proprieties of rotations Then, there are two different possibilities to define a sequence of consecutive rotations: 1 If each rotation is expressed wrt the current frame Fn , Fn−1, . . . , F0 , then the equivalent rotation matrix 0 Rn is obtained by post-multiplication of the matrices i−1 Ri . 0 p = 0 R1 1 R2 . . . n−1 Rn n p 2 If matrices Ri , i = 1, . . . , n describe rotations about an axis of the base frame F0 , the equivalent matrix is obtained by pre-multiplication of the matrices. 0 pn = Rn Rn−1 . . . R1 0 p C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 36 / 80
  • 37. Ridig Body Motion Rotations Interpretations of a rotation matrix In summary, a rotation matrix 0 R1 has three equivalent interpretations: 1. 0 R1 describes the mutual orientation of two reference frames F0 and F1 ; the columns of 0 R1 are the direction cosines of the axes of F1 expressed in F0 2. 0 R1 defines the coordinate transformation between the coordinates of a point expressed in F0 and in F1 (common origin) 3. 0 R1 rotates a vector 0 va to 0 vb in a given reference frame F0 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 37 / 80
  • 38. Ridig Body Motion Rotations Representations of rotations A rotation is described with a 3 × 3 matrix with 9 elements: R =   nx sx ax ny sy ay nz sz az   On the other hand, a rigid body in IR3 has 3 rotational dof → Three parameters should be sufficient to describe its orientation A 3 × 3 matrix, although computationally efficient, is redundant. Among the 9 elements of R one can define the following relations: nT a = sT a = sT n = 0 ||n|| = ||s|| = ||a|| = 1 Note that it is sufficient to know 6 elements of R to define completely the matrix. If only 5 (or less) elements are known, R cannot be determined univocally. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 38 / 80
  • 39. Ridig Body Motion Rotations Representations of rotations Theoretically, only 3 parameters are sufficient to describe the orientation of a rigid body in the 3D space. There are representations based on 3 parameters only (minimal representations), more “compact” than rotation matrices, although computationally less convenient. Among these representations, we have: Euler angles: three consecutive rotations about axes z, y′ , z′′ Roll, Pitch and Yaw angles: three consecutive rotations about axes z0, y0, x0 Axis/Angle representation: a unitary rotation axis r and the angle θ C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 39 / 80
  • 40. Ridig Body Motion Rotations Euler angles Euler angles (φ, θ, ψ) represents three rotations, applied sequentially about the axes z0, y1, z2 of the current frame F0 , F1 , F2 . Consider a base frame F0 . By applying the three rotations we have - A frame F1 obtained with the rotation φ about z0 - A frame F2 obtained from F1 with the rotation θ about y1 - A frame F3 obtaine from F2 with the rotation ψ about z2 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 40 / 80
  • 41. Ridig Body Motion Rotations Euler angles By composing the three rotations, the total rotation from F0 to F3 is 0 R3 = REuler (φ, θ, ψ) = Rot(z0, φ)Rot(y1, θ)Rot(z2, ψ) =   CφCθCψ − SφSψ −CφCθSψ − SφCψ CφSθ SφCθCψ + CφSψ −SφCθSψ + CφCψ SφSθ −SθCψ SθSψ Cθ   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 41 / 80
  • 42. Ridig Body Motion Rotations Euler angles Rotation matrix corresponding to the Euler angles: REuler (φ, θ, ψ) =   CφCθCψ − SφSψ −CφCθSψ − SφCψ CφSθ SφCθCψ + CφSψ −SφCθSψ + CφCψ SφSθ −SθCψ SθSψ Cθ   Inverse problem: compute the Euler angles corresponding to a given rotation matrix R: R =   r11 r12 r13 r21 r22 r23 r31 r32 r33   → (φ, θ, ψ) ? C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 42 / 80
  • 43. Ridig Body Motion Rotations Atan2 function arctan(y x ) = arctan(−y −x ), gives results in two quadrants (in [−π/2, +π/2]) atan2 is the arctangent with output values in the four quadrants: two input arguments gives values in [−π, +π] undefined only for (0, 0) uses the sign of both arguments to define the output quadrant based on arctan function with output values in [−π/2, +π/2] available in main languages (C++, Matlab, . . . ) atan2 (y, x) =    arctan(y/x) x > 0 π + arctan(y/x) y ≥ 0, x < 0 −π + arctan(y/x) y < 0, x < 0 π/2 y > 0, x = 0 −π/2 y < 0, x = 0 undefined y = 0, x = 0 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 43 / 80
  • 44. Ridig Body Motion Rotations Euler angles Two cases are possible: 1 r2 13 + r2 23 = 0 → sin θ = 0. By assuming 0 < θ < π (sin θ > 0), one obtains:    φ = atan2 (r23, r13); θ = atan2 ( r2 13 + r2 23, r33); ψ = atan2 (r32, −r31) or, with −π < θ < 0, (sin θ < 0):    φ = atan2 (−r23, −r13); θ = atan2 (− r2 13 + r2 23, r33); ψ = atan2 (−r32, r31) Two possible sets of solutions depending on the sign of sin θ. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 44 / 80
  • 45. Ridig Body Motion Rotations Euler angles 2. r2 13 + r2 23 = 0 (θ = 0, π and cos θ = ±1). By choosing θ = 0 (cos θ = 1) one obtains θ = 0 φ + ψ = atan2 (r21, r11) = atan2 (−r12, r11); On the other hand, if θ = π (cos θ = −1) θ = π φ − ψ = atan2 (−r21, −r11) = atan2 (−r12, −r11); In both cases, infinite solutions are obtained (only the sum or difference of φ and θ is known). Being θ = 0, π, the rotations by the angles φ and ψ occur about parallel (the same) axes, i.e. the z axis. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 45 / 80
  • 46. Ridig Body Motion Rotations Roll, Pitch, Yaw Consider three consecutive rotations about the axes of the base frame F0 : A rotation ψ about x0, (yaw), A rotation θ about y0, (pitch) A rotation φ about z0, (roll). C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 46 / 80
  • 47. Ridig Body Motion Rotations Roll, Pitch, Yaw By properly composing the three rotations: 0 R3 = RRPY (φ, θ, ψ) = Rot(z0, φ)Rot(y0, θ)Rot(x0, ψ) =   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ψ   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 47 / 80
  • 48. Ridig Body Motion Rotations Roll, Pitch, Yaw Rotation matrix corresponding to the RPY angles: RRPY (φ, θ, ψ) =   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ψ   Inverse problem: compute the RPY angles corresponding to a given rotation matrix R: R =   r11 r12 r13 r21 r22 r23 r31 r32 r33   → (φ, θ, ψ) (?) C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 48 / 80
  • 49. Ridig Body Motion Rotations Roll, Pitch, Yaw Two cases are possible: 1 r2 11 + r2 21 = 0 → cos θ = 0. By choosing θ ∈ [−π/2, π/2], one obtains:    φ = atan2 (r21, r11); θ = atan2 (−r31, r2 32 + r2 33); ψ = atan2 (r32, r33); Otherwise, if θ ∈ [π/2, 3π/2]:    φ = atan2 (−r21, −r11); θ = atan2 (−r31, − r2 32 + r2 33); ψ = atan2 (−r32, −r33); C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 49 / 80
  • 50. Ridig Body Motion Rotations Roll, Pitch, Yaw 2. r2 11 + r2 21 = 0 → cos θ = 0: θ = ±π/2 and infinite solutions are possible (sum or difference of ψ and φ). It may be convenient to (arbitrarily) assign a value (e.g. ±90o ) to one of the two angles (φ or ψ) a ±90o and then compute the remaining one: θ = ±π/2; φ − ψ = atan2 (r23, r13) = atan2 (−r12, r22); C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 50 / 80
  • 51. Ridig Body Motion Rotations Angle/Axis representation It is possible to describe any rotation in 3D by means of the rotation angle θ and the corresponding rotation axis w R =   w2 x (1 − Cθ) + Cθ wx wy (1 − Cθ) − wz Sθ wx wz (1 − Cθ) + wy Sθ wx wy (1 − Cθ) + wz Sθ w2 y (1 − Cθ) + Cθ wy wz (1 − Cθ) − wx Sθ wx wz (1 − Cθ) − wy Sθ wy wz (1 − Cθ) + wx Sθ w2 z (1 − Cθ) + Cθ   4 parameters: wx, wy , wz, θ with the condition: w2 x + w2 y + w2 z = 1 =⇒ 3 dof C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 51 / 80
  • 52. Ridig Body Motion Rotations Angle/Axis representation Inverse problem: compute the axis w and the angle θ corresponding to a given rotation matrix R: θ = acos r11 + r22 + r33 − 1 2 w = 1 2 sin θ   r32 − r23 r13 − r31 r21 − r12   The trace of a rotation matrix depends only on the (cosine of) rotation angle. This representation suffers of some drawbacks: It is not unique: Rot(w, θ) = Rot(−w, −θ) (we can arbitrarily assume 0 ≤ θ ≤ π) If θ = 0 then Rot(w, 0) = I3 and w is indefinite There are numerical problems if θ ≈ 0: in this case sin θ ≈ 0 and problems may arise in computing w C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 52 / 80
  • 53. Ridig Body Motion Rotations Example Compute the rotation matrix corresponding to the RPY angles 0o , 45o , 90o , i.e.: 1 A rotation of 90o about x0, (yaw) 2 A rotation of 45o about y0, (pitch) 3 A rotation of 0o about z0, (roll) RPY rotations: roll = 0o , pitch = 45o , yaw = 90o One obtains: R =   1√ 2 1√ 2 0 0 0 −1 − 1√ 2 1√ 2 0   C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 53 / 80
  • 54. Ridig Body Motion Rotations Example R =   1√ 2 1√ 2 0 0 0 −1 − 1√ 2 1√ 2 0   RPY rotations: roll = 0o , pitch = 45o , yaw = 90o • The Euler angles corresponding to this rotation matrix are φ = −90o ; θ = 90o ; ψ = 45o • Considering the Angle/Axis representation, one obtains: rotation of the angle θ = 98.42o about the axis w = [0.863, 0.357, −0.357]T C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 54 / 80
  • 55. Ridig Body Motion Rotations Ridig Body Motion – Homogeneous Transformations Translations Claudio Melchiorri Dipartimento di Elettronica, Informatica e Sistemistica (DEIS) Universit`a di Bologna email: claudio.melchiorri@unibo.it C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 55 / 80
  • 56. Ridig Body Motion Translations Translations Rotations between two coordinate frames can be expressed in matrix form: 0 p = R 1 p This is not possible for translations! → It is not possible to define a 3 × 3 matrix P so that a translation can be expressed as a matrix/vector multiplication 0 p = P 1 p =⇒ not possible!! A translation of a vector 0 p by 0 o corresponds to a vectorial summation 0 q = 0 p + 0 o Then 0 qx = 0 px + 0 ox 0 qy = 0 py + 0 oy 0 qz = 0 pz + 0 oz C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 56 / 80
  • 57. Ridig Body Motion Translations Translations Then, a translation is expressed as a function t(p) = p + o In general: t(ap + bq) = ap + bq + o = at(p) + bt(q) Then, translations are not linear transformations! The most general transformation between two coordinate frames cannot be represented by a 3 × 3 matrix. The composition of a rotation and a translation is obtained from 0 q = 0 p + 0 o by considering vector p defined in F1 , ro- tated and translated with respect to F0 . C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 57 / 80
  • 58. Ridig Body Motion Translations Translations Since vectors can be added only if they are defined with respect to the same coordinate system: 0 p = 0 R1 1 p + 0 o1 being 0 o1 the translation from F0 to F1 and 0 R1 the mutual rotation. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 58 / 80
  • 59. Ridig Body Motion Ridig Body Motion – Homogeneous Transformations Homogeneous transformations Claudio Melchiorri Dipartimento di Elettronica, Informatica e Sistemistica (DEIS) Universit`a di Bologna email: claudio.melchiorri@unibo.it C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 59 / 80
  • 60. Homogeneous transformations Homogeneous transformations It is of interest to put in matrix form the equation 0 p = 0 R1 1 p + 0 o1 since, in case of successive transformations, one could obtain expressions similar to 0 p = 0 R1 1 R2...n−1 Rn n p For this purpose, it is possible to add to matrix R the vector 0 o as fourth column; in this manner a 3 × 4 matrix is obtained M = [n s a 0 o1] = [R 0 o1] A square matrix is obtained by adding to M the row [0 0 0 1]. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 60 / 80
  • 61. Homogeneous transformations Homogeneous transformations The Homogeneous Transformation Matrix 0 T1 is obtained 0 T1 = 0 R1 0 o1 0 0 0 1 =     nx sx ax ox ny sy ay oy nz sz az oz 0 0 0 1     This matrix represents the transformation (rotation-translation) between F0 and F1 . C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 61 / 80
  • 62. Homogeneous transformations Homogeneous transformations By defining the homogeneous 4-dimensional (in IR4 ) vector: [pT 1]T = [px py pz 1]T one obtains 0 p 1 = 0 T1 1 p 1 = 0 R1 1 p + 0 o1 1 The subspace IR3 defined by the first three components represents the transformation 0 p = 0 R1 1 p + 0 o1 on vectors in IR3 , and physically represents the rigid body motion from F1 to F0 ; the fourth component is not affected by the matrix multiplication. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 62 / 80
  • 63. Homogeneous transformations Homogeneous transformations Given the homogeneous transformation matrices 0 T1, from F1 to F0 , and 1 T2, from F2 to F1 , the composition 0 T2 = 0 T1 1 T2 can be applied to vectors [ 2 pT 1]T defined in F2 , and the result is 0 T1(1 T2 2 p 1 ) = 0 T1 1 R2 2 p + 1 o2 1 = 0 R1 1 R2 2 p + 0 R1 1 o2 + 0 o 1 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 63 / 80
  • 64. Homogeneous transformations Homogeneous transformations This is equivalent to the product of the homogeneous matrix 0 T2 = 0 R1 1 R2 0 R1 1 o2 + 0 o 0 0 0 1 = 0 T1 1 T2 with the vector [ 2 pT 1]T . In general we have 0 Tn = 0 T1 1 T2 . . . n−1 Tn C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 64 / 80
  • 65. Homogeneous transformations Homogeneous transformation of coordinates The coordinate transformation bewteen two reference frames F0 and F1 may be expressed by a 4 × 4 matrix 0 T1: 0 p = 0 T1 1 p Of particular interest are the elementary transformations, i.e. simple rotations or translations along the coordinate axes. All the coordinate transformations may be obtained by combinations of these elementary transformations. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 65 / 80
  • 66. Homogeneous transformations Elementary rotations and translations The homogeneous transformation matrices corresponding to rotations of an angle θ about the axes x, y, z of F0 are: Rot(x, θ)=    1 0 0 0 0 Cθ −Sθ 0 0 Sθ Cθ 0 0 0 0 1    , Rot(y, θ)=    Cθ 0 Sθ 0 0 1 0 0 −Sθ 0 Cθ 0 0 0 0 1    , Rot(z, θ)=    Cθ −Sθ 0 0 Sθ Cθ 0 0 0 0 1 0 0 0 0 1    being Cθ = cos θ, Sθ = sin θ. The homogeneous transformation T corresponding to the translation of vector v = [vx vy vz ]T is T = Trasl(v) =     1 0 0 vx 0 1 0 vy 0 0 1 vz 0 0 0 1     C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 66 / 80
  • 67. Homogeneous transformations Example The frame F1 , with respect to F0 , is translated of 1 along x0 and of 3 along y0 , moreover, it is rotated by 30o about z0. The transformation matrix from F1 to F0 is 0 T1 =     0.866 −0.500 0 1 0.500 0.866 0 3 0 0 1 0 0 0 0 1     C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 67 / 80
  • 68. Homogeneous transformations Example Consider a point defined in F1 by 1 p =   2 1 0   Its coordinates in F0 are 0 p = 0 T1 1 p =     0.866 −0.500 0 1 0.500 0.866 0 3 0 0 1 0 0 0 0 1         2 1 0 1     =     2.232 4.866 0 1     C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 68 / 80
  • 69. Homogeneous transformations Example Consider the point in F0 0 pa =   2 1 0   Let us apply to 0 p a translation of 1 along x0, of 3 along y0; then rotate the vector by 30o about z0. The result is obtained by multiplying vector 0 p by the matrix T =     0.866 −0.500 0 1 0.500 0.866 0 3 0 0 1 0 0 0 0 1     C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 69 / 80
  • 70. Homogeneous transformations Example Then 0 pb = T 0 pa = T =     0.866 −0.500 0 1 0.500 0.866 0 3 0 0 1 0 0 0 0 1         2 1 0 1     =     2.232 4.866 0 1     The same numerical result is obtained, although the physical interpretation is different. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 70 / 80
  • 71. Homogeneous transformations Interpretations of a homogeneous transformation matrix Similarly to rotation matrices, also an homogeneous transformation matrix 0 T1 0 T1 = 0 R1 0 v 0 0 0 1 has three possible physical interpretations: 1 Description of F1 in F0 : in particular 0 v represents the origin of F1 with respect to F0 , and the elements of 0 R1 give the direction of the axes of F1 2 Coordinate transformation of vectors between F1 and F0 , 1 p → 0 p; 3 Translates and rotates a generic vector 0 pa to 0 pb in a given reference frame F0 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 71 / 80
  • 72. Homogeneous transformations Inverse transformation Once the position/orientation of F1 with respect to F0 are known, defined by the homogeneous transformation matrix 0 T1, it is simple to compute the inverse transformation 1 T0 = (0 T1)−1 , defining the position/orientation of F0 with respect to F1 . From 0 T1 1 T0 = I4 it follows that 1 T0 = 0 RT 1 −0 RT 1 v 0 0 0 1 =     nx ny nz −vT n sx sy sz −vT s ax ay az −vT a 0 0 0 1     C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 72 / 80
  • 73. Homogeneous transformations Inverse transformation As a matter of fact, if 1 T0 = M x 0 0 0 1 then R v 0 0 0 1 M x 0 0 0 1 =     1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1     and therefore I3 = RM 0 = Rx + v =⇒ M = RT x = −RT v C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 73 / 80
  • 74. Homogeneous transformations Example Given T =     0 0 1 2 1 0 0 1 0 1 0 0 0 0 0 1     compute its inverse transformation. Solution: T−1 = RT −RT v 0 0 0 1 =    nx ny nz −vT n sx sy sz −vT s ax ay az −vT a 0 0 0 1    =    0 1 0 −1 0 0 1 0 1 0 0 −2 0 0 0 1    C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 74 / 80
  • 75. Homogeneous transformations Homogeneous transformations The term homogeneous derives from projective geometry. Equations describing lines and planes in projective geometry in IR3 are homogeneous in the four variables x1, x2, x3, x4 in IR4 . In IR3 these equations, affine transformations, are non homogeneous in x1, x2, x3, (lines or planes not passing through the origin present a constant term - non function of x1, x2, x3 - in their expression). In general, computations of an affine transformations in IRn−1 may be expressed as homogeneous linear transformations in IRn : 0 p = 0 R1 1 p + 0 o1 affine transformation 0 p′ = 0 p 1 = 0 R1 0 o1 0 1 1 p 1 homogeneous transformation C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 75 / 80
  • 76. Homogeneous transformations Homogeneous transformations The most general expression for an homogeneous transformation is T = D3×3 p3×1 f1×3 s = Deformation Translation Perspective Scale Note the terms D, f1×3 and s. These quantities, in robotics, are alway assumed as: A rotation matrix (D = R), The null vector [0 0 0] (f1×3 = [0 0 0]), The unit gain (s = 1) In other cases (e.g. computer graphics), these quantities are used to obtain deformations, perspective distortions, change of scaling factors, and so on (in general: effects non applicable to rigid bodies). C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 76 / 80
  • 77. Homogeneous transformations Example Consider the transformation matrix T =     a 0 0 0 0 b 0 0 0 0 c 0 0 0 0 1     This transformation applies a different “gain” along the three reference axes x, y, z. A deformation of the body is obtained. Point p = [1, 1, 1]T is transformed to p1 = T p =     a 0 0 0 0 b 0 0 0 0 c 0 0 0 0 1         1 1 1 1     =     a b c 1     With this matrix, a cube is transformed in a parallelepiped. C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 77 / 80
  • 78. Homogeneous transformations Example Similarly, the transformation T =     1 0 0 0 0 1 0 0 0 0 1 0 0 −1 f 0 1     performs a perspective transformation along y. The coordinates x, y, z of a point p are transformed in x′ = x 1 − y/f y′ = y 1 − y/f z′ = z 1 − y/f 0 10 20 30 40 50 60 70 80 0 10 20 30 40 50 60 70 80 x y z f = −20 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 78 / 80
  • 79. Homogeneous transformations Equations with homogeneous transformations Usually, in robotics it is necessary to specify the position/orientation of an object with respect to different reference frames (e.g. wrt to the end-effector, to the base frame, to other machines/tools, . . . ). The following equation must be verified if the robot has to grasp the object: B B T6E = OG C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 79 / 80
  • 80. Homogeneous transformations Equations with homogeneous transformations B B T6E = OG Usually, matrices B, O, G, E are known (and constant). Therefore, the equation can be solved in terms of B T6 B T6 = B−1 OGE−1 The robot configuration is then obtained. Otherwise, the object position O (if not known) can be computed as O = B B T6EG−1 C. Melchiorri (DEIS) Ridig Body Motion – Homogeneous Transformations 80 / 80