Sie sind auf Seite 1von 46

Chapter 1

Robot Modelling
1.1 Introduction
The aim of this chapter is to present a concise and short review of concepts and
principles involved in modelling and motion analysis of robotic manipulators. The
chapter is not a comprehensive study on the subject but has been written focusing
on the application of such principles to the design of robot control systems based
upon visual feedback.
The rst section starts with basic concepts regarding pose determination of an
rigid object respect to the world coordinate frame. The concept of homogeneous
transformation matrices is presented and extended to characterize the kinematic
behavior of serial links conforming a robotic arm. From here, it is possible to
describe the link positions respect to the time, introducing concepts such as link
velocity, kinematic derivatives, Jacobian matrix, etc.
Further such concepts lead naturally to dene other relevant concepts such
robot motion and trajectory generation. This chapter conforms a complete set
of robotic tools which are also provided in a real-time library which enables the
design of relevant robot control routines. The rst step in the chapter is to dene
the notation used in robotic analysis throughout this book.
1.2 Notation and introductory remarks
The aim of this section is to draw a clear and concise notation to avoid any sort of
misunderstanding in the discussions ahead. This chapter is an important start-
ing point because several disciplines such as image processing, computer vision,
robot control and real-time control systems converge in the study of visual ser-
voing schemes. Each discipline might be explained using its own symbology and
notation which represent a considerable risk of losing clarity and uniformity. This
section is thus devoted to dene the notation and to draw clear rules regarding
the meaning and coverage of each symbol.
1
In this book italicized lowercase letters (x, y, z) are used to denote scalars
and bold-faced such as (x, y, z) denote vectors of any dimension. Also bold-
faced uppercase letters (A, B, C) represent matrices. Estimated values of a given
variable are denoted with a hat on top of the variable ( x) and (x

) stands for
desired values.
Due to the fact that robotic concepts will be extensively used, some special
notation is used to refer to the robots links q
n
, being n the link number and the
Link Cartesian position () is represented by a three component position vector.
Lets develop further this concept.
In a 3-D context, the location of a point is dened in a cartesian space
3
respect to a given coordinate system . Such axis set is composed by orthogonal
unit vectors i,j, k which obey the so-classic right-hand rule to dene its orienta-
tion.
1
If we consider a plane formed by unit vectors i and j then the unit vector
k points in direction normal to this plane according to the right hand convention
[1]. The starting point to describe the position and orientation of a rigid body
is the denition of a general coordinate axis attached to a xed point labelled as
the origin.
1.3 Rigid body position and pose determination
In general, for computer vision applications and in the scope of this book, the
visual servoing task space is a subset of the tri-dimensional ane Euclidean space
SE
3
=
3
SO
3
. (Special Euclidean Group) [2].
A pose of a rigid body respect to a given coordinate system implies three trans-
lational and three rotational degrees of freedom and therefore a six-dimensional
dierential manifold. The translational component is expressed in a Cartesian
space and the position of point p is then expressed in vectorial terms as:
X = p
x
i + p
y
j + p
z
k (1.1)
Very often this position vector is expressed in matrix form as
X = p
T
C = [p
x
p
y
p
z
]
_
_
i
j
k
_
_
(1.2)
A 3-component rotation vector is used to describe position respect to each
component of a given coordinate system. This may be expressed in terms of a
rotational matrix R which is conformed as follows:
1
This is a classic rule that has been used in many subjects. Well known examples are in the
determination of the magnetic ow direction or in the vector analysis of static forces.
2
R =
_
_
n
x
o
x
a
x
n
y
o
y
a
y
n
z
o
z
a
z
_
_
= [n o a] (1.3)
The column vectors n, o, and a of matrix R are mutually orthogonal since
they represent unit vectors of an orthonormal frame. It then follows:
n
T
o = 0 o
T
a = 0 a
T
n = 0 (1.4)
From the same property of orthogonality, they have unit norm:
n
T
n = 1 o
T
o = 1 a
T
a = 1 (1.5)
Taking further the fact that R is orthogonal and multiplying T
T
T results in two
handy properties. The rst one regarding to the unitarian matrix
R
T
R = I (1.6)
from where just post-multiplying both sides of 1.6 by the inverse matrix R
1
we
can get the inverse of a rotation matrix as
R
T
= R
1
(1.7)
This property will come at hand because the computational burden required
to compute the inverse of the robot matrix is signicantly reduced by using
simply the transpose of such matrix. Moreover, the rotational matrix may also be
computed on-line in real-time control schemes as discussed later in this chapter.
By now, lets continue presenting the use of the rotational matrix to describe
rotational movement between rigid bodies.
Lets discussing further about the components n o a of the rotational matrix,
extending the discussion until its application to robot modelling.
1.3.1 Basic rotations
The use of rotation matrices allows a compact representation for the rotational
movement of a rigid body. A coordinate frame is attached to the object of interest
and its rotation R respect to a pre-dened Reference frame n can be dened as
n
R. Sometimes this reference frame is chosen to be named as world coordinate
frame
w
R.
.
In this book, rotations will be represented using an super-script character
representing the frame which acts as reference frame and the sub-script character
representing the new frame. To say,
w
R
r
represents the rotation from frame r
respect to the world reference frame w.
3
Lets start by a simple but illustrative example. Suppose we rotate a given
reference frame n, respect to the world reference frame yielding to
w
R
n
. Both
frames have a common origin O and hence the relationship between them is
purely rotational. This is shown in Figure 1.1.
z
k
i
j
o
i'
j'
x
y
Figure 1.1: Rotation of a frame (x,y,z) respect to the (x,y,z) world reference
frame
The unit vectors of the rotated frame n (x

, y

, z

) can be described respect to


the world frame w (x, y, z) through its components as follows:
x

=
_
_
cos
sin
0
_
_
y

=
_
_
sin
cos
0
_
_
z

=
_
_
0
0
1
_
_
(1.8)
(1.9)
To explain this simply remember that vector x

can be decomposed into its com-


ponents v
i
= x

cos and v
j
= x

sin . Then, given that each of the column


vectors in Equation 1.8 represent the projection respect to the orthogonal com-
ponents (i, j, k), building the matrix for a rotation respect to the z axis is
straightforward, because we just gather all columns yielding to
w
R
n
()
z
=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
(1.10)
Now it is possible to dene other rotations respect to axis y and x as follows:
w
R
n
()
y
=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
(1.11)
4
w
R
n
()
x
=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
(1.12)
In the following chapters, we use these descriptions to build-up complex ro-
tations relation from one frame to another. Next section reviews some methods
to express such rotations through a more compact representation.
1.3.2 Angle-Axis Representation
A dierent form of representing the rotation of a rigid body is often used in the
trajectory planning for the robot end-eector. Such representation is based in
dening a rotation axis r respect to a given reference frame and the required
angle of rotation. This results in a non-minimal but compact representation [3].
Let r = [r
x
r
y
r
z
]
T
be the unit vector representing such rotation axis and
the required rotation angle. Finding the rotation matrix may proceed as follows:
Rotate an angle about axis z until the vector is coplanar to the plane
(x, z) i.e. it is over axis x. Then rotate about axis y an angle of to align
the vector with the z axis. This will dene the value of required angles
and .
Rotate the recently aligned vector by angle about axis z.
Finally, return the vector r to its original position, rotating the vector about
axis y by and subsequently about axis z by an angle .
If such procedure is expressed using rotation matrices as studied in last section
we have:
R(, r) = R
z
()R
y
()R
z
()R
z
()R
z
() (1.13)
Note that the rotations are named in right to left order. In order to compute the
rotation matrix R(, r) a signicant simplication can be done if angles and
are expressed as function of the components of vector r. This results in the
following expressions:
sin =
r
y

r
2
x
+r
2
y
cos =
rx

r
2
x
+r
2
y
sin =
_
r
2
x
+ r
2
y
cos = r
z
(1.14)
Then, representing cos as c

and sin as s

the rotation matrix for a given angle


about an axis r can be dened as:
5
R(, r) =
_
_
r
2
x
(1 c

) + c

r
x
r
y
(1 c

) r
z
s

r
x
r
z
(1 c

) + r
y
s

r
x
r
y
(1 c

) + r
z
s

r
2
y
(1 c

) + c

r
y
r
z
(1 c

) r
x
s

r
x
r
z
(1 c

) r
y
s

r
y
r
z
(1 c

) + r
x
s

r
2
z
(1 c

) + c

_
_
(1.15)
In robot modelling is often required to compute the inverse procedure; It is
that given a rotation matrix, dene the vector and the corresponding rotation
angle. Re-writing the rotation matrix 1.3 and using simple indexes for clarity we
have
R =
_
_
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
_
_
(1.16)
from where the following expression can be better understood as:
= cos
1
_
r
11
+r
22
+r
33
1
2
_
r =
1
2 sin
_
_
r
32
r
23
r
13
r
31
r
21
r
12
_
_
(1.17)
Finally lets review some important remarks about the angle-axis representa-
tion:
When obtaining the four parameters (three vector components and the
angle value) from a rotation matrix, the three components of the resulting
r vector are constrained by the condition:
r
2
x
+ r
2
y
+ r
2
z
= 1 (1.18)
Also if = 0 then Equation 1.17 is non-determined and other procedure
is required to get the inverse. This procedure implies to explore among
particular components of matrix R in expression 1.16 and nd a set of
equations to solve for = 0 and = . Also, an important singularity in
this representation can be seen here when = 0 because the unit vector r
is arbitrary.
Finally, note that for a given matrix R the following property is found:
R(, r) = R(, r) (1.19)
It means that a rotation in opposite way () over a vector r cannot be
distinguished from a rotation () over a vector r.
6
1.3.3 Representation of Rotation using Quaternions
Now, it is time to introduce a useful tool to overcome many of the drawbacks
imposed by the the angle-axis representation reviewed in last section. Quater-
nions were rst introduced as a result of searching for a new way of represent
complex numbers [4]. In the 80s, Shoemake [5] presented a more ecient method
to compute the rotation of a rigid body in computer graphics using Quaternions.
Such method increases the computational eciency because a fewer number of
additions and products are required to dene the pose of a rigid object.
Quaternions provide a more complete representation of rotations distinguish-
ing between rotations of dierent sign and avoiding the singularity when angle
approaches , They later proved to be a useful tool in robotics to generate smooth
trajectories without overcome physical limits of the robots links. Moreover they
play an active role in some methods of path planning and trajectory generation.
Given all these reasons, they are included in this overview.
A quaternion Q is dened by 4 parameters. One scalar value and a three
component vector .
Q(, ) = (,
x
,
y
,
z
) (1.20)
Starting from the angle-axis representation studied in section 1.3.2, with and
r being the angle and the rotation vector respectively, we can easily dene the
scalar and vector components of Q as:
= cos

