You are on page 1of 13

Chapter 16

KINEMATICS OF ROBOTS
Many manufacturing operations using robots like welding and painting require complex
programming involving kinematics, dynamics and control of robots. Programming of
robots requires the knowledge of the position of the end effector and its orientation. This
chapter gives an overview of the kinematics of industrial robots.
16.1 INTRODUCTION
A robot can be modeled as an open loop articulated chain of several links connected in
series. As discussed in the last chapter, the connection can be usually either a revolute or
translational joint driven by an actuator. One end of the chain is fixed to the ground (base
of the robot) and the other end carries the tool which performs the intended task. The tool
has to be oriented and positioned in space to carry out the tasks.
Kinematics of robots deals with the analytical study of the motion of a robot arm with
reference to a fixed coordinate system. The forces or moments that cause the motion are
ignored in kinematic analysis. There are two fundamental approaches in robot
kinematics.
i. Given specific displacements for each robot link, obtain the position and
orientation of the tool or end effector. This is called direct kinematics or
forward kinematics.
ii. Given the position and orientation of the end effector, determining the
individual displacements of each one of the links that will result in the
desired position and orientation. This is called inverse kinematics.
Figure 16.1 illustrated both kinematic approaches. The difference between forward and
inverse kinematics is clear from the diagram. In forward kinematics, the programmer
determines the final position and orientation of end effector for specified displacements
of the links whereas, in inverse kinematics, the programmer has to work backwards.
Programming a robot using a teaching pendant is an example of direct kinematics. In
inverse kinematics the desired position is known and the objective is to determine
individual link displacements to achieve the desired position. This is a mathematically
complex task, the complexity increasing with increase in the number of degrees of
freedom of the robot. In some cases there may be more than one solution in which case
the programmer needs to search for an optimum solution. The singularities in the solution
often create difficulties. In some cases there may not be a feasible solution at all.
Obviously direct kinematics is much simpler than inverse kinematics.
DIRECT
KINEMATICS
INVERSE
KINEMATICS
Link Parameters
Link Parameters
Joint
Displacements
Joint
Displacements

Fig.16.1 Approaches to Robot Kinematics
16.2 APPROACH
The links of a manipulator rotate or translate with respect to a reference coordinate frame.
The total spatial displacement of the end effector is therefore the sum total of all the link
displacements. A systematic approach to represent the spatial geometry of the links with
reference to a fixed coordinate frame was proposed by Denavit and Hartenberg (DH) in
1955 to solve forward (direct) kinematics. A 4x4 homogeneous transformation matrix is
used in D-H method to describe the spatial relationship between two adjacent links. This
chapter gives a brief description of the DH method. The inverse kinematic problem is
solved by iterative, geometric or algebraic methods.
16.3 FORWARD KINEMATICS
Forward kinematics problem is developed using the concept of a body attached
coordinate frame for each link which is illustrated in Fig.16.2.
Usually, any tools or handling devices of a manipulator can be described with the help a
constant homogeneous transformation, if related to the last, outermost link of the robot.
In this tool frame, environmental objects can be easily located relative to the tool tip or
gripper. It is quite simple to find relative motions necessary for the tool tip in order to
handle objects.
Z
Y
X
V
U
W

Fig.16.2 Body Attached Coordinate Frame
However, to really achieve the related joint motion to move the tool tip appropriately, the
necessary motion trajectory of the tip with respect to the base frame has to be calculated.
The resulting base frame description can then be used to solve the inverse kinematics
problem that is to find the related joint coordinates.
Multiple coordinate frames are also useful in traditional robotics. For example, consider
the simple robot arm depicted in Fig.16.3. If we want to have the gripper pick up a part
off of a table, then we need to figure out the parts location. We can use a camera to
initially determine the location of the part (in camera coordinates). We might need to
transform that location into world coordinates to evaluate if it is accessible to the robot
and to gripper coordinates to determine when we should close the jaws of the gripper.

X
Y
Z
w
w
w
X
Y
Z
X
X
Y
Y
Z
Z
i
i
i
g
g
g
c
c
c
ROBOT
CAMERA
PART

