Unit5 - Kinematis & Matrics Representation
Unit5 - Kinematis & Matrics Representation
Robot Kinematics:
Position Analysis
2.1 INTRODUCTION
In this chapter, we will study forward and inverse kinematics of robots. The forward
kinematics will enable us to determine where the robot's end (hand) will be if all
joint variables are known. Inverse kinematics will enable us to calculate what each
joint variable must be if we desire that the hand be located at a particular point and
have a particular orientation. Using matrices, we will first establish a way of de-
scribing objects, locations, orientations, and movements. Then we will study the for-
ward and inverse kinematics of different configurations of robots, such as Cartesian,
cylindrical, and spherical coordinates. Finally, we will use the Denavit-Hartenberg
representation to derive forward and inverse kinematic equations of all possible
configurations of robots.
It is important to realize that in reality, manipulator-type robots are delivered
with no end effector. In most cases, there may be a gripper attached to the robot. How-
ever, depending on the actual application, different end effectors are attached to the
robot by the user. Obviously, the end effector's size and length determine where the end
of the robot is. For a short end effector, the end will be at a different location than for a
long end effector. In this chapter, we will assume that the end of the robot is a plate to
which the end effector can be attached, as necessary. We will call this the "hand" or the
"end-plate" of the robot. If necessary, we can always add the length of the end effector
to the robot for determining the location and orientation of the end effector.
29
Chapter 2 Robot Kinematics: Position Analysis
\B
(«) (6)
Figure 2.2 (a) Closed-loop versus (b) open-loop mechanisms.
massive, and slow, and its specified payload is very low compared with what it actu-
ally can carry.
A point P in space (Figure 2.3) can be represented by its three coordinates relative
to a reference frame:
P = ax\ + byi + czk, (2.3)
where ax, bv, and c. are the three coordinates of the point represented in the refer-
ence frame. Obviously, other coordinate representations can also be used to de-
scribe the location of a point in space.
A vector can be represented by three coordinates of its tail and of its head. If the
vector starts at a point A and ends at point B, then it can be represented by PAB =
(Bx - Ax)i + (By - Ay)j + (Bt - A$.. Specifically, if the vector starts at the origin
(Figure 2.4), then: _
P = ax\ + byj + czk, (2.4)
where ax, by, and ct are the three components of the vector in the reference frame.
In fact, point P in the previous section is in reality represented by a vector con-
nected to it at point P and expressed by the three components of the vector.
The three components of the vector can also be written in a matrix form, as in
Equation (2.5). This format will be used throughout this book to represent all kine-
matic elements:
(2.5)
Variable w may be any number, and as it changes, it can change the overall size of
the vector. This is similar to zooming a picture in computer graphics. As the value of
w changes, the size of the vector changes accordingly. If w is greater than unity, all
vector components enlarge; if w is less than unity, all vector components become
smaller. This is also used in computer graphics for changing the size of pictures and
drawings.
If iv is unity, the size of the components remain unchanged. However, if w = 0,
then ax, bv, and c. will be infinity. In this case, x, y, and z (as well as ax, bv, and c,) will
represent a vector whose length is infinite, but nonetheless, is in the direction repre-
sented by the vector. This means that a directional vector can be represented by a
scale factor of w = 0, where the length is not of importance, but the direction is rep-
resented by the three components of the vector. This will be used throughout this
book to represent directional vectors.
Example 2.1
A vector is described as P = 3i + 5j + 2k. Express the vector in matrix form:
(1) With a scale factor of 2.
(2) If it were to describe a direction as a unit vector.
Solution The vector can be expressed in matrix form with a scale factor of 2, as well
as 0 for direction, as
and P=
However, in order to make the vector into a unit vector, we will normalize the length
such that the new length will be equal to unity. To do this, each component of the vector
will be divided by the square root of the sum of the squares of the three components:
-1 c
A = Vp; + pi + pl = 6.16, where px = —— = 0.487. p v = ——, etc.,
6.16 6.16
0.487-
three components in the reference frame as in Section 2.3.2. Thus, a frame F can be
represented by three vectors in a matrix form as:
°x <*x
F = o.. a„ (2.7)
If a frame is not at the origin (or, in fact, even if it is at the origin) then the loca-
tion of the origin of the frame relative to the reference frame must also be ex-
pressed. In order to do this, a vector will be drawn between the origin of the frame
and the origin of the reference frame describing the location of the frame (Fig-
ure 2.6). This vector is expressed through its components relative to the reference
frame. Thus, the frame can be expressed by three vectors describing its direction-
al unit vectors, as well as a fourth vector describing its location as follows:
nx °.x «., P*
ny o. a. Py
F= (2.8)
nz °z «z P,
0 0 0 1.
As shown in Equation (2.8), the first three vectors are directional vectors with
w = 0, representing the directions of the three unit vectors of the frame n,o,a, while
the fourth vector with w = 1 represents the location of the origin of the frame rela-
tive to the reference frame. Unlike the unit vectors, the length of vector P is impor-
tant to us, and thus we use a scale factor of one. A frame may also be represented
with a 3 X 4 matrix without the scale factors, but it is not commonly done this way.
Example 2.2
The frame F shown in Figure 2.7 is located at 3,5,7 units, with its /i-axis parallel to x, its
o-axis at 45° relative to the >'-axis, and its o-axis at 45° relative to the z-axis. The frame
can be described by:
Section 2.3 Matrix Representation 35
1 0 0 3
0 0.707 -0.707 5
0 0.707 0.707 7
0 0 0 1
«.v °x ax Px
nv ov a,. Py
object (2.9)
n, o. ciz Pz
0 0 0 1
As was discussed in Chapter 1, a point in space has only three degrees of free-
dom; it can only move along the three reference axes. However, a rigid body in
space has 6 degrees of freedom, meaning that not only it can move along three axes
of x, y, and z, but can also rotate about these three axes. Thus, all that is needed to
completely define an object in space is 6 pieces of information describing the lo-
cation of the origin of the object in the reference frame relative to the three refer-
ence axes, as well as its orientation about the three axes. However, as can be seen in
Equation (2.9), 12 pieces of information are given, 9 for orientation, and 3 for posi-
tion. (This excludes the scale factors on the last row of the matrix, because they do
not add to this information.) Obviously, there must be some constraints present in
this representation to limit the preceding to 6. Thus, we need 6 constraint equations
to reduce the amount of information from 12 to 6 pieces. The constraints come from
the known characteristics of the frame, which we have not used yet:
Example 2.3
For the following frame,findthe values of the missing elements, and complete the ma-
trix representation of the frame:
? 0 ? 5'
0.707 ? ? 3
? ? 0 2 '
0 0 0 L
Solution Obviously, the values 5,3,2 representing the position of the origin of the
frame do not affect the constraint equations. You also notice that only three values for
directional vectors are given. This is all that is needed. Using Equation (2.10), we get
nx ov + n, ov + n-0; = 0, or nx (0) + 0.707 (ov) + n. (o,) = 0,
nx ax + n, a, + n. a. = 0, or nx (aj + 0.707 (av.) + n. (0) = 0,
Section 2.3 Matrix Representation 37
i J k
nx ny n, ax\ + ovj + fl,k,
°X °l °7
which replace the three equations for the dot products. Together with the three unit
vector length constraint equations, there are six equations, which ultimately result
in the same values for the unknown parameters. Please verify that you get the same
results.
nx ox ax P,
n. 0, av P>
n. oz az P:
0 0 0 1