2
= sin

2
r = sin

2
(r
x
, r
y
, r
z
)
(1.21)
By construction the scalar and vector parameters of a Quaternion are constrained
by the condition:

2
+
2
x
+
2
y
+
2
z
= 1 (1.22)
which gives origin to the unit quaternion.
Lets rst present some insights into the simple Quaternion algebra to explain
how the drawbacks of the Eulers angle-vector notation can be avoided. Dening
a pair of Quaternions Q
1
and Q
2
Q
1
= (
1
,
1
) = (
1
, [
1
x
,
1
y
,
1
z
] )
Q
2
= (
2
,
2
) = (
2
, [
2x
,
2y
,
2z
] )
(1.23)
Quaternion Q
1
is equal to Q
2
if and only if all their components are equal, that
is (
1
=
2
), (
1
x
=
2
x
), (
1
y
=
2
y
), (
1
z
=
2
z
). The addition and dierence of
Quaternions is calculated through correspondent elements, as follows:
7
Q
1
+ Q
2
= (
1
+
2
,
1
x
+
2
x
,
1
y
+
2
y
,
1
z
+
2
z
)
Q
1
Q
2
= (
1

2
,
1
x

2
x
,
1
y

2
y
,
1
z

2
z
)
(1.24)
The Quaternion multiplication resembles the cross product between two vec-
tors. Starting with a multiplication between two Quaternions with scalar part
equal to 0, we have
Q
1
= (0,
1
) Q
2
= (0,
2
)
Q
1
Q
2
=
1
x

2
x

1
y

2
y

1
z

2
z
+
_
_
i j k

1
x

1
y

1
z

2
x

2
y

2
z
_
_
Q
1
Q
2
= (
1

2
,
1

2
)
(1.25)
The multiplication of two Quaternions is just completed with the terms corre-
sponding to the scalar product
1

2
and the scalar-vector product of each scalar
times the opposite vector components, i.e.
1
(
2
x
,
2
y
,
2
z
) and
2
(
1
x
,
1
y
,
1
z
)
as follows
Q
1
Q
2
=
1

1
x

2
x

1
y

2
y

1
z

2
z
+
1
(
2
x
,
2
y
,
2
z
) + . . .
. . .
2
(
1x
,
1y
,
1z
) +
_
_
i j k

1
x

1
y

1
z

2
x

2
y

2
z
_
_
Q
1
Q
2
= (
1

1

2
,
1

2
+
2

1
+ (
1

2
))
(1.26)
It is time to dene how a rotation matrix can be computed from Quaternion
components. Getting the results in Equation 1.21, the rotation matrix takes the
form
R(, ) =
_
_
2(
2
+
2
x
) 1 2(
x

x
) 2(
x

y
)
2(
x

z
) 2(
2
+
2
y
) 1 2(
y

x
)
2(
x

y
) 2(
y

x
) 2(
2
+
2
z
) 1
_
_
(1.27)
As usual in this study, we also provide the inverse computation: given a Ro-
tational matrix R as in Equation 1.16 compute the correspondent Quaternion
as
8
=
1
2

r
11
+ r
22
+ r
33
+ 1
=
1
2
_
_
sgn(r
32
r
23
)

r
11
r
22
r
33
+ 1
sgn(r
13
r
31
)

r
22
r
33
r
11
+ 1
sgn(r
21
r
12
)

r
33
r
11
r
22
+ 1
_
_
with :
R =
_
_
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
_
_
sgn(x) =
_
1 x 0
1 x < 0
(1.28)
Finally, some important remarks about Quaternions. First notice in last ex-
pression that 0 corresponds to an angle within the interval [ ]. This
means that through Quaternions, any rotation can be represented and therefore
the singularity found in Equation 1.17 is overcome.
Second, in spite of the conveniences of using Quaternions as elemental oper-
ator to characterize rotations, they had not been a popular choice until recent
years. Actually Shoemake reckoned that perhaps this happens as a result of not
including Quaternion in standard Maths and Physics curricula [5].
Finally there are abundant sources to expand Quaternion theory. Denitely a
handy overview is presented by Shoemake in [5]. Some textbooks include useful
reviews of Quaternions applied to Robotics such as Brady [6], Crane [7] and a
more updated by Siciliano [3]. Also Funda and Paul published in [8] a comprehen-
sive comparison of Quaternion and Homogeneous Transformations in Robotics.
It is time to use the concepts presented before to introduce the concept of
Homogeneous transforms in next section to clear the way for a complete kinematic
modelling of a robotic arm later in this chapter.
1.3.4 Homogeneous Transform Representation
The concept of homogeneous transformation naturally emerges from expressing
rotation and traslation in one entity. This study begins by analyzing an orthonor-
mal coordinate system which can be attached to a point laying on the surface
of an object. The objects position and orientation are thus dened upon the
relationship between this coordinate frame and some other coordinate frame.
The description of the position and orientation of such object is commonly
called the objects pose. Here the pose can be dened respect to dierent coordi-
nate systems such as the world reference frame w by means of a three-component
position vector t dened as in Equation 1.1 and one rotation matrix as that in
Equation 1.3. If they are integrated inside the same mathematical expression
then one homogeneous transform matrix as that in Equation 1.29 emerges.
9
m
T
n
=
_
m
R
n
m
p
n
0 1
_
=
_

_
n
x
o
x
a
x
p
x
n
y
o
y
a
y
p
y
n
z
o
z
a
z
p
z
0 0 0 1
_

_
(1.29)
Notice again that one homogeneous transformation matrix is conformed by
three orthonormal vectors describing rotation (n, o, a) and a positional vector
(p). As mentioned earlier, the superscript m and subscript n of the transforma-
tion variable T denote the new frame on which the resultant pose is dened and
the original frame respectively.
The last row has nearly all the elements equal to zero. As clearly explained
by Paul in his well-known book [9], this row may be used to produce scaling to
which the homogeneous transformations are invariant
2
.
They are commonly known as transformations because the objects position
can be transported or transform to its equivalent respect to a dierent coordi-
nate system. In terms of matrix algebra, it is possible to express the transforma-
tion from a point
O
p inscribed in the object coordinate system O, respect to the
world
3
reference frame W as follows.
w
P =
w
R
o

o
P +
w
t
o
(1.30)
It is possible to catch a better image of this transformation if these expressions
are expanded as follows (allowing an abuse of notation for clarity in the result)
_
_
w
p
ox
w
p
o
y
w
p
o
z
_
_
=
_
_
n
x
o
x
a
x
n
y
o
y
a
y
n
z
o
z
a
z
_
_
_
_
p
ox
p
o
y
p
o
z
_
_
+
_
_
p
wx
p
w
y
p
w
z
_
_
(1.31)
It is important at this point to present the inverse transform matrix because
it is often used in subsequent sections. To calculate such inverse, we start con-
sidering again Equation 1.7, where the inverse of the rotation matrix R was
introduced. Notice that to compute R
1
from the rotational component R is
straightforward, but some calculations need to be done to the traslation vector
p. The whole expression to compute the inverse transform is shown in Equation
1.32.
2
It is too early to discuss about projections but notice that this term is also used in projective
geometry due to the fact that a transformation in Euclidean space is actually a subset of other
transformations in projective geometry. This will be further discussed in following chapters
3
In this book, terms like world coordinate system and world reference frame refer to the
same concept. They are used indistinctly.
10
m
T
1
n
=
_

_
n
x
n
y
n
z
p n
o
x
o
y
o
z
p o
a
x
a
y
a
z
p a
0 0 0 1
_

_
=
_

_
n
x
n
y
n
z
p
x
n
x
p
y
n
y
p
z
n
z
o
x
o
y
o
z
p
x
o
x
p
y
o
y
p
z
o
z
a
x
a
y
a
z
p
x
a
x
p
y
a
y
p
z
a
z
0 0 0 1
_

_
(1.32)
Before carrying on studying the use of homogeneous transforms to describe
robotic chains, we need to clarify some points. Matrix transforms are frequently
used to express sequential rotations among several frames by just constructing a
matrix chain product, representing each frame with the correspondent transform
matrix. Equation 1.33 shows a multiple transformation to transport a given
point
n
p dened respect to the 5th coordinate frame to a new point dened in
terms of the coordinate base 0th frame (sometimes the 0th coordinate system is
assigned to the world coordinate frame W). In this case we have numbered each
frame with a simple number. The transformation can thus be expressed as
0
p =
0
T
1

1
T
2

2
T
3
3
T
4

4
T
5

5
p (1.33)
The transformation can be compacted through a simple matrix product of
the correspondent set of homogeneous transforms, as shown in Equation 1.33.
A useful extension of this idea is used to manipulate the factors of this product
through the inverse transform so as to obtain the values of one unknown matrix
in the chain. For instance, suppose that the chain of transforms required to take
a point
3
p from coordinate system 3 to frame 0 is equal to
0
T
3
as illustrated
below.
0
T
3
=
1
T
2

2
T
3
(1.34)
Now, imagine that for some reason we do not know the value of
1
T
2
. Then, using
simple matrix algebra and computing the inverse transform matrix as before, it
yields
0
T
1
=
1
T
2

2
T
3
0
T
1
(
2
T
3
)
1
=
1
T
2

