You are on page 1of 14

Chapter 2

Kinematics of Mechanisms
2.1 Preamble
Robot kinematics is the study of the motion (kinematics) of robotic mechanisms.
In a kinematic analysis, the position, velocity, and acceleration of all the links are
calculated with respect to a xed reference coordinate system, without considering
the forces or moments. The relationship between motion and the associated forces
and torques is studied in robot dynamics. Forward kinematics and inverse kinemat-
ics are the main components in robot kinematics.
Forward kinematics (also known as direct kinematics) is the computation of the
position and orientation of a robots end effector as a function of its joint angles.
Inverse kinematics is dened as: given the position and orientation of a robots end-
effector, calculate all possible sets of joint motion that could be used to attain this
given position and orientation.
From the viewpoint of robot structure, robot can be divided into two basic types:
serial robot and parallel robot. Besides, there is a hybrid type, which is the combi-
nation of serial and parallel robots. Serial robots have open kinematic chain, which
can be further classied as either articulated or cartesian robots.
In the following, the basic mathematical and geometric concepts including
position and orientation of a rigid body are presented (Sect. 2.2). Translational
coordinate transformation, rotational coordinate transformation and homogeneous
transformation are introduced in Sect. 2.3. DenavitHartenberg expression of kine-
matic parameters is discussed in Sect. 2.4. Section 2.5 describes the derivation of
Jacobian Matrix. Finally, the conclusions are given in Sect. 2.6.
2.2 Position and Orientation of Rigid Body
2.2.1 Rotation Matrix
To explain the relationship between parts, tools, manipulator etc., some concepts
such as position vector, plane, and coordinate frame are utilized.
D. Zhang, Parallel Robotic Machine Tools, DOI 10.1007/978-1-4419-1117-9 2,
c Springer Science+Business Media, LLC 2010
19
20 2 Kinematics of Mechanisms
Fig. 2.1 Presentation
of position
The motion of a robot can be described by its position and orientation, which is
called pose as well. Once the reference coordinate system has been established, any
point in the space can be expressed by a (3 1) vector. For orthogonal coordinate
system {O
a
.
a
,
a
z
a
], any point p in the space can be written as follow:
a
p =
2
4
p
x
p
y
p
z
3
5
. (2.1)
where p
x
. p
y
. p
z
denote the components of the vector p along the coordinate axis
x
a
. y
a
. z
a
, respectively. Here, p is called position vector, which is shown in Fig. 2.1.
To investigate the motion and manipulation of robots, not only the description of
position is needed, but also the orientation is likewise important. To dene the ori-
entation of point b, we should assume that there is an orthogonal coordinate system
{O
b
.
b
,
b
z
b
] attached to the point. Here, x
b
. y
b
. z
b
denote the unit vectors of the
coordinate axes. With respect to the reference coordinate system {O
a
.
a
,
a
z
a
],
the orientation of point b is expressed as follow:
a
b
R =

a
x
b
a
y
b
a
z
b

=
2
4
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
3
5
. (2.2)
where
a
b
R is called rotation matrix.
a
b
R has nine elements in total, but only three of
them are independent. The following constraint conditions should be satised by
the nine elements:
a
x
b

a
x
b
=
a
y
b

a
y
b
=
a
z
b

a
z
b
= 1. (2.3)
a
x
b

a
y
b
=
a
y
b

a
z
b
=
a
z
b

