Robotica 1 3 Fotos2 PDF
Robotica 1 3 Fotos2 PDF
Robotica 1 3 Fotos2 PDF
OF ROBOTICS
Analysis
and Control
FUNDAMENTAIS
OF ROBOTICS
Analysis
and Control
7
Robotic Manipulation
The term robot can convey many different meanings in the mind of the reader, de-
pending on the context. In the treatment presented here, a robot will be taken to
mean an industrial robot, also called a robotic manipulator or a robotic arm. An ex-
ample of an industrial robot is shown in Fig. 1-1. This is an articulated robotic arm
and is roughly similar to a human arm. It can be modeled as a chain of rigid links
interconnected by flexible joints. The links correspond to such features of the human
anatomy as the chest, upper arm, and forearm, while the joints correspond to the
shoulder, elbow, and wrist. At the end of a robotic arm is an end-effector, also called
a tool, gripper, or hand. The tool often has two or more fingers that open and cióse.
To further characterize industrial robots, we begin by examining the role they
play in automation in general. This is followed by a discussion of robot classifica-
tions using a number of criteria including: drive technologies, work envelope ge-
ometries, and motion control methods. A brief summary of the most common appli-
cations of robots is then presented; this is followed by an examination of robot
design specifications. Chap. 1 concludes with a discussion of the use of notation and
a summary of the notational conventions adopted in the remainder of the text.
Mass-production assembly lines were first introduced at the beginning of the twenti-
eth century (1905) by the Ford Motor Company. Over the ensuing decades, special-
ized machines have been designed and developed for high-volume production of me-
chanical and electrical parts. However, when each yearly production cycle ends and
new models of the parts are to be introduced, the specialized machines have to be
shut down and the hardware retooled for the next generation of models. Since peri-
odic modification of the production hardware is required, this type of automation is
1
7
Robotic Manipulation
The term robot can convey many different meanings in the mind of the reader, de-
pending on the context. In the treatment presented here, a robot will be taken to
mean an industrial robot, also called a robotic manipulator or a robotic arm. An ex-
ample of an industrial robot is shown in Fig. 1-1. This is an articulated robotic arm
and is roughly similar to a human arm. It can be modeled as a chain of rigid links
interconnected by flexible joints. The links correspond to such features of the human
anatomy as the chest, upper arm, and forearm, while the joints correspond to the
shoulder, elbow, and wrist. At the end of a robotic arm is an end-effector, also called
a tool, gripper, or hand. The tool often has two or more fingers that open and cióse.
To further characterize industrial robots, we begin by examining the role they
play in automation in general. This is followed by a discussion of robot classifica-
tions using a number of criteria including: drive technologies, work envelope ge-
ometries, and motion control methods. A brief summary of the most common appli-
cations of robots is then presented; this is followed by an examination of robot
design specifications. Chap. 1 concludes with a discussion of the use of notation and
a summary of the notational conventions adopted in the remainder of the text.
Mass-production assembly lines were first introduced at the beginning of the twenti-
eth century (1905) by the Ford Motor Company. Over the ensuing decades, special-
ized machines have been designed and developed for high-volume production of me-
chanical and electrical parts. However, when each yearly production cycle ends and
new models of the parts are to be introduced, the specialized machines have to be
shut down and the hardware retooled for the next generation of models. Since peri-
odic modification of the production hardware is required, this type of automation is
1
referred to as hard automation. Here the machines and processes are often very
efficient, but they have limited flexibility.
More recently, the auto industry and other industries have introduced more
flexible forms of automation in the manufacturing cycle. Programmable mechanical
manipulators are now being used to perform such tasks as spot welding, spray paint-
ing, material handiing, and component assembly. Since computer-controlled me
chanical manipulators can be easily converted through software to do a variety of
7 • ‘ % «\
Unit cost
duction volumes [ui, U2] over which they are cost-effective continúes to expand at
both ends of the production spectrum.
In order to more clearly distinguish soft automation from hard automation, it is
useful to introduce a specific definition of a robot. A number of definitions have been
proposed over the years. However, as robotic technology continúes to evolve, any
definition proposed may need to be refined and updated before long. For the purpose
of the material presented in this text, the following definition is used:
Contrary to popular notions about robots in the Science fiction literature (see,
for instance, Asimov, 1950), today’s industrial robots are not androids built to im-
personate humans. Indeed, most are not even capable of self-locomotion. However,
many of today’s robots are anthropomorphic in the sense that they are patterned af-
ter the human arm. Consequently, industrial robots are often referred to as robotic
arms or, more generally, as robotic manipulators.
One of the most fundamental classification schemes is based upon the source of
power used to drive the joints of the robot. The two most popular drive technologies
are electric and hydrauíic. Most robotic manipulators today use electric drives in the
form of either DC servomotors or DC stepper motors. However, when high-speed
Revolute joints (R) exhibit rotary motion about an axis. They are the most
common type of joint. The next most common type is a prismatic joint (P), which
exhibits sliding or linear motion along an axis. The particular combination of revo
lute and prismatic joints for the three major axes determines the geometry of the
work envelope, as summarized in Table 1-2. The list in Table 1-2 is not exhaustive,
since there are eight possibilities, but it is representative of the vast majority of com-
mercially available robots. As far as analysis of the motion of the arm is concerned,
prismatic joints tend to be simpler than revolute joints. Therefore the last column in
Table 1-2, which specifies the total number of revolute joints for the three major
axes, is a rough indication of the complexity of the arm.
For the simplest robot listed in Table 1-2, the three major axes are all pris
matic; the resulting notation for this configuration is PPP. This is characteristic of a
Cartesian-coordinate robot, also called a rectangular-coordínate robot. An example
Cartesian P P P 0
Cylindrical R P P 1
Spherical R R P 2
SCARA R R P J2bt
Articulated R R R 3
P = prismatic, R = revolute.
of a Cartesian-coordinate robot is shown in Fig. 1-3. Note that the three sliding
joints correspond to moving the wrist up and down, in and out, and back and forth.
It is evident that the work envelope or work volume that this configuraron generales
is a rectangular box. When a Cartesian-coordinate robot is mounted from above in a
rectangular frame, it is referred to as a gantry robot.
LnJ
1 <r
t.
pliance A s-
lint (in the
the axes of
swings the Figure 1-7 Articulated robot.
tical shoul-
3ut a verti-
1-2-3 Motion Control Methods
ntal plañe.
I prismatic
Another fundam ental classification criterion is the method used to control the move-
section of
ment of the end-effector or tool. The two basic types of movement are listed in
; upon the
Table 1-3. The first type is point-to-point motion, where the tool moves to a se-
quence of discrete points in the workspace. The path between the points is not ex-
plicitly controlled by the user. Point-to-point motion is useful for operations which
are discrete in nature. For example, spot welding is an application for which point-
to-point motion o f the tool is all that is required.
1-3 APPLICATIONS
Robotic applications often involve simple, tedious, repetitive tasks such as the load-
ing and unloading of machines. They also include tasks that must be performed in
harsh or unhealthy environments such as spray painting and the handiing of toxic
materials. A summary of robot applications (Brody, 1987) is displayed in Table 1-4.
Here the percentages listed in the second column represent shares of the overall
robot market in the United States for the year 1986. The size of the market in 1986,
excluding sepárate sales of visión systems, was $516 million (Brody, 1987).
TABLE 1-4 U. S. ROBOT MARKET (1986)
Application Percent
Country Percent
Japan 44.1
USA. 22.1
West Germany 8.8
Sweden 7.4
France 2.9
Great Britain 2.9
Italy 2.2
Others 9.6
W hile the drive technologies, work-envelope geom etries, and motion control m eth
ods provide convenient ways to broadly classify robots, there are a number o f addi
tional characteristics that allow the user to further specify robotic m anipulators
Some o f the m ore common characteristics are listed in Table 1-6.
TABLE 1-6 ROBOT CHARACTERISTICS
Characteristic Units
Number o f axes
Load carrying capacity kg
Máximum speed, cycle time mm/sec
Reach and stroke mm
Tool orientation deg
Repeatability mm
Precisión and accuracy mm
Operating environment —
Each robotic manipulator has a number of axes about which its links rotate or along
which its links transíate. Usually, the first three axes, or major axes, are used to es-
tablish the position of the wrist, while the remaining axes are used to establish the
orientation of the tool or gripper, as shown in Table 1-7. Since robotic manipulation
is done in three-dimensional space, a six-axis robot is a general manipulator in the
sense that it can move its tool or hand to both an arbitrary position and an arbitrary
orientation within its workspace. The mechanism for opening and closing the fingers
TABLE 1-7 AXES OF A ROBOTIC MANIPULATOR
Load-carrying capacity varies greatly between robots. For example, the Minimover
5 Microbot, an educational table-top robot, has a load-carrying capacity of 2.2 kg.
At the other end of the spectrum, the GCA-XR6 Extended Reach industrial robot has
a load-carrying capacity of 4928 kg (Roth, 1983-1984). The máximum tool-tip
speed can also vary substantially between manipulators. The Westinghouse Series
4000 robot has a tool-tip speed of 92 mm/sec, while the Adept One SCARA robot
has a tool-tip speed of 9000 mm/sec (Roth, 1983-1984). A more meaningful mea-
sure of robot speed may be the cycle time, the time required to perform a periodic
motion similar to a simple pick-and-place operation. The Adept One SCARA robot
carrying a 2.2-kg payload along a 700-mm path that consists of six straight-line seg-
ments has a cycle time of 0.9 sec. Thus the average speed over a cycle is 778
mm/sec, considerably less than the 9000 mm/sec máximum tool-tip speed.
Although the load-carrying capacities and máximum operating speeds of ro
bots vary by several orders of magnitude, it is, of course, the mix of characteristics
that is important when selecting a robot for a particular application. In some cases, a
large load-carrying capacity may not be necessary, while in other cases accuracy
may be more important than speed. Clearly, there is no point in paying for addi-
tional characteristics that are not relevant to the class of applications for which the
robot is intended.
The reach and the stroke of a robotic manipulator are rough measures of the size of
the work envelope. The horizontal reach is defined as the máximum radial distance
the wrist mounting flange can be positioned from the vertical axis about which the
robot rotates. The horizontal stroke represents the total radial distance the wrist can
travel. Thus the horizontal reach minus the horizontal stroke represen ts the mini-
mum radial distance the wrist can be positioned from the base axis. Since this dis
tance is nonnegative, we have:
Stroke ^ reach (1-4-1)
For example, the horizontal reach of a cylindrical-coordinate robot is the ra-
dius of the outer cylinder of the work envelope, while the horizontal stroke is the
difference between the radii of the concentric outer and the inner cylinders, as
shown in Fig. 1-8.
The vertical reach of a robot is the máximum elevation above the work surface
that the wrist mounting flange can reach. Similarly, the vertical stroke is the total
vertical distance that the wrist can travel. Again, the vertical stroke is less than or
equal to the vertical reach. For example, the vertical reach of a cylindrical robot will
be larger than the vertical stroke if the range of travel of the second axis does not
allow the wrist to reach the work surface, as shown in Fig. 1-8. One of the useful
characteristics of articulated robots lies in the fact that they often havefu ll work en-
velopes, in the sense that the stroke equals the reach. However, this feature gives
rise to a need for programming safeguards, because an articulated robot can be pro-
grammed to collide with itself or the work surface.
W hile the three major axes of a robot determine the shape of the work envelope, the
remaining axes determine the kinds of orientation that the tool or hand can assume.
If three independent minor axes are available, then arbitrary orientations in a three -
dimensional workspace can be obtained. A number of conventions are used in the
robotics literature to specify tool orientation (Fu et al., 1987). The tool orientation
convention that will be used here is the yaw-pitch-roll (YPR) system. Yaw, pitch,
and roll angles have long been used in the aeronautics industry to specify the ori
entation of aircraft. They can also be used to specify tool orientation, as shown in
Fig. 1-9.
1 Yaw f l
2 Pitch P
3 Roll P
An alternative way to specify the YPR motions is to instead perform the rota
tions in reverse order about the axes of the mobile tool frame M rather than the fixed
wrist ffame F. That is, first a roll motion is performed about m 3, then a pitch motion
is performed about m2, and finally a yaw motion is performed about m l. This is
equivalent to performing the rotations about the axes of the fixed wrist frame F in
the original YPR order, in the sense that the tool ends up at the same orientation.
For this reason, the YPR system is often referred to as the RPY system. A sequence
of rotations about the mobile frame M axes is often easier to visualize, particularly
when the angles are not múltiples of tt/2 .
Definition 1-4-1: Spherical W rist, A robot has a spherical wrist if and only
if the axes used to orient the tool intersect at a point.
The robot wrist shown in Fig. 1-9 is an example of a spherical wrist because
the three axes used to orient the tool, {m1, m2, m 3}, intersect at a point. More gen-
erally, if a robot possesses fewer than three axes to orient the tool, then it can still
have a spherical wrist. However, in these cases the spherical wrist will not be a gen
eral spherical wrist, because, with fewer than three axes, some orientations of the
tool cannot be achieved. Spherical wrists are useful because they simplify the mathe-
matical descriptions of robotic manipulators. In particular, the larger n-axis problem
can be partitioned into a two simpler problems, a 3-axis problem and an (n — 3)-
Precisión Adjacent
tool
A B position
V
A
V
Accuracy Figure 1-10 Adjacent tool positions.
More generally, in three-dimensional space the robot tool tip might be posi
tioned anywhere on a three-dimensional grid of points within the workspace. Typi-
cally, this grid or lattice of points where the tool tip can be placed is not uniform.
The overall precisión of the robot is the máximum distance between neighboring
points in the grid. For example, an interior grid point of a Cartesian-coordinate
robot will have eight neighbors in the horizontal plañe plus nine neighboring grid
points in the planes above and below. One of the virtues of a Cartesian-coordinate
robot is that the precisión is uniform throughout the work envelope; the state of one
axis does not influence the precisión along another axis. However, this is not the
case for other types of robots, as can be seen in Table 1-9, where the overall preci
sión is decomposed into horizontal and vertical componen ts.
For the case of a cylindrical-coordinate robot, the horizontal precisión is
highest along the inside surface of the work envelope and lowest along the outside
surface. This is because the are length swept out by an incremental movement A<£ in
Here the radial precisión is Ar, while the angular precisión about the base ex-
pressed in terms of the are length is r A</>. In the worst case, the angular precisión is
R A<¿>, where R is the horizontal reach of the robot. Thus the overall horizontal pre
cisión in this case is approximately
A/i « [(Ar)2 + (R A<¿>)2]1/2 (1-4-2)
Here we have assumed that A</>and Ar are sufficiently small and that the angle bac
in Fig. 1-11 is approximately tt/2 . If Az represents the vertical precisión of a cylin
drical-coordinate robot, then the total robot precisión is
Ap ~ [(Ar)2 + (R A<f))2 + (Az)2]1/2 (1-4-3)
For a spherical-coordinate robot, both the horizontal precisión and the vertical
precisión are highest along the inside surface and lowest along the outside surface of
the work envelope. For SCARA robots, the horizontal precisión varies, but the ver
tical precisión is uniform. It is this feature, together with its open work envelope,
that makes the SCARA robot useful for light assembly work such as the vertical in-
sertion of electrical components into circuit boards. With articulated robots, both
the horizontal precisión and the vertical precisión vary over the work envelope.
An alternative way to specify the precisión of a robot is to specify the precisión
of the individual joints. Clearly this is easier to analyze, although it is perhaps less
useful. The precisión or spatial resolution of an individual joint is affected by the
drive system, the position sensors, and the power transmission mechanism, including
gears, sprockets, and cables. For example, suppose the reference position signal is
generated internally in a control Computer and then sent to an external analog feed-
back position control system through an n-bit digital-to-analog converter (DAC). If
the range of load shaft positions attainable goes from </>min through (¿w , then the
load shaft precisión AÓdac in this case is given by:
a i W
'ta
kx Ymin . ,, & .\
A<Pdac = ------ —------ degrees per count (1-4-4)
More generally, if d emitter-detector pairs are used, and if there are k slots
around the circumference of the disk, then the precisión with which the shaft posi
tion can be measured is 360/{kl*) degrees per count. The encoded disk is usually
mounted on the high-speed shaft of the motor, rather than the load shaft. If the gear
reduction ratio from the high-speed shaft to the load shaft is m : 1, then the overall
incremental load shaft precisión A<frnc is
The operating environments within which robots ftmction depend on the nature of
the tasks performed. Often robots are used to perform jobs in harsh, dangerous, or
unhealthy environments. Examples include the transport of radioactive materials,
spray painting, welding, and the loading and unloading of furnaces. For these appli
cations the robot must be specifically designed to opérate in extreme temperatures
and contaminated air. In the case of paint spraying, a robotic arm might be clothed
in a shroud in order to minimize the contamination of its joints by the airborne paint
particles.
At the other extreme of operating environments are clean room robots. Clean
room robots are used in the semiconductor manufacturing industry for such tasks as
the handiing of Silicon wafers and photomasks. Specialized equipment has to be
loaded and unloaded at the various clean room processing stations. Here the robot is
operating in an environment in which parameters such as temperature, humidity, and
airflow are carefully controlled. In this case it is the robot itself that must be de
signed to be very clean so as to minimize the contamination of work pieces by sub-
micron particles. Some clean room robots are evacuated internally with suction in
order to scavange particles generated by ffiction surfaces. Others use special non-
shedding materials and employ magnetic washers to hold ferromagnetic lubricant in
place.
In recent years a number of educational table-top robots have appeared in the mar-
ketplace. Many educational robots employ open-loop position control using DC
stepper motors. Some table-top educational robots are also available which use
closed-loop position control with DC servomotors and incremental encoders. An ex
ample of the latter type of educational robot is the Rhino XR-3 robot, pictured in
Fig. 1-13.
Number of axes 5 —
Load-carrying capacity 0.5 kg
Máximum tool-tip speed 650.0 mm/sec
Horizontal reach and stroke 628.6 mm
Vertical reach and stroke 889.0 mm
Tool pitch range 270.0 deg
Tool roll range 360.0 deg
Repeatability ±2.5 mm
Number of axes 5 ——
Load-carrying capacity 0.5 kg
Máximum tool-tip speed 650.0 mm/sec
Horizontal reach and stroke 628.6 mm
Vertical reach and stroke 889.0 mm
Tool pitch range 270.0 deg
Tool roll range 360.0 deg
Repeatability ± 2 .5 mm
F Base 0.2269
E Shoulder 0.1135
D Elbow 0.1135
C Tool pitch 0.1135
B Tool roll 0.3125
A Tool closure 1.2500
The Rhino XR-3 robot is one of several robots that are used as vehicles for il-
lustrating theoretical concepts covered in the remainder of this text. Direct and in-
verse kinematics, work-envelope calculations, trajectory planning, and control are
examined. A series of laboratory projects designed around a robotic work cell which
features a Rhino XR-3 robot and a Micron Eye camera are included in a sepárate
Laboratory Manual that accompanies this text (Schilling and White, 1990, in press).
These laboratory programming projects are designed to play an integral part in any
course using this text and are strongly recommended. If a Rhino XR-3 or other edu
cational robot is not available, a three-dimensional graphics robot simulator program
called SIMULATR that is supplied with the Laboratory Manual can be used as a
substitute. The use of the graphics simulator for development of robot control pro-
grams is highly recommended even when a physical robot is available. This way
robot control programs can be conveniently developed and debugged off-line with
the final versión of the program tested on an actual robot.
1-5 NOTATION
Note that scalars can be regarded as important special cases of column vectors,
that is, column vectors with only one component. Similarly, vectors are themselves
special cases of matrices, that is, matrices with only one row or only one column.
x = X2 (1-5-1)
*3
The superscript T is reserved to denote the transpose of a vector or, more gen-
erally, of a matrix. The transpose is obtained by interchanging the rows with the
columns. Thus the transpose of an n x 1 column vector is a 1 x n row vector, and
conversely. The following is therefore a space-saving way of writing a column vec
tor as a transposed row vector:
x = [x\, x2, x 3]r (1-5-2)
Individual superscripts are used as Índices to distinguish members of a set of
vectors. In those cases where a superscript might be confused with taking a quantity
to a power, parentheses are used to remove the ambiguity. For example (jti)2 is used
to denote the square of the first component of the vector jc, while jc2 denotes the first
com ponent of the second member of a set of vectors {jc1, jc2, . . . }.
Sets. While square brackets are reserved for enclosing components of vec
tors and matrices, curly brackets, or braces, are used to endose members of a set.
Thus a set T of vectors jc1, jc2, . . . , jc" is represented as follows:
Symbol Meaning
Here 0* denotes the joint angle for the kth joint of a robotic arm.Clearly the
notation can be extended in the obvious way to include sums or differences of three
or more joint angles. The joint angle 0* is often replaced by the variable qk, which
denotes the joint variable for the kth joint. That is, qk and 0* can be used inter-
changeably in Table 1-13.
1-6 PROBLEMS
1-1. What is the essential feature that distinguishes soft automation from hard automation?
1-2. Which types of drive technologies would be most suitable for the following applica
tions:
(a) Unload 1000-kg items from a die casting machine
(b) Install integrated circuit chips on a printed circuit board
1-3. What is the minimum number of axes required for a robot to insert and tighten four
nuts (from above) on four vertical bolts as shown in Fig. 1-15? The nuts are available
from a vertical spring-activated parts feeder. Explain why each axis is needed.
1-4. Suppose a cylindrical-coordinate robot has a vertical reach of 480 mm and a vertical
stroke of 300 mm. How far off the floor do parts have to be raised in order to be reach-
able by the robot?
1-5. The base joint of a cylindrical-coordinate robot is driven by a 12-bit digital-to-analog
T
R obot • •
Bolts
converter (DAC) and has a swing range of 360 degrees. The radial axis is driven by an
8-bit DAC and has a horizontal reach of 300 mm and a horizontal stroke of 200 mm.
Finally, the vertical axis is driven by a 10-bit DAC and has a vertical reach of 480 mm
and a vertical stroke of 360 mm.
(a) What is the volume of the work envelope?
(b ) What is the vertical precisión?
(c) What is the radial precisión?
(d ) What is the angular precisión about the base?
(e) What is the horizontal precisión?
( f ) What is the total precisión?
1-6. For a spherical-coordinate robot, where within the work envelope is the tool-tip preci
sión the highest?
1-7. For what type of robot is the precisión uniform throughout the work envelope? For
which robots is the vertical precisión uniform?
1-8. An incremental shaft encoder with 2 emitter-detector pairs and 12 slots around the
circumference is used to monitor the angular position of a high-speed motor shaft.The
precisión of the load shaft is measured and found to be 0.05 degrees per count. What is
the gear ratio between the high-speed shaft and the loadshaft?
1-9. Consider the robotic tool shown in Fig. 1-16. Sketch the tool position after each inter-
mediate position of the following YPR operation: yaw 7t / 2 , pitch — 7t / 2 , roll 7 r / 2 .
rotations are taken about the axes of the mobile frame M rather than the fixed frame F,
then the final tool position is the same. Are the intermedíate tool positions the same?
Direct Kinematics:
The Arm Equation
A robotic manipulator can be modeled as a chain of rigid bodies called links. The
links are interconnected to one another by joints, as shown in Fig. 2-1. One end of
the chain of links is fixed to a base, while the other end is free to move. The mobile
end has a flange, or face píate, with a tool, or end-effector, attached to it. There are
typically two types of joints which interconnect the links: revolute joints, which ex
hibit rotational motion about an axis, and prismatic joints, which exhibit sliding mo
tion along an axis.
The objective is to control both the position and the orientation of the tool in
three-dimensional space. The tool, or end-effector, can then be programmed to fol-
low a planned trajectory so as to manipúlate objects in the workspace. In order to
program the tool motion, we must first formúlate the relationship between the joint
variables and the position and the orientation of the tool. This is called the direct
kinematics problem, which we define formally as follows:
25
Problem : Direct Kinematics. Given the vector of joint variables of a robotic
manipulator, determine the position and orientation of the tool with respect to a co
ordinate frame attached to the robot base.
Vectors in n-dimensional space R" can be thought of as arrows emanating from the
origin, as shown in Fig. 2-2 for the case n = 3. The coordinates of the vector are
then synonymous with the location of the tip of the arrowhead.
The vectors pictured in Fig. 2-2 are special in the sense that any vector in the
space R 3 can be easily represented in terms of these vectors. To see this, it is useful
to first introduce the notion of an inner product, or dot product, of two vectors.
Definition 2-1-1: Dot Product. The dot product of two vectors x and y in R"
is denoted x • y and is defined:
x*y = 2 xkyk
k= 1
The symbol 4 should be read “equals by definition.” The dot product is also
called the Euclidean inner product in R". The matrix transpose operation can be used
to express the dot product more compactly as
Here x T denotes the row vector obtained by taking the transpose of the column vec
tor x. The dot product in R" has all the properties that are characteristic of inner
products in general. In particular, the following properties are fundamental:
Proposition 2-1-1: Dot P roduct. Let { jc, y, z} be vectors R" and let {a,
/?} be real scalars. Then the dot product has the following properties:
1. jc • x > 0
2. jc • jc = 0 <=> jc = 0
3. jc • y ~ y • jc
4.(ax + Py) • z = a ( jc • z) + /3 (y • z)
These properties follow directly from Def. 2-1 -1. Note that the first two properties
indícate that the dot product of a vector with itself is always nonnegative and is zero
only for the zero vector. The third property specifies that the dot product is a com-
mutative function of its two arguments, that is, interchanging the order of jc and y
does not alter the result. Finally, the last and perhaps most important property is that
the dot product is a linear function of its first argument jc.Thus the dot product of
the sum is the sum of the dot products. In view of the commutative property, the dot
product is also a linear function of its second argument y.
The dot product of two vectors is a measure of the orientation between the two
vectors. To see this, it is useful to first examine the concept of orthogonality.
For the Euclidean inner product or dot product in Def. 2-1 -1, orthogonal vectors can
be interpreted geometrically in three-dimensional space as perpendicular vectors.
Thus the three vectors shown in Fig. 2-2, which correspond to the three columns of
the identity matrix / , are mutually orthogonal. We therefore refer to them as an or
thogonal set. Not only is the set of vectors in Fig. 2-2 an orthogonal set, it is also a
complete set. A complete orthogonal set is a set of vectors with the property that the
only vector orthogonal to every member of the set is the zero vector.
The number of vectors it takes to form a complete orthogonal set for a vector
space is called the dimensión of the space. Thus R 3 is a three-dimensional space and,
more generally, R ” is an «-dimensional space. The vectors pictured in Fig. 2-2 are
also special in one final sense. The length of each vector is unity, and so we refer to
these vectors as unit vectors. The length or norm of an arbitrary vector in R" can be
defined in terms of the dot product as follows:
Henee the dot product can be interpreted as a measure of the orientation between
two vectors. It is proportional to the cosine of the angle between the vectors, the
constant of proportionality being the product of the lengths of the vectors. It follows
from Prop. 2-1-2 and Def. 2-1-2 that the angle between orthogonal vectors is 7r/2
radians. Henee orthogonal vectors in R3 are perpendicular to one another. COORDINA
There is another operation with vectors which is useful in the analysis of
robotic manipulators, the cross product. Whereas the dot product of two vectors The inne
generates a scalar, the cross product of two vectors generates another vector that can arbitrary
bers of a
be defined as follows:
trary vec
thonorm
Definition 2-1-5: Cross Product. The cross product of two vectors u and t (weighte
in R3 is a vector w = u x v which is orthogonal to u and v in the right-handed sense coordina
and defined as follows:
N
z1 l• 2 z3“ U2 V 3 ~ U3 V 2 De
U\ U2 U3 > = U3 V 1 - U 1 V 3
spect to
JJI l?2 U3_ J _U 1V2 - U2V]_
Here the determinant notation is used in a formal sense to indicate how to evalúate
the cross product. In this case the unit vectors {z\ z2, i 3} are treated as if they were
scalars for the purpose of computing the determinant. For the right-handed or Th
thonormal coordinate frame shown in Fig. 2-2, i 1 = i 2 x z3, i 2 = i 3 x i 1, and na te fra
i 3 = z1 x i 2. Recall that the valué of the dot product u • v depends upon the angle vectors
between the two vectors u and u. Similarly, the length of the cross-product vector frame a
u x t depends on the angle between the two vectors u and o, as can be seen from mental ¡
the following result:
Sec. 2-5
28 Direct Kinematics: The Arm Equation Chap. 2
P ro p o sitio n 2-1-3: C ross P ro d u ct. Let u and t be arbitrar) vectors in R
and let 0 be the angle from u to v. Then:
\\u x 11| = l! u || || v ¡| sin 6
Thus, whereas the dot product is proportional to the cosine of the angle between the
vectors, the size of the cross product vector is proportional to the síne o f the angle
between the vectors. Refer to Fig 2-3 for an iliustration of two vectors u and t in
R 3 and their cross product.
Dot products and cross products are useful in developing concise form ulations
of the kinem atics, statics, and dynamics of robotic manipulators. We begin w ith the
kinem atic analysis.
The inner product, or dot product, is useful because one can employ it to represent
arbitrary vectors in terms of their projections onto subspaces generated by the m em
bers o f a complete orthonorm al set of vectors. In particular, suppose p is an arbi-
trary vector in the space R", and suppose X — { x \ x 2, . . . , jc”} is a complete o r
thonorm al set for R". We can then represent the vector p as a linear com bination
(weighted sum) of the vectors in X where the weighting coefficients are called the
coordinates of p with respect to X.
lp]i * P * k 1 n
Proof. From Def. 2-2-1, it is sufficient to show that c is the zero vector where
c is the difference or error:
C = p - i í p ■X k) x k
** 1
Using Def. 2-1-2, Def. 2-1-4, and the properties of the dot product summarized in
Prop. 2-1-1, we have for each 1 ^ j ss n: Figure 2-4
spect to the
c •x J = p •x J 2 ( p - x k)x‘
k= l
I
= p • Xj - 2 ( p mXk)(xk • X1) t
k= 1
F
n
t
p - x J - 2 (p ■Xk)hj r
k=l
i
— p • XJ — p ' XJ
l
= 0
Thus c is orthogonal to every member of i g Because X is complete, it follows from
Def. 2-1-3 that c — 0 and thus that Prop. 2-2-1 is valid.
1
We see that the &th coordinate of p with respect to an orthonormal coordinate
r
frame X is simply the dot product of p with the kth member of the set X. The geo-
c
metric interpretation of the relationship between a vector and its coordinates is
t
shown in Fig. 2-4, where, for simplicity, the two-dimensional space R 2 is used.
f
Note how p is decomposed into the sum of its orthogonal projections onto the one-
dimensional subspaces (lines) generated by jc1 and jc2. In view of the simple relation
ship between a vector and its orthonormal coordinates, all coordinate frames used in
the remainder of the text are assumed to be right-handed orthonormal frames unless J
otherwise noted. ]
The solution to the direct kinematics problem in robotics requires that we rep (
resent the position and orientation of the mobile tool with respect to a coordinate
frame attached to the fixed base. This involves a sequence of coordinate transforma-
^ tions from tool to wrist, wrist to elbow, elbow to shoulder, and so on. Each of these
coordinate transformations can be represented by a matrix. To see this, it is useful to
first examine a simple special case, the single-axis “robot” displayed in Fig. 2-5.
Here a single revolute joint connects a fixed link (the base) to a mobile link (the
body). The problem is to represent the position of a point p on the body with respect
to a coordinate frame attached to the base. The coordinates of p in this case will
vary as the joint angle 6 changes. Let F = { / \ / 2, / 3} and M = {m \ m 2, m 3} be or
thonormal coordinate frames attached to the fixed and the mobile links, respec-
Revolute joint
Fixed link
tively. Note that m 2 is not shown in Fig. 2-5, since it is obscured by the body in the
position shown, which corresponds to 6 — tt/2. Since p is a point attached to the
body, the coordinates of p with respect to the mobile coordinate frame M will re-
main fixed. However, the coordinates of p with respect to the fixed coordinate frame
F will vary as the body is rotated. From Prop. 2-2-1, the two sets of coordinates of
p are given by:
The problem then is to find the coordinates of p with respect to F, given the coordi
nates of p with respect to M. This is a coordinate transformation problem. The coor
dinate transformation problem has a particularly simple solution whenthe destina-
tion or reference coordinate frame F is orthonormal, as can beseen from the
following result:
lP)F
> ~ P k- f
= •/*
n
V . fk
= Z l( n
—
p i] f (" * '* / )
We cali the matrix A that maps or transforms mobile coordinates into fixed co
ordinates a coordinate transformation matrix. If aj denotes the yth column of A,
then, from Prop. 2-2-1 and Prop. 2-2-2, we find that aj - [mj]F for 1 < j < n.
Consequently, the yth column of the coordinate transformation matrix A is simply the
coordinates of the jth vector of the source coordinate frame M with respect to the
destination coordinate frame F.
Example 2-2-1: Coordínate Transformation
For the two coordinate frames pictured in Fig. 2-5, suppose the coordinates of the
point p with respect to the mobile coordinate frame are measured and found to be
[p]M = [0.6, 0.5, 1.4]r. What are the coordinates ofp with respect to the fixed coordi
nate ffame F with the body in the position shown?
Solution From Prop. 2-2-2, we have:
[p Y = A[p}M
~ f - m ' f ■m 2 P m 0 . 6'
= f 2 •m ' P - m 2 f 2 m 0.5
f - m ' P - m 2 P m 1.4
0 1 0* 0 . 6 '
1 0 0 0.5
0 0 1 1.4
= [-0 .5 , 0.6, 1 4]r
Note that this is consistent with the picture shown in Fig. 2-5.
lili
== Ajk
= (AT)kj
Since the above equation holds identically for all 1 ^ k %j ¡j /i, Prop. 2-2-3 then
follows.
2-3 ROTATIONS
In order to specify the position and orientation of the mobile tool in terms of a coor
dinate frame attached to the fixed base, coordinate transformations involving both
rotations and translations are required. We begin by investigating the representation
of rotations.
If the mobile coordinate frame M is obtained from the fixed coordinate frame F by
rotating M about one of the unit vectors of F, then the resulting coordinate transfor
mation matrix is called a fundamental rotation matrix. In the space R3 there are
three possibilities, as shown in Fig. 2-6.
Ip Y = «i (f) [p]M
"1 0 0
= 0 0.5 - 0.866
0 0.866 0.5
= [2 -2.598 i.5 r
Next, suppose q is a point whose coordinates in the fixed coordinate ffame F are
given by [qY = [3, 4, 0]r . What are the coordinates of q with respect to the mobile
coordinate ffame M l
Solution Since the two coordinate frames are orthonormal and have the same origin,
the inverse of the coordinate transformation matrix is just the transpose. Applying
Prop. 2-2-2 and Prop. 2-2-3:
i
"3“
o
= 0 0.5 0.866 4
0 -0.866 0.5 _ 0_
= [3 2 -3 .4 6 4 f
Note that both results are consistent with the picture shown in Fig. 2-7.
When a number of fundamental rotation matrices are multiplied together, the pro
duct matrix represents a sequence of rotations about the unit vectors. We refer to
múltiple rotations of this form as composite rotations. Using composite rotations, we
can establish an arbitrary orientation for the robotic tool. Consider the sketch of a
robotic tool shown in Fig. 2-8. Here the mobile coordinate frame M = { m \ m 2,
m 3} rotates with the tool, while the fixed coordinate frame F = { / \ / 2, / 3} is sta-
tionary at the end of the forearm. The three fundamental rotations correspond to
yaw, pitch, and roll. Recall from Chap. 1 that yaw is a rotation about the f l axis,
pitch is a rotation about the f 2 axis, and roll is a rotation about the / 3 axis.
Proof. This is verified by simply applying Algorithm 2-3-1 and using the ex
pressions for the three fundamental rotation matrices. Using the notational short
hand C* = eos dk and S* = sin 0* and Algorithm 2-3-1, we have:
Y P R (0) = R 3(03)/?2(02)Rl(0l)
C3 - s 3 o c2 s2 "1 0 0"
s3 c3 0 o o 0 Ci -S i
o o 1 —s 2 c2 0 Si CiJ
c3 - s 3 0‘ c2 s ,s 2 C1S2
s3 c3 0 o c, -S i
o o 1 - s 2 S1C2 c,c2
C2C3 S1S2C3 — C1S3 C1S2C3 + Si s3
C2S3 S1S2S3 + C,C3 C 1S2S3 — S1C3
—S2 Si C2 C1C2
S e a 2-3 Rotations 37
S o lu tion Applying Prop. 2-3-1:
r —7r
~ } r 2I
\ 2/ !^ 2
~o 0 r
0 “ 1 0
1 0 0
Suppose the point p at the tool tip has mobile coordinates [p]M — [0, 0 , 0 .6 ]r.
Find [p]F follow ing the yaw-pitch-roll transformation.
S olu tion Using Prop. 2-3-1:
Ip Y =RIpY4
i
o
o
“ 0 “
0 - 1 0 0
l 0 0_ _0.6_
= [0.6, 0, Of
Exercise 2-3-3: Fundam ental Rotations. Verify that the general yaw-pitch-
roll transformation YPR (0) includes the three fundamental rotations {R\, R2, Ri} as
special cases.
A general rotation of a mobile frame M with respect to a fixed frame F can al-
ways be decomposed into a sequence of three fundamental rotations as in Prop.
2-3-1. It is also possible to represent a general rotation as a single rotation by an an
gle <f>about an arbitrary unit vector u as shown in Fig. 2-9. This is called the equiv-
alent angle-axis representation. For notational convenience, let C</> = eos
S(f> = sin <fi, and V<£ = 1 — eos <f>. The equivalent angle-axis rotation can then be
represented as follows (Fu et al., 1987):
Next, let a be the angle from f to m, and let p be the angle from ü to u as shown in
Fig. 2-9. Then, since ||w|| = 1, it follows that:
r - Ux
"a
c - Ul
~K
C/5 = A
sp = w3
The equivalent angle-axis representation for a general rotation can also be in-
verted (Paul, 1982). For example, given a rotation matrix /?, suppose we want to
find the axis u and angle <f>. The sum of the diagonal terms of a square matrix is
called the trace of the matrix. If we compute the trace of the matrix R{<¡), u) in
Prop. 2-3-2, then after simplification using trigonometric identities and ||w|| = 1,
the result is trace [/?(<£, u)] — 1 + 2 eos $ . Thus the angle part of the equivalent
angle-axis representation is:
trace (R) — 1
|¡ árceos (2-3-6)
2
Once the angle of rotation is identified over the range (0, 7r), the axis or unit
vector about which the rotation is performed can then be determined. In particular,
if we form differences between off-diagonal terms of /?(<£, u) in Prop. 2-3-2, we
can isolate the components of u as follows:
(2-3-7)
HOMOGENEOUS COORDINATES
Puré rotations are sufficient to characterize the orientation of a robotic tool. How
ever, to characterize the position of the tool relative to a coordinate frame attached
to the robot base, we must use another type of transformation, a translation. Transla-
tions are qualitatively different fforn rotations in one important respect. With rota
tions, the origin of the transformed coordinate frame is the same as the origin of the
original coordinate frame. This invariance of the origin is characteristic of linear
operations in general, and it is this feature that allows us to represent rotations in
three-dimensional space with 3 x 3 matrices. However, the origin of a translated
coordinate frame is not the same as the origin of the original coordinate frame. Con-
sequently, it is not possible to represent a translation in R3 with a 3 x 3 matrix.
=-[/,()] (2-4-1)
cr
Note that the homogeneous coordinates [qY are not unique, because any scale
factor cr ~t~ 0 will yield the same three-dimensional physical vector q. In robotics,
we normally use a scale factor of cr = 1 for convenience. In this case, four-
dimensional homogeneous coordinates are obtained from three-dimensional physical
coordinates by simply augmenting the vector with a unit fourth component. Simi-
larly, three-dimensional physical coordinates are recovered from four-dimensional
homogeneous coordinates by merely dropping the unit fourth component.
ro ta tio n p o s itio n
R i P
i
rf J * -
p e rs p e c tiv e scale
The fundamental operations of translation and rotation can each be regarded as im
portant special cases of the general 4 x 4 homogeneous transformation matrix. To
see this, first consider the question of rotation. Suppose F and M are two orthonor
mal coordinate frames that are initially coincident. If we rotate M by an amount </>
about the kth unit vector of F, then in terms of homogeneous coordinates this opera-
tion can be represented by a 4 x 4 matrix denoted Rot (</>, k), where:
i 0
R ¿ 4>) i 0
Rot (<£, k) = i o (2-4-3)
1
t
o o o ! i
Here Rk(<t>) is simply the fcth fundamental rotation matrix introduced in Sec. 2-3.
We refer to Rot ($, k) as the kth fundamental homogeneous rotation matrix. Com
posite homogeneous rotation matrices are then built up from the fundamental homo
geneous rotation matrices in a manner analogous to the method summarized in Al
gorithm 2-3-1. Note that the translation vector p in each case has been set to zero.
¡ o
m
> 41) i0
: o
Rot W ’ * i
. . j ____ _
0 0 0 i 1 J
’l 0 0 0
7T 7T
0 eos — sin 0
—
4 4
7r 7r
0 sin — eo s — 0
4 4
0 0 0 1
■ 1 0 0 0
0 0.707 -0.707 0
0 0.707 0.707 0
0 0 0 1
Henee the homogeneous coordinates of the point q in the fixed coordinate frame F fol
lowing the rotation are:
I q f = Rot ( j , l)[<?]M
1 0 0 0 Y
0 0.707 0.707 0 0
0 0.707 0.707 0 10
0 0 0 1 1
m _
= [0 -7.07 7.07 l ]5
Finally, the physical coordinates of the point q in the fixed coordinate frame F are
q = [0, -7 .0 7 , 7.07]r.
The pow er o f homogeneous coordinates lies in the fact that matrices can also
be used to represent translations. For example, let F and M be two initially coinci
dent orthonorm al coordinate frames, and suppose we want to transíate the origin of
the mobile coordinate frame M by an amount p k along the fcth unit vector of F for
1 ^ k < 3. Then in term s o f homogeneous coordinates, this operation can be repre-
1
Sec. 2-4 H om ogeneous Coordinates 43
sented by a 4 x 4 matrix denoted Tran (p), where:
1 0 0 P\
0 1 0 P2
Tran (p) = 0 0 1 P> (2-4*4)
«•«
0 0 0 1
It follows that the homogeneous coordinates of point q relative to the reference frame F
following the translation are given by:
íq\ = Tran (p) [q]M
1 0 0 5 0
0 1 0 - -3 0
0 0 1 0 10
0 0 0 1 1
= [5 -3 10 l]r
Finally, the physical coordinates of the point q in the fixed F coordinate ffame follow
ing the translation are q = [5, —3, 10]r.
Exercise 2-4-1: Inverse T ranslation. Verify that the inverse of the funda
mental homogeneous translation matrix Tran (p) always exists and is given by:
Tran-1 (p) = Tran ( —p)
Exercise 2-4-2: Inverse R otation. Verify that the inverse of the fundamen
tal homogeneous rotation matrix Rot (</>, k) always exists and is given by:
Rot-1 ($, k) = Rot (-< p, k) = Rotr (<f>, k) 1< k ^ 3
In the general case, a homogeneous transformation matrix will represent both a rota
tion and a translation of the mobile frame with respect to the fixed ffame. A se-
quence of individual rotations and translations can be represented as a product of
fundamental homogeneous transformation matrices. However, because matrix mul
tiplicaron is not a commutative operation, the order in which the rotations and trans
lations are to be performed is important. Furthermore, the mobile coordinate ffame
can be rotated or translated about the unit vectors of the fixed frame or about its own
unit vectors. The effects of these different operations on the composite transforma
tion matrix are summarized in the following algorithm:
-1 0 0 0 1 0 0 0 1
0 -1 0 0 0 1 0 3 0
0 0 1 0 0 0 1 0 0
0 0 0 1 0 0 0 1 1
-1 0 0 0 1
0 -1 0 - 3 0
0 0 1 0 0
0 0 0 1 1
[-1 -3 0 If
Thus, in terms of physical coordinates, [ml]F = [—1, —3, 0]r. This is consistent with
the diagram of the two coordinate frames displayed in Fig. 2-10.
f3i k -1
■ 1
/
/
/
/
-------- ►-
Figure 2-10 Coordinate frames for Ex-
ampie 2-4-3.
Exampie 2-4-4: Composite Homogeneous Transformation
Suppose we repeat the transformation of Example 2-4-3 but this time with the order of
the operations reversed. First we rotate M by v radians about/3, and then we transíate
the rotated M by 3 units along/2. Find [ml]F following the composite transformation.
Solution Using Algorithm 2-4-1:
[m1f = T[m']M
= Tran (3i2) Rot (77, 3) [ml]M
1
1 0 0 0 -1 0 0 0
0 1 0 3 0 -1 0 0 0
0 0 1 0 0 0 1 0 0
0 0 0 1 0 0 0 1
1
F
-1 0 0 0 1
0 -1 0 3 0
0 0 1 0 0
0 0 0 1 1
[-1 3 0 l]r
Thus, in terms of physical coordinates, [mlY = [ - 1 , 3 , 0]r . Again, this is consistent
with the diagram of the two coordinate frames displayed in Fig. 2-11. Note that the
final position of the mobile ffame M in Fig. 2-11 differs from that in Fig. 2-10. Henee
the order in which the fundamental transformations are performed is important.
1
O
O
0 0 0
-
0 ‘
R TR 0
0
0 0 0 1
f2
Figure 2-12 Coordinate frames for Ex-
f1 ampie 2-4-5.
0 1 0 —2 0
-1 0 0 0 1
0 0 1 —2 0
0 0 0 1 1
= [-1 0 -2 lf
Thus, in terms of physical coordinates, [ f 2]M = [—1, 0, —2]r . This is consistent with
Fig. 2-12.
It is clear that the screw transformation matrix includes the fundamental ho
mogeneous rotation matrices as special cases, because Screw (0, <f), k) = Rot (<f>, k)
for 1 ^ k ^ 3 . Similarly, a translation along a unit vector is also a special case, be-
cause Screw (A, 0, k) = Tran (Ai*). As with a physical screw, one can define a pitch
associated with the thread. In the case of homogeneous transformations, the screw
pitch is defined:
1 0 0 0 0 0 1 0 ’o
0 1 0 3 0 10 0 0
0 0 1 0 - 1 0 0 0 1
0 0 0 1 0 0 0 1 1
0 0 1 0 ’o '
0 1 0 3 0
-1 0 0 0 1
0 0 0 1 1
= [ 1 3 0 l]r
T hus, in terms o f physical coordinates, [m 3]F = [1, 3, 0 ]r. This is consistent with the
diagram o f the two coordinate frames displayed in Fig. 2 -1 4 . The pitch o f the screw is
p = j 2 threads per unit length. joint
first
to m
joint
axis
the
para
Figure 2-14 Coordinate frames for Ex- on ti
ampie 2-4-6.
is Vi
Recall that a robotic arm can be modeled as a chain of rigid links interconnected by
either revolute or prismatic joints. The objective of this section is to systematically
assign coordinate frames to each of those links. Once this is done, a general arm
equation which represents the kinematic motion of the links of the manipulator can
then be obtained. We begin by examining certain parameters associated with the
physical design of a robotic arm.
Joint k
another about the axis of joint k. For a prismatic joint, the joint distance dk is vari
able and the joint angle 6k is fixed. In this case the two links transíate relative to one
another along the axis of joint k.
Just as there is a joint connecting adjacent links, there is a link between suc-
cessive joints. The relative position and orientation of the axes of two successive
joints can be specified by two link parameters, as shown in Fig. 2-16. Here link k
connects joint k to joint k + 1. The parameters associated with link k are defined
with respect to jc*, which is a common normal between the axes of joint k and joint
k + 1. The first link parameter, aky is called the link length. It is the translation
along ;c* needed to make axis z*-1 intersect with axis z*. The second link parameter,
a*, is called the link twist angle. It is the rotation about jc* needed to make axis z*_I
parallel with axis z*.
Joint k + 1
Link k
w — 5
I
Unlike the joint parameters, the two link parameters are always constant and
are specified as part of the mechanical design. For industrial robots, the link twist
angle is usually a múltiple of tt/ 2 radians. Sometimes the axes of joint k and joint
k + 1 intersect, in which case the length of link k is zero. Links of length zero oc-
cur, for example, in robots with spherical wrists, where the last n — 3 axes inter
sect. More generally, robots can be designed to have many of the constant kinematic
parameters equal to zero, in which case they are referred to as kinematically simple
manipulators.
For an «-axis robotic manipulator, the 4n kinematic parameters constitute
the minimal set needed to specify the kinematic configuration of the robot. For
each axis, three of the parameters are fixed and depend on the mechanical design,
while the fourth parameter is the joint variable, as indicated in Table 2-1. For a
rectangular-coordinate robot the first three joint variables are all joint distances,
whereas for an articulated-coordinate robot the first three joint variables are all joint
By convention, the joints and limes of a robotic arm are numbered outward starting
with the fixed base, which is link 0, and ending with the tool, which is link n. For
an n-axis robot there are n + 1 links interconnected by n joints, with joint k con-
necting link Á: — 1 to link k. In order to systematically assign coordinate frames to
the links of an «-axis robotic arm, special attention must be paid to the last link—
the tool, or end-effector. The orientation of the tool can be expressed in rectangular
coordinates by a rotation matrix R = [ r 1, r 2, r 3], where the three columns of R cor
respond to the normal, sliding, and approach vectors, respectively, as shown in Fig.
2-17. The approach vector r 3 is aligned with the tool roll axis and points away from
the wrist. Consequently, the approach vector specifies the direction in which the tool
is pointing. The sliding vector r 2 is orthogonal to the approach vector and aligned
with the open-close axis of the tool. Finally, the normal vector r l is orthogonal to
the plañe defined by the approach and sliding vectors and completes a right-handed
orthonormal coordinate frame.
Recall that the yaw, pitch, and roll motions are rotations about the normal,
sliding, and approach vectors, respectively. For the purpose of representing tool ori
entation, the origin of the {r1, r 2, r 3} frame can be taken either at the wrist, as in
Chap. 1, or at the tool tip, as in Fig. 2-17. For the remainder of this text we will
assume that the origin of the { r \ r 2, r 3} frame is placed at the tool tip, as in Fig.
2-17, because this simplifies the subsequent representation of tool-tip position.
Denavit and Hartenberg (1955) proposed a systematic notation for assigning right-
handed orthonormal coordinate frames, one to each link in an open kinematic chain
of links. Once these link-attached coordinate frames are assigned, transformations
between adjacent coordinate frames can then be represented by a single standard
4 x 4 homogeneous coordinate transformation matrix. To assign coordinate frames
to the links of the robotic manipulator, let Lk be the frame associated with link k.
That is:
0. Number the joints from 1 to n starting with the base and ending with the tool
yaw, pitch, and roll, in that order.
1. Assign a right-handed orthonormal coordinate frame Lo to the robot base,
making sure that z° aligns with the axis of joint 1. Set k = 1.
2. Align z* with the axis of joint k + 1.
3. Lócate the origin of Lk at the intersection of the z* and z*-1 axes. If they do not
intersect, use the intersection of zk with a common normal between z k and
z * '1.
4. Select j c * to be orthogonal to both z* and z**1. If z* and z*_1 are parallel, point r
j c * away from z*"1.
Axis e d a a Home
1 01 215.0 mm 0 —tt/2 0
2 02 0 177.8 mm 0 0
3 03 0 177.8 mm 0 0
4 04 0 0 —7r/2 —re¡2
5 05 129.5 mm 0 0 0
The valúes listed in the last column of Table 2-2 for the joint variable 6 corre
spond to the soft home position pictured in the link-coordinate diagram of Fig. 2-19.
When assigning link-coordinates using the D-H algorithm, it is always easier to
choose a soft home position that corresponds to the joint angles being múltiples of
7r/2radians even if the original picture of the robot is not so configured.
It is evident from inspection of Fig. 2-19 that the origins of the coordinate
frames associated with the tool orientation {L3, L4} coincide at the wrist. This is in
dicad ve of the fact that the Alpha II robot has a spherical wrist. However, it is not a
general spherical wrist, because there is no tool yaw motion. The mechanical design
that enables the Alpha II robot to achieve a pitch-roll spherical wrist is shown in Fig.
2 - 20 .
The wrist design employs a set of three bevel gears {A, B, C} in a “universal”
joint configuration as shown in Fig. 2-20. Gears A and B are driven by sepárate
stepper motors and cables, while gear C is attached to the tool roll axis. If gears A
and B are driven in opposite directions at the same speed, the tool will exhibit a puré
roll motion. However, if gears A and B are driven in the same direction at the same
speed, the tool will exhibit a puré pitch motion with the tool tip moving “into” and
Pitch axis
Roll axis
• P
Tool
Figure 2-20 Pitch-roll spherical wrist
using bevel gears.
Once a set of link coordinates is assigned using the D-H algorithm, we can then
transform from coordinate ffame k to coordinate frame k - 1 using a homogeneous
coordinate transformation matrix. By multiplying several of these coordinate trans
formation matrices together, we arrive at a composite coordinate transformation ma
trix which transforms or maps tool coordinates into base coordinates. This com
posite homogeneous coordinate transformation matrix is called the arm matrix.
There are four steps involved in constructing the homogeneous transformation ma
trix which maps frame k coordinates into frame k — 1 coordinates. Each of these
steps is associated with one of the four kinematic parameters summarized in Table
2-1. To determine the transformation matrix, we successively rotate and transíate
coordinate frame k — 1 to render it coincident with coordinate frame k. Using steps
8 to 12 of the D-H algorithm, this involves the four fundamental operations summa
rized in Table 2-3.
Operation Description
From Fig. 2-15 we see that the effect of operation 1 is to make axis j c * ' 1 paral-
lel to axis jc * . Following operation 2, axis jc * -1 is then aligned (collinear) with axis
jc * . Next, from Fig. 2-16 we observe that operation 3 ensures that the origins of
frames Lk~i and Lk coincide. Finally, the effect of operation 4 is to align axis z * '1
with axis z*. Thus the two coordinate frames Lk- 1 and Lk are coincident at this point.
The four fundamental operations summarized in Table 2-3 each can be interpreted as
a rotation or a translation of L*-i along one of its own unit vectors. It follows from
A lgorithm 2-5-1 that we can postmultiply I by the four fundamental homogeneous
transformation matrices to get the composite homogeneous transformation matrix
associated with Table 2-3. We see from Table 2-3 that operations 1 and 2 together
form a screw transformation along axis z * '1. In view of Exercise 2-4-3, operations 3
and 4 also form a screw transformation, in this case along axis j c * ' 1. Consequently,
the composite homogeneous transformation summarized in Table 2-3 can be ex-
The reason for factoring the arm matrix into the product of two matrices partitioned
at the wrist is that closed-form expressions for the two factors can be obtained rela-
tively easily. At this point, the two matrices can be multiplied together and a closed-
form expression for the en tire arm matrix can then be obtained. Once an expression
for the arm matrix is available, we can then substitute it into the following matrix
equation, called the arm equation:
R(q) ¡ piq)
tool
r base (<?) = (2-6-9)
0 0 0 ! 1
For each valué of the joint vector q , the arm matrix T'SSU^) can be evaluated.
The 3 x 3 upper left submatrix R(q) specifies the orientation of the tool, while the
3 x 1 upper right submatrix p(q) specifies the position of the tool tip. The three
columns of R indicate the directions of the three unit vectors of the tool frame with
respect to the base frame. Similarly, p specifies the coordinates of the tool tip with
respect to the base frame. The solution of the direct kinematics problem in Eq.
(2-6-9) is shown schematically in Fig. 2-21.
As an example of an arm matrix, consider the Alpha II robotic arm, whose link-
coordinate diagram was developed in Fig. 2-19. First we find closed-form expres
sions for the two wrist-partitioned factors of the arm matrix. We begin by computing
the wrist coordinates relative to the base. Using the notation C* É eos qk and S* =
sin qk and some trigonometric identities from Appendix 1, we have from Prop.
2-6-1 and Table 2-2:
Ór*
-S i
<3
N
r wrist
base = T 0l T } T l = Si 0 c, 0 s2 c2 0 2 2 a S s3 c3 0 O S 3 3
0 -■1 0 di 0 0 1 0 0 0 i 0
0 0 0 1 0 0 0 1 0 0 0 1
c,c2 ~CiS2 -S i a2C,C2 C3 - S 3 0 C
13
C 3
- , -s,s2
S1C2 c1 «2S1C2 S 3 c3 0 üySx
-s2 ~c2 0 di — a S 2 2 0 0 1 0
0 0 0 1 0 0 0 1
C,C23 ~"CiS 23
___ I
5, Ci(fl2C2 4- a3C23)
S .C 23 S iS 23 ( S.(tf C2 2 + a3c23) (2-6-10)
-S 2 3 C 23 0 di — a 2S 2 Ü3S23
. 0 0 0 1
Here, to simplify the notation, we have used C*, 4 eos (qt + q,) and S*, 4
sin ( qk+ q¡).
Next, to compute the tool coordinates relative to the wrist, we have:
tool n r4 tt5
rwrist í 3 •* 4
c4 0 —s4 0 C5 -Sí 0 0
s4 0 c4 0 s5 c5 0 0
0 --1 0 0 0 0 1 di
0 0 0 1 0 1
r0
0
.
0 0 0 1
(2 - 6 - 12)
Here the notation Cijk is short for eos (qt + qj 4- qk) and the notation Sijk is short for
sin (q¡ + qj + <?*). Note that the approach vector r 3 and position vector p are inde
pendent of the tool roll angle qs, as expected.
* ^ Hi)m
Next, to compute the tool coordinates relative to the wrist, we have:
rtool
wrist
'T’ 4 'T’S
i 3 -»
/3
c4 0
-s4 0'
1
C
00
1
Xn
A
Ul
s4 0
c4 0 s5 c5 0 0
0 -1
0 0 0 0 1 d5
0 0
0 1 ° 0 0 1
C4C5 c4s5 —s4 —Í/5S4
s4c5 -s4s5 c4 É/5C4 ( 2 - 6 - 11)
-s5 ~c5 0 0
0 0 0 1
Note that the final expression for r ^ 'sl depends only on the last two joint vari
ables. Similarly, the final expression for rgS? depends only on the first three joint
variables. To find the arm matrix, we multiply the two wrist-partitioned factors to
gether. The product, after simplification using the trigonometric identities in Ap-
pendix 1, and after substitution using the numerical valúes for d and a in Table 2-2,
is the following arm matrix:
C1C234C5 + S1S5 C1C234S3 + s ,c 5 - C 1S234 C,(117.8C2 + 177.8C23 - 96.5S234)
S1C234C5 - c ,s 5 —S1C234S5 —c ,c 5 —S1S234 S,(177.8C2 + II7.8C23 ~ 96.5S234)
—S234C3 S234S5 —C234 215.9 - 177.8S2 - 177.8S23 —96.5C234
0 0 0 1
( 2 - 6 - 12)
Here the notation Cljk is short for eos {q¡ + qj + q¡) and the notation Sijk is short for
sin (<?, + q} + qk). Note that the approach vector r 3 and position vector p are inde
pendent of the tool roll angle <75, as expected.
The physical structure of the Rhino XR-3 is such that the base motor is
mounted vertically and remains fixed, while the shoulder, elbow, and tool pitch mo-
tors are mounted horizontally on the body, which rotates about the base axis. The
tool roll and tool closure motors are smaller motors mounted in the hand.
Next consider the problem of computing the arm matrix of the robot in Fig. 2-23.
First we partition the problem at the wrist to generate two simpler subproblems. Us
ing the notation C* A eos and S* A sin #*, we have from Prop. 2-6-1 and Table
2-4:
c, 0 -Si 0* c 2 - s 2 0 02 C2 c 3 - s 3 0 03 C3
Si 0 c, 0 s2 c 2 0 02 S2 S3 c3 0 03 S 3
0 -•1 0 di 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 .0 0 0 1
c ,c 2 -c,s2 -s Si Ci C2 c 3 - s•3 0 03 C3
s ,c 2 -S iS 2 c, 02Si C2 s3 c*3 0 03 S3
—S2 -C a 0 d\ Ü2 S2 0 0 1 0
0 0 0 1 0 0 0 1
CIC23 —Ct S23 s 1 C\{a2 C2 + 03C23)
S,C23 —Si S23 c\ S,(02C2 + 03C23)
(2-7
“ S23 C 23 0 d\ — a2 S2 — 03S23
0 0 0 1
Here, to simplify the notation, we have used C*, = eos (<7* + qj) and S*,
= sin {qk + qj). The transformation TbS? provides the position and orientation of
the wrist frame relative to the base frame. Since there is no tool yaw motion for this
five-axis robot, the wrist frame corresponds to the tool pitch frame As a partial
check of the expression for Tbas?, we can evalúate the transformation matrix at the
soft home position. From Table 2-4, this is q — [0, —ir /2, 7r / 2, 0, —7r / 2]r, which
yields:
1 0 0 03
0 0 1 0
r£Se(home) = 0 -1 0 d\ + a2 (2-7-4)
0 0 0 1
Inspection of Fig. 2-23 reveáis that this is consistent with the link-coordinate dia
gram. The first column of the rotation matrix indicates that, in the soft home posi
tion, axis x 3 of the tool pitch frame has coordinates (1, 0, 0) in the base frame. Con
sequently, it is pointing in the same direction as base axis x°. The second column of
R indicates that axis y 3 of the tool pitch ffame has coordinates (0, 0, - 1 ) in the base
ffame, in which case it is pointing in the opposite direction of base axis z°. The last
I
wnst
c4 0 -S 4 CÍ4 C4 c5 -s, 0
s4 0 C4 Ü4 S4 s5 C5 0
0 --1 0 0 0 0 1 ¿5
0 0 0 1 .0 0 0 1
C4C5 “C4 S 5 -s4 Cl4 C4 - ¿/5S4
S4C5 -S4S5
n1 c4 Q4 S4 + d$ C4 (2-7-5)
-s5 0 / 0
0 0 0 1
Note that the final expression for the position and orientation of the tool relative to
the wrist depends only on the last two joint variables, as expected. At this point we
could again make a partial check by evaluating this transformation at the home posi
tion. This should provide the position and orientation of frame L5 relative to ffame
L3. It remains to find the position and orientation of the tool relative to the base.
This is obtained by multiplying the two wrist-partitioned factors together. After sim
plification using the trigonometric identities in Appendix 1, we get the following
final result, which is the solution of the direct kinematics problem for the five-axis
articulated robot in Fig. 2-23:
Proposition 2-7-1: Rhino XR-3. The arm matrix Tb^Áq) for the five-axis
articulated-coordinate robot whose link-coordinate diagram is given in Fig. 2-23 is:
Cj C 234C 5 + Si s 5 -"C 1 C 234S 5 + S 1 C 5 -C , S 234 ' C 1 (í*2 C 2 ÍZ3 C 23 + ¿I4 C 234 ~ ds S 234)
Si C 234C 5 “ c , s 5 “ S 1 C 234S 5 — c , c 5 - 'S 1 S 234 J S 1(í?2C2 + ÍÍ3 C 23 + <24C 234 ~ S 234)
S 234 Cs S 234S 5 —C 234 | d\ — ¿I2 S 2 — fl3 S23 ~ ÍI4 S 234 ~ ds C 234
1
0 0 0 i 1
Note how the final expression for the position and orientation of the tool rela
tive to the base now depends on all of the kinematic parameters. We can make a
partial check by evaluating the arm matrix at the soft home position, which ffom
Table 2-4 is q = [0, —tt/2 , 7t/2, 0, —tt/2]7. This yields:
0 1 0 #3 + Ü4
1 0 0 0
rgSiChome) = 0 0 -1 d[ + a 2 - d5
—
.0 0 0 1
This is precisely the same result as obtained in Sec. 2-6, where an independent analysis
of the kinematics of the Alpha II robot was performed. Thus, in terms of its kinematic
structure, the Rhino XR-3 robot includes the Alpha II robot as a special case. As a par
tial check on this expression for the arm matrix for the Alpha II robot, we can evalúate
it at the soft home position, which, from Table 2-2, corresponds to q - [0, 0, 0,
—7t/2, 0]r . For these valúes of the joint variables, we have the following transforma
tion matrix. Inspection of Fig. 2-19 reveáis that this is indeed consistent with the link-
coordinate diagram.
0 0 0 1
It is apparent from the generic expression for the arm matrix in Prop. 2-7-1 that the
angles 023 = 02 + 03 and 0234 = 02 + 03 + 04 appear repeatedly. From Fig. 2-23 we
see that the angle 023 can be thought of as a global elbow angle. It is the elbow angle
measured relative to the work surface or jc°y° plañe. When 023 = 0, the forearm is
horizontal and pointing straight out, whereas when 023 = —7r/2, it is vertical and
pointing straight up. Similarly, the angle 0234 can be thought of as a global tool pitch
angle. It is the tool pitch angle measured relative to the work surface or x°y° plañe.
When 0234 = 0, the tool is vertical and pointing straight down, whereas when
0234 = — t t / 2 it is horizontal and pointing straight out.
The mechanical linkages for some robots, for example, the Rhino XR-3, are
designed in such a way as to couple the movement of the shoulder, elbow, and tool
pitch joints through a parallel bar mechanism. When the shoulder motor is activated
to produce a rotation of A02 = j8, the elbow moves simultaneously to produce a
counteracting rotation of A03 = —jS. In this way the global elbow angle 023 remains
fixed when the shoulder motor is activated. Consequently, the orientation of the
forearm relative to the base coordinate frame is unaffected by the shoulder motor.
Similarly, when the elbow motor is activated to produce a rotation of A03 = y, the
tool pitch moves simultaneously to produce a counteracting rotation of A04 = —y.
Thus the global tool pitch angle 0234 remains fixed when either the shoulder motor or
the elbow motor is activated. This means that the orientation of the tool relative to
the base coordinate frame is unaffected by the shoulder and the elbow motors. These
coupling effects can be useful when controlling the robot at the joint level. For ex
ample, if a liquid-filled container is carried by the tool, it will not spill on account of
tipping when either the shoulder motor or the elbow motor is activated.
The kinematic analysis of a robotic arm using the D-H algorithm is based upon
independent control of the joints with no coupling assumed between them. When
mechanical coupling does exist, it can be removed at the software level by prepro-
cessing the joint movement command A0 with a coupling matrix C and a precisión
matrix P. This produces a command vector A/i that specifies the number of encoder
counts to be sent to each motor starting with the base and ending with the tool roll.
For the Rhino XR-3 robot, the encoder counts required to produce a movement of
A0 degrees in joint space can be formulated as follows:
-1
Pi 0 0 0 0 1 0 0 0 0
0 P2 0 0 0 0 1 0 0 0
Ah 0 0 0 0 0 1 1 0 0 A0 = P-'C A0 (2-7-7)
0 0 0 p4 0 0 1 1 1 0
0 0 0 0 Ps 0 0 0 0 1
Vertical
Elbow extensión
-
tances d and linklengths a of the Adept One robot are asfollows:
d = [877, 0.0, ¿fe, 200]r mm (2-8-1)
a = [425, 375, 0.0, O.Of mm (2-8-2)
Here a tool length of ¿fe = 200 mm has been assumed. Note that a specific valué for
¿fe has not been specified, because ¿fe is a joint variable in this case. The valúes for ¿fe
range from 0 to 195 mm, which implies a vertical stroke of 195 mm.
Next we compute the arm matrix Tb£?e(q) for the SCARA robot. Since there are only
four axes, we will not perform the intermedíate step of partitioning the problem at
the wrist. Instead we compute the arm matrix directly in one step, as follows:
7 tool
base
—
~
T i t 2 t 3 t 4
¿ 0 i l ¿ 2 ¿ 3
Axis e d a a Home
1 d, a. ir 0
iébt <72 0 a2 0 0
3 0 é> 0 0 ISO 6
4 <?4 ¿4 0 0 7r/2
ing expression for the arm matrix is generic and applies to a variety of SCARA class
robots:
Proposition 2-8-1: Adept One. The arm matrix Tb¡¡c(q) for a four-axis
SCARA robot whose link-coordinate diagram is given in Fig. 2-25 is:
L _
U
0 Q\ C , + 0 2 C 1 -2
N
S i.-2 -4
1
1
00
-Ci - 2 -4 fli S i + 0 2 S 1 -2
(S
0
•'t
1
1
rtool
base
__
0 0 -1 di - <73 “ d4
0 0 0 1
Here the notation C 1- 2-4 denotes eos (<71 — q 2 — q*)> and similarly, S 1- 2-4 de
notes sin (<?i — qi — <74). Note that the approach vector is fixed at r3 = —i 3, inde
pendent of the joint variables. This is characteristic of SCARA robots, which are de
signed to manipúlate objeets from directly above. They are often used in light
assembly tasks such as the insertion of components into circuit boards.
Example 2-8-1: Adept One
Find the position of the tool tip of the Adept One robot when the joint variables are
q = [7t/4, -7r/3, 120, 7r/2]r.
Solution Using Prop. 2-8-1 and Eqs. (2-8-1) and (2-8-2), we have:
p = [a,C, + ¿Z2C1- 2, ai Sj + a2S,_2, d\ - qi - dA]r
= [0.707a, - 0.259a2, 0.707a, + 0.966a2, d, - d4 - 120f
= [203.4, 662.7, 557.0]7 mm
The physical structure of the Intelledex 660 robot is quite unique. It is a full
six-axis robot» yet there are only two joints out near the end of the arm , a tool pitch
joint (“outboard") and a tool roll joint (“ tool spin”). Even though the wrist has only
two joints, arbitrary orientations of the tool are possible. Tool yaw motion is
achieved indírectly through a unique two-axis shoulder design. The first axis of the
shoulder rolls the entire arm , while the second axis achieves a pitch-type motion in
the plañe selected by the shoulder roll. Thus, to implement a puré horizontal yaw
m otion o f the tool, one can first roll the shoulder by 7r/2 radians and then activate
the tool pitch joint. By eñectively relocating the tool yaw joint in the shoulder, a re-
duction in the weight out at the end of the arm is realized. In some robots, such as
the M icrobot Alpha II and the GE P-50 robot, weight reduction at the end of the arm
is achieved by placing the actuators for the distal joints back near the base of the
robot and then running cables or chains up through the arm . The virtue of the In-
telledex design is that there is no need for mechanical power transmission through
the arm . Instead, the yaw motion is achieved indirectly through software.
Axis e d a a Home
Here 11 of the 18 fixed parameters are zero. In this case de represents the tool
length, which may vary from robot to robot, depending upon which type of tool is
installed. The valúes for the joint distances d and link lengths a of the Intelledex 660
robot are as follows:
Next consider the problem of computing the arm matrix of the robot in Fig. 2-27.
First we partition the problem after the third axis, which, in this case, is the elbow
joint. Using Prop. 2-6-1 and Table 2-6, we have:
elbow 'T'l nr2 nr>3
7base * 0 í 1 -* 2
c, 0 s, 0 c 2 0 s2 0“ - s 3 0 #3C3
l
u
---------
fO
'
0 0 0 1
Inspection of Fig. 2-27 reveáis that this specification of the position and orientation
of ffame L3 relative to ffame Lo is consistent with the link-coordinate diagram.
Next we determine the position and orientation of the tool relative to the el
bow:
L-----
u
0
Oa Q a s5 0 c6 s6 o o
40
S4 c4 0 s4 s5 0 “ Cs 0 s6 c6 0 o
0 0 1 0 0 1 0 0 o o 1 do
0 0 0 1 .0 0 0 1 o o O 1
C45 0 S45 CI4 c4 C. - ■s6 0 o
S45 0 C45 Ü4 S4 s6 c6 0 0
0 1 0 0 0 0 1 do
0 0 0 1 0 0 0 1
(2-9-5)
C45 c 6 “ C 45 s 6 •S45 c¡4 C4 -f s,15 6
S4 5 C6 "“S45 s6 - c45 ¿24 s4 - G \sd o
s6 c6 0 0
0 0 0 1
Note that the final expression for the position and orientation of the tool rela
tive to the elbow depends only on the last three joint variables, as expected. At this
point we could again make a partial check by evaluating this transformation at the
soft home position. This should provide the position and orientation of frame Lo rel
ative to frame L3. We still need to find the position and orientation of the tool rela
tive to the base. This is obtained by multiplying the two elbow-partitioned factors
together. After considerable simplification using the trigonometric identities in Ap-
pendix 1, we get the following final result, which is the solution of the direct kine
matics problem for the six-axis Intelledex 660 robot:
Proposition 2-9-1: Intelledex 660. The position p(q) and orientation R(q)
of the tool ffame relative to the base frame for the six-axis articulated-coordinate
robot whose link-coordinate diagram is given in Fig. 2-27 are:
Cl C3 + ¿Í4C34 ■
+■¿¿6 S345) + S i(fl3S 3 + #4S 34 ~ C 34s)
It is evident that the expressions for the approach vector r 3(q) and the tool-tip
position p (q ) are independent of the tool roll angle q6, as expected. We can make a
partial check of the final expression for the arm matrix by evaluating it at the soft
home position, which corresponds to q = [tt/2 , - n / 2 , 7t/2, 0, 7t/2, 0]r. This
yields:
0 0 0 1
Note that this is consistent with the link-coordinate diagram in Fig. 2-27. The first
column of the rotation matrix indicates that, in the soft home position, tool axis jc6
(the normal vector) points in the same direction as axis z° of the base. The second *
column of R indicates that tool axis y 6 (the sliding vector) points in the opposite di
rection from axis y° of the base. The last column of R specifies that tool axis z6 (the
approach vector) points in the same direction as axis x° of the base. Finally, the po
sition vector p indicates that the origin of the tool coordinate ffame (the tool tip) is
located a distance <a3 + a4 + d 6 in front of the base and d\ abo ve the base when the
robot is in the soft home position.
2-10 PROBLEMS
2-1. Which of the kinematic parameters are variable for a revolute joint? Which are vari
able for a prismatic joint?
2-2. Consider the single-axis robot in Fig. 2-28 shown in the home position, which corre
sponds to 0 = 7r/2. Suppose the point p on the mobile link has coordinates
[p]M = [0.5, 0.5, 2.0f.
(a) Find an expression for R(0), the coordinate transformation matrix which maps mo
bile M coordinates into fixed F coordinates as a function of the joint variable 6 .
(b) Use R( 6 ) to find [p]F when 0 = 7r and when 0 = 0.
2-3. Consider the following coordinate transformation matrix, which represents a funda
mental rotation. What is the axis of rotation (1, 2, or 3), and what is the angle of rota- i
tion?
0.500 0 -0.866'
R = 0 1 0
0.866 0 0.500
Tool
Roll
G f nr
Yaw Pitch
0 0 0 |1
Assuming that R and p represent a rotation and a translation of the mobile frame about
its own unit vectors, which of the following sequence of operations does the composite
transformation T represent? That is, what is the implicit order of the two fundamental
operations?
(a) T represents a rotation of R followed by a translation of p?
(b) T represents a translation of p followed by a rotation of /??
(c) T represents neither in general?
2-7. Find a numerical example which shows that the order in which a rotation and a transla
tion are performed does affect the final relationship between two initially coincident
coordinate frames. Specify the coordinate transformation matrices, and sketch the se
quence of positions.
2-8. Homogeneous coordinate transformation matrices can be used to represent scaling op
erations as well as rotations and translations. Consider the following fundamental ho
mogeneous scaling matrix:
c1 0 0 0
0 C2 0 0
_0 0 0 a
2-10. Use the second half of the D-H algorithm to fill in the kinematic parameters for the
PUMA 200 robot in Table 2-7, consistent with your link-coordinate diagram from
Prob. 2-9. Indicate which parameters are the joint variables.
TABLE 2-7 P U M A 200 KINEM ATIC PARAMETERS
Axis 6 d a a Home
1
2
3
4
5
6
Figure 2-31 United States Robots Maker 1 10 robot. (Courtesy of United States Robots,
King o f Prussia, P A .)
2-16. Use the last half of the D-H algorithm to fill in the table of kinematic parameters for
the Maker 110 in Table 2-8, consistent with your link-coordinate diagram for Prob.
2-15. Indicate which parameters are the joint variables.
2-17. Compute the first tactor of the arm matrix T\£f(q) for the Maker 110 robot using your
table of kinematic parameters from Prob. 2-16.
2-18. Compute the second factor of the arm matrix TOUg) for the Maker 110 robot using
your table of kinematic parameters from Prob. 2-16.
Axis 6 d a a Home
1
2
3
4
5
2-19. Compute the arm matrix 7b£¡.(#) for the Maker 110 robot using your wrist-partitioned
factors from Prob. 2-17 and Prob. 2-18.
REFERENCES
In v e rse Kinematics:
Solving
The Arm Equation
The key to the solution of the direct kinematics problem was the Denavit-Hartenberg
(D-H) algorithm, a systematic procedure for assigning link coordinates to a robotic
manipulator. Successive transformations between adjacent coordinate frames, start-
81
ing at the tool tip and working back to the base of the robot, then led to the arm ma
trix. The arm matrix represents the position p and orientation R of the tool in the \
base frame as a function of the joint variables q, as shown in Fig. 3-1.
<*3 (94.......9„}
For convenience, we will refer to the position and orientation of the tool col-
lectively as the configuration of the tool. The solution to the direct kinematics prob
lem can be expressed in the following form, where R represents the rotation and p
represents the translation of the tool ffame relative to the base frame:
R !
T'S&iq) I (3-1-1)
0 0 0 I 1
The solution to the direct kinematics problem is useful because it provides us with a
relationship which explicitly shows the dependence of the tool configuration on the
joint variables. This can be utilized, for example, in determining the size and shape
of the work envelope. In particular, suppose Q represents the range of valúes in R"
that the joint variables can assume. We refer to Q as the joint-space work envelope of
the robot. Typically, the joint-space work envelope is a convex polyhedron in Rn of
the following general form:
Q= q{ GR": q mm < <
Here q mn and # raax are constant vectors in Rm which represent joint limits and C is a
joint coupling matrix. For the simplest special case, the joint coupling matrix is
C = /; in this case q f in and qf™ represent lower and upper limits, respectively, for
joint k. More generally, if the joint coupling matrix C has some off-diagonal terms,
then Eq. (3-1-2) represents constraints on linear combinations of joint variables. In
this case the number of inequality constraints m may exceed the number of variables
n. The set of positions in Cartesian space R3 that are reachable by the tool tip can be
investigated by examining the valúes of p(q) as q ranges over Q. Similarly, the set of
orientations achievable by the tool can be determined by examining the valúes of
R(q) as q ranges over the joint-space work envelope Q.
Perhaps the most important benefit provided by the solution of the direct kine
matics problem is that it lays a foundation for solving a related problem, the inverse
Direct {p. R}
kinematics
equations
I nverse {p. R}
kinematics
equations
The inverse kinematics problem is more difficult than the direct kinematics
problem, because no single explicit systematic procedure analogous to the D-H al
gorithm is available. As a result, each robot or generically similar class of robots has
to be treated separately. However, the solution to the inverse kinematics problem is
much more useful. Indeed, a key to making robots more versatile lies in using feed-
back from external sensors such as tactile arrays and visión. External sensors supply
information about part location and part orientation directly in terms of
configuration-space variables. It is then necessary to use this information to deter
mine appropriate valúes for the joint variables to properly configure the tool. Thus
we must find a mapping from a tool-configuration space input specification into a
joint-space output specification. This is the inverse kinematics problem. We charac
terize this problem more formally as follows:
The solution to the inverse kinematics problem is useful even when external
sensors are not employed. A case in point is the problem of getting the end-effector
or tool to follow a straight-line path. Certain types of assembly, welding, and sealing
operations require that straight-line paths be followed or at least closely approxi-
mated. A straight-line trajectory is naturally formulated in tool-configuration space.
It is then necessary to find a corresponding trajectory in joint space which will pro-
Although a general solution has been obtained for the direct kinematics problem, the
details of an explicit solution to the inverse kinematics problem depend upon the
robot or the class of robots being investigated. However, there are certain character
istics of the solution that hold in general.
First let us examine conditions under which Solutions to the inverse kinematics prob
lem exist. Clearly, if the desired tool-tip position p is outside its work envelope, then
no solution can exist. Furthermore, even when p is within the work envelope, there
may be certain tool orientations R which are not realizable without violating one or
more of the joint variable limits. Indeed, if the robot has fewer than three degrees of
freedom to orient the tool, then whole classes of orientations are unrealizable. To ex
amine this issue further, consider the following more detailed formulation of the
arm equation:
Su Rn Rn j P\
Ri\ R 22 Rn ¡ P2
T g£ (q) = (3-2-1)
R“
i\ R 32 R 33 1 P3
o o o ¡ 1
Since the last row of the arm matrix is always constant, the arm equation constitutes
a system of 12 simultaneous nonlinear algebraic equations in the n unknown compo
nents of q.However, the 12 equations are by no meansindependent of one another.
Since R is acoordinate transformation matrix representing a purérotation from one
orthonormal frame to another, it follows from Prop. 2-2-3 that R~x = R T. But if
R TR — / , then the three columns of R form an orthonormal set. The mutual orthog
onality puts three constraints on the columns of R , namely:
r 1• r 2 = 0 (3-2-2)
r 1• r 3 = 0 (3-2-3)
r r3 = 0 (3-2-4)
These constraints come from the off-diagonal terms of R TR gj I. The diagonal terms
dictate that each column of R must also be a unit vector. This adds three more con
straints to the columns of R:
r = 1 1< k < 3 (3-2-5)
Thus the 12 constraints implicit in the arm equation actually represent only six inde
pendent constraints on the n unknown components of the vector of joint variables q.
If we are to have a general solution to the inverse kinematics problem, one for which
Here the joint distance dn represents the tool length for an «-axis robot as long as the
last axis is a tool roll axis. The approach vector r 3 is simply the third column of the
rotation matrix R. Once the wrist position p wnst is obtained from {p, i?, d„}y the first
three joint variables {«q\, q2, #3} that are used to position the wrist can then be ob
tained from the following reduced arm equation:
(3-2-8)
The fourth column of 7*2? represents the homogeneous coordinates of the origin of
the wrist ffame L3 relative to the base ffame Lo. Since the wrist coordinates depend
only on the joint variables {#1, q2, ^3}, these joint variables of the major axes can be
solved for separately using Eq. (3-2-8). Once the major axis variables {qx, q2> qy)
are found, their valúes can then be substituted into the general arm equation in Eq.
(3-2-1) and it can be solved for the remaining tool orientation variables {q4,
The existence of a solution to the inverse kinematics problem is not the only issue
that needs to be addressed. When Solutions do exist, typically they are not unique.
Indeed, múltiple Solutions can arise in a number of ways. For example, some robots
are designed with n axes where n > 6. For these robots, infinitely many Solutions to
the inverse kinematics problem typically exist. We refer to robots with more than six
axes as kinematically redundant robots, because they have more degrees of ffeedom
than are necessary to establish arbitrary tool configurations. These extra degrees of
Redundant
elbow
Even when a robot is not kinematically redundant, there are often circum-
stances in which the solution to the inverse kinematics problem is not unique. Sev-
eral distinct Solutions can arise when the size of the joint-space work envelope Q is
sufficiently large. As a case in point, consider the articulated-coordinate robot
shown in Fig. 3-4. If the limits on the range of travel for the shoulder, elbow, and
tool pitch joints are sufficiently large, then two distinct Solutions exist for the simple
task of placing the tool out in ffont of the robot.
Elbow up
We refer to the two Solutions in Fig. 3-4 as the elbow-up and the elbow-down
solution. In tool-configuration space the two Solutions are identical, because they
produce the same p and R, but in joint space they are clearly distinct. Typically the
elbow-up solution is preferred, because it reduces the chance of a collision between
the links of the arm and obstacles resting on the work surface.
In order to develop a solution to the inverse kinematics problem, the desired tool
configuration must be specified as input data. Thus far we have assumed that the tool
configuration is represented by the pair {p> /?}, where p represents the tool position
relative to the base and R represents the tool orientation relative to the base. Speci-
fying tool-tip position with a translation vector p is a natural and convenient tech-
nique. However, specifying tool orientation with a rotation matrix R is, at best, awk-
ward, because two-thirds of the information that must be provided is redundant. In
this section we introduce an alternative representation of tool configuration that is
more compact.
Consider the tool orientation information provided by the approach vector or last
column of R. The approach vector effectively specifies both the tool yaw angle and
the tool pitch angle, but not the tool roll angle, because the roll angle represents a
rotation about the approach vector. Here, for convenience, the terms yaw, pitch, and
roll are being used to refer to rotations of the tool about the normal vector, sliding
vector, and approach vector, respectively. It would be more precise to refer to them
as turn, tilt, and twist angles (Whitney, 1972).
Given that the approach vector specifies the tool orientation except for the tool
roll angle, some method must be found to augment the approach vector with the roll
angle information. If we simply append the roll angle, this yields a total of four com
ponents, which is not a minimal representation of tool orientation. Instead, note
from Eq. (3-2-5) that the approach vector r 3 is a unit vector specifying a direction
only. The size or length of the approach vector can be scaled by a positive quantity
without changing the specified direction. This is the key to encoding the tool roll in
formation into the approach vector to produce a minimal representation of orienta
tion.
To recover the tool roll angle from a scaled approach vector, we must use an
invertibie function of the roll angle q„ to scale the length of r 3. The range of travel
of the tool roll joint is specified in the joint-space work envelope Q in Eq. (3-1-2).
Often this range is bounded because of the presence of cables running from the wrist
to sensors mounted at the tool tip. However, even when qn is unbounded, the follow
ing positive, invertible, exponential scaling function can be used:
/((?„) = e x p — (3-3-1)
7T
Other scaling functions might also be used, but the function/is sufficient be-
cause/(g,,) > 0 for all qn and f ~ l(qn) is well defined. If we scale the approach vector
r 3 by f { q n), this yields a compact representation of tool orientation. We then com
bine this representation of orientation with the tool tip position and refer to the re
sulting vector in R6 as a tool-configuration vector.
w1 P
A A
w _[exp(<?„/7r)r}]_
E xercise 3-3-1: Tool Roll. Show that the tool roll angle qn can be obtained
from the tool-configuration vector w as follows:
qn = ir ln (w4 + W5 + h>6)1/2
Many industrial robots have five axes; some have only four. Even though these ma
nipulators are not general in the sense of being able to generate arbitrary tool
configurations, they are still quite versatile. However, when robotic work cells em
ploy ing these robots are planned, the layout of the part feeders and other fixtures
must be constrained so they do not require the flexibility of a full six-axis robot. As
an illustration, consider a five-axis articulated-coordinate robot which has no tool
yaw motion. In this case, the part feeders might be arranged concentrically around
the robot base as shown in Fig. 3-5.
The part feeders can be tilted at any angle y that is consistent with the range of
global tool pitch angles realizable by the robot. However, the part feeders must be
oriented in such a way as to be aligned with radial lines or spokes emanating from
the base axis. This is because with the tool yaw angle fixed as in Fig. 3-5, the ap
proach vector of the tool is constrained to lie in a vertical plañe through the base
axis. This constraint can be summarized algebraically in terms of the components of
the arm matrix as follows:
R u p i = Rupx (3-3-2)
Here the ratio of the first two components of the approach vector r 3 must equal the
ratio of the first two components of the position vector p. In geometric terms, the
tool can manipúlate objects from above, from the front, from the back, and even
from below consistent with work-envelope constraints and limits on the range of tool
pitch angles. However, the five-axis robot shown in Fig. 3-5 cannot manipúlate ob
jects from the side. That is, the orthogonal projection of the approach vector onto
the work-surface or jt°y° plañe cannot have any component that is tangent to a circle
of radius || p || centered at the base axis. Another way to view the constraint on tool
orientation is to substitute Eq. (3-3-2) in the general expression for the tool-
configuration vector in Def. 3-1-1. This yields the following locus of tool
configurations, where /3 is a constant:
w = [wi, w2, vv3, /3wi, /3w2, w6]t (3-3-3)
Thus, for example, if the tool tip is directly in front of the robot (w2 = 0), the ap
proach vector must point forward (vv5 = 0). More generally, the ratio of the hori
zontal components of the tool-tip position, wi/w2, must equal the ratio of the hori
zontal components of the approach vector, w4/w 5. It is evident by inspection of the
formulation in Eq. (3-3-3) that this robot has only five degrees of freedom, because
components vv4 and w5 cannot be specified independently of wi and w2.
The most important special case for manipulating parts corresponds to approaching
parts from directly above. This includes picking up a part from a horizontal work
surface and placing it down on a horizontal work surface. As an example of a robot
designed for these types of operations, consider the four-axis horizontal-jointed or
SCARA robot shown in Fig. 3-6. Here the tool yaw and tool pitch angles are fixed
in such a way that the tool always points straight down.
Recall that the five-axis robot of Fig. 3-5 had an approach vector r 3 that was
restricted to lie in a vertical plañe through the base axis. The geometry of a SCARA
robot removes one more degree of freedom and restricts the approach vector to lie
along a vertical line within that plañe, namely:
r3 = -i3 (3-3-4)
The four-axis SCARA robot in Fig. 3-6 is a minimal configuration for a gen-
eral-purpose robot. The first three axes are the major axes used to position the tool
tip, while the fourth axis is a minor axis used to orient the tool by varying the slid-
rn
ing vector. If Eq. (3-3-4) is substituted in the general expression for the tool-
configuration vector in Def. 3-3-1, this yields:
w p i, p 2, p 3, 0, 0, -ex p (3-3-5)
The four degrees of freedom that are available are evident from inspection of Eq. (3-
3-5), where we see that two of the components of the tool-configuration vector are
always zero. The SCARA robot is a particularly simple robot in terms of analysis,
yet it is a practical robot for many applications.
The solution to the inverse kinematics problem can be approached either numeri-
cally or analytically. The numerical approaches (Uicker et al., 1964) employ search
techniques to invert the tool-configuration function w (q) by solving the following op-
timization problem, where w E R6 is the desired valué for the tool configuration:
Minimize: v{q) = ||w(<?) — vv ||
subject to: q E Q
If a q E Q can be found such that v(q) = 0, then clearly q is a solution to the in
verse kinematics problem. To solve the optimization problem, a sequence of in-
creasingly accurate approximate Solutions {q°, q \ . . .} is constructed starting from
an initial guess q°. If the initial guess is sufficiently cióse to an actual solution, the
sequence may converge fairly rapidly. However, for a general q°, the sequence will
converge only to a local minimum of v(q), a minimum for which v(q) may or may
not be zero. The virtue of the numerical approach lies in the fact that it is general, in
the sense that the same basic algorithm can be applied to many different manipula
tors; only w(q) and Q vary. However, the drawbacks are that it is a comparatively
slow technique, and furthermore it produces only a single, approximate solution for
each initial guess q°.
The solution to the inverse kinematics problem starts with the expression for
the tool-configuration vector w(q), which can be obtained from the arm matrix de
veloped in Chap. 2. From Prop. 2-7-1 and Def. 3-3-1, the tool-configuration vector
for the five-axis articulated arm is:
C i( # 2C 2 + 0 3 C 23 + 04C234 ~ ^5 S234)
d
\ —CI2S2 ~
~Q3S23~
~ 04S234 ~ ¿/5C234
w (q) (3-4-1)
- [ e x p ^ s / tt)]C 1S 234
-[e x p (g 5/ 7r ) ] S iS 234
—[ e x p ( ^ / t t ) ] C 234
Since this is an articulated robot, q = 0. Recall that the notation Cy* is short
for eos (q, + qj + qk) and similarly Sy* denotes sin (q¡ + q} -F <?*). In order to ex-
tract the jo in t variable vector q from the nonlinear tool-configuration function w(q ),
Since there is no yaw motion, the easiest joint variable to extract is the base angle qu
Inspection of the expressions for w\ and W2 in Eq. (3-4-1) reveáis that they have a
factor in common. If we divide wi by Wi, this factor caneéis, and we are left with
S i/C i. Thus the base angle is simply:
#i = atan2 (w2, wj) (3-4-2)
The function atan2 in Eq. (3-4-2) denotes a four-quadrant versión of the arc-
tan function. The atan2 function allows us to recover angles over the entire range
[ 7r, 7r]. This function is used repeatedly in subsequent derivations. It can be im-
plemented with the more common two-quadrant arctan function as indicated in
Table 3-1, where the notation sgn represents the signum, or sign, function. That is,
sgn (a) retums —1, 0 , or 1 depending upon whether a is negative, zero, or positive,
respectively.
x > 0 1 ,4 arctan ( y / x )
x = 0 1 ,4 [sgn (y)] t t / 2
x < 0 2 ,3 arctan { y / x ) + [sgn (y)] tt
The elbow angle #3 is the most difficult joint variable to extract, because it is strongly
coupled with the shoulder and tool pitch angles in a vertical-jointed robot. We begin
by isolating anintermediate variable, #2:34, called the global tool pitch angle. Here
#234 = #2 + <73+ <74 is the tool pitch angle measured relative to the work surface or
x°y° plañe. Inspection of the last three components of w in Eq. (3-4-1) reveáis that
—(C1W4 + Sih>5) /( —vv6) = S234/C 234. Since the base angle #1 is already known, the
global tool pitch angle can then be computed using:
#234 = atan2 [ - ( C 1W4 + Si\v5), ~w 6] (3-4-3)
Once the shoulder angle # 2 and elbow angle #3 are known, the tool pitch angle
#4 can be computed from the global tool pitch angle #234. In order to isolate the
shoulder and elbow angles, we define the following two intermediate variables:
b\ = C1W1 + Siw2 - ¿Z4C234 + ¿/5S234 (3-4-4)
b2 ~ d\ — {Z4S234 ~ ds C234 ~ W3 (3-4-5)
Note that b\ and b2 are constants whose valúes are known at this point because
#1 and #234 have already been determined. If we take the expressions for the compo-
nents of w in Eq. (3-4-1) and substitute them in the expressions for b\ and b2y this
43 = ± árceos M - ai - a) (3 -4 -9 )
In view of Eq. (3-4-9), the solution to the inverse kinematics problem for a
five-axis articulated-coordinate robot is not unique. In most instances, we use the
elbow-up solution, because this keeps the elbow joint further away from the work
surface. Indeed, for some commercial robots, this is the only solution allowed,
because of joint limit restrictions contained in Q.
To isolate the shoulderangle q2, we return to the expressions in Eqs. (3-4-6) and
(3-4-7),which represent b\ and b2 in terms of the shoulder andelbowangles. If we
expand C23 and S23, using the cosine of the sum and sine of the sum trigonometric
identities, and rearrange the terms, this yields:
bx = (a2 + a3C3)C2 - (a3S3)S2 (3-4-10)
b2 = (a2 + a 3C3)S2 + (<z3S3)C2 (3-4-11)
Since the elbow angle q3 is already known, Eqs. (3-4-10) and (3-4-11) consti-
tute a system of two simultaneous linear equations in the unknowns C2 and S2. If we
use row operations to solve this linear system, the result is:
„ _ (a2+ a,C,)bi
v-2 — li b\\2
Since we have expressions for both the cosine and the sine of the shoulder an
gle, we can now recover the shoulder angle over the complete range [—tt, 7r] using
the atan2 function. In particular:
q2 = atan2 [(a2 + a3 C3)¿>2 — a 3S3¿?i, (a2 + a 3C3)¿?i -f a 3 S3¿?2] (3-4-14)
The final joint variable is # 5 , the tool roll angle. This can be recovered from the last
three components of w, as indicated previously in Exercise 3-3-1. In this case, we
have:
#5 = 7r In (h>4 + + w l ) í/2 (3 -4 -1 6 )
On the surface, it appears that the easiest way to recover #5 from R is to use the
last row of R , where R32A —-^31) = S5/C 5. However, the ratio R31/R 32 is undefined
whenever the global tool pitch angle # 2 3 4 is a múltiple of t t . Rather than pursue this
approach further by decomposing it into special cases, we instead consider the first
two components of the normal vector r l. Taking Si times the first component and
subtracting Ci times the second component, the result is:
11 1*V21 (3 -4 -1 8 )
C5 — Si R n Ci1R
A.22 (3 -4 -1 9 )
Given both the cosine and the sine of the tool roll angle, we can now evalúate
#5 over the complete range [ — t t , t t ] using the atan2 function. In particular, we
have:
#5 — atan2 (Si/?n C 1R21» S 1R12 Ci/?22) (3 -4 -2 0 )
The complete inverse kinematics solution for a five-axis articulated robot with tool
pitch and tool roll motion is summarized in Algorithm 3-4-1. Note that this solution
applies to both the Rhino XR-3 robot and the Alpha II robot as long as appropriate
valúes for the joint distance vector d and link length vector a are used. In either
case, the parameter d$ represents the tool length, which may vary depending upon
which of the various types of optional fingers are used. The two expressions for <?3
specified by the plus and minus signs represent the elbow-up and elbow-down Solu
tions, respectively.
Exercise 3-4-1: Home Position. For the five-axis articulated robot in Fig.
3-7, use Algorithm 3-4-1 to find q when the robot is in the following position,
called the home position. Does your answer agree with the last column of Table 2-4?
w = [¿*3 + 04, 0, d\ + a2 — dsy 0, 0, —0.607]r
Exercise 3-4-2: Zero Position. For the five-axis articulated robot in Fig. 3-7,
use Algorithm 3-4-1 to find q when the robot is in the following position, called
the zero position:
w = [a2 + 03 + 04, 0, d\ — ú?5, 0, 0, —l]r
Exercise 3-4-3: Máximum Reach. For the five-axis articulated robot in Fig.
3-7, use Algorithm 3-4-1 to find q when the robot is in the following positions:
Another important class of robotic manipulators for which a generic solution to the
inverse kinematics problem can be obtained is the four-axis horizontal-jointed
robot, or SCARA robot. Examples of robots which belong to this class include
the Intelledex 440 robot, the IBM 7545 robot, and the Adept One robot. The link-
coordinate diagram for a four-axis SCARA robot was previously developed as Fig.
2-25 in Chap. 2. For convenient reference, we redisplay it as Fig. 3-8.
Unlike the vertical-jointed robot, the vector of joint variables in this case is
not 6 but is instead q = [0i, 02, <¿3, 04]T. The arm matrix for the SCARA robot has
been previously computed in Chap. 2. From Prop. 2-8-1 and Def. 3-3-1, we get the
following expression for the tool-configuration vector for the SCARA robot:
01C1 1 c
"“t2C\ - 2
tfiSi + 02S1-2
d\ ~ q^ ~ d4
w{q) (3-5-1)
0
0
-e x p { q j tt)
Recall that C 1 -2 is short for eos {q\ — q2) and S 1 -2 denotes sin (^1 - q2). Note
from the last three components of w that the approach vector r 3 is fixed at r 3 = - t 3.
This is characteristic of SCARA-type robots in general, which always approach parts
directly fromabove. In order to extract the joint angle vector q from the nonlinear
tool-configuration function w(q), we again apply row operations to the components
of w and exploit trigonometric identities from Appendix 1 in order to isolate the in
dividual joint variables.
We can extract the elbow angle q2 from the first two components of the tool-
configuration vector w. Note that w] + w2 represents the square of the radial com
ponent of the tool position, a quantity which should be independent of the base
angle q\. If we compute w? + W2 from Eq. (3-5-1), then after simplification using
trigonometric identities the result is:
Thus the cosine of the elbow angle has been determined in terms of known con-
stants. If we now solve Eq. (3-5-2) to recover q2, this results in two possible Solu
tions. The first one is called the left-handed solution, and the second one is the
right-handed solution:
w\ + wi - a\ - al
q2 = ± árceos --------------- (3-5-3)
2a\a2
The base angle q i9 which might also be thought of as a horizontal shoulder angle,
can now be obtained from q2. First we take the expressions for and w2 in Eq.
(3-5-1), and expand the C 1-2 and S i-2 terms using the cosine of the difference and
sine of the difference trigonometric identities in Appendix 1, After rearranging the
coefficients, this yields:
(ai + a 2C2)Ci + (a2S2)Si = wi (3-5-4)
( - a 2S2)C, + (a, + a2C2)Si = w2 (3-5-5)
Since the elbow angle qi is already known, this is a systemof two simultaneous lin
ear equations in the unknowns Ci and Si. If we use row operations to solve this lin
ear system, the result is:
c - fl2S2Wi + {a\+ a2C2)w2 n ,
(a2S2)2 + (fll + a2C2)2 {' ' )
The prismatic joint variable q3 is associated with sliding the tool up and down along
the tool roll axis. In a SCARA-type robot, the vertical component of the tool mo
tion is uncoupled from the horizontal component, as can be seen from the expres
sion forwin Eq. (3-5-1). Extracting the prismaticjoint variable #3 is therefore a
simple matter:
q 3 = di - d 4 - w3 (3-5-9)
The final joint variable is the tool roll angle q4. Inspection of the last component of
w reveáis that q4 can be easily recovered from it as follows:
q4 = 77 ln |u>6| (3-5-10)
1
98 Inverse Kinematics: Solving the Arm Equation Chap. 3
As an alternataive to specifying vv, one could instead specify the rotation ma
trix R and then compute the tool roll angle <74 from it. To see how this might be done
for the four-axis SCARA robot, recall from Prop. 2-8-1 that the rotation matrix is:
C1-2-4 S i- 2-4 0
R(q) S1-2-4 “C l- 2-4 0 (3-5-11)
0 0 -1
The angle <71- 2-4 is called the global tool roll angle. It is the tool roll angle
measured relative to the base frame of the robot. Note from the normal vector in Eq.
(3-5-11) that R21/R11 = S1-2-4/C1-2-4. Thus the global tool roll angle can be com
puted from R as follows:
<7 1 - 2 -4 = atan2 (R21, /fu ) (3-5-12)
Once the global tool roll angle is known, the tool roll angle <74 can be com
puted directly from it because q\ and <72 are also known:
<74 — <71 “* #2 — <71-2-4 (3-5-13)
The complete inverse kinematics solution for a four-axis SCARA-type robot is sum
marized in Algorithm 3-5-1. The fixed joint distances d and the link lengths a will
depend on the particular robot. These parameters can be obtained from specification
sheets supplied by the robot manufacturer. The two expressions for q 2 specified by
the plus and minus signs represent the left-handed and right-handed Solutions, re
spectively.
Exercise 3-5-1: M inimum Reach. For the four-axis SCARA robot, suppose
the upper arm and the forearm are of equal length (02 = a\). Find the joint variables
# when the tool tip reaches back and just touches the base axis, as follows:
w = [0, 0, 0, 0, 0, - l ] r
Exercise 3-5-2: M áximum Reach. For the four-axis SCARA robot, find the
joint variables # when the radial extensión of the arm is máximum, as follows:
vv = [ai + a2 , 0, 0, 0, 0, —l]r
Recall that the notation Cljk is short for eos (#, -f q¡ + #*) and, similarly, S,>*
denotes sin (#, + q¿ + qk). We also make use of the expression for the rotation ma
trix R (q) developed in Prop. 2-9-1:
( C 1 C 2 C 345 + S iS 345)C 6 + C 1 S2 S6 C 1 S2 C 6 — (CJC 2C 345 + SjS345)S6 1 —S 1C 345 + C 1 C 2 S345
R = (S 1 C 2 C 345 ~ C j 8345)06 + S 1 S2 S6 S 1 S2C 6 ~ (S 1 C 2C 345 — C |S 345)S 6 1 C 1 C 345 + S 1 C 2 S 345
S 2 C 345C 6 — C 2 S6 —C 2C 6 “ S2 C 345S6 828345
(3-6-2)
In order to extract the joint variable vector q from the tool-configuration vector
w(q) and the rotation matrix R{q), we apply row operations to vv and R and exploit a
host of trigonometric identities in order to isolate the individual joint variables.
The Intelledex 660 robot is quite complex, and in order to develop closed-form ex
pressions for the joint variables, we assume that the tool configuration is available
both in the form of the tool-configuration vector vv and the translation and rotation
pair {p, /?}. From Exercise 3-3-1, the tool roll angle q6 can be recovered from the
last three components of the tool-configuration vector vv as follows:
#6 = tt ln (vv4 + vv2 + w l ) 1/2 (3-6-3)
Given the tool roll angle, the shoulder roll angle #2 can be computed from the third
components of the normal vector r ‘ and the sliding vector r 2. If we formúlate
# 31S6 + # 32C6, this causes the common term involving C234 to drop out. The re-
Sec. 3-6 Inverse Kinematics of a 6-Axis Articulated Robot (Intelledex 660) 101
mainder, after simplification using Cl + S | = 1, is simply —C2 . Consequently, we
can solve for <72 as follows:
q2 = ±árceos ( - R 3iS6 — RnCe) (3-6-4)
Clearly, the solution is not unique. Recall from Table 2-6 that in the home po
sition, q2 = —7 t / 2 . We therefore choose the negative solution and restrict our atten-
tion to angles in the range
—7r < q2 < 0 (3-6-5)
The solution corresponding to q2 < 0 is called the left-handed solution, be-
cause, from Fig. 2-26, it corresponds to the upper arm being on the left side of the
small shoulder and forearm. If the shoulder is rolled by t t to produce angles in the
range 0 < q2 < t t , this places the arm in the right-handed configuration. The end
points {—7T, 0} are not included in Eq. (3-6-5), for reasons which will become ap-
parent as we proceed.
To extract the base angle <71 , we make use of the first and second components of the
normal vector r 1 and the sliding vector r 2. First we compute the quantity
/?uS 6 + R 2 2 C 6 . The result, after simplification using the identity S i + C l = 1, is:
/?n Só “F /^nCó == C1S2 (3- 6-6)
Recall from Eqs. (3-6-4) and (3-6-5) that S2 is a known nonzero quantity. But
q6 is also known, from Eq. (3-6-3), and henee we have isolated Ci. To recover the
base angle over the entire range [ —7r, 7r], we must also isolate Si. This can be
achieved with the second components of the normal and sliding vector. Again using
the trigonometric identity S i + C l = 1, we find:
-R21 Só "1" R22C6 == S1S2 (3- 6-7)
If we now divide Eq. (3-6-7) by Eq. (3-6-6), the nonzero factor S2 caneéis
and we are left with an expression for S 1 /C 1 . Thus the base angle qx over the range
[ 7r, 7r] is:
I
q x — atan2 (/?2iSó + R 2 2 C$y RuSó + /^nCé) (3-6-8) 1
Perhaps themost difficult joint angle to extract is the elbow angle <74, which is tightly
bound to the shoulder pitch angle <73 and the tool pitch angle <75. We can remove the
effeets of the tool pitch angle q 5 by partitioning the problem at the wrist, as sug-
gested in Eqs. (3-2-7) and (3-2-8). If we subtract from the tool tip position p ,
this yields the wrist position relative to the base. To simplify the subsequent equa
tions, we also subtract d \i 3 and denote the result as b. That is,
b = p — d¿r3 — d \i3 (3-6-9)
g4 = ±arccos M . 7. ? L ~ * (3-6-14)
2¿Z3Ú4
Again we see that the solution is not unique. The positive solution returns
angles in the range [0 , ir] and is referred to as the elbow-down solution, while the
negative solution, which produces angles in the range [ - 7r, 0], is the called the el
bow-up solution.
The shoulder pitch angle q3 is also a challenge to extract. The basic approach is to
find two independent linear equations in S3 and C3. These can be obtained from the
expressions for b now that the angles q i9 q2, and q4 are known. First, note from Eqs.
(3-6-10) and (3-6-11) that S1&1 — C ib2 — S3a3 + S34a4- If we use the sine of the
sum trigonometric identity for S34 and rearrange the coefficients, this yields:
Sibi — C\b 2 — (ú3 + C4a4)S3 + (S4a4)C3 (3-6-15)
To produce a second equation involving the unknowns S3 and C3, we note ffom
Eq. (3-6-12) that &3/S 2 = C3«3 + If we use the cosine of the sum trigono
metric identity for C m and rearrange the coefficients, the result is:
Sec. 3-6 Inverse Kinematics of a 6-Axis Articulated Robot (Intelledex 660) 103
S 4 íu (S j6 i — C i bz) (ay + C U a J b s / S i
c, = (3-6-17)
(S^ ) 2 + (¿23 + C4ÚÍ4)2
(<23 + C4úu)(Si b\ — C i¿^2) — S4cuby/S2
S3 (3-6-18]
(S4 CÍ4)2 + (a? + C404)2
Given the expressions for C3 and S3, the atan2 function can now be used to
solve for the shoulder pitch angle over the entire range [ —tt. tt]. This yields:
S4Ú4b}
#3 = atan2 (ay + C4a4)(Si/?i - C i62) —
S2
(a3 + C4a4)^3
S4fl4(S,¿>» “ C lW + (3-6-19)
S¡
3-6-6 Tool Pitch Joint
The only joint variable that remains to be isolated is the tool pitch angle #5. We de
termine #5 indirectly by first computing the sum angle #345 using the R matrix. Ob
serve from Eq. (3-6-2) that Ryy = S2S345. Because S2 is known and nonzero, this
means that #345 is known over the interval [ —tt/2 , tt/2 ] . To extend the solution to
the entire interval [ —tt, 7r], we must also isolate C345. This can be achieved by using
the remaining components in the third row of R. Note from Eq. (3-6-2) that
/?3iCó — JR32S6 = S2C345. It then follows that the sum angle #345 is:
#345 — atan2 (Ryy, RyiQe ~~ RyiSe) (3 -6 -2 0 )
The work for extracting the final joint variable is now in place because qy, #4,
and #345 are all known. Recalling that #345 = #3 + #4 + #5, it follows that:
#5 — q345 “ qy~ #4 (3 -6 -2 1 )
The complete inverse kinematics solution for the six-axis Intelledex 660 robot is
summarized in Algorithm 3-6-1. Recall that this solution is valid only for the left-
handed configuration with —tt < #2 < 0. The right-handed solution can be
obtained by simply changing the sign of the árceos term in the expression for #2.
However, in either case, Algorithm 3-6-1 is not valid when the shoulder roll angle
#2 is a múltiple of tt, because it is assumed that S2 ^ 0. This assumption is explicit
in the expression for the shoulder pitch angle qy and implicit in the expressions for q\
and #345.
Exercise 3-6-1: Home Position. For the six-axis Intelledex 660 robot, use
Algorithm 3-6-1 to find q when the robot is in the following position, called the
home position. Does your answer agree with the last column of Table 2-6?
w = [ay + a 4 + de, 0 , d \ , 1, 0 , 0 ] r
0 0 f
/? = 0 -1 0
1 0 0
y3i
\
Tool
Next, the application of steps 8 to 13 of the D-H algorithm results in the kine
matic parameters shown in Table 3-2.
A xis 0 d a a Home
1 <l\ 0 a\ 0 7r/3
2 <72 0 a2 0 —7f/3
3 <73 d* 0 0 0
n n Ti
c, -s, 0 «,C,: c 2 - s 0 02 C2 c3 -S i 0 0
s, C, 0 tfiSi s 2 c 2 0 02S2 s3 Cl 0 0
0 0 1 0 0 0 1 0 0 0 1 di
0 0 0 1 .0 0 0 1 .0 0 0 1
Cn - s 12 0 0,C1+ Cl2C\2 c3 -s 3 0 0'
Sl2 Cj2 0 (3iSi + a 2 S12 s3 c 3 0 0
0 0 1 0 0 0 1 di
0 0 0 1 0 0 0 1
Cl23 Si23 0 ajCi + CliCn
S|23 C,23 0 OiSi + C12 S 12 (3-7-1)
0 0 1
0 0 0 1
At this point we combine the tool-tip position and tool orientation into the
more compact tool-configuration vector w. Although the tool-configuration space
could be regarded as three-dimensional in this case, to facilítate comparisons with
other robots we use the general case w — (vv1, vv2), where w 1 = p and
w2 = [exp ( q i/ir ^ r 3. From inspection of the arm matrix in Eq. (3-7-1), we see that
the tool-configuration function of the three-axis planar articulated robot is:
üi C\ 4 ¿Z2C12
tfiSi 4 ¿22S12
di
w(<?) = (3-7-2)
0
0
exp f a / n )
The planar nature of the three-axis robot is evident ffom Eq. (3-7-2), since
W<?), W4(<?), and w5(q) are all constant. If the tool length d$ is zero, then the tool tip
moves in the jc°y° plañe. More generally, the tool tip p moves in a plañe parallel to
the x°y° plañe at a distance dj above it.
In order to extract the joint angle vector q from the nonlinear tool-
configuration function w(q), we again apply row operations to the components of w
and exploit trigonometric identities from Appendix 1 in order to isolate the individ
ual joint variables.
First, note from Fig. 3-11 that the radial distance between the base frame Lo and
the wrist frame L2 depends only on the shoulder angle < 72. In particular, from Eq.
(3-7-2) we have:
vv? -f W2 = (fliCi + Ü2C12)2 + (tfiSi 4 - ¿Z2S12)2
= a \ C \ + l a xa 2C i C n + 02 CÍ2 + u?S2 + 2 a i a 2 S \ S n 4- a l S h
= a j + 2¿zi¿^(CnCi S12S1) 4 * Ü2
— ai + 2¿z]Q2 C2 + a\ (3-7-3)
We can now solve Eq. (3-7-3) for the shoulder angle. Isolating C2 and applying the
árceos function to both sides yields the follow ing two Solutions:
w2, + wl - a 2, - a 2 ^
q2 = ± á rceo s --------------- (3-7-4)
2ü i ü 2
As was the case with the SCARA robot, the first solution is called the left-handed
solution and the second is the right-handed solution.
Given the shoulder angle q 2 , the base angle can now be determined from Eq.
(3-7-2). If the expressions for C 12 and S12 are expanded using the cosine of the sum
and sine of the sum trigonometric identities and the coefficients of Ci and Si are col-
lected, this yields:
(a\ + ¿z2C2)Ci — (a2S2)Si = w\ (3-7-5a)
(a2S2)Ci + (a\ + a2C2)Si = w2 (3-7-5b)
Thus we have two linear equations in the unknowns Ci and Si. These equations can
be solved simultaneously using elementary row operations, and the result is:
(a\ +-r tf2C2)wi
u2K^2jyv\ ~r
+ au2a2w2
2 S 2 w2 ,
Ci = -----;-----7 ^ ,■ ,—7 - 7 (3-7-6a)
(ai + a 2 C2) 2 + (a2 S2):
_ (fifi + a2 C2)w2 - a2 S 2 w\ t .
Si — 7 n \2 * / c~vT (3-7-6b)
(«i -I- a 2 C2)¿ + (a 2s 2y
Note that if a 2 — a\, then the numerators and the denominators of the expressions
for Ciand Sigo to zero when q2 = tt. This corresponds to a workspace singularity
with thetool roll axiscollinear with the base axis. If we avoid this singularity, then
both Ci and Si are known and the base angle q\ can be recovered over the complete
range [ — t t , t t ] using:
q\ = atan2 [(ai + a2 C2)w2 — a2 S 2 w\, (a\ + a 2 C2)w 1 + íz2S2w2] (3-7-7)
From Eq. (3-7-1), the tool roll angle q3 can be obtained directly from the last com
ponent of the tool-configuration vector as follows:
q3 = tt ln vv6 (3-7-8)
I
q3 = ir In w6
Exercise 3-7-2: Right Angle. For the three-axis planar articulated robot in
Fig. 3-11, find the joint variables q when the first two links form a right angle, as
follows:
w = [a2, ai, <¿3, 0, 0, l]r
The technique for transforming between tool coordinates and base coordinates using
homogeneous coordinate transformation matrices can also be applied more generally
to coordinate transformations between various stations in a robotic work cell. As an
illustration, consider the single-robot work cell shown in Fig. 3-12. Here a part in
the shape of a block has been extracted, say, from a feeder, and placed in the view-
ing area of an overhead camera. The visión system inspeets the part and then in-
forms the robot controller to pick up the part and place it in either a pass bin or a
reject bin, depending upon the outeome of the inspection process.
Base xb
Next let TcSera represent the position and orientation of the base of the robot as
seen by the camera. In this case suppose that:
0 -1 0 15
base __
1 0 0 25
7camera (3-8-2)
0 0 -1 20
0 0 0 1
Consider the problem of finding the position and orientation of the part rela
tive to the base of the robot. Using homogeneous coordinate transformation ma
trices, recalling that diagonal identifiers cancel, and using Prop. 2-4-1, we have:
n art 'T ’c a m e r a 'T ’p a r t
ase * base * camera
— ( TTbase \ —1 'T’part
V-* camera/ •» camera
i
0 -1 0 15' 0 -1 0 0
-1 0 0 25 -1 0 0 -5
0 0 -1 20 0 0 -1 19
0 0 0 1 0 0 0 1
0 -1 0 25' 0 -1 0 o'
-1 0 0 15 1 0 0 -5
0 0 -1 20 0 0 -1 19
0 0 0 1 0 0 0 1
1 o o 30
0 1 o 15 (3-8-3)
o o 1 1
F
0 0 0 i 7
Thus the position of the part relative to the base ffame of the robot is
p = [30, 15, l]7. Furthermore, the three axes of the part frame point in the same
directions as the corresponding axes of the base ffame, as is indicated by the fact
that the rotation submatrix is R — /. This is consistent with the picture in Fig. 3-12.
Next suppose we want to have the robot reach down and pick up the part di
rectly ffom above by grasping it on the front and back faces. To determine the re-
Exercise 3-8-1: Focus Camera. Find the arm matrix needed to have the
robot in Fig. 3-12 reach up and focus the camera by twisting the lens using tool roll
motion.
3-1. Suppose a six-axis articulated robot has the following limits on the range of travel of its
joint variables:
— 37r/4 IJ qi < 3 ir /4 —tt/2 < ^4 < 7r/2
-tt/4 < < 37r/4 —ir/2 ^ #2 + #3 + <75 ^ ?r/2
—ir /2 ^ q2 + qi ^ tt / 2 — tt ^ q 6 < tt
Find the joint limit vectors {^min, ^ m*x} and the joint coupling matrix C that character
ize the joint-space work envelope Q of this robot.
3-2. Suppose the tool of a five-axis articulated robot is put into a singular configuration in
which the tool roll axis is collinear with the base axis as shown in Fig. 3 -1 3 . Show
that there are an infinite number of Solutions to the inverse kinematics problem for this
particular tool configuration. Is this a kinematically redundant robot?
3-3. Consider the link-coordinate diagram for the four-axis cylindrical-coordinate robot
with tool roll motion shown in Fig. 3-14. Here the vector of joint variables is
q = [0i, ¿2, ¿3, 04]r , and the kinematic parameters are as specified in Table 3-3. Find
the arm matrix 7b£l(</) for this cylindrical-coordinate robot.
3-4. Find the tool-configuration vector w{q) for the cylindrical-coordinate robot in Fig.
3-14.
3-5. Solve the inverse kinematics equations for the cylindrical-coordinate robot in Fig.
3-14. Do parts (a) through (d) in whichever order is easiest.
(a) Find the base angle #i(w).
(b) Find the vertical extensión qi(w).
(c) Find the radial extensión q^w).
(d) Find the tool roll angle #4(w).
3-6. Find a reduced tool-configuration vector vv for the cylindrical-coordinate robot in Fig.
3-14.
3-7. For the cylindrical-coordinate robot in Fig. 3-14, use the rotation matrix R{q) to find
the tool roll angle <?4.
Axis 0 d a a Home
1 0 0 0 0
2 tt / 2 <?2 0 7r/2 d
3 0 43 0 tt/2 r
4 ¿4 0 0 TT
3-8. Consider the link-coordinate diagram for the five-axis spherical-coordinate robot with
tool pitch and tool roll motion shown in Fig. 3-15. Here the vector of joint variables is
q — [0i, 02, d3, 04, 05]r , and the kinematic parameters are as specified in Table 3-4.
Find the arm matrix 7ba°e(#) for this spherical-coordinate robot.
3-9. Find the tool-configuration vector w(q) for the spherical-coordinate robot in Fig. 3-15.
3-10. Solve the inverse kinematics equations for the spherical-coordinate robot in Fig. 3-15.
Do parts (a) through (e) in whichever order is easiest.
(a) Find the base angle qi(w).
(b) Find the shoulder angle qiiyv).
(c) Find the radial extensión q3{w).
(d) Find the tool pitch angle qi(w).
(e) Find the tool roll angle q¡M-
3-11. Find a reduced tool-configuration vector w for the spherical-coordinate robot in Fig.
3-15.
3-12. For the spherical-coordinate robot in Fig. 3-15, use the rotation matrix R(q) to find the
tool roll angle q5.
3-13. Recall from Chap. 2 that the composite yaw-pitch-roll transformation can be repre
sented by the following rotation matrix YPR. Solve for the yaw, pitch, and roll angles
0 G R3 in terms of the components of YPR.
Axis e d a a Home
1 <7i dx 0 —
77/2 0
2 <?2 0 0 7t/2 77/2
3 77 ?3 0 77/2 r
4 <74 0 0 — 77/2 — 77/2
5 ?5 ds 0 0 tt/ 2
3-14. Suppose the joint-space work envelope Q for the four-axis cylindrical robot is of the
following form. Show that there are two Solutions to the inverse kinematics problem in
this case by completing Table 3-5. The second solution should be expressed in terms of
the first solution. For example, a joint variable might be negated, or 7r might be added
to a joint variable.
—T T < q x <TT —H < <73 < H
0 < q2 < V —7r < <y4 < 7r
Vertical Radial
Solution Base Extensión Extensión Tool Roll
1 <¡2 <?3 44
2
TT ^ — TT
0 < q3 < H
— TT < < TT
— TT < qs < 7T
REFERENCES
115
Sec. 3-9 Problems