2
T
3
(
2
T
3
)
1
=
1
T
2
I
1
T
2
=
0
T
1
(
2
T
3
)
1
(1.35)
This simple procedure will be often used to manipulate the kinematic model of
the robot. The nature of homogeneous transforms leads intuitively to use them to
model robotic chains attaching a coordinate frame to each robotic link and then
expressing their relationships through transform matrices. This concept is foun-
dation of well-known disciplines such as Robot Kinematic and Robot Dynamics.
Next section is devoted to discuss the kinematic analysis of robotic chains.
11
1.4 Robot Kinematics
Last section presented several methods to describe the pose of a rigid body.
This section develops the mathematical framework for using such representations
to describe the position, velocity and acceleration of the links conforming one
robot. In general, the study of relationships between links with no regard about
the forces which cause such motion is known as Robot Kinematic [10].
Although there exist many dierent kind of robots, this section focuses in
serial revolute robotic manipulators. The kinematics of any other kind of robotic
elements should be referred to other sources such as [7].
This study starts describing the most fundamental components of a robotic
structure which are the links and joints, whereas more advanced kinematics prop-
erties are considered in subsequent sections.
1.4.1 Robot Links and Joints
The links of a robotic structure are considered to be rigid bodies conforming a
mechanical chain or assemblage which lays attached in one end to the ground
and holding an end-eector tool or gripper in the other. Usually this kind of
setup is named as serial manipulator and also as open chain manipulator. In
this manipulator class, n +1 links are connected through n joints where link 0 is
usually rmly attached to the ground.
A joint is the mechanical unit which holds the mechanical linkage between
two links. The nature of the joint determines the type of connecting point be-
tween those links. There are several kinds of joints usually considered: revolute,
prismatic, cylindric and screw. For practical reasons, only revolute and prismatic
joint are considered in this work. Figure 1.2 sketches the representation used in
this work for each kind of these links.
Figure 1.2: Representation of Revolute and Prismatic Links
A revolute joint is one of the simplest and most common. Two congurations
are commonly found among revolute joints: collinear and orthogonal. In the rst,
the axis of rotation of the link is coincident with the central axis of the proximal
link as shown in Figure 1.3(a). In the orthogonal revolute joint, the rotation axis
or principal joint axis is normal to the proximal link (See Figure 1.3(b)).
On the other hand, a prismatic joint can only provide sliding motion, with
the joint axis being coincident to the sliding section of the link. As with revolute
joint, there are collinear and orthonormal prismatic joints based on the same
12
(a) (b)
Figure 1.3: Revolute Joints, (a) Collinear, (b) Orthonormal
principle (see Figure 1.4). Prismatic joints are not further developed in this book
given that the robot used in our research is considered within the revolute class.
(a) (b)
Figure 1.4: Prismatic Joints, (a) Collinear, (b) Orthonormal
These arrangements provide therefore only one degree of freedom (DOF) in
the robotic chain. Therefore the overall DOF in a serial-link robot is consider to
be equal to the number of joints n usually represented as n-DOF. Then, every
single degree of mobility provided by each revolute joint can be captured through
a joint variable
n
, where n stands for the n-th joint.
It is time to study how the position of a robotic link can be dened in terms of
the homogeneous transform matrices presented before. The main goal is to dene
the position and orientation of the robots last actuator in a compact way respect
to a given reference coordinate frame. This is also named as Direct Kinematics.
1.4.2 Kinematics Analysis
The aim of kinematics analysis is to determine the pose, i.e. location and ori-
entation, of the robots end-eector as a function of the joint variables. Lets
analyze Figure 1.5 to discuss about the desired nal pose of the end-eector. In
the graph, albeit non-visible, a robotic chain lays xed to the ground. The ori-
gin is the world coordinate axis W(x, y, z). Another coordinate frame E(x

, y

)
is attached to the end-eector. This frame E may be expressed respect to the
world coordinate frame through a positional vector
w
p
e
and a rotation matrix
w
R
e
which species the orientation. This can be compacted into a transform
matrix as explained in section 1.3.4 to dene the relationship between frames W
and E.
It is important to dene a standard frame orientation in the end-eector as
shown in Figure 1.5. A common practice (see [9]) is to dene the tool orientation
13
x
0
y
0
z
0
E
x
e
y
e
z
e
(n)
(o)
(a)
O
w
P
e
Figure 1.5: End-eector Coordinate frame
with the three unit vectors directed as follows: The z vector points to the interest
object signaling for the movement required to reach such object. It is therefore
known as approaching vector a. The component in direction y is known as the
orientation vector o and usually is set to point from ngertip to ngertip dening
the last actuator orientation. Finally the vector in direction normal to the other
two is known as the normal vector n. Given the orthogonality property, this
vector may be calculated as a cross-product given by n = o a. Notice also that
for practical reasons the same notation n, o, a was used for identifying each col-
umn of the homogeneous transformation matrix; this facilitates the interpretation
through homogeneous matrices.
1.4.3 Denavit-Hartenberg Parameters
Figure 1.5 illustrates the last step in the kinematic analysis whose aim is to
dene the relation between the world frame and the end-eector frame. This will
enable us to design specic controllers to drive the arm over a set of points or a
desired trajectory which may be specied in terms of directions, velocities and
accelerations for each robot link. From here that the Kinematic analysis gets its
relevance as a way to analyze intermediate links and joints in a compact way.
The rst part of the method is based on the classical paper of Denavit and
Hartenberg which discusses about Kinematic notation for mechanisms [11]. This
is a well-known standard which is explained in almost every book of robotic
engineering (For instance see [12, 13, 14]). Essentially, this method describes
the motion of each robot link as a rigid body whose interaction with other links
is characterized using the homogeneous transforms reviewed in the last section.
The rst step is to assign a coordinate system to each of the links conforming the
robotic arm. The overall arm motion is expressed as the homogeneous relation
14
in sequence between all frames previously assigned to each link. The motion of a
frame attached to a given link (n) is dened respect to the motion of the frame
attached to the previous link (n 1).
Basically the method requires to assign one vector, called the Joint Vector, to
each joint in the chain. Such vector is normally oriented along the joint axis, i.e.
the axis of rotation in a revolute joint. When the direction for each joint vector
is established, one coordinate frame may be attached to the joint considering the
joint vector as the third component of the coordinate frame (usually identied as
z) following the right-hand rule.
Considering that the robotic mechanism is attached in one end to the ground
and has an end-eector device in the other end, the method should be developed
link by link following the mechanical chain, starting from the ground-xed link.
Obviously, this is only valid for robots formed by serial links. For a wider discus-
sion including dierent kinds of robotic elements, an interested reader can review
[9, 15, 3, 7].
Denitely, this short description does not account for all insights into the
method. Lets now reviewing the method in more detail through a step-by-step
basis following the scheme sketched in [7].
Step 1: Dene Joint Vectors
Given that the rst link is usually attached to the ground and each joint should
have a coordinate frame attached to it, the DH convention establishes that the
joint vector in revolute joints usually matches with the line of rotation.
4
Some
authors refer to this component as axis vector but both terms are indistinctively
use in this text.
Normally, this vector is taken as the z axis of the coordinate frame. In Figure
1.6, the joint vector is shown for two revolute joints.
Figure 1.6: Joint vector in two revolute joints
Step 2: Dene Link Vectors
The link vector is commonly dened as the longitude of the normal line drawn
between two adjacent joints axis, those dened in step one. In the special case
4
The same applies for cylindric and screw-pair joints, not reviewed here.
15
that the two joint axes are parallel, the location but not the direction of this
vector is chosen arbitrarily.
As shown in Figure 1.7, for a simple planar revolute joint, the direction of the
link vector determines
n
that accounts for the Joint Angle measured respect
to the x axis of the attached frame. Actually the x axis shall be rotated by
the angle generating x

which determines the analytical expression relating a


coordinate frame with the following frame attached to the next robots link. This
is the aim of the next step.
x
n-1
x
n
0
n
0
n-1
z
n-1
z
n
Figure 1.7: Joint vector in two revolute joints
Step 3: Name Joint and Twist Angles
This step is crucial in the proper denition of attached frames. First we have
already seen that the Joint Angle is dened as the angle measured between
the link vector and the x axis of the attached frame following the right-hand
convention. In typical revolute joints, this is the variable to be controlled. Recall
that in order to proceed to the next link, the frame should be rotated over the z
axis by an angle . This will match the x
n1
axis in link n 1 to the link vector
x
n
in the next link n.
So far these conventions will work because in Figure 1.7 two links with parallel
joint axes are considered, but this is not normally the case with real industrial
robot links. The parameter which accounts for such displacement angle between
two consecutive joint axes, -after the initial rotation of x axis (generating x

axis),
is called Twist Angle. It is dened as the angle required to match the joint axis
z
n1
in link n1, to that in joint n named as z
n
by means of a rotation over the
displaced axis x (renamed as x

). This can be better understood in Figure 1.8


where a Twist Link is represented by the variable
n1
. Notice that the twist
angle
n
is a rotation over axis x
n
and refers to the next joint (n+1) non-visible
in the image. From the sketch, it is evident that link n + 1 which can be seen
incomplete in the gure, has its joint vector pointing vertically as the rst joint
n 1 does.
16
x
n-1
x
n
0
n-1
z
n-1
z
n
n-1
n
0
n
Figure 1.8: Joint vector in two revolute joints
Before continuing to next section, we should gather some remarks. As in-
dicated in graphs, the axis pointing through the center of rotation is known as
Joint Axis and is usually assigned to the frame component z. Then, the x axis
points normal to the z axis by denition and together with the Link Vector
forms the Joint Angle. Axis y is located in the normal to the x z plane
following the right hand convention.
Step 4: Determine oset and link length
This step nishes the kinematic parameter denition. Figure 1.9 shows three links
of the mechanism where the Joint vector (z) and Link vector (x) are assigned
according to the rules discussed before. To complete the kinematic description, it
is required to dene the Link Oset (d) as the distance between Link vectors
in two subsequent links (for instance n 1 and n). This parameter is calculated
as the length of the normal vector between axis x
n1
and n
n
, after applying the
rotation specied by the Twist Angle to match the direction of both z axes in
consecutive links.
The Link Length (a) is dened easily as the normal distance between two
consecutive Joint Vectors, for instance z
n1
and z
n
, along the link vector x

,
i.e. the magnitude of such vector is considered the link length.
Step 5: Build the table of Kinematic parameters
This is the conclusive step in the model construction. The aim is to gather
all the parameters obtained from previous steps in one parameter set. It is a
common practice among the robotic community to use this format to compact the
kinematic information. Ever further, most of the commercial software available
to simulate kinematic arrangements requires to be fed with the robot parameters
in this way. Usually the parameters are organized in a format similar to Table
1.1.
17
Parameters
Lenght Twist Angle Oset Variable
Link a
i