Fig.16.2 Simple Robot Arm
Let us assume that the location of a point in one coordinate frame (for example, gripper
coordinates) is known and we want to know its location in another frame (for example,
world coordinates). We will start with a very simple case considering the two coordinate
systems, world coordinates and robot coordinate frames, shown in Fig.16.4.The only
difference between the two coordinate frames is that the robot frame has been translated
by 5 units along the y axis from the world coordinate frame. The origin of the robot frame
is located at (0, 5, 0) with reference to world coordinates. We can represent this as [0 5 0
1]
T
. Similarly the origin of the world coordinates is [0 -5 0 1]
T
.
5
X
Y
W
X
Y
W
w
w
R
R

Fig.16.4 Translation of Coordinates
Consider an arbitrary point in the world coordinates. Its location with respect to robot
coordinate will be:

1
0
5
0

Similarly, a point on the robot coordinate system with respect to world coordinate will
be:

1
0
5
0

In general, the location of points can be specified as shown in Table 16.1

Table 16.1 Location of points when coordinate systems are translated
Location of a point in world
coordinates
Location of a point in robot
coordinates
Pre- multiplying the
coordinates in the world
coordinates by

1 0 0 0
0 1 0 0
5 0 1 0
0 0 0 1

1
0
0
0

1
0
5
0

1 0 0 0
0 1 0 0
5 0 1 0
0 0 0 1

1
0
0
0
=

1
0
5
0

1
0
5
0

1
0
0
0

1 0 0 0
0 1 0 0
5 0 1 0
0 0 0 1

1
0
5
0
=

1
0
0
0

In general to convert k coordinate frame to j coordinate frame, one has to:
- translate ks X axis by a
- translate ks Y-axis by b
- translate ks Z-axis by c
This implies that every coordinate in the j coordinate frame to k coordinate frame, the
point must be pre-multiplied by:

1 0 0 0
1 0 0
0 1 0
0 0 1
c
b
a

Figure 16.5 shows two coordinate frames, world coordinate frame on the left and robot
coordinate frame on the right. To transform the robot coordinate frame to the world
coordinate frame, one needs to translate 50 units along X-axis, 70 units along Y axis and
15 units along Z-axis.
5
0
70
1
5
X
X
Y
Y
Z
Z
w
w
w
r
r
r

Fig.16.5 Two Coordinate Frames Differing only by Translation
Thus to take a point on the world coordinates and transform that into robot coordinates,
one needs to pre-multiply that point by the matrix:
[




]
Example:
Consider a Cartesian robot shown in Fig.16.6. Joint J
1
and J
2
are translational joints with
link lengths of L
1
and L
2
. The coordinate of J
1
are (x
1
, y
1,
z
1
) and coordinates of J
2
(x
2
, y
2,
z
1)
respectively.
X , Y
1 1
X
2
,
Y
2
L
1
L2

Fig. 16.6 Two Arm Cartesian Robot
Point J
2
can be obtained by:

1
1
2
2
z
y
x
=

1 0 0 0
0 1 0 0
0 0 1 0
2 0 0 1 L

1
1
1
1
z
y
x

X2= T1 x
1

The end effector point is represented by (x, y, z
1
)

1
1 z
y
x
=

1 0 0 0
1 1 0 0
2 0 1 0
0 0 0 1
z
L

1
1
2
2
z
y
x

x = T2 x
2
Therefore, x = T2 T1 x
1
16.4 ROTATION MATRICES
16.4.1 Coordinate Frames that Differ by a Rotation about one Axis
Consider two coordinate frames J and K shown in Fig.16.7. They differ only by rotation
about the Z axis. To transform J coordinate frame to K coordinate frame we perform a
rotation about Ks Z-axis by -90
0
. By looking at Fig.16.6 we can observe that X
k
=Y
j
and
Z
k
=Z
j
and X
j
=-1*Y
k

X
Y
Z
j
j
j
X
Y
Z
j
j
j
X
Y
Z
k
k
k
Yk
X
k
Z
k
J COORDINATE FRAME K COORDINATE FRAME
OVERLAID ON EACH OTHER
BOTH COORDINATE FRAMES

Fig.16.7 Rotation of Coordinate Frames
Let us look at a few examples. The origin of the j axis in j coordinates: the point
[

]
T
is the same as the origin of j axis in k coordinates [

]
T
. The
point [

]
T
in j coordinates is located at [

]
T
in k coordinates. If
to transform j coordinate frame to k coordinate frame F
j