a
x
b
= 0. (2.4)
It can be concluded that the rotation matrix
a
b
R is orthogonal, and the following
condition should be satised:
a
b
R
1
=
a
b
R
T
: [
a
b
R[ = 1. (2.5)
2.2 Position and Orientation of Rigid Body 21
The rotation matrix with respect to the rotation transformation by an angle 0
about the axis .. ,. z, respectively, can be calculated:
R(.. 0) =
2
4
1 0 0
0 c0 s0
0 s0 c0
3
5
. (2.6)
R(,. 0) =
2
4
c0 0 s0
0 1 0
s0 0 c0
3
5
. (2.7)
R(z. 0) =
2
4
c0 s0 0
s0 c0 0
0 0 1
3
5
. (2.8)
where s0 = sin 0 and c0 = cos 0
Suppose that coordinate frames {B] and {A] have the same orientation. But the
original points of the two coordinate frames do not overlap. Using the position
vector
a
p
O
b
to describe the position related to frame {A].
a
p
O
b
is called the trans-
lational vector of frame {B] with respect to frame {A]. If the position of point p in
the coordinate frame {B] is written as
b
p, then the position vector of p with respect
to frame {A] can be written as follows:
a
p =
b
p
a
p
O
b
. (2.9)
That is equation of coordinate translation which is shown in Fig. 2.2.
Suppose that coordinate frames {B] and {A] have the same orientation, but their
orientation is different. Using the rotation matrix
a
b
R to describe the orientation of
z
a
z
b
y
a
O
a
O
a
y
b
x
b
x
a
p
a
p
p
b
{A}
{B}
Fig. 2.2 Translational transformation
22 2 Kinematics of Mechanisms
Fig. 2.3 Rotational
transformation
frame {B] with respect to frame {A], then the transformation of point p in frames
{A] and {B] can be deduced as:
a
p =
a
b
R
b
p. (2.10)
where
a
p denotes the position p with the reference coordinate system {A], and
b
p
denotes the position p with the reference coordinate system {B]. It is called equation
of coordinate rotation which is shown in Fig. 2.3.
The following equation can be deduced:
b
a
R =
a
b
R
1
=
a
b
R
T
. (2.11)
For the common condition, neither the original points of frames {A] and {B]
overlap nor they have the same orientation. Use the position vector
a
p
O
b
to describe
the original point of frame {B] with respect to frame {A]; use the rotation matrix
a
b
R to describe the orientation of frame {B] with respect to frame {A]. To any point
in the space, the transformation can be found:
a
p =
a
b
R
b
p
a
p
O
b
. (2.12)
2.2.2 Euler Angles
The Euler angle I, shown in Fig. 2.4, denes a rotation angle around the z-axis,
then a rotation angle 0 around the new x-axis, and a rotation angle around the new
z-axis.
R
z
=
2
4
c s 0
s c 0
0 0 1
3
5
. R
u
0

=
2
4
1 0 0
0 c0 s0
0 s0 c0
3
5
. R
w
00
'
=
2
4
c s 0
s c 0
0 0 1
3
5
.
(2.13)
2.2 Position and Orientation of Rigid Body 23
Fig. 2.4 Euler angle I
Fig. 2.5 Euler angle II
Resultant Eulerian rotation matrix generates:
R = R
z
R
u
0

R
w
00
'
=
2
4
cc ssc0 cs scc0 ss0
sc csc0 ss ccc0 cs0
ss0 cs0 c0
3
5
.
(2.14)
The Euler angle II, shown in Fig. 2.5, denes a rotation of angle around the
z-axis, then a rotation of angle 0 around the new y-axis, and nally a rotation angle
around the new z-axis.
Note the opposite (clockwise) sense of the third rotation . Matrix with Euler
Angle II generates:
2
4
ss ccc0 sc scc0 cs0
cs scc0 cc scc0 ss0
cs0 ss0 c0
3
5
(2.15)
24 2 Kinematics of Mechanisms
2.3 Homogeneous Transformation
If the coordinates of any point in an orthogonal coordinate system is given, then the
coordinates of this point in another orthogonal coordinate system can be calculated
by homogeneous coordinate transformation.
The transformation (2.12) is inhomogeneous to point
b
p, but it can be expressed
by an equivalent homogeneous transformation:

a
p
1

a
b
R
a
p
O
b
0
13
1

b
p
1

. (2.16)
where the vector (4 1) denotes the coordinates in three-dimensional space. It still
can be noted as
a
p or
b
p. The above equation can be rewritten in the format of
matrix:
a
p =
a
b
T
b
p
a
p
O
b
. (2.17)
where the vector (4 1) of
a
p and
b
p is called homogeneous coordinates, here,
a
b
T =

a
b
R
a
p
O
b
0
41
1

. (2.18)
In fact, the transformation (2.18) is equivalent to (2.12). The (2.17) can be
rewritten as
a
p =
a
b
R
b
p
a
p
O
b
. (2.19)
Suppose vector ai bj ck describes one point in the space, where i. . k are
the unit vector of the axes .. ,. z, respectively. This point can be expressed by the
translational homogeneous transformation matrix.
Trans(a,b,c) =
2
6
6
4
1 0 0 a
0 1 0 b
0 0 0 c
0 0 0 1
3
7
7
5
. (2.20)
where Trans denotes translational transformation.
If a rigid body rotates about ., , and z-axis with 0, then the following equations
can be obtained:
Rot(.. 0) =
2
6
6
4
1 0 0 0
0 c0 s0 0
0 s0 c0 0
0 0 0 1
3
7
7
5
. (2.21)
2.3 Homogeneous Transformation 25
Rot(,. 0) =
2
6
6
4
c0 0 s0 0
0 1 0 0
s0 0 c0 0
0 0 0 1
3
7
7
5
. (2.22)
Rot(z. 0) =
2
6
6
4
c0 s0 0 0
s0 c0 0 0
0 0 1 0
0 0 0 1
3
7
7
5
. (2.23)
where Rot denotes rotational transformation.
As the transformation is based on the xed reference frame, a left-handed multi-
plication of transformation sequences is followed. For example, a rigid body rotates
90

about the z-axis of the reference frame, then it rotates another 90

about the
y-axis and nally it translates 4 unit lengths along x-axis of the xed reference frame,
the transformation of this rigid body can be described as:
T = Trans(4,0,0)Trans(y,90)Trans(z,90) =
2
6
6
4
0 0 1 4
1 0 0 0
0 1 0 0
0 0 0 1
3
7
7
5
. (2.24)
The above matrix represents the operations of rotation and translation about the
primary reference frame. The six points of the wedge-shaped object (Fig. 2.6(a))
can be expressed as:
2
6
6
4
0 0 1 4
1 0 0 0
0 1 0 0
0 0 0 1
3
7
7
5
2
6
6
4
1 1 1 1 1 1
1 0 0 0 4 4
0 0 2 2 0 0
1 1 1 1 1 1
3
7
7
5
=
2
6
6
4
4 4 6 6 4 4
4 1 1 1 1 1
0 0 2 2 4 4
1 1 1 1 1 1
3
7
7
5
.
(2.25)
Figure 2.6(b) shows the result of transformation.
Fig. 2.6 Transformation of wedge-shaped object
26 2 Kinematics of Mechanisms
In the above sections, the rotational transformation matrix with respect to rota-
tions about x, y and z-axis has been analyzed. Here is the rotation matrix in the
common situation: rotation about any vector (axis) with 0.
Suppose f is the unit vector of z-axis in coordinate frame C, namely:
C =
2
6
6
4
n
x
o
x
a
x
0
n
y
o
y
a
y
0
n
z
o
z
a
z
0
0 0 0 1
3
7
7
5
. (2.26)
f = a
x
i a
y
a
z
k. (2.27)
Therefore, rotation about vector f is equivalent to rotation about z-axis in coordinate
frame C, thus one has,
Rot(f. 0) = Rot(c. 0). (2.28)
If the coordinate frame {T] is known with respect to reference coordinate frame,
then another coordinate frame {S] can be calculated with respect to frame {C],
because,
T = CS. (2.29)
Where, S is the relative position of T with respect to C, then,
S = C
1
T . (2.30)
The rotation of T about f is equivalent to the rotation of S about z-axis of frame {C],
Rot(f. 0)T = CRot(z. 0)S. (2.31)
Rot(f. 0)T = CRot(z. 0)C
1
T . (2.32)
Then the following equation can be derived,
Rot(f. 0) = CRot(z. 0)C
1
. (2.33)
As f is the z-axis of frame {C], then it can be found that Rot(z. 0)C
1
is just the
function of f, because,
CRot(z. 0)C
1
=
2
6
6
4
n
x
o
x
a
x
0
n
y
o
y
a
y
0
n
z
o
z
a
z
0
0 0 0 1
3
7
7
5
2
6
6
4
c0 s0 0 0
s0 c0 0 0
0 0 1 0
0 0 0 1
3
7
7
5
2
6
6
4
n
x
o
x
a
x
0
n
y
o
y
a
y
0
n
z
o
z
a
z
0
0 0 0 1
3
7
7
5
1
.
(2.34)
2.4 DenavitHartenberg Representation 27
Note that z = a. vers0 = 1 c0. = z. Equation (2.34) can be simplied as,
Rot(f. 0) =
2
6
6
4
f
x
f
x
vers0 c0 f
y
f
x
vers0 f
z
s0 f
z
f
x
vers0 f
y
s0 0
f
x
f
y
vers0 f
z
s0 f
y
f
y
vers0 c0 f
z
f
y
vers0 f
x
s0 0
f
x
f
z
vers0 f
z
s0 f
y
f
z
vers0 f
x
s0 f
z
f
z
vers0 c0 0
0 0 0 1
3
7
7
5
.
(2.35)
Each basic rotation transformation can be derived from the general rotation trans-
formation, i.e., if f
x
= 1. f
y
= 0 and f
z
= 0, then 1ot (f. 0) = 1ot (x. 0). Equation
(2.35) yields,
1ot (.. 0) =
2
6
6
4
1 0 0 0
0 c0 s0 0
0 s0 c0 0
0 0 0 1
3
7
7
5
. (2.36)
which is identical to (2.21).
2.4 DenavitHartenberg Representation
DenavitHartenberg (DH) representation is a generic and simple method to dene
the relative motion parameters of two consecutive links and joints. Any arbitrary
type of mechanism can be represented using the DH method to relate the position
and orientation of the last link to the rst one.
In studying the kinematic motion between two jointed links, the DH method de-
nes the position and orientation of two consecutive links in a chain, link i with
respect to link (i 1) using a 4 4 homogeneous transformation matrix. With ref-
erence to Fig. 2.7, let axis i denotes the axis of the joint connecting link (i 1) to
link i. Four parameters should be determined, which are 0
i
. J
i
. a
i
, and
i
. 0
i
denotes
the rotation angle measured from axis .
i1
to .
i
with respect to z
i
axis. J
n
de-
notes the displacement measured from axis .
n1
to .
n
with respect to z
n
axis. a
i
denotes the displacement measured from axis z
i
to z
iC1
with respect to .
i
axis.

i
denotes the rotation angle measured from axis z
i
to z
iC1
with respect to .
i
axis.
Following steps can help to determine the link and joint parameters of the whole
kinematic model.
Number the joints from 1 to n starting with the base and ending with the end-
effecter
Establish the base coordinate system. Establish a right-handed orthonormal co-
ordinate system (.
0
. ,
0
. z
0
) at the supporting base with z
0
axis lying along the
axis of motion of joint 1
Establish joint axis. Align the z
i
with the axis of motion (rotary or sliding) of
joint i 1
28 2 Kinematics of Mechanisms
Fig. 2.7 DenavitHartenberg
kinematic description
Establish the origin of the ith coordinate system. Locate the origin of the ith
coordinate at the intersection of the z
i
and z
i1
or at the intersection of common
normal between the z
i
and z
i1
axes and the z
i
axis
Establish .
i
axis. Establish .
i
= (z
i1
z
i
),[z
i1
z
i
[ or along the common
normal between the z
i1
and z
i
axes when they are parallel
Establish ,
i
axis. Assign ,
i
= (z
i
.
i
),[z
i
.
i
[ to complete the right-handed
coordinate system
Find the link and joint parameters
With the parameters dened in Fig. 2.5, the DH model transformation matrix can
be obtained as follows
i1
i
T = A
i
= Rot(z. 0
i
) Trans(0. 0. J
i
) Trans(a
i
. 0. 0) Rot(..
i
). (2.37)
A
i
=
2
6
6
4
c0
i
s0
i
c
i
s0
i
s
i
a
i
c0
i
s0
i
c0
i
c
i
c0
i
s
i
a
i
s0
i
0 s
i
c
i
J
i
0 0 0 1
3
7
7
5
. (2.38)
2.5 Jacobian Matrix
To describe a micro-motion of robot, differential coefcient is utilized for coordinate
transformation. Given a coordinate frame {T],
T dT = Trans(J.. J,. Jz)Rot(. J0)T. (2.39)
2.5 Jacobian Matrix 29
where Trans(dx. dy. dz) denotes the differential translation of dx. dy. dz. and
Rot(. J0) denotes the differential rotation about the vector . Then dT can be
calculated as follows:
dT = Trans(dx. dy. dz)Rot(. J0) 1|T. (2.40)
The homogeneous transformation expressing differential translation is
Trans(dx. dy. dz) =
2
6
6
4
1 0 0 dx
0 1 0 dy
0 0 1 dz
0 0 0 1
3
7
7
5
. (2.41)
For the formula of general rotation transformation
Rot(. J0)
=
2
6
6
4

x
vers0 c0
y

x
vers0
z
s0
z

x
vers0
y
s0 0

y
vers0
z
s0
y

y
vers0 c0
z

y
vers0
x
s0 0

z
vers0
z
s0
y

z
vers0
x
s0
z

z
vers0 c0 0
0 0 0 1
3
7
7
5
.
(2.42)
Since lim
!0
sin 0 = J0. lim
!0
cos 0 = 1. lim
!0
vers 0 = 0. differential rota-
tional homogeneous transformation can be expressed as,
Rot(. J0) =
2
6
6
4
1
z
J0
y
J0 0

z
J0 1
x
J0 0

z
J0
x
J0 1 0
0 0 0 1
3
7
7
5
. (2.43)
Since z = Trans(J.. J,. Jz)Rot(. J0). it yields,
z =
2
6
6
4
1 0 0 J.
0 1 0 J,
0 0 1 Jz
0 0 0 1
3
7
7
5
=
2
6
6
4
1
z
J0
y
J0 0

z
J0 1
x
J0 0

y
J0
x
J0 1 0
0 0 0 1
3
7
7
5

2
6
6
4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
3
7
7
5
=
2
6
6
4
0
z
J0
y
J0 J.

z
J0 0
x
J0 J,

y
J0
x
J0 0 Jz
0 0 0 0
3
7
7
5
(2.44)
30 2 Kinematics of Mechanisms
The differential rotation J0 about vector is equivalent to the differential
rotation with respect to the x, y and z-axis, namely
x
.
y
. and
z
, respectively. Then

x
J0 =
x
.
y
J0 =
y
.
z
J0 =
z
. Displace the above results into (2.44) yields:
z =
2
6
6
4
0
z

y
J.

z
0
x
J,

y

x
0 Jz
0 0 0 1
3
7
7
5
. (2.45)
If J = J
x
i J
y
J
z
k. =
x
i
y

z
k, then the differential motion vector
of rigid body or coordinate frame can be expressed as follows:
D =

J. J, Jz
x

y

z

T
=

. (2.46)
The linear transformation between motion speed of manipulator and each joint
can be dened as the Jacobian matrix of a robot. This Jacobian matrix represents the
drive ratio of motion velocity from the space of joints to the space of end-effector.
Assume the motion equation of manipulator
. = .(q) (2.47)
represents the displacement relationship between the space of operation (end-
effector) and the space of joints. Differentiating (2.47) with respect to time yields,
. = J(q) q. (2.48)
where . is the generalized velocity of end-effector in operating space. q is the joint
velocity. J(q) is 6n partial derivative matrix which is called Jacobian Matrix. The
component in line i and column is:
J
ij
(q) =
d.
i
(q)
dq
j
. i = 1. 2. . . . . 6: = 1. 2. . . . . n (2.49)
From (2.49), it is observed that Jacobian Matrix J(q) is a linear transformation from
the velocity of joints space.
The generalized velocity . of rigid body or coordinate frame is a six-dimensional
column vector composed of linear velocity v and angular velocity w.
. =

v
w

= lim
t!0
1
^t

. (2.50)
2.6 Conclusions 31
Equation (2.50) can be rewritten as
D =

= lim
t!0
.^t. (2.51)
Replace (2.48) into (2.50), one has:
D = lim
t!0
J(q) q^t. (2.52)
D = J(q)Jq. (2.53)
For a robot with n joints, its Jacobian matrix is a 6n matrix, in which the rst three
lines denote the transferring rate of end-effectors linear velocity, and the last three
lines denote the transferring rate of end-effectors angular velocity. Jacobian matrix
can be expressed as:

v
w

J
l1
J
l2
J
ln
J
a1
J
a2
J
an

=
2
6
6
6
4
q
1
q
2
.
.
.
q
n
3
7
7
7
5
. (2.54)
The linear velocity and angular velocity of an end-effector can be expressed as the
linear function of each joint velocity q
v = J
l1
q
1
J
l2
q
2
J
ln
q
n
: w = J
a1
q
1
J
a2
q
2
J
an
q
n
. (2.55)
where J
li
and J
ai
means the linear velocity and angular velocity of end-effector
resulted in joint i .
2.6 Conclusions
In this chapter, kinematics of robot manipulators is introduced, including the con-
cept of reference coordinate frame, translational transformation, rotational trans-
formation and homogeneous transformation, as well as the basic knowledge in
robot kinematics, such as Euler angle, DenavitHartenberg representation, and Ja-
cobian matrix of robot. These are the important knowledge in parallel robotic
machine design.
http://www.springer.com/978-1-4419-1116-2