i
d
i

i
/
i
L
1
a
1

1
d
1

1
L
2
a
2

2
d
2

2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L
n
a
n

n
d
n

n
Table 1.1: Denavit-Hertenberg Parameter Table
It is important to notice that these parameters are essential in obtaining the
Kinematic expressions. For instance in the next section, the DH convention
naturally supports the computation of the homogeneous matrices representing
those frames attached to the each of the robot links.
To close the description of the DH convention, Table 1.2 describe a short
form of every step in the method. The determination of the kinematic matrices,
called forward kinematics is the matter of the next section.
x
n
z
n
x
n+1
z
n+1
n
x
n-1
z
n-1
n+1
Joint n-1
Joint n
Joint n+1
Link n-1
Link n
Link n+1
d
n
d
n+1
0
n
0
n+1
y
n+1
a

n-1
a

0
n-1
n+1
n
Figure 1.9: Denavit-Hertenberg Parameters dened for three links of a serial
manipulator
1.4.4 Direct Kinematics
As discussed in section 1.4.2, the aim of the kinematic analysis is to determine
the pose of the robots last actuator. By attaching a coordinate frame to each
18
Step Description
I Assign the Joint Vectors matching with each joint axis.
II Dene the Link Vectors between every two consecutive links
III Name each joint in the robotic chain (
n
)
IV Find the Twist Angle (
n
)
V Determine the Oset (d
n
) and Link Length (a
n
)
VI Complete Table 1.1 with all Kinematic parameters
Table 1.2: Denavit-Hertenberg Method, Steps Overview
robots joint according to the DH convention, it is possible to dene the overall
direct kinematic relationship between the base link and end-eector.
This section presents the mathematical expression which relates the coordi-
nate frame attached to a given link to those coordinate frames attached to the
links behind and after it.
5
The step-by-step procedure was presented in last
section but the aim of this section is to take such assumptions and build the
kinematic matrix. Therefore, this discussion assumes that the kinematics param-
eters have been fully determined and the correspondent links transform matrix
has been built for each link.
Kinematics Matrix
Taking a second look in Figure 1.8, lets assume that the assignation of frames
starts on link n1. Following the DH convention, the z axis is pointing following
the Joint Axis and the x axis is simply normal to this vector. As discussed, a
rst rotation over the newly dened axis z is required to match the axis x to the
link vector. Recalling the notation presented in [9], this can be written as Rot(z,
), where the rst parameter indicates the axis of rotation and the second the
rotations angle represented by .
Now, displacing the attached frame in direction of the rotated z axis by the
distance dened in parameter oset d, the height from one frame to the next
one is matched. Using again the notation from [9] and changing the operation to
a traslation in the third axis (z) this can be replaced by Trans(0,0,d).
Next step is to displace the resulting frame through the link vector, by
the longitude dened in the parameter a
n1
, which accounts for the length of
the link (see step 4). Using again the pseudo-notation, this can be written as
Trans(a,0,0).
Finally, the last step is to rotate the frame over the x axis to match the axis z
of both frames. Such required angle is specied by the twist angle () and can
be also represented by Rot(x, ). A graphical view of these steps applied to a
5
They can also be named as distal and proximal links respectively.
19
generic serial anthropomorphic arm of 3-DOF is presented in Figure 1.10 while
Table 1.3 shows the correspondent kinematic parameters.
270
o
270
o
270
o
x
0
z
0
y
0
x
1
z
1
y
1
x
z
y
1
d
1
x
3
z
3
y
3
a
2
2
0
1
0
2
0
3
x
3
z
3
y
3
3
0
3
a
3
Figure 1.10: Graphic example to show how to locate and displace the coordinate
axes for a generic 3-DOF Robot
Back into modelling, each of the steps can be compacted into an equation
describing the relationship between two consecutive frames. If such frames are
named as n and m, we can express that as
n
T
m
= Rot(z
m
,
m
)Trans(0, 0, d
m
)Trans(a
m
, 0, 0)Rot(x
m
,
m
) (1.36)
20
Parameters
Lenght Twist Angle Oset Variable
Link a
i

i
d
i

i
/
i
L
1
0 /2 d
1

1
L
2
a
2
0 0
2
L
3
a
3
0 0
3
Table 1.3: DH Parameters for the Anthropomorphic arm shown in Figure 1.10
Expressing each component in terms of homogeneous transforms as presented in
section 1.3.4, it yields
m
T
n
=
_

_
cos sin 0 0
sin cos 0 0
0 0 1 0
0 0 0 1
_

_
_

_
1 0 0 a
0 1 0 0
0 0 1 d
0 0 0 1
_

_
_

_
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
_

_
(1.37)
from which emerges the classical homogeneous transform relating the coordinate
frame from link n to that in link m as follows
m
T
n
=
_

_
cos sin cos sin sin a cos
sin cos cos cos sin a sin
0 sin cos d
0 0 0 1
_

_
(1.38)
Given that the robotic arm is formed by a serial chain of links, it is possible
to represent the relationship between the end-eector frame and the base frame
through a chain of homogeneous transforms of the form of 1.38 as follows
6
0
T
6
=
0
T
1
1
T
2
2
T
3
3
T
4
4
T
5
5
T
6
(1.39)
Notice that in this example the robot has 6 transforms, one per each joint
which means that each joint can be represented by a independent variable
n
as
long as such joint is actuated, i.e. has its own actuator.
Given that a robot manipulator is usually an open kinematic chain, whose
joint positions are dened by a vector of single variables
n
, the number of joints
generally equals the number of degrees of freedom.
The number of Degrees of Freedom (DOF) in a robot manipulator is the
number of independent position variables that should be specied in order to
dene a location for all the links in the arm. Generally speaking, it denes in
how many ways the manipulator is able to move.
6
There exists a well-known modied DH convention presented by Craig in [16], which results
in a dierent matrix. For more information, refer to nal remarks on this section
21
In order to cover the entire 3D workspace with an 3-component orientation
vector, six degrees of freedom are thus sucient.
For a given robot, developing a given task, if there are more degrees of mobility
in the robot than degrees of freedom required by such task, then the manipulator
is said to be kinematically redundant for that task.
It is too early in this work to discuss about redundancy, but for now notice
that this concept will be recalled later to develop more advanced ideas regarding
inverse robot kinematics and motion control.
Although the idea of expressing the whole robot kinematics in just one entity
is attractive, generally such matrix is formed by elements with a considerable
number of terms, which make it dicult to visualize and understand. Hence it is
usual to nd that for most robot models, the kinematics is shown separately for
each of the transform matrices such as Equation 1.39.
Notice here the relevance of the kinematics parameter table which ease the
process to dene each links transform. Taking the data from Table 1.3, it rela-
tively easy to build each transform as follows
0
T
1
=
_

_
cos
1
0 sin
1
0
sin
1
0 cos
1
0
0 0 1 d
1
0 0 0 1
_

_
(1.40)
1
T
2
=
_

_
cos
2
sin
2
0 a
2
cos
2
sin
2
cos
2
0 a
2
sin
2
0 0 1 0
0 0 0 1
_

_
(1.41)
2
T
3
=
_

_
cos
3
sin
3
0 a
3
cos
3
sin
3
cos
3
0 a
3
sin
3
0 0 1 0
0 0 0 1
_

_
(1.42)
Considering just these three links is still possible to visualize the whole transform
as follows:
0
T
3
=
0
T
1
1
T
2
2
T
3
=
_

_
c
1
c
23
c
1
s
23
s
1
c
1
(a
2
c
2
+ a
3
c
23
)
s
1
c
23
s
1
s
23
c
1
s
1
(a
2
c
2
+ a
3
c
23
)
s
23
c
23
0 a
2
s
2
+ a
3
s
23
0 0 0 1
_

_
(1.43)
where a simplied notation is used as follows: c
1
= cos
1
, c
2
= cos
2
, s
1
= sin
1
,
s
2
= sin
2
, c
23
= cos(
2
+
3
), and s
23
= sin(
2
+
3
).
Notice that in the case of revolute joints,
1
,
2

3
are the independent
variables in the matrix given that all other are completely dened in the param-
eter table. We can thus express this as:
22
Parameters
Lenght Twist Angle Oset Variable
Link a
i

i
d
i

i
/
i
L
1
0 /2 0.26
1
L
2
-0.23 0 -0.013
2
L
3
-0.24 0 0
3
L
4
0 /2 0.075
3
L
5
0 /2 0.044
5
L
6
0 0 0.080
6
Table 1.4: Complete Denavit-Hartenberg parameter table for the TQ MA2000
6-DOF manipulator
=
0
T
6
(q) being q =
_

2
.
.
.

n
_

_
(1.44)
The roll of vector q here is similar to that played by a state-space vector in
linear systems. This concept is the main subject discussed below which develops
the idea of the kinematic spaces.
Kinematic Spaces
As mentioned earlier, the aim of robot kinematics is to determine the pose of the
robots end-eector using such information to perform several robotic tasks such
as trajectory following, picking-up objects, welding, tracking, etc.
The kinematics information is concentrated in the
0
T
6
transform matrix which
takes the current state of each link q and determines the end-eectors cartesian
position and orientation (). Expressing this in mathematical terms, it yields
=
0
T
6
(q) = K(q) (1.45)
Notice that the joint vector (q) represents each links current state and can be
conformed by either a set of
n
or d
n
values depending on the nature of each
link, i.e. revolute or prismatic. In the scope of this book such vector is always
composed by angle values
n
because all experiments run upon a 6-DOF revolute
robot manipulator, conforming q as
q =
_

1

2

3

4

5

6

T
(1.46)
Henceforth this vector is denominated Joint Space or conguration space,
because it denotes the space over which each joint variable is dened.
23
On the other hand, recall that the direct kinematic equation
n
T
m
expresses
the end-eectors pose respect to the base. If such pose is dened as a function of
time then it becomes a trajectory. Expressing such trajectory in terms of complete
transform matrix implies to assure the orthogonality of vectorial components n,
o, and a for every step. An option is to use a minimal representation as those
discussed in sections 1.3.2 and 1.3.3 or the so-called Euler representation, not
reviewed here but very similar to the angle-axis scheme (See Paul [9] for details).
Therefore it is possible to express the robot posture using a m 1 vector,
being m n by means of a minimal representation which includes positional and
rotational elements as follows:
=
_
p
w
_
=
_
p
x
p
y
p
z
W
x
W
y
W
z