k
you rotate about Z axis by ,
then you can pre-multiply a point in j coordinates by the matrix
[




]T
k
j
to get the location of the point in j coordinates.
In our example, =-90
0
. Hence Sin-=-1 and Cos-=0. So the matrix becomes
[




]
If we multiply this matrix by [

]
T
, we get [

].

16.4 HOMOGENEOUS TRANSFORMATION MATRIX
The homogeneous transformation matrix is a 4 x 4 matrix which maps a position vector
expressed in homogenous coordinates from one coordinate system to another. A
homogeneous transformation matrix can be considered to consist of three sub matrices
representing rotation (3X3), translation (3X1) and perspective (1X3).
[




]
16.5 ROBOT KINEMATICS
Kinematics is the study of motion without regard to the forces which cause it. Within
kinematics one studies the position, velocity and acceleration, and all higher order
derivatives of the position variables. The kinematics of manipulators involves the study
of the geometric and time based properties of the motion, and in particular how the
various links move with respect to one another and with time.
Using kinematics to describe the special configuration of robots gives us two approaches:
i. Forward or direct kinematics: Forward kinematics is concerned with the
determination of the position and direction of the end effector if each link is
assigned specified displacements or rotation.
ii. Inverse kinematics: Inverse kinematics is used for the determination of joint
angles or displacements for a given orientation and position of end effector.
Inverse kinematics problem is difficult as there may be multiple solutions.
Solution becomes more and more tedious as the number of degrees of freedom
increases. Sometimes, there may not be a solution at all.
16.6 COMBINED TRANSFORMATIONS
The previous sections dealt with the procedure to create the matrix that will compute the
coordinates of a point in one coordinate frame given the coordinates of that point in
another coordinate frame, subject to the following condition: the two frames may only
differ by a translation (along the 3 axes), or by a rotation about one axis. It is indeed
possible to convert points between two coordinate frames that differ, perhaps by two
translations or by a rotation then a translation and then another rotation.

The key to understanding how to do this is to understand that there are two ways to view
any sequence of translations and rotations. The first way we will call moving
coordinate systems. In moving coordinate systems, each step happens relative to the steps
that have come before it. For example, Figure 23 shows the world and gripper coordinate
frames for a particular robotic system. Note that not only is the gripper coordinate frame
translated from the world coordinate frame, but there also must be some sort of rotation
that caused the grippers x axis to point up instead of out of the page towards you as the
world coordinates do.

In the moving axes approach, we say that to get from world coordinates to gripper
coordinates, (F
g
w
) you need to do the following sequence of moves: Rotate about x
w
by -
90 degrees. Call this new frame intermediate frame 1, and well call its axes x
1
, y
1
, and z
1
.
Next rotate about the new z
1
by -90 degrees. Call this new frame intermediate frame 2,
and we will call its axes x
2
, y
2
, and z
2
. Finally, translate by (0, 0, and 5) relative to
intermediate frame 2. These results in the gripper coordinate frame.

The alternative approach is the fixed axes approach. In this technique, all of your
moves are relative to the original world coordinate frame. In the fixed axes approach,
the picture is still as depicted in Figure 23, but this time the sequence of steps is:
Rot x
w
(-90) then Rot y
w
(-90), then Trans (0, 5, 0) relative to world coordinates











Table 16.2 Summary of Transformation Matrices

To convert the k coordinate
frame into the j coordinate
frame

F
j
k

Then to convert a point in j
coordinates into a point in k
coordinates, pre-multiply that
point by
T
j
k


Transformation

Translate
along ks x axis by a,
along ks y axis by b,
along ks z axis by c

[




]



Trans (a,b,c)


Rotate ks x axis by




[




]


Rot x()


Rotate ks y axis by

[




]



Rot y()


Rotate ks z axis by

[




]