T
(1.47)
In this representation, the parameters are naturally independent and dened
in the space over which the task is performed; hence this space is commonly
named as the Operational Space.
Final Remarks
Before closing this section, it is important to discuss two relevent issues. One
regarding the modelling of prismatic joints and a second one about the Modied
Denavit-Hertenberg convention.
Transformation Matrix for Prismatic Joints
In case of revolute joints, it is assumed that is the controlled variable while in
prismatic joints, this job is taken by the oset variable d given that the motion
is performed in the direction pointed by the z axis or axis vector. Parameters
and remain in the matrix to account for the links geometry while positional
vector components such as p
x
= a cos and p
y
= a sin become zero in the
Transformation matrix (see matrix 1.48 below and compare to that in 1.38).
m
T
n
=
_

_
cos sin cos sin sin 0
sin cos cos cos sin 0
0 sin cos d
0 0 0 1
_

_
(1.48)
Modied Denavit-Hartenberg convention
There exist a Modied Denavit-Hartenberg convention. In spite this fact is not
explicitly discussed in textbooks, it is often used for instance in [17], [16], [18] and
[7], This method results in quite dierent matrix values and therefore attention
should be given to this fact. In the scope of this book, only the classic DH
24
convention is used but it is worth to mention that the robotics toolbox for Matlab
used in the simulations can cope eectively with both conventions [19].
1.4.5 Inverse Kinematics
The inverse kinematic problem consists on the computation of the Joint Space
vector () given the end-eectors position and orientation
0
T
6
.
Solving this problem is of special importance because the manipulator motion
can be thus specied in terms of the operational space, which denes trajectory.
The joint values required to follow such trajectory are thus calculated from the
inverse kinematic solution.
The inverse kinematic may be solved either by nding the analytical equa-
tions for each links variable or through an iterative method. Both methods are
discussed in this book with a simple example to illustrate the analytical method
and a practical implementation of one iterative solution.
Analytical Solution
The problem can be solved analytically for a simple manipulator but the solution
for some 6-DOF robotic structures may be fairly complex or dicult. Some
references present the analytical solution for classical robot examples such as the
Puma Robot [14] or the Stanford manipulator [15].
But the inverse kinematic problem is not an easy problem given that multiples
solutions may exist, in special for kinematic redundant robots which are able
to reach any point inside the workspace. Also the kinematic expressions are in
general non-linear which implies that a closed-form solution is not always possible.
Moreover, the solution could be no admissible because it might violate the robots
physical constraints such joint operational ranges or mechanical postures.
The problem of multiple solution depends basically on the number of degrees
of mobility and on the non-null Denavit-Hartenberg parameters. It is to say that
the number of solutions grows as the number of non-null kinematic parameters
increases. Of course a solution exists as long as the end-eectors pose belongs
to the reachable dexterous robots workspace.
In the case of a 6-DOF robot with no physical or mechanical limitations, which
is clearly an ideal case, it is possible to nd at least 16 admissible solutions for a
given location and orientation [3]. Evidently the existence of physical constraints
reduces the number of possible solutions.
To calculate the analytical solution for a given robot, some sorts of geometric
and algebraic intuition are required. On one side, an skillful algebraic analysis
could eventually lead to signicant equations. On the other, some geometric
assumptions may be really useful to determine handy points and robots poses
which successfully solve practical problems.
25
Just as an example, the inverse kinematic solution for a 3-link generic robot
like that presented in last section is illustrated below. This is a simple but illus-
trative example with just the nal expression included in this work. A detailed
procedure is clearly explained in several sources such as [9] and [3].
The inverse kinematic problem is solved following the method proposed in [14],
where starting from the desired T
d
, it is possible to apply some matrix algebra
to nd some equivalences from which we get the resultant joints angles values as
follows:
0
T
3
=
0
T
1

1
T
2

2
T
3
(
0
T
1
)
1

0
T
3
= (
0
T
1
)
1

0
T
1

1
T
2

2
T
3
= I
1
T
2

2
T
3
(
0
T
1
)
1

0
T
3
=
1
T
3
(1.49)
In order to build the last expression, we calculate the inverse
7
of expression
1.40 and the matrix
1
T
3
. Considering the elements of
0
T
3
it is possible to conform
_

_
c
1
s
1
0 0
0 0 1 d
1
s
1
c
1
0 0
0 0 0 1
_

_
_

_
n
x
o
x
a
x
p
x
n
y
o
y
a
y
p
y
n
z
o
z
a
z
p
z
0 0 0 1
_

_
=
_

_
c
23
s
23
0 l
3
c
23
+ l
2
c
2
s
23
c
23
0 l
3
s
23
+ l
2
s
2
0 0 1 d
2
0 0 0 1
_

_
(1.50)
Focus the attention in element [3,3] which corresponds to the resultant element
d
2
. It thus easy to verify that
s
1
p
x
c
1
p
y
= d
2
(1.51)
Giving the fact that s
1
p
x
and c
1
p
y
are orthogonal it is possible to introduce a
new variable r to express them as
p
x
= r cos p
y
= r sin
tan =
py
p
x
= arctan
px
p
y
(1.52)
with r = +(p
2
x
+ p
2
y
)
1
2
and
1
can be calculated as

1
= arctan
_
d
2
_
r
2
d
2
2
_
+ arctan
_
p
y
_
r
2
d
2
2
_
(1.53)
A detailed determination of these expressions is carefully exposed in [9] where
following the same procedure it is possible to determine the expressions for angles

2
and
3
as
7
Recall that in case of orthogonal matrices, inverse is equivalent to the transpose.
26

2
= arcsin
_
P
z
d
1
l
3
n
z
l
2
_
(1.54)

3
= arcsin(n
z
) arcsin
_
P
z
d
1
l
3
n
z
l
2
_
(1.55)
Iterative Inverse Kinematic Solution
One iterative method to solve the inverse kinematic problem presented by Chieaverini
et al. in [20] is discussed in this section. This method requires the current end-
eectors pose (
0
T
6
) to calculate the correspondent joint vector q.
The solution is completely general and much less ecient than a specic
kinematic solutions derived analytically. Although the method requires elements
which have not been reviewed so far, it is presented to preserve the continuity in
this chapter. All new computational elements, such as the Jacobian matrix and
its pseudo-inverse are thoroughly discussed in next sections.
The method receives the homogeneous transform T
d
for which the joint vector
have to be determined. Given the fact that an inverse kinematics problem may
have multiple solutions, an optional initial state q
0
for the joint vector may also
be supplied as a second input. Such initial state allows a shorter search for
the solution, because if not given, the algorithm starts from a vector with all
components equal to zero.
The algorithm searches to minimize the dierence between the given desired
transform T
d
and the transformation resulting from the forward kinematics com-
putation F(q
0
). This can be expressed as
e = F(q) T
d
(1.56)
The algorithm basically resembles a control algorithm introduced in [13] and
extended in [20] to minimize iteratively the error expression in Equation 1.56. Ba-
sically the error expression is multiplied by the Jacobian matrix which represents
the rst time derivative of the transformation matrices, yielding
q = J
+
(F(q) T
d
) (1.57)
Finally the Joint State vector (q) is calculated by integrating the resultant
vector of joint velocities ( q) in expression 1.57. The algorithm operates until
the maximum iteration number is reached or until the error e in expression 1.57
becomes less than a given threshold .
Due to the iteratively nature of the algorithm, the returned angles (considering
all joints like revolute) may be in a non-minimum form, i.e. (q + 2n). Also
considers that this algorithm obtains a solution even at singularities points. A
more complete discussion about the minimization algorithm is reviewed later
27
when the kinematic motion and the Jacobian are analyzed, characterized and
implemented in real-time.
Final remarks
Two remarks close this section. First it is important to notice that the cal-
culation of direct and inverse kinematics may imply a big computational cost
including when only an analytical solution is used. Considerable research eorts
were focused in minimize the amount of required mathematical operations. For
instance, in [21] Goldenberg et al. presented a complete generalized solution
to the inverse kinematics of robots with arbitrary number of DOFs using the
concept of residuals. Wang et al. used in [22] vector equations combined with
recursive computations which result in computational advantages over other ex-
isting methods for calculating kinematic and dynamic expressions.
Finally a careful attention deserves the fact that the dimensional units used
for the last column of the T matrix must agree with those units used in the robot
denition. This is a very important issue in order to keep consistency in the
kinematic model.
1.4.6 Motion analysis
In the last section, the kinematics equations to dene the relationship between
the joint state and the end-eectors pose were developed in terms of the direct
and inverse kinematics solutions. This section takes this study one step further by
analyzing the mapping between the robots joint velocities and the corresponding
end-eector translational and angular velocities.
As in forward kinematics, such relation may be expressed by a Jacobian ma-
trix. It is one of the most important tools for robot modelling because is used to
analyze redundancies, detect singularities and as an active component in some
iterative inverse kinematics algorithms as the one introduced in Section 1.4.5.
The discussion which follows mainly focuses in a numerical solution to obtain the
Jacobian, given our interest in a real-time visual servoing schemes. However it
is also possible to derive such relationship upon analytical equations as shown in
[23].
The determination of the elements conforming the Jacobian matrix starts
from the direct kinematics expression in Equation 1.45, but using q as dened in
expression 1.46. Given that the aim of dierential kinematics is to dene the map-
ping from joint velocities to the end-eectors motion, a minimal representation
for velocity can be used expressing = yielding
=
_
p

_
(1.58)
28
with the cartesian positional vector p = [ p
x
, p
y
, p
z
] embedded in the upper half
and the angular velocity vector = [ w
x
, w
y
, w
z
] in the lower half. This vector
is commonly known as the Screw vector.
It is easy to see that the Jacobian J relates the translational motion and the
angular velocity of each link. Hence the Jacobian matrix may be split into two
components
=
_
J
p
J

_
q (1.59)
which decomposes the matrix into two parts, yielding p = J
p
(q) q and = J

(q) q.
Notice the use of q which indicates the Jacobian depends on the joint space vec-
tor.
Lets study the nature of the dierentials generated from a rotational matrix
and a positional vector, which in principle gives origin to the translational and
rotational dierential motion. From section 1.3.1, it is been discussed that a
rotation can be expressed with respect to each axis x, y and z through matrix
transformations similar to
Rot(x, ) =
_

_
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
_

_
(1.60)
which just accounts for the axis-x rotation (see Equation 1.12). In order to dene
a dierential motion, it is assumed that dierential changes imply that sin d
and cos 1, hence the derivative matrices corresponding to R
x,
, R
y,
and R
z,
are
R
x,
=
_

_
1 0 0 0
0 1
x
0
0
x
1 0
0 0 0 1
_

_
R
y,
=
_

_
1 0
y
0
0 1 0 0

y
0 1 0
0 0 0 1
_

_
R
z,
=
_

_
1
z
0 0

z
1 0 0
0 0 1 0
0 0 0 1
_

_
(1.61)
Hence an important Skew-symmetric matrix (q)
R
can be calculated as the
product of the matrices in expression 1.61. Notice that this result is independent
from the fact of which dierential rotation is performed rst.
(q)
R
=
_
_
0
z

y

z
0
x

y

x
0
_
_
(q) =
_

_
0
z

y
d
x

z
0
x
d
y

y

x
0 d
z
0 0 0 0
_

_
(1.62)
29
On the other hand, a dierential translation is simply expressed by means
of the derivatives at each coordinate direction such as [dp
x
, dp
y
, dp
z
], which
completes the (q) matrix shown in the right side of 1.62.
Notice that this matrix is entirely form by elements which belong to the
operational space . Therefore we can make use of the minimal representation
vector from Equation 1.58, the so-called screw vector (q) = [d
x
d
y
d
z

x

y

z
]
T
.
The Jacobian is determined by the expressions in 1.59, which analyze separately
the translational and rotational components of the dierential motion.
Dierential rotational motion
Lets now determine the derivative of the rotation matrix as a way of computing
the dierential rotational motion . First, assume an orthogonal rotational ma-
trix which implies that R(t) R
T
(t) = I and calculating the rst derivative, it
yields

R(t) R
T
(t) + R
T
(t)

R(t) = 0. Now focus on the rst term

R(t) R
T
(t).
As elegantly shown in [3], this product generates an skew-symmetric matrix
named here as S(t). It is possible to extract

R(t) by post-multiplying both
sides by R(t), and a very important expression emerges

R(t) = S(t) R
T
(t) (1.63)
which allows to express the derivative of R(t) in terms of itself. This can also
be explained from a geometric point of view which supplies relevant physical
insights, see for instance [3]. Do not lose of sight the fact that S(t) is a Skew-
symmetric matrix which represents rotational dierentials. Relating this fact with
mechanics, it is known that the skew-symmetric matrix S(t) can be represented
as a set of angular velocities yielding
p(t) = (t) R(t) p

(1.64)
where (t) corresponds to the rotational part of the screw vector. Notice that
sometimes this is also represented by S(t) = S((t)) [3].
Translational dierential motion
It is time to complete this study by analyzing the translational dierential motion
as well. Considering again a point p which is to be transformed from frame i to
another frame i 1. It is possible to use expression 1.30 as follows
i1
p =
i1
R
i
i
p +
i1
o
i
(1.65)
with
i1
o
i
being the positional component for the transformation. Calculating
the derivative respect to time, it yields
i1
p =
i1
R
i
i
p +
i1

R
i
i
p +
i1
o
i
(1.66)
30
Recalling expression 1.63, we have
i1
p =
i1
R
i
i
p + S(
i1

i
)
i1
R
i
i
p +
i1
o
1
(1.67)
Introducing variable
i1
r
i
to represent the transformation
i1
r
i
=
i1
R
i
i
p,
the expression is changed to
i1
p =
i1
R
i
i
p + S(
i1

i
)
i1
r
i
+
i1
o
i
(1.68)
From linear algebra we know that a Skew-symmetric matrix multiplied by a
vector can be expressed in terms of a cross-product yielding
8
i1
p =
i1
R
i
i
p +
i1

i1
r
i
+
i1
o
i
(1.69)
which considering that
i
p is static in frame 1, then the term (
i1
R
i
i
p) is naught
and conrms Equation 1.64, recalling that 1.64 considers only rotational terms
and the term
i1
o
i
incorporates the translational component.
1.4.7 Robots link motion
The relationship of translational and rotational velocities inside a robotic chain
can now be calculated by considering the Denavit-Hertenberg parameters. In
order to do so, lets consider two vectors locating the origin of two consecutive
frames (i 1, i) attached to one particular robots link as shown in Figure 1.11.
Such vectors are named as x
i1
and x
i
for each frame respectively.
x
0
y
0
y
i-1
O
0
x
i-1
Joint
i-1
z
0
Joint
i
Link i
i-1
x
i
0
x
i-1,i
y
i
z
i
x
i
Figure 1.11: Modelling the position of a kinematic robots link.
Translational Velocity. Once again lets dene
i1
r
i1,i
=
i1
R
i1,i

i
x
as the vector accounting for the origin of Frame i respect to Frame i 1,
expressing this result in the same frame i 1. Thus a point respect to the
base frame can be expressed as follows
8
As shown later, this is possible if and only if both elements in the cross product are dened
in the same coordinate frame.
31
0
x
i
=
0
R
i1
i1
x
i1,i
+
0
x
i1
(1.70)
and recalling expression 1.66, its derivative can be dened as
0
x
i
=
0
R
i1
(
i1
x
i1,i
) +
0

R
i1
i1
x
i1,i
+
0
x
i1
(1.71)
using 1.69, this last expression can expressed as
0
x
i
=
0
R
i1
(
i1
x
i1,i
) +
0

i1

0
r
i1,i
+
0
x
i1
(1.72)
The rst term
0
R
i1
(
i1
x
i1,i
) represents the translational velocity of the
frame i attached to link i, as a function of the translational and rotational
velocities of link i 1. Substituting by
0
v
i1,i
for clarity, this yields
0
x
i
=
0
v
i1,i
+
0

i1

0
r
i1,i
+
0
x
i1
(1.73)
Angular Velocity On the other hand, it can be shown that an angular
velocity
0

i
is calculated from the simple addition of the angular velocities
in other links if and only if they are expressed with respect to a common
frame as shown below.
0

i
=
0

i1
+
0
R
i1
i1

i1,i
0

i
=
0

i1
+
0

i1,i
(1.74)
In dierent words, this is equivalent to dene the angular velocity of link i
as a function of the angular velocities on link i 1 plus the angular velocity
of link i respect to link i 1.
Lets gather the results from expressions 1.73 and 1.74 with some DH consid-
erations for revolute joints only. The study of prismatic joints is not considered
to keep this overview as brief as possible.
Revolute joints
In the case of a revolute joint, the angular velocity directly depends on the
i
angle. Such velocity is initially expressed in the local frame i and the relationship
with the distal link i 1 should be determined. Following the criteria from last
section, the angular velocity produced by Link i, can be thus expressed in terms
of the i 1 frame but respect to the base frame as follows
0

i1,i
=

i
z
i1
(1.75)
32
From the DH convention we know that the z axis points through the Joint
Axis and therefore z
i1
represents the unit vector in the direction of such axis.
On the other hand the linear velocity can thus be obtained from Equation 1.64
as
0
v
i1,i
=
0

i1,i

0
r
i1,i
(1.76)
This last two expressions for
0

i1,i
and
0
v
i1,i
can be used in Equations
1.74 and 1.73 to obtain the value of the rotational and translational velocities as
follows. First the angular velocity respect to the base frame can be calculated as
in Equation 1.74 as
0

i
=
0

i1
+

i
z
i1
(1.77)
In the case of the translational velocity, a general expression can be deducted
substituting Equation 1.76 in expression 1.73 yielding
0
x
i
=
0

i1,i

0
r
i1,i
+
0

i1

0
r
i1,i
+
0
x
i1
(1.78)
from which applying some matrix algebra we get
0
x
i
= (
0

i1,i
+
0

i1
)
0
r
i1,i
+
0
x
i1
(1.79)
and nally, considering again Equation 1.74, we conclude that
0
x
i
=
0

0
r
i1,i
+
0
x
i1
(1.80)
Expressions 1.80 and 1.77 are of particular importance in next section where
one iterative method to calculate the Jacobian matrix is presented.
1.4.8 Jacobian computation
Lets now proceed to determine a consistent method to compute the Jacobian
matrix given the current robots joint vector q. Considering that in this book the
main interest focuses on revolute planar manipulators, the analysis of prismatic
joints is not further documented. However an interested reader can review this
topic in many sources such as [7, 15, 3, 24].
Lets dene the linear velocity rst. Recall expression 1.76 from last section,
and the term qJ
L
i
which represents the generic input variable q and the ith
column of the Jacobian which in this case interacts only with the three upper
components of the input vector q, given that only the linear motion is under
study at the moment.
qJ
L
i
=
0

i1,i

0
r
i1,i
(1.81)
Including Equation 1.75 in this expression, it is not dicult to show that
33
0

i1,i
=

i
z
i1
qJ
L
i
=

i
z
i1
(p p
i1
)
(1.82)
which includes the vectorial dierence between vectors p and p
i1
. To understand
the nature of this vectorial dierence, lets consider again the components of
i1
r
i1,i
. From the development of expression 1.70, it is possible to rewrite
0
r
i1,i
=
0
R
i1,i

i
x (1.83)
Taking a second look on Figure 1.11, it is easy to explain that
0
r
i1,i
represents
the point
i
x, which accounts for the origin of the frame attached to joint i.
Such point is expressed respect to the base frame but considering the velocity
contribution in terms of the frame attached to the i 1 joint. For a better
understanding, analyze the vectorial triangle in the rst graph of Figure 1.12,
which is similar to that in Figure 1.11. It is easy to see that
0
r
i1,i
=
0
x
i1
+
i1
x
i
(1.84)
and therefore
i1
x
i
=
0
r
i1,i