Rot z(

16.7 DENAVIT HARTENBERG REPRESENTATION

Typical robots are serial-link manipulators comprising a set of bodies, called links, in a
chain, connected by joints. Each joint has one degree of freedom, either translational or
rotational. For a manipulator with n joints numbered from 1 to n, there are n links,
numbered from 0 to n. Link 0 is the base of the manipulator, generally fixed, and link n
carries the end effector. Joint i connects links i and i+1.Figure 16.8 shows two successive
links and the link parameters.

A link may be considered as a rigid body defining the relationship between two
neighbouring joint axes. A link can be specified by two numbers, the link length and link
twist, which define the relative location of the two axes in space. The link parameters for
the first and last links are meaningless, but are arbitrarily chosen to be 0. Joints may be
described by two parameters. The link offset is the distance from one link to the next
along the axis of the joint. The joint angle is the rotation of one link with respect to the
next about the joint axis.

To facilitate describing the location of each link we affix a coordinate frame to it frame
i is attached to link i. Denavit and Hartenberg proposed a matrix method of
systematically assigning coordinate systems to each link of an articulated chain. The axis
of revolute joint i is aligned with z
i-1
. The x
i-1
axis is directed along the normal from z
i- 1
to
z
i
and for intersecting axes is parallel to z
i-1
x z
i
. The link and joint parameters may be
summarized as:
link length, a
i
the offset distance between the z
i+1
and z
i
axes along the x
i
axis;
link twist,
i
the angle from the z
i+ 1
axis to the z
i
axis about the x
i
axis;
link offset d
i
the distance from the origin of frame i+1 to the x
i
axis along the z
i +1
axis;
joint angle
i
the angle between the x
i+1
and xi about z
i+1
axis.

For a revolute axis q
i
is the joint variable and d
i
is constant, while for a prismatic joint d
i

is variable, and q
i
is constant. In many of the formulations that follow we use generalized
coordinates, q
i
, where:

i
for revolute joint
q
i
= {
d
i
for prismatic joint

Joint i-1
Joint i
joint i+1
linki-1
link i
X
Y
Z
X
Z
Y
i
i
i
i-1
i-1
i-1
T
i
T
i-1
a
i
a
i-1

Fig. 16.8 DH Representation
The Denavit-Hartenberg (DH) representation results in a 4x4 homogeneous
transformation matrix:
i-1

Ai
= [




]
representing each links coordinate frame with respect to the previous links coordinate
system. That is:
0
T
i
=
0
T
i-1
i-1
A
i


16.8 EXAMPLE OF FORWARD KINEMATICS

(a) (b)
A
B
C
X
Y
Z
L
1
L
2
Object

Fig.16.9 Two Link Robot Arm

Consider the robot arm given in Fig. 16.9 (a). This arm has two links of length L1 and L2
and one joint which can rotate about its Z axis. There are 3 coordinate frames, world
coordinates, joint coordinates, and gripper coordinates. Figure 16.9 (b) is the illustration
of the same arm with the joint rotated by degrees about its y axis in the clockwise
direction.

Now look at the object to be gripped in both figures. It should be clear that the world
coordinates of the object do not change between Figures (a) and (b), but the location of
the object in link coordinates and gripper coordinates changes.

There are two points in this image whose locations do not move in any frame as the joint
moves i.e. the base point A and joint B. The gripper coordinates change when the link L2
is rotated. Usually, any tools or handling devices of a manipulator can be described with
the help a constant homogeneous transformation, if related to the last, outermost link of
the robot.
In this tool frame, objects to be manipulated can be easily located relative to the gripper.
With reference to Fig. (a) it is quite simple to find relative motions necessary for the tool
tip in order to handle objects. The point located at the very centre of the base of the link
L1 is always at world coordinates (0, 0, 0). The coordinates of joint B in world
coordinates is (0, 0, L1). The coordinates of the gripper in world coordinates is (0, 0,
L1+L2). The coordinates of the joint with respect to the gripper is (0, 0, -L2).

Now consider Fig. (b). Suppose that we want to convert between gripper coordinates and
world coordinates, as a function of the angle of the joint, . To move the reference frame
from world coordinates to gripper coordinates, it is necessary to translate a distance of L1
along the Z axis, and then rotate by 30 degrees as in Fig. (b).

[




] x [




] = [




]


The reference frame from joint coordinates to gripper coordinates can be done by a
simple translation of [0, 0, L2].

[




] x [




] x [




]

16.9 SUMMARY

This chapter introduced some basic ideas about the robot kinematics. The reader is
advised to refer to books dealing this topic in detail in order to carry out path planning for
the applications discussed in the next chapter.

You might also like