0
x
i1
i1
x
i
= p p
i1
(1.85)
where
i1
x
i
represents the virtual link going from each joint to the end-eector
and upon which is possible to calculate the contribution of each link to the motion
of the end-eector. Thus the vectorial dierence can be graphically explained in
both Figures 1.11 and 1.12, considering vector p as vector
0
r
i1,i
and vector p
i1
as vector
0
x
i1
.
Do not forget that such analysis should be performed in every link with respect
to the robots end-eector. Take a second look on Figure 1.12 where a graphical
view of the Jacobian computation is shown. Although Figure 1.12 only shows the
6th, 5th and 4th link in an hypothetical 6-DOF robot, it is easy to appreciate how
these ideas can be transported to more complex robotic chains. This is precisely
the principle behind the Pauls Jacobian computation method [23], presented in
next section.
It is already known that the vector q is an input to the algorithm and that
in case of revolute joints,

i
performs the roll of q. Therefore the translational
section of the Jacobian can be computed as follows.
J
L
i
= z
i1
(p p
i1
) (1.86)
On the other hand, the angular motion is easy to deduct because the only
requirement is to consider the lower three rows of the Jacobian, named here as
34
x
0
y
0
O
0
x
i-1
z
0
x
0
y
0
O
0
x
i-1
z
0
x
0
y
0
O
0
x
i-1
z
0
Joint
6
Joint
5
Joint
6
Joint
5
Joint
6
Joint
5
End Effector
End Effector
End Effector
Joint
4
i
x
i-1
i
x
i-1
i
x
i-1
0
x
i-1
0
x
i-1
Figure 1.12: Graphic representation of the recursive algorithm to determine the
Jacobian matrix.
J
A
I
, which account for the angular motion for each link. From expression 1.75
and redening
i1,i
as qJ
A
i
we have
qJ
A
i
=

z
i1
(1.87)
which clearly accounts for the dierential rotation in the z
i1
direction or Joint
Axis direction. Excluding q
i
and

i
which represent the input vectors, the lower
three-component vector for each column in the Jacobian will be formed by the
angular component A
i
as follows
J
A
i
= z
i1
(1.88)
Now it is time to formalize these concepts into a proper method to compute
the Jacobian matrix.
1.4.9 Jacobian computation in real time
One method to compute the elements of the Jacobian matrix is developed in this
section. Such algorithm is widely used in dierent robot control applications and
35
has proved to perform acceptably. It is an algorithm easy to implement but needs
a good amount of calculations including matrix computations such as products
and inverses. This is not a relevant issue, given that an average computer can
eectively cope with this requirements.
Equations 1.86 and 1.88 are the foundation to develop the method. Figure
1.12 suggests that in order to calculate each column of the Jacobian matrix
applying the concepts from last section, an iterative method to calculate new
vector positions is required. Starting from the end-eectors frame, each column
of the Jacobian is determined following the chain backwards until the base link
is reached. The idea is to calculate the dierential motion recursively creating
the special vectors
0
r
i1,i
and
0
x
i1
as presented previously in Figure 1.12. The
method is based on the fact that the relationship between each link and the end-
eector can be completely dened by the DH parameters. Each column is thus
calculated sequentially until the whole matrix is determined when the last joint
is reached. Lets take a closer view of this method which was elegantly developed
by Paul in [23].
In the case of a manipulator, the direct kinematics can be expressed in terms of
the components of the general transform
0
T
6
. From Equation 1.63 is clear that it
is possible to express a dierential motion

R(t) in terms of the product between
a skew-symmetric matrix and the transform itself. This is easily extended to
full dened transforms, considering the (q) matrix as in Equation 1.62 thus
dT = (q)
m
T
n
. Lets suppose the computation for the nth-link belongs to a
6-DOF manipulator. The dierential can be thus calculated as dT =
n

n
T
6
.
The method in [23] begins by expressing the dierential with respect to the base
frame as
0
T
6

6
=
0
T
n1

n

n
T
6
= (
0
T
1

1
T
2
. . . T
n1
)
n
(T
n
. . .
5
T
6
)
(1.89)
where
6
represents the dierential change respect to the end-eectors frame.
Thus simplifying by pre-multiplying times the inverse (
0
T
6
)
1
, it is possible to
dene
6
=
0
T
6

0
T
n1

n

n
T
6
= (
0
T
1

1
T
2
. . .
5
T
6
)
1
(
0
T
1

1
T
2
. . . T
n1
)
n
(T
n
. . .
5
T
6
)
(1.90)
which yields (T
n
. . .
5
T
6
)
1

n
(T
n
. . .
5
T
6
). Naming the new set of trans-
forms as U
n
= (T
n
. . .
5
T
6
), the whole expression can be rewritten as
6
=
U
1
n

n
U
n
which is the main foundation of the algorithm. Considering
n
as a dierential rotation in the joint axis direction, it is easy to see that
36

n
=
_

_
0 d
n
0 0
d
n
0 0 0
0 0 0 0
0 0 0 0
_

_
(1.91)
Using the same structure for U
1
n
as for a standard homogeneous transform
in Equation 1.29,
6
can be built according to
6
= U
1
n

n
U
n
which
yields
6
=
_

_
0 o
x
n
y
o
y
n
x
a
x
n
y
a
y
n
x
p
x
n
y
p
y
n
x
n
x
o
y
n
y
o
x
0 a
x
o
y
a
y
o
x
p
x
o
y
p
y
o
x
n
x
a
y
n
y
a
x
o
x
a
y
o
y
a
x
0 p
x
a
y
p
y
a
x
0 0 0 0
_

_
d
n
(1.92)
The elements in this last matrix are identied to be equivalent to the z compo-
nent in the cross product operation. Considering also the orthogonality property
among vectors n, o and a, it is possible to conclude that
0
T
6
=
_

_
0 (o n)
z
(a n)
z
(p n)
z
(n o)
z
0 (a o)
z
(p o)
z
(n a)
z
(o a)
z
0 (p a)
z
0 0 0 0
_

_
d
n
0
T
6
=
_

_
0 a
z
o
z
(p n)
z
a
z
0 n
z
(p o)
z
o
z
n
z
0 (p a)
z
0 0 0 0
_

_
d
n
(1.93)
The last matrix is skew symmetric and can be re-written in a minimal form
through a screw vector of the form

R
n
=
_
(p n)
z
(p o)
z
(p a)
z
n
z
o
z
a
z

T
(1.94)
The subindex z refers to the component in z direction which conrms the
ndings of our study in section 1.4.8 in Equations 1.88 and 1.86 where z
i1
stands
for the same reason. The Jacobian matrix consists of columns of the form of 1.94,
one per each iteration, starting from the end-eector and going backwards until
the base joint is reached. The elements n
z
, o
z
, a
z
and p
z
are the column vectors
in the matrix U
n
dened at each step in the algorithm.
Final remarks
Notice that Equations 1.86 and 1.88 are satised by the method. The vector
dierence in expression 1.86 is implemented iteratively by the column components
37
of matrix U
n
. On the other hand, Equation 1.88 is satised by considering only
the z component in the cross product result, i.e. that in the joint axis direction.
Finally notice that the algorithm changes if prismatic joints are considered. In
such a case matrix
P
n
is equal to
P
n
= [n
z
o
z
a
z
0 0 0]
T
.
1.4.10 Transforming the Jacobian between frames
The algorithm in the last section calculates the Jacobian components with re-
spect to the end-eector frame. However sometimes the solution to very common
problems in robot engineering requires the Jacobian matrix in terms of a dierent
coordinate frame, frequently the base frame. The new frame can be represented
by a transformation matrix T
new
and the problem consists in dening the cor-
respondent Jacobian components respect to this transform. The demonstration
of this method can be found in many robotic textbooks such as [9, 16, 3]. In [9],
the problem is approached in terms of the screw vector. Considering that each
column of the Jacobian matrix represent the motion contribution from each link
to the end-eector frame, the Jacobian itself is just a collection of dierential
vectors, one per column. So the method can be directly applied to transform the
whole Jacobian to a new coordinate frame.
With R
T
being the rotational sub-matrix of the transform matrix T
new
and
J(q) the Jacobian matrix respect to the end-eector, the Jacobian matrix ex-
pressed in terms of T
new
is calculated as follows
T
J =
_
R
T
0
0 R
T
_
J (1.95)
Expressing the result in terms of Equation 1.58, the whole transformation can
be nally expressed as
_
T
p
T

_
=
_
R
T
0
0 R
T
_
J(q)
_
p

_
(1.96)
The real-time controller written for this book provides the computation of the
robots Jacobian with respect to the end-eector by means of a useful dependency
on the DH parameters. The transformation of the Jacobian with respect to
a dierent frame is also provided in the toolbox. This sort of function comes
very useful when kinematic resolved-rate controllers are employed in the control
structure as discussed below.
1.5 Resolved-rate methods
Robot control is commonly divided into kinematic and dynamic control. The
robot kinematics gathers all the algorithms related to the regulation of geomet-
rical relationships between all the links conforming a robot in a way that desired
38
trajectories can be executed to complete a given task. But in order to generate
genuine controlled motion, a realistic regulator for the highly coupled chain of
actuated links is required. This set of control algorithms is concerned with the
dynamics of such links in special with respect to the actuator, usually a servo
motor, which is responsible for the movement of each link. The problem of con-
trolling a robot can be also seen as the determination of the time history of
generalized torques or forces to be developed by each joint actuator in order to
guarantee the proper execution of the commanded task, while satisfying some
dynamic constraints such as transients and steady state requirements.
As discussed in Section 1.4, the end-eector motion and forces are speci-
ed in the operational spaces whereas control actions are performed in the joint
space. The inverse Kinematic problem consists of computing the joint motion
corresponding to a given end-eector motion. Recall Equation 1.45 in which q
represents the vector of joint variables and the vector of task variables, of-
ten expressed as Euler angles or position coordinates, with K being the direct
kinematic function.
The application of the direct Kinematics function was already presented in
section 1.4.5, where by using the Jacobian of the robot links, it is possible to
nd an approximate solution to the inverse Kinematics problem, with sucient
precision. As point out by Corke in [19], the Jacobian can be also understood as
a weak Kinematics model after all. This idea is precisely the foundation of the
Resolved-rate method introduced by Whitney in [13].
The robot Jacobian matrix relates velocities in the joint space to their corre-
sponding counterpart with respect to the end-eector in the operational space.
Such velocity can be expressed with respect to the base frame with
0
v
e
=
0
J
e
q
or with respect to the end-eector coordinate frame with
e
v =
e
J q, with q be-
ing the joint velocities. It is known already that for a 6-DOF manipulator, the
Jacobian is a square matrix which can be inverted if the robot is not around a
singular state. The motion can be therefore resolved by inverting the Jacobian
and multiplying it by the required velocity vector. So the corresponding joint
velocities vector is computed as follows.
q = (
0
J
e
)
1

0
v
e
(1.97)
The required joint velocities vector can thus be integrated using any of the
classical available methods to solve ODEs such as the Euler method or a higher
procedure such as the 4th order Runge-Kutta. These last two methods are in-
cluded in the real-time toolkit of the CSC VS library.
1.6 The TQ MA2000 robot: joint analysis.
Following the overview of robotic concepts, this section presents some technical
details about the interface to each joint of the TQ MA2000 robot. These param-
39
eters are fundamental in the computation of the subsequent algorithms in this
book. As this information is not provided by the manufacturer in the standard
documentation [25], it has to be determined experimentally.
0
o
to 45
o
-180
o
to 45
o
135
o
to 180
o
Figure 1.13: Operative ranges of the second link of the TQ MA2000 robot.
Each joint is actuated by means of a DC-servo motor sensed by a separate
resistive positional sensor which implies considerable noise level in the data. The
scale on each potentiometer is xed by mechanical stops at each end. A digital
system [26] is in charge of sensing the resistive value on each pot relating its
value to the links angular position. This therefore requires a calibration stage
to adjust the range of digital values in the electronic interface to match with the
physical limits of each potentiometer. This was achieved by using an old rmware
interface provided by the manufacturer together with some other special tools to
adjust internal mechanical parts in the robot.
Apart from the low-level interface, the digital value of each potentiometer
should be transferred to the main computer which hosts the regulation algo-
rithms in order to exert real-time control. This process implies the use of other
software to translate the potentiometer value which has been scaled to encoder
steps, into radians. This are the units used by the control algorithm. However
encoder-step counts are also used alternatively in this book to refer directly to
the potentiometer value.
The required conversion into radians was not supplied by the manufacturer
and had to be determined experimentally by dening the real operative ranges
for each link. From these ranges, a proper conversion to radians can be found
by scaling the encoder steps into its equivalent angle value in radians. Table
40
Link Zero
steps
Step Range (Rad)

1
500
0.004712
0.27

2.3562
1
2.3562
135


1
135

2
169
0.004712
0.27

3.14159
2
0.78525
180


2
45

2.35634
2
3.14159
135


2
180

3
500
0.004712
0.27

2.35634
3
2.35634
135


3
135

4
500
0.003141
0.18

1.57079
4
1.57079
90


4
90

5
500
0.003141
0.18

3.14159
5
0.00000
180


5
0.00

6
500
0.003141
0.18

3.14159
6
0.00000
180


6
0.00

Table 1.5: TQ MA2000 Robot: Zero Positions, Step/Angle and Operational


Ranges
1.5 presents the zero positions, the value of one step in radians-degrees and the
operational ranges determined experimentally for each link.
Notice the special case of the second link, whose initial position has been set
on 45
o
below the horizontal line as shown be Figure 1.13. While the rotation
of other links runs on only one interval, Link 2 operates in tow non-continuous
intervals which require the use of three numeric intervals to perform the step-to-
radian conversion. The exact conversion expressions are detailed below. They
are included in the real-time toolkit developed in this book.
MA2000-Simulink Conversion Expressions
Link 1

1
= (0.0047115)(500 E
1
) (1.98)
E
1
= 500

1
0.0047115
(1.99)
41
Link 2
0 E
2
169
2
= (E
2
)(0.00464) + 0.78525
169 < E
2
< 836
2
= ((E
2
169)(0.00471))
836 E
2
1000
2
= (E
2
836)(0.00471)
(1.100)
0
2
0.78539 E
2
=
(
2
0.78525)
0.00464

2
< 0 E
2
=

2
0.00471
+ 169
0.78539
2
E
2
= 836
(
2
)
0.00479
(1.101)
Link 3
0 E
3
500
3
= (500 E
3
)(0.00471)
500 < E
3
1000
3
= (E
3
500)(0.00471)
(1.102)
E
3
=

3
0.00471
+ 500 (1.103)
Link 4
0 E
4
< 500
4
= (500 E
4
)(0.00314)
500 E
4
1000
4
= (E
4
500)(0.00314)
(1.104)
0
4
E
4
=

4
0.00314
+ 500
0 >
4
E
4
=

4
0.00314
+ 500
(1.105)
Link 5

5
= E
5
(0.00314) (1.106)
E
5
=

5
0.00314
(1.107)
Link 6

6
= E
6
(0.00314) (1.108)
E
6
=

6
0.00314
(1.109)
42
Parameters
Lenght Twist Angle Oset Variable
Link a
i

i
d
i

i
/
i
L
4
0 /2 0
4
L
5
0 /2 0
5
L
6
0 0 d
6

6
Table 1.6: DH Parameters for the last three links of an Anthropomorphic arm.
1.7 Chapter overview
In this chapter the position and orientation of a rigid body respect to a given
coordinate frame has been introduced. Dierent pose representation conventions
are discussed to introduce the homogeneous transforms. Such representation is
used to initiate the analysis of robot Kinematics. The most relevant concepts
regarding motion relationships between the links are discussed by means of the
Denavit-Hartenberg convention. The discussion also portraits the resolved-rate
control and the chapter nishes by presenting some information regarding the
interface to the links in the TQ MA2000 robot. All the topics are sorted in
such a way that the discussion of visual control of robots in subsequent chapters
naturally matches the concepts discussed in this chapter. Relevant tools are also
mention in this chapter such as the Robot Toolbox for Matlab written by Corke
[19] and the real-time CSC Visual Servoing library (CSC VS) which is formally
presented as one of the most relevant contributions of this book in following
Chapters. The CSC VS library is used to implement all the visually-guided
robotic experiments developed in the next chapters of this book.
43
Bibliography
[1] P.J. McKerrow. Introduction to Robotics. Addison-Wesley, 1990. ISBN
0201182408.
[2] B. Espiau, Chaumette F., and P. Rives. A new approach to visual servoing
in robotics. IEEE Transactions on Robotics and Automation, 8(3):313326,
June 1992.
[3] Sciavicco L. and Siciliano B. Modelling and Control of Robot Manipulators.
Advanced textbooks in control and signal processing. Springer-Verlag, 2nd
edition, 2002. ISBN 1852332212.
[4] W.R. Hamilton. On quaternions or on a new system of imaginaries in algebra.
Philosophical Magazine, XXV:1013, July 1844.
[5] Ken Shoemake. Animating rotation with quaternion curves. ACM SIG-
GRAPH, vol. 19(3):245254, 1985.
[6] Michael Brady. Robot Motion: Planning and Control, chapter Trajectory
Planning, pages 221243. Series in Artitial Intelligence. The MIT Press,
1982. ISBN 0-262-02182-X.
[7] Crane C.D. and Duy Joseph. Kinematic Analysis of Robot Manipulators.
Cambridge University Press, 1998.
[8] J. Funda and R.P. Paul. A comparison of transforms and quaternions in
robotics. Proceedings of the IEEE International Conference on Robotics and
Automation, 2:886891, April 1988.
[9] Richard P. Paul. Robot Manipulators, Mathematics, Programming and Con-
trol. MIT Press, 1981. ISBN 026216082X.
[10] Peter Corke. Visual Control of Robots: High Performance Visual Servoing.
Research Studies Press, 1996. ISBN 0863802079.
[11] J. Denavit and R.S. Hartenberg. A kinematic notation for lower pair mech-
anisms based on matrices. Journal of Applied Mechanics, 22:215221, June
1955.
44
[12] C.S.G. Lee. Robot arm kinematics, dynamics and control. Computer,
15(12):6280, 1982.
[13] D.E. Whitney. The mathematics of coordinated control of prosthetic arms
and manipulators. ASME Journal of Dynamic Systems, Measurement and
Control, 94:303309, 1972.
[14] R.P. Paul, B.E. Shimano, and G. Mayer. Kinematic control equations for
simple manipulators. IEEE Transactions on Systems, Man and Cybernetics,
11:449455, 1981.
[15] M. Spong and M. Vidyasagar. Robot Dynamics and Control. John Wiley,
1989. ISBN 047161243X.
[16] J.J. Craig. Introduction to Robotics: Mechanics and Control. Addison-
Wesley Pub. Co., 1989. ISBN 0201095289.
[17] C. Samson, M. Le Borgne, and Espiau B. Robot Control, a task function
approach. Oxford Engineering Series, 22. Oxford Science Publications, 1990.
ISBN 0-198-53805-7.
[18] Wolfram Stadler. Analytical Robotics and Mechatronics. Series on Electrical
and Computer Engineering. McGraw-Hill, 1995. ISBN 0070606080.
[19] P.I. Corke. A robotics toolbox for MATLAB. IEEE Robotics and Automation
Magazine, 3(1):2432, March 1996.
[20] S. Chiaverini, L. Sciavicco, and B. Siciliano. Control of robotic systems
through singularities. International Workshop on Adaptive and Nonlinear
Control: Issues in Robotics, Grenoble, France, 1990.
[21] A.A. Goldenberg, Benhabib B., and R.G. Fenton. A complete generalized
solution to the inverse kinematics of robots. IEEE Journal of Robotics and
Automation, RA-1(1):1420, March 1985.
[22] L.T. Wang and B. Ravani. Recursive computations of kinematic and dy-
namic equations for mechanical manipulators. IEEE Journal of Robotics
and Automation, RA-1(3):124131, September 1985.
[23] R.P. Paul, B.E. Shimano, and G. Mayer. Dierential kinematic control
equations for simple manipulators. IEEE Transactions on Systems, Man
and Cybernetics, 11:456460, 1981.
[24] Yoram Koren. Robotics for Engineers. McGraw-Hill, 1985. ISBN
0070353999.
45
[25] TQ equipment. TQ MA2000 six-DOF robot, user manual. Nottingham, UK,
1985.
[26] TQ equipment. TQ MA2000 robot, digital electronics schematic. Notting-
ham, UK, 1985.
46

Das könnte Ihnen auch gefallen