AND CONTROL
MARK W. SPONG    University of IlliJwis
al
lJrhallaCllOnlpaign
M. VIDYASAGAR
University nf W'llerloo
c.'fHh;ht
:\1:
~;
Canada.
:1..!1.. W.
[."la\hukull:~,h'
I.
Vidya~agar.
M.
PREFACE
The present age has been given many l<~bc1s, among them The Nuclear
Age, The Space Age, The Computer Agc, and The Age of Automation.
Modern l:icience and technology is the common thread that binds these
various labeLs together. Progress in science and technology began in
prehistory when man first fashioned crude wols irom stone and wood
and learned that he could begin to exercise a degree of control over his
environmem. With the advcm of the socalkd Scientific Method of Investigation mOTe than three hundred years ago, scient inc and technological advancements heg.m [0 acceleratL' until, at the present timt:,
scientifh; knowledge is incIc'lsing at a phenomenal rate. This unprecedemed explosion of knowledge and technological invention strains
the fabric of our political, educational, religious, and legal institutions
as they struggle to assimilate the chan~cs brought abom by rapid
pwgrt:ss.
In the field of manufacturing, due in large part to recent advances in
computer technology, mankind is at the threshold of a second industrial RevolutIOn, a revolution in Automation. The word automation,
shOTt {or"Automatic Motivation," was coined in the 1940s at the Ford
Mowr Company, and was used to describe the collective operation of
many interconnected machines. Automation is defined by the Oxford
vii
viii
En~lish dictionary} as the "automatic connol of manufacturing product
through successive stages; usc of automatic equipment to san' menul
and manual lahor:?." To the lay person, however, automation means
the process of replacing human workt:rs by machines. Thus it is often
true that the word automation evokes fear and mistnlst. Being lire
placed by a machine" is no longer an idle threat to a significant portion
of modem society. Yet historically, every advancement in technology
that has It:d to an increase in productivity has been good in the long
run. in the nineteenth eentury most people in the United States made
their livings un farms. Farm automation took away most of those jobs
so that at the presem time less than two percent of the population of
the u.s. is engaged in farming. Yet there are more johs now than ever
before due ro advances in technulogy and changing lifestyles. The same
will Hkely be true of automation in the long nln, \Vhilc automation eliminates some iubs in weldi.ng, machining, assembly line work, etc., it
also creates otht:r ions, such a~ rohm installation and maimenam:I:,
softw:lre development and so forth. At the same time, the increased
prudllCtivity hrought anoUl by autumation enables a society to compete
successfully in a global economy with the re~;ult tbat the general stan
danl of livin,l; is raised.
Increasmgly, automation has come to mean the introduction of w
bots into the manufacturing environment. At the present time the
robot rcpre!'ents the highest form of automation. Although technically
just machines, robots arc viewed by most people in a much different
light than other machines. This special, almost romantic, position occupied by robots is due partly to tbe Hollywood vkw of a rohot as a
"mechanical being," often with evil intent, or as a lovable companion
such as R2D2 of tht: motion pictute Star Wars. The word robot itsdf
was introduced into our vocabulary by the Czech pbywright Karel
Capek in his 1910 play RO$$um's Universal Rohots; the word roboto
being thc Czech word for work.
Even Without the Hollywood imagery, however, humans would pro
bably h.lVe a special attraction to robots compared to other machines
for the <;imple reason that robots an: inherently anthropomorphic devices. Indeed, the components of a rubot afe 3nalogous to the human
brain, senses, tlInlS, hands, and legs. The ultim:ne robut would he one
that could see, he3r, feel, speak, move about, manipulate ohiccts, and
even think. Althuugh our present level of tecbnoloJ;.:Y is not able tLl prodllCC such a machine, this is one of the ultinute goals of robotics
research.
There have been many predictions made about thl.: future of the robOtic"" industry, such as that it will grow explosively into a tWO
to
ox
PREFACE
This textbook can be used for courses at two levels. Chapters One
through Nine, can be used in a first course in robotics at the senior
level with only a first course in feedback control systems as a
prerequisite. It is very helpful in such a course to have access to a laboratory where the students can learn a specific programming language
and can test some of the material on real systems. The instructor may
also wish to supplement the material with outside reading on computer
interfacing, sensors, and vision. At the graduate level, the entire book
can be covered in one semester. The latter chapters will be most useful
to students who have studied at least the state space theory of dynamical systems and who have access to computational facilities to design
and simulate the advanced control algorithms presented. After covering the chapters on advanced control a graduate student should be
prepared to tackle the research literature on robot dynamics and control.
The text is organized as follows. After an introductory chapter
defining the basic terminology of robotics and outlining the text,
Chapter Two gives some background on rotations and homogeneous
transformations sufficient to follow the subsequent development.
Chapter Three discusses the forward kinematics problem using the
DenavitHartenberg convention for assigning coordinate frames to the
links of a manipulator. Chapter Four discusses the problem of inverse
kinematics from a geometric viewpoint that is sufficient to handle the
most common robot configurations the student is likely to encounter.
Chapter Five discusses velocity relationships and derives the manipulator Jacobian in the socalled cross product form and includes a discussion of singularities. Chapter Six discusses dynamics.
We have found that many students at the senior level have little exposure to Lagrangian dynamics, so we have made Chapter Six selfcontained by including a derivation of the EulerLagrange equations
from the principle of virtual work. We also discuss the recursive
Ne\vtonEuler formulation of manipulator dynamics.
Chapter Seven begins our discussion of robot control by treating the
simplest approach, namely, independent joint control. We also discuss,
in this chapter, the most basic approaches for trajectory interpolation.
A robot is much more than just a series of rigid mechanical linkages.
Thus \'ie include material on actuator dynamics and drivetrain
dynamics and show how both significantly impact the manipulator
control problem. We also introduce the idea of feedforward control and
computed tOrque, which paves the way to the more advanced nonlinear
control theory to follow.
Chapter Eight discusses robot control in the context of multivariable
systems. Here we discuss the method of inverse dynamics and introduce the reader to the idea of robust control. Chapter Nine discusses
force control, chiefly hybrid position/force control and impedance control, which are the tWO most common approaches to force control to
date. Chapter Ten introduces the idea of feedback linearization of
PRF.F,\CF:
xi
nonlinear sySt~ms. This is 3. recent and quite advanced concept in control theory. We have attempted to give a selfcontained introduction to
the subject while minimizing tnt: mathematical background required of
the reader. Thus, although wr:. introduce, for example, the notion of Lic
brackets of vector fields, we do so primarily as a nutational convenience. All calculations are performed in local coot<linates in /W1 so
that we avoid the need to introduce rigorom definitions of more advanced concepts such as differentiable manifolds, tangent bundles, etc.
We hope that the loss of mathematical rigor is compensated for by an
incrC3sc in readability; in any case, tht: level of the tn.atment is
sufficient to handle most cases of interest in robot contra\. Chapter
Eleven discusses variable structure and adaptive control of robots.
Again, we give specific applications of thes!.: ideas to the robot control
problem rather than attempting to cover the most general theory.
While these tcehni4ues are important to date primarily from a theoretical standpoint, they hold the promise of future practicality and also
point the way to the research literature on robot controL
We had twO main goals in writing this text. Tht first was to present
the material as rigorously as possible at a senior/firstyear graduate
level by giving mathematical justification and proofs wherever possible.
The second was to present the theory in such :l way that, having read
it, the reader is able actually to compute examples for himseU. Thus
most of the problems fall into two groups. The first group asks the
reader to fill in the gaps of some of the derivations and proofs, whereas
the second group asks the reader to take a specific example and work
out the various equations on his or her own.
ACh.NI)W I,EnG'1E~TS
The first author would like to acknowled?;e the help and suppOrt of
many individuals in the preparation of this manuscript. First and
foremost are my coHeagues in the Decision and Control Group in tbe
Coordinated Science LaboratOry at the University of Illinois, Tamer
Basar, lessy Grizzle, Petar KokolOvic, P.R. Kumar, Jutaj Mcdanie, Bill
Perkins, Kameshwat Poolla, and Mac Van V.1lkenburg" who provide a
truly outstanding environment for scholarship and research. Next, my
students Robert Anderson, Scott BouoH, Fathi Ghorhel, John Hung, and
William Scheid prOVided helpful corrnnents and found numerous mis
takes in early drafts of the manuscript. The simnlation results in thiS
book were performed using the TUTSIM, PCMariah, and PCSimnon
packages in the Robotics Laboratory in the Depal1ment of General Engineering at the University of Illinois. I would like to thank my former
chairman, Jerry Dobrovolny, and my current chairman, Thomas Conry,
ior their support which made this facility possible and for their continued support and encouragement. The second author would like to
thank his students, Y. C. Chen, Chris Ma, A. Sankar, and David Wang
ior educating him in robotics.
XII
PIl~:F,\(:~:
The initial discussions which cvcnw'llly led to this book began during the summer of 19R4 while both authors were in the Comrul Technolog)' Branl;h at General Elt:ctrk's Corporate Research am.I Development Headquarters in Schent'(;wdy, New York. We would like to
thank John Cassidy a.nd Larry Sweet for thdr support during that
period, which made this collaboration possible. We would also like to
thank Rruce Kro~b and Kcn Loparo for their critical revlcws of the
manuscript, and Lila Acosta for proofreading the manuscript. We
would also like to thank Riccardo Marino, Romel) Onega, Hebertt
SiraRamirez, and JeanJacques Slmim;. for numerous helpful discussions on the robot control problem.
finally, wc would like to thank Christina Mediate, Joe Ford, and Michael Tung at John Wiley jor their patience and gllldance in the preparation of this text.
MARK W. SPO~G
M. VIDYASAGAR
CONTENTS
1.1 Jlllroduction
1.2 Ro/lOtiCS
1.3 Cotlll'oncllt$ and Structure of !~olJor::.
1.4 l,OmmOlI Kinematic Arrangements
1.5 Outline of ,he Text
References and Su~r:.esled UCdding
Problems
1
4
H
21
27
2CJ
RouJtiwl~'
32
33
38
43
46
50
53
XIII
xiv
Sllxxe~red Reading
DenavitHOltenberg Represenla(jrH!
3.3 Example.,
References and Suggested
Problems
'~eadillg
I Immductiull
4.1 KmemlllJC: Decollpling
+.3 fnver.'!e /)()Sltion: A Geometric Approach
;1,.
.,.,
1'2
102
'~eadillg
Problem'!
lOi
<08
Examples
.j.~
Singularities
lnver~e Velucity (/lulllcceleration
References and Suggested Reading
Problems
.j...t
92
III
J 12
IIi
II')
126
,
1)128
129
129
136
141
'44
153
159
Iti2
I ti:~
xv
CONT~:NTS
Introduction
Actuator Dynamics
SetPoint Tracking
Drive Train Dynamics
Trajectory Interpolation
Feedforward Control and Computed Torque
References and Suggested Reading
Problems
167
167
169
175
183
195
~O6
211
212
Introduction
PD Control Revisited
Inverse Dynamics
Implementation and Robustness Issues
Robust Outer Loop Design
References and Suggested Reading
Problems
216
216
216
221
224
227
2:36
239
Introduction
Natural and Artificial Constraints
Stiffness and Compliance
Inverse Dynamics in Tosl, Space
Impedance Control
Hybrid Position/Force Control
References and Suggested Reading
Problems
241
~Il
21;)
246
251
252
254
256
257
] 0.2
10.3
10.4
10.5
10.6
259
259
261
266
274
277
279
.x \0'1
CU'< ,.'VI'S
Problems
:281
28)
2U1
11.1 lnlmduction
2"'4
2X,,"
301
313
3].1
:H6
321
CHAPTER ONE
INTRODUCTION
1.1 INTRODUCTION
Robotics is a relatively new field of modern technology that crosses
traditional engineering boundaries. Understanding the complexity of
robots and their applications requires knowledge of electrical engineering, mechanical engineering, industrial engineering, computer science,
economics, and mathematics. New disciplines of engineering, such as
manufacturing engineering, applications engineering, and knowledge
engineering, are beginning to emerge to deal with the complexity of the
field of robotics and the larger area of factory automation. Within a
few years it is possible that robotics engineering will stand on its own
as a distinct engineering discipline.
In this text we explore the kinematics, dynamics, and control of robotic manipulators. In doing so we omit many other areas such as locomotion, machine vision, artificial intelligence, computer architectures, programming languages, computeraided design, sensing, grasping, and manipulation, which collectively make up the discipline
known as robotics. While the subject areas that we omit are important
to the science of robotics, a firm understanding of the kinematics,
dynamics, and control of manipulators is basic to the understanding
and application of these other areas, so that a first course in robotics
should begin with these three subjects.
1
1.2 ROBOTICS
The term robot was first introduced into our vocabulary by the Czech
playwright Kard Capek in his 1920 play Rossum's Universal Rohots,
the word robotll being the Czech word for work. Since then the term
has been applied to a gre.u variety of mechanical devices, such as teleopelators, underwater vehides, ;11,Ltonomous land rovers, etc. Virtually
anything that operates with some degree of autonomy, usually under
t:omputcT control, has at some point been called a robot. In thiS text
the leon robot will mean.:l computer controlled industrial manipulator
of the type shown in Figure 11. This type of robot is esst::ntially a
mechanical arm operating under computer control. Such devices,
thous;h far from the rohots of science fiction, alc nevertheless ex
FIGUHE 11
The Cincinnati MiJacron 7"
Cincinnati Milacron.
tremely compl~x electromcdumical systems whose analytical description requires advanced methods, and which present many challenging
and interesting research problems.
An official definition of such a robot comes from the Robot Institute
of America (RIA): A robot i~ a reprogramnwhle multifunctional mani
pulator designed to move material, parrs, Joo]s, or ~pecialized devices
through variable programmed morion.~ for the performance of a variely
of tasks.
The key element in the above definition is the rt:programmability of
robot.S_ It is the wmputer brain that gives tht' robot its utility and
adaptahility. The socalled robotics revolution is, in fact, pan of the
larger computer revolution.
Even tbis restricted vCtsion of a robot has several fcatures that make
it attractive in an industrial environment. Among thc advantages often
cited in favor of the introduction of robots are decreased labor costS, increased precision and productivity, increased flexibility comparcd with
specialized machines, and more humane working wnditions as dull,
n:petitive, or hazardous jobs arc performed by robuts.
The robot, as WI:: have defined it, was horn Out of the marria~e of two
I::arlier technologies: that of teleopcrators and numerically contmlled
milling machines. Telcoperators, or masterslave devic~s, were
developed during the second world war to handle radioactive materials.
Computer numerical comrollCNCl was devdoped because of the high
precision required in the machining of certain items, such as components of high performance aircraft. The 6rst robot::. essentially com
bincd the mech:miC3.1 linkages of thc releoperator with the autonomy
and programmability of CNC machines. Se\'craJ mHesrones on tbe
road to present day rubor technolog}' are listed bdow[17],[21]:
1947thc first servocd electric powered teleoperator lS
developed
1948 a tdcoperator is developed incorporating force feedback
1~}49research on Ilunlt:rically contrulled milling machines is
initiated
I954Gcurge Devol designs the first programmable robot
19S6Joseph E.ngelbcrgcr, a Columbia University physics student, huys the rights to Devol's rooot and founds the
Unimtltion Compau}'
1961thc first Unimate robot is installed in a Trenton, Nt:w
Jersey plant of General Motors (10 tend tl die casting
machinel
1961the 6rst rohot inco:rpoftlting force feedhack information
is developed
19(...~the first wbot vi~ion system is developed
1971the Stanford Arm is developed at Stanford University
1.YII\Olll.CI"I( )~
based on
CM
The first successful applications of robot manipulators generally involved some sort of material transfer, such as injection molding or
stamping where the rohot merely attended a pless to unload and either
tr"nsfer nr stack the finished part. These first robots were c,lpablc of
bdng programmed to execute a sequence of movements, ~ueh as moving to a location A, closing a gripper, movjn~ to a location B, etc., but
had no (,'xtcrnal sensory capability. More complex applicatiuns, such as
welding, grindin& dcburring.. and assembly require not only mot~ complex motion bUl also some funn of external sensing such as vision, tactile.. or force sensing, dUt: to the increased interaction of the robot with
ItS environment. For a compn::hemive discussion of robotic applications th~ reader is refem:d to the references at the end of this chapter,
cspcci:1l1y [61 ;:md lSI.
It should he pointed out that the important applications of robots arc
by no means limited to those industrial jobs where the robot is directly
replacing a human worker. There are many other applications of roo
botics in areas where thc usc of humans is impractical or undesirable.
Among these arc undersea and phmctary exploration, satellite retrieval
and repair, thl.: defusing of explosive devices, and wflrk in radioactive
environments. Finally, prostheses, such as artifiCial limhs, are themselves robotic devices requiring methods of analysis and design similar
to those of industrial manipulators.
between two links. We use the convention (R I for representing revolute joints and {PI for prismatic joints ~s shown in Figure 12. Each
joint represents the interconnection between two links, say, lj and lj+l'
We denote the axis of rotation of a revolute joint, or the axis along
which a prismatic joint slides, by z, if the jomt is the interconnection
of links i and i + 1. The joint variables, denoted by 9," for a revolute
joint and eli for a prismatic joint, represem the relative displacement
between adjacent links. We will make thiS precise in Chapter Three.
The joints of a manipulator may be electrically, hydraulically, or
pneumatically actuated. The number of iOintS determines the degreesoffreedom (OOF) of the manipulator. Typically, a mampuLator should
possess at least six independent DOF: threc for positioning and three
for orientation. With fewer than six DOF the arm Cannot reach every
point in its work envirnnment with arbitrary orientation. Certain applications such as reaching around OT behind obstacles requiTe more
than six DOF. The difficulty of contrulling a manipulator inCTeases rapidly with the number of links. A manipulator having more than six
links is teferred to as a kinematically redundant manipulator.
. The workspace of a manipulator is the total volume swept out by the
cndeffectoT as the manipul3tor executes all possible motions. The
workspace is constrained by the geometry of the manipul.nor as well as
mechanical constraints on the joints. For example, a revolute joint
may be limited to less than a full .160 of mution. The workspace is
,"
,"
I
Revolute
I,
I,
'
I,
ioinl (R)
,
I, '
Prismatic
I,
I.
I,
join! (P)
FIGLRE
I,
12
V,
''"
1"lrll').II.C"ffl~
Exlernal
power Unit
Teach device
terminal
"
pendant
""""
computer
controller
....,
mech,mical
.'m
Permanent
pmgrnm
endolarm
""",
tooling
dGkor tape
FICCRE 1.3
Components of a rohotic system
typically no direct measurement of the endeffector position and orientation. One must rely on the as!>umed geometry of the manipulator
and its rigidity to infer (i.e_, to calculate) the endeffector position from
the nu:asured joint angles. Accuracy i!> affected therefore by computational errors, machining accuracy in the construction uf the manipulator, flexibility effects such as the bending of the links under gravitational and other loads, gear backlash, and a host of other static and
dynamic effects. It is primarily for this reason that robots an~ designed
with extremely high rigidity. Without high rigidity, accuracy can only
be improved by some sort of direct sensing oj the endeffector position,
such as with visioll.
Once a point is taught to the manipulator, however, say with a teach
pendant, the above. effects are taken into account and the proper encoder values necessary to return to the given point are stored hy the
controlling computer. Repeatability therefore is affected primarily by
the controller resolution. Controller resolution means the smal1est increment of motion that the controllcr can sense. The resolution is computed as the total distance traveled by the tip divided by 2'l, where n is
thl.: numher of bits of encou.cr :lccura,,:y. In this context linear axes, (hat
is, prismatic joint!>, typically have higher resolution th:Hl revolLlte
joints, since the straight Line distance traversed by the tip of a linear
axis between twO points is less than the corresponding arclength traced
by the tip of a rut.1(ion~\llink.
In addition, as we wll! see in later chapters, rotational axes llsu:llIy
result in a large amount of kinematic and dynamic coupling among the
!.inks with a resultant accumulation of errors and a morl' difficult con
trol problem. One may wonder then what the adVant,lge~ of revolute
joints are in m.anipulator design. The answer lies primarily in the increased dexterity and compactn~ss of revolute joint design~. For ex
ample, Figure 14 shows that for the same range uf mOl inn, a rotational
link can he made much smaller th3n a link with linear motiun. Thus
manipulators made fmm revolute joints occupy a smaller working volunle than manipulators with linear axes. This increases th~ ability of
the manipulator to work in the same space with other robots,
machines, and p~op1c. At the same time revolute joillt manipulators
are better a!'lle to maneuver around ohstaclcs and have il wider range of
possible applications.
n,,
iL}j'
I
, ,,
/
FIGURE 14
Linear vs. rotational link motion
Il\,TIIOlIllCTIO!"
19. The term spherical configuration derives from the fact that the
F1GURE 15
The Unimation PUMA lProgrammabl!: Universal Manipulator fur
Assembly) Phow courtesy of WestinKhouse Automation Oi
vision/Unimation Incorporated.
1.4.4
The cylindrical configuration is shown in Figur~ 115. The first joint i&
rtvo!ute and produces a rotation about the base, while the second and
third ioints are prismatic. As the name suggests, the joint variables are
10
II\TltlJlHtl'TIOI\"
FIGURE 16
The' Cincinnati Milacrcm T 3 735 robot. COUrtt:sy of Cincinn<lti MilacrOll.
I 1
Zo
+I
I
Shoulder
z,
82
(Y../"
~Z
{2
83
~"
&z
z2
13
/~upper ./ ~ Forearm
,.. 81
arm
Body I,
Base
FIGURE 17
StructL1r~ of
g;l.ntry robots, fnr transf~r of Iuatcrial or cargo. An example of a cartesian robot, the Cincinnati Milacron T J gantry robot, is shown in Fi
gun~ 119. The workspace of a carttsian manipulawr is shown in Figure:
120.
Top
(
FIGlJRF: 18
Work.~pacc of th~
elhow manipulator
12
TI\;TRfll'lIJCTlul'o
FIGURE 19
The sph~rical
configuration
"i
manipulator
....
.'~
FIGURE 110
The Stanford manipulator {Courtesy of the Coordinated Science Laboratory, University of Illinois)
FIGUHE 111
Workspace;:. of dIe spherical manipuLator
" I
,,
"
'3
j<'IGUHI:: 1]2
The SCARA
Assembly)
(Selective
Compl1am
Aniculated
Robot
for
14
FIGURE 113
The AdeptOne robot. Photo
courtesy of Adept Tcchnologies.
FIGuRE ]14
Tbe workspace of the SCARA manipulator
15
I
I
1'<>
FIGURE 115
Tb~
l:yliudrical manipulator
connKura tion
)(,
I :>ITflOPUl.:TI'J'\
.,
... ~1lll
..
FIGl:RE 116
The GMF MlOO robot. photo c.:ouncsy of CMf Rohotics.
17
FIGURE 117
Workspace of tht: cylindrical manipulator
usually taught a series of points with a teach pendant. The points are
then stored and played bade Pujottopoint rohots are severely limited
in their range of applications. In continuous path robots, on the other
hand, tht:: entire path of the eDl]cIfcctor can be controlled. For example, the robot endeffector C:lIl be taught to follow a straigbt line
between two points or even to follow a contour such as a welding
scam. In addition, thl' velocity and(or acceleration of the endeffector
can often be cODlrolled. These are the most <HJvanccd rohots and require the most sophisticated computer controllers and software
develupmellt.
'0
FIGlJRE 118
The cartesian manipulator configuration.
18
1."l'1'1I0UL.CJ'lO.\j
FIGURE 119
A Gantry robot, the Cincinnati Milacron T 3 886. Photo courtesy of
Cincinnati Milacron.
ns
19
FIGURE 120
Workspace of the cartesian manipulator.
five dcgrccs~o(.freed()m. The wrist has pitch and roll hut no yaw motion. The PUMA has a full three degreesoffrccdom spherical wrist
and hence the manipulator possesses six degreesnffreedom.
It has been said tbat a robot is (Jnly as good as liS h~nd or end.
effector. The arm and wriSt assemblies of a robot ;lTC used primarily for
pm,itiuning the end.effector and any tool it may carry. It is the endeffectur or tnnl that actually performs the work. Thi.: simplest typc of
cmleffectnrs aTC grippers, such as shown m Figures 122 and 123,
which usually arc capabk uf only tWO actIOns, opening :md closing.
QP~
Roll
FIGURE 121
Structure of a spherical wrist.
20
J 'IT'll '1.'l'Cr!I,,,
FICVHF. 122
A parallel jaw gripper. (From: A Robot En.~ineering
Textbook, by Mohsen Shahinpnor. Copyright 19R7,
Harper & Row Publish~rs, Inc.)
FICURE 123
A two fingered gripper. (from: A l?obor Engineering
Handbook, by Mohst:1l Shahinpoor. CopyriKht 1987,
Harper &. Row Publishers, Inc.)
21
l.S.l
Tht: first prohlem encountered i!l to describe both the position of the
[001 and the Locations A .md H (and most likely tht' entire surface S1
with respect to a common coon.linate system. In Chapter Two we give
some backb'Tound 00 representations of coordinate systt:ms and
transfonnations among various cllOrdinare sySlt:ms.
FIGURE 124
A 6DOF robot with grinding 1001.
22
INTR.HHiCT10:;
Hom,
"f .
c
FIGlJUE 125
Twolink planar rohot
eX3.mpl~.
Typically, the manipulator will be able to I'ense its own position ill
some manner using internal sensors (po!>ition encooers) located <It
joints I and 2, which can m~asun: directly the joint angles 8 1 and 62_
We also need therefore to express the positions A and B in terms of
these joint angles. This leads tu the forward kinematics problem studied in Chapter Three, which is to determine the position and orientahon of the endeffector or [001 in terms of the joint variables.
It is customary to establish 3 fixed coordinate system, called the
world or base frame to which all objects including the manipulator an:
referenced. In this case we establish the hase coonlinarc frame 0oXoYo
at the base of the robot, 3S shown in Figure 126, and the coordinates
(x ,y J of the tOol arc expressed in this coordinate frame as
x =alcos9 1 +a2eos(91+~J
11.5.1 !
y =alsin9 1 + D2sin(6j+9.J.J
(1.5.2)
Also the orienlalion n( the 1001 frame relative to thc base fmmc IS
given by the direction cosines uf the X:2 and Y2 axes rdativc to the Xo
and Yo axes, that is,
i1.53J
2:1
y,
FIGLRE 126
Coordinate tLlmes
planar robot.
oh.io]
fi1i
fcoslll+l 2! Sin ill+l1I
li1jo jx.io l5iniOI+fl21 c05(8 1 +l 2 )
tor
twolink
j
(1.5.4)
where io,.io are the standard orthonormal unit vectors in the base frame,
and i 2, h are the standard orthonormal unit vectors in the tool frame.
These equations (1.5.11.5.4) are called the forward kinematic equations. For a six degreenffreedom robot these equations are quite complex and cannot be written down as easily as for the twolink manipulator. The general procedure that we discuss in Chapter Three establishes coordinate frames at each joint and allows one to transform systematically among these trames using matrix transformations. The
procedure that we liSC is referrcd to as the DenavitHartenber,g convention. We thcn usc homo,geneous coordinates and homogeneous
transformations to simplify the transformation among coordinate
frames.
KI.... EMATICS
Now, given the joint angles Ih,8 2 we can determine the endeffector
coordinates x and y. In order to command the rohot to move to location B we need the inverse; that is, we need the joint variables 8 1,82 in
terms of the x and y coordinates of B. This is the problem of Inverse
Kinematics. In other words, given x and .r in the forward kinematic
equatlOns 1.5.11.5.2, we wish to solve for the joint angles. Since the
forward kinematic equations are nonlinear, a solution may not be easy
to find nor is there a unique solution in general. We can sec, for ex~
ample, in the case of a twolink planar mechanism that there may be
no solution, if the given Ix ,y 1coordinates arc out of reach of the manipulator. If the given Ix,Y) coordinates arc within the manipulators
reach there may be two solutions as shown in Figure 127, the socalled
elbow up and elbow down configurations, or there may be exactly one
solution if the manipulator must he fully extended to reach the point.
There may even hc an infinite number of solutions in some cases iProhi em 1251.
24
FTGUllE 127
Multiple inverse kinematic solutions.
co,a,=
1
1
J
1.
X+Y(JIQ,
ala2
,D
11.5.51
tu
11.5.61
'inia,) = "I=iJi
and, hence, 82 can be found by
lh =
11.5.71
tan l
'iI_O'D
Tbe advantage of this latter approach is that both the elbowup and
elbowdown solutions are recovered by choosing the positive ami negative Si,itllS in j 1.5.8), r~spectivcly.
It is left as an exercise (prohlcm 119) to show that 9 1 is now ~ven as
8 j = tanl(y Ix) laD I(
a2sin 92
a 1+I/lcos8l
i 1.5.9)
ILi.lOI
25

I
I
I
I
A
21
_
I
I
FIGCRE 128
[~J
and 9 =
equations as
x_ [a lsine

(1.5.11)
=]8
The matrix] defined by (1.5.11) is called the Jacobian of the manipulator and is a fundamental object to determine for any manipulator. In
Chapter Five we present a systematic procedure for deriving the Jacobian for any manipulator in the socalled crossproduct form.
The determination of the joint velocities from the endeffector velocities is conceptually simple since the velocity relationship is linear.
Thus the joint velocities are found from the endeffector velocities via
the inverse Jacobian
(1.5.12)
or
I
(1.5.13)
2fi
Yo
FIGURE 129
;Co
A singular configuration.
27
ARKlH, M.,
121
JJ.
E.,
[31
BEN!, G., and HACKWOOD, S., eus., Recent Advance.. ill RoboLics,
2H
[4]
[5]
16J
[7]
[81
[91
[10]
[111
[12]
[1~1
[14]
[lSI
[16]
[17]
[l R]
[19]
1201
[21]
''''THOUI
1~r1"'l
B((AIJY, M., Ct. aI., cds., Robot MotiorJ: Planning and Concrol,
MIT Press, Camhridge, MA, 1983.
CRAtG. J" Introduction to Robutks: Meehl/nics and Control,
AddisonWc3!cy, Reading.. MA, 1986.
CRITCHLOW, A.I., InlToduction to Robolics, Macmillan,
New York, 19R5.
DOIlF, R., Robotics. and Automated Manufaal1ClIlg, Reston, VA,
1983.
ENGLEBERGER, J., Robotics in Practice, KO~:lIl Pa~e, London,
1980.
FU, K.S., CO;..lZALEZ, R.C., and LEE, C.S.G., Robotics: Control
Sen.sing, Vision, alld Intelligellce, McCrawHill, St Louis, 1987.
GROOVER, M., ~t. aI., Industr1ll1 Nobotics: Technology, Programming. and Applications, McCrawHill, St. Louis, 1986.
KOR.EN, Y., No/mUcs for 1I~il1cers, McGrawHili, St. Louis,
1985.
LEE, C.S.G., et. 31., eds., nWITialoIl Robotics, IEEE Computer
Sodety Press, Silver Sprin].\, MU, 19ft~.
MCCu)y, lJ., and HAIlIlI~. M., nObOtiCS: An Introduction, Halstead Press, New York, 1986.
MCCORnUCK, P., M(lchill~ Whu Think, W.H. Freeman,
San Frand!lw, 1979.
MINSKY, M., ed., J<obolics, Omni Publications Intcrnation.1.l,
Ltd., New York, 1985.
Oxford English DictiuJlary, Oxford University Press, Oxford,
1971 .
PAUL, R., Robm Mani"u111t()r<~: MOlhemalics. l'rogramming (lnd
Comrol, MlT Press, Camhridge, MA, 1982.
REID, J<obotics: 1\ Systems Approl/ch, PrtnticeHall, Englewood
Cliff" NL 1985.
SHAHINPOOR, M., A Robot ftJ~ineerirlg Textl.lO()k, Harper &
Row, New York, 1987.
SNYO[k, W., Industrial f?obots: Computer Interfacing and Contml, PrenticeHall, Englewood Cliffs, NJ. 1985.
WOLOVlCH, W., Rubotics: Bll"lC AllllJy.<>i.<> and Design, Holt,
Rinch.lIt, &. Winston, New York, 19R5.
PROHlYM,~
PROBLEMS
11
What are the key fcatures that distinguish robots from other
forms of "automation," such as CNC milling machines?
12
13
14
15
16
17
IH
19
llD
III
112
IJ3
r~dundant
manipulators
~o
114
d =1 '2(1co'(611
which is of course Ie.~s than t. e. With LObit accuracy ,lnd
a =90u what is the resolution of tht.: lint:ar linkl of the
t = 1 In,
rotatiullallink?
ItS
= 10
d
Fl<affir. 130
LJiagr3111 for Problem llS.
116
117
Why is accuracy
118
How cuuld manipulator accuracy be improved using direct endpoiDt St:Dsingr What othcr diffkulties mi)1;lH direct endpoint
~cnsinK introducc into the control problem;
119
1~20
gcn~rany
Fi~ure
al ,
111
122
POULt.:.. .. 'S
31
12.3
l24
125
CHAPTER TW"O
I Since we make extensive lISC of clementary matrix theory, the reader may wish
view Appendix A before beginning this chapter.
32
to
rc
2.1 ROTATIONS
Figure 21 shows a rigid object S to which :l coordinate frame ox I f IZ I
is :ltt3ched. We wi!'h to n:!atc the coordinates of a point p on S i.n the
OXI}'1Z] frame to the coordinates oj p in a fixed lur nonrotatedl reference frame OXoYoZn. Let! io! in, ko I denoll. the ~tandard orthonormal
basis in OXoYoZOi tllLls io,jo,ko arc unit vectors along the Xo.}'n,Zu axes,
respectively. Similarly, let l idll k] I be the standard orrhonormal
hasis in OX1Y1ZI' Then the veClUf from the common oril(in to the point
p on the object can be represented either with n,:spcCt to ()XO.\'(lZo as
Po = Pox io + PU'fio + PO:.. ko
121.11
12.1.2)
Since Po and PI arc representations of the same vector P, the ndationship between the components of p in the tWO coordinate frames
can bl' obtained as follows.
Po,<
=Po"io = PI"io
= {I h
12.1.31
"
FJGUU; 21
Cuurdin:.ltcs frallle .:lttacbcll 10.\
ri~id
bully
34
(2.104)
(2.1.5)
(2.1.6)
where
(2.1.7)
The 3 x3 matrix represents the transformation matrix from the coordinates of P with respect to the frame ox IY 12 I to the coordinates with
respect to the frame OXoYoZo. Thus, if a given point is expressed in
OXIYlzlcoordinates as PI then R6PI represents the same vector expressed relative to the oXoYoZocoordinate frame.
Similarly we can write
Pix
= pr i } = Poi l
(2.1.8)
where
R~
(2.1.10)
iii
Example 2.1.1
oXLhzJ
e about
the
ZII
6.
i2.1. J21
ido = sinS
jO"i1 = cosEt
ko'k l =!
and all other dot products are zero. Thus the transfonnation R ~ has
particu][1r!y simple form in this case, n.amely
s;"e
O~]
cosEl
o
<, ..
FIGURE 22
Rotation about the
Zn
axis.
3.
(2.!.U!
36
Rz,o = I
(2.I.l4)
Rz,eRz,tn = Rz,e+'l>
(2.I.lS)
Rx,B=
a cosS
a sinS
a
[
sinS
(2.1.17)
cosS
COSS
Ry,B =
s~ns]
SinS]
(2.1.18)
a cosEl
(ii)
Example 2.1.2
Consider the frames OXoYoZo and OXIYIZI shown in Figure 23. Projecting the unit vectors il,jl, k 1 onto io,jo, k o gives the coordinates of
idl' k l in the OXoYoZo frame. We see that the coordinates of i 1 are
~ ,O,~)T,
~2
~2
V2
~
V2
R6=
Ii
a
1
,= 0
'2
0
1
a
Ii ..)2
(2.1.19)
37
ROTATIONS
FIGURE
23
(iii)
Example 2.1.3
(2.1.20)
R n Po
Y'l
o = [0]
[1001][1]
0 0 0
1
1
2.1.1 SUMMARY
We have seen that a rotation matrix R
three distinct ways:
1. It represents a coordinate transformation relating the coordinates of a point p in two different frames.
38
/
/
FIGURE
24
Po
I
= ROPl
(2.2.1)
Po = R OP2
(2.2.2)
R ip2
(2.2.3)
PI =
where each R: is a rotation matrix. Note that R ~ and R ~ represent rotations relative to the OXoYoZo axes, while R ~ represents a rotation relative to the ox IY lZ I frame. Substituting (2.2.3) into (2.2.1) yields
I
Po = R o R tP2
(2.2.4)
39
COMPOSITION OF ROTATIONS
R o2 = R OI R 21
(2 .2.5 )
R6.
i.
(i)
Example 2.2.1
cq>ca
Cill5a 50]
Sa
Ca
Sq>Ce
Sq>Se
Cq>
It is important to remember that the order in which a sequence of rotations are carried out, and consequently the order in which the rotation matrices are multiplied together, is crucial. The reason is that rotation, unlike position, is not a vector quantity and is therefore not
subject to the laws of vector addition, and so rotational transformations
do not commute in general.
Iii)
Example 2.2.2
Suppose that the above rotations are performed in the reverse order,
that is, first a rotation about the current zaxis followed by a rotation
about the current yaxis.
~~NEMERIT UHN'EIIlllO'""'A'.'_W"
A7 ~J.IU.O.9Cl'."""
40
0]
ce Se
[Cll>
S<I>]
Se Ce 0
0 1 0
s<I>
clj)
(iii)
Example 2.2.3
FIGURE 25
Composition of rotations.
41
COMPOSITION OF ROTATIONS
Initially the fixed and current axes are the same, namely oXoYoZo, and
therefore we can write as before
Po
= RY,4>PI
(2.2.8)
where Ry,lj> is the basic rotation matrix about the Yaxis. Now, since
the second rotation is about the fixed frame oXoYoZo and not the
current frame ox IY \Z I, we cannot conclude that
PI = R z ,eP2
(2.2.9)
since this would require that we interpret Rz,a as being a rotation about
ZI. In order to use our previous composition law we need somehow to
have the fixed and current frames, in this case Zo and Z I, coincident.
Therefore we need first to undo the previous rotation, then rotate about
Zo and finally reinstate the original transformation, that is,
PI = R Y ,i!R z ,eR y,lj>P2
(2.2.10)
(2.2.11)
comparing (2.2.11) with (2.2.6) that we obtain the same basic rotation
matrices in the reverse order.
We can summarize the rule of composition of rotational transformations by the following recipe.
Given a fixed frame oXoYoZo, a current frame oX IY IZ I, together with
rotation matrix R6 relating them, if a third frame OXIYIZ2 is obtained
by a rotation R ~ performed relative to the current frame then postmultiply R by R ~ to obtain
( 2.2.12 )
R o2 = R oI R 2I
If the second rotation is to be performed relative to the fixed frame then
premultiply R 6 by R ~ to obtain
2 = R 2I R 1
Ro
o
(2.2.13 )
42
ky
sin a = ==,
Vk x2 +1{2Y
kx
cos a = ====
Vk;+k;
sinp=Vk;+k;
cosp = k z
FIGURE 26
Rotation about an arbitrary axis.
(2.2.151
4:1
Substituting i2.2.l51 intu (2.2.14) we obtain after somt: lengthy calculation {Problem 210)
k;v,+co
Rk,iJ
kxkyvek"so k'k'V'+k,s01
kiV~ftC(l k r 1<?ve k X so
= 1<.,..1<.y V O+k"S6
when~ Vij
= vcrs I = I 
12.2.16)
k;ve+co
Co.
R =R k"
12.3.11
where k is a unit vector defining the aXIs of rotation, and e is the angle
of rotation abollt k. Equation (2.3.1l is called the axisangle representation of R. Given an arbitrary rotation matrix R with components (rrll,
the equivalent angle e and equivalent axis k are given by the expressions [21
e=cos'i TriRIl l
2
= cos
12.3.2)
'I rll+rn+rJj
 II
2
k=
2s~e
r32 r
 2.1]
TUTJl
12.3.3)
T21 T J2
k,9
(2.3.41
14
R = Rx,60Ry,30Rz,90
0
I

2
13
2
13
2
13
4
I
4
2
3
4
13
4
We see that Tr(R) = 0 and hence the equivalent angle is given by (2.3.2)
as
(2.3.6)
The equivalent axis is given from (2.3.3) as
III
1
k = (13 ' 213 2:' 213
IT
+2:)
(2.3.7)
(2.3.8)
Note, since k is a unit vector, that the length of the vector r is the
equivalent angle 8 and the direction of r is the equivalent axis k.
45
\
\
IJ
\
\
\
\
\
8IJ
FIGURE 27
Euler angle representation.
Finally rotate about the current z by the angle \jI. In terms of the basic
rotation matrices the resulting rotational transformation Rb can be generated as the product
(2.3.9)
=
[
 Sa
a ca a a
Cq>cac'I'S,p'l'  cq>ces'I's",c'I'
Clbsa]
s<l>cac'I'+c<l>s'I'
s<l>ceS'I'+cq>c~
sq>sa
SoS"
Ce
SOcl/I
In Chapter Four we study the inverse problem of finding the Euler Angles (8,$,'1'1 given an arbitrary rotation matrix R.
46
Roll
Yaw
Yo
Pitch
FIGURE 28
Roll, pitch and yaw angles.
=
[
C'il ce
S$Ce
C~CIjI+S~SeSljI
 C$SIjI+S $SeCIjI
Se
CeSIjI
CeCIjI
S$SIjI+C$SeCIjI
2.4 HOMOGENEOUS
TRANSFORMATIONS
oXoYoZo
47
HOMOGENEOUS TRANSFORMATiONS
Yo
FIGURE 29
Translated frame.
or
POx = P I x+ d 6x
(2.4.2)
POy = Ply + d 6y
POz
= Plz + d6z
as a rigid motion.
(i)
Definition 2.4.1
A transformation
Po = RPI + d
(2.4.3)
and
(2.4.5\
!8
Po =
R6 R ~P2 + R6d~ + dJ
(2.4.6)
Po = R OP2 + do
(2.4.7)
Ro=ROR t
2
d 0+
I
R 0I d 2I
d 0=
(2.4.8)
(2.4.9)
R oI d 0I] [R 2
[R 0I R 2
1 d 2]
I
I
[o 1
0 1 =
0
(2.4.10)
where 0 denotes [00 OL shows that the rigid motions can be represented
by the set of matrices of the form
[~ ~}
50(3)
(2.4.11 )
o [~o]
(2.4.13)
[~l]
(2.4.14)
P =
PI =
49
transformation i2.4.3) is equivalent
tion
to
1 0
o1
TraI1s~,'J = o 0
o0
01
0 1
0 0
1 0
0 1
hi
~ T'""5, ...
1000]
a I aa
001 c
000 I
IVLl61
Ro!,. =
I~ ~~: ~];
:0:
IMy ,. =
0001
[_~'. ~ ~ ~];
Ro!.,o =
0001
I~ ~O ~ ~]
0001
{2.4.171
a a a
II
,2.4.18)
= In"ll J ,n" IT is
II
iii)
Example 2.4.2
Th~
50
1 0 0 0
0 Co. so. 0
0 So. Co. 0
0
about the
= Rotx,aTransx,b Transz,dRotz,e
e degrees
100 0
o10 0
100 b
ce Se
(2.4.19)
o0
o0
se ce
1 0 0
001 0 o Old 0 0 1 0
000
1 000 1 0 0 o 1
1
Ce
Se
Cad
The homogeneous representation (2.4.11) is a special case of homogeneous coordinates, which have been extensively used in the field of
computer graphics. There one is, in addition, interested in scaling
and/or perspective transformations. The most general homogeneous
transformation takes the form
R3X3
H
[
f lx3
I d3X1
I I S Ixl
I TranSlation]
I
erspective I scale factor
Rotation
(2.4.20)
For our purposes we always take the last row vector of H to be (0,0,0,1),
although the more general form given by (2.4.20) could be useful for interfacing a vision system into the overall robotic system or for graphic
simulation.
(iii)
Definition 2.5.1
ST + S = 0
(2.5.1)
51
S,,+SjJ=O i,j= 1,2,3
12.5.2)
From /2.5.2) we see that s" = 0; tbat is, the diagonal terms of S are zero
and the off diagonal terms 5,] i~j satisfy 5,] = SJ" Thus S contains only
three i.nd~pcndcnt entries and every 3x3 skew symmetric matrix has
the form
12.5.31
SIal =
a~
0
Dr
liv)
"'1
0 ax
.,
ax
12.5.41
Example 2.5.2
The skew symmetric matrices SliJ, Sm, and S(k) tbat result when a
equals the unit normaJ vectOrs it j, and k, respectively, arc given by
OOO]
~010]
o1 0
I 0 0
12.5.;';)
0 0 0
important
property
of
~51bl
Sial
is
that
12.5.6)
for
any
vecror
p = (P.. ,p},PzV
S(alp = axp
12.5. 71
12.5.8 1
.)
;:)
For any R
that
R5 (a)R Tb = R (a x RTb)
(2.5.9)
= (R a)x(RRTb)
= (R a) x b
since R is orthogonal
=5(R alb
Thus we have shown the useful fact that
R5(a)R T = 5(Ra)
(2.5.10)
for R E SO (3), a E IR3 . As we will see, (2.5.10) is one of the most useful
expressions that we will derive. The left hand side of Equation 2.5.10
represents a similarity transformation of the matrix 5 (a). The equation
says therefore that the matrix representation of 5 (a) in a coordinate
frame rotated by R is the same as the skew symmetric matrix 5 (R a)
corresponding to the vector a rotated by R.
Suppose now that a rotation matrix R is a function of the single variable e. Hence R = R (e) E so (3) for every e. Since R is orthogonal for
all e it follows that
R (e)R (e)T = I
(2.5.ll)
Differentiating both sides of (2.5.11) with respect to
rule gives
dR R (e)T R (e) dR T
de
+
de
=0
de
(2.5.14)
=0
(2.5.15)
(2.5.16)
Equation 2.5.16 is very important. It says that computing the derivative of the rotation matrix R is equivalent to a matrix multiplication
by a skew symmetric matrix S. The most commonly encountered situation is the case where R is a basic rotation matrix or a product of
basic rotation matrices.
53
Iv) Example 2.5.3
If R = R",e, the basic rotation matrix given by (2.1.171, then direct computation shows that
~ ~~ ~ [~
R'
0] :io1 00]
cos8 sinB
sin8 cos8
cos8 SlOe :...0 ~ine cose
~ [~
(2.5.17)
01
01 , =S'il
,
1 0
~ S{.JR
1 ",6
(2.5.18)
dRz,o
de
'=
51kIR.
,0
(2.5.19)
;2.5.20)
Other examples are given in the next section and also in Chapter Five.
12,6,11
where the matrix Sft! is skew ~ymmetric. Nnw, since S(l) is skew
~\mmctric, it can be represented as 5100(t II fnT a uniquc vector will.
This vector ro{t) is the angular velocity of the rotating frame with
~~spect to the fixed frame at time t.
54
(vii)
Example 2.6.1
Suppose t h at R (I
t
= RX,e(l}'
, compute dUSIng
'
IS
t he
chain rule as
, dR de .
R = de dt =eS(i)R(t)=S(ro(t))R(t)
(2.6.2)
(2.6.3)
Po = R (t lpI
The velocity Po is then given as
(2.6.4)
Po = S (ro)R (t )Pl
= S(ro)Po = IDXpo
which is the familiar expression for the velocity in terms of the vector
cross product. Now suppose that the motion of the frame IX lY lZ I relative to 0oXoYozo is more general. Suppose that the homogeneous
transformation relating the two frames is timedependent, so that
(2.6.5)
For simplicity we omit the argument t and the subscripts and superscripts on R 6 and dci, and write
(2.6.6)
Po = RPI + d
Differentiating the above expression using the product rule gives
Po =
RPI + d since PI
(2.6.7)
is constant
= S(ro)Rpl + d
=IDxr+v
d
dt
da
dt
db
dt
(axb) =  x b + a x 
(2.6.8)
55
it = RPI
(2.6.9)
=roXRPI
and differentiate both sides with respect to
Po 
we obtain
d = c:i> x R PI + ro x (R PII
(2.6.10)
= c:i>xr + roxlroxrl
Thus (2.6.10) may be written as
Po = c:i>xr + rox(roxr) + a
12.6.11)
where a is the linear acceleration. The term rox(roxr) is called the cen
tripetal acceleration of the particle. It is always directed toward the
axis of rotation and is perpendicular to that axis. The term c:i>x r is
called the transverse acceleration.
Again, if the vector PI is changing with respect to IX IY IZ I, the
above expression must be modified. In this case it is left as an exercise
to show that Equation 2.6.11 is replaced by
(2.6.12)
Po = R OP2 + do
(2.7.3)
where as before
(2.7.4)
and
2
2 d I
(2.7.5)
d 0=
o+R o1 d I
As before, all of the above quantities are functions of time. Taking
derivatives of both sides of (2.7.4) yields
56
. 2
. 1
I' 2
RO=ROR J +RoR
The term
(2.7.6)
R o = 5( roo)R o
(2.7.7)
R~ R ~ = 5 (ro6)R 6R ~ = 5 (ro6) R ~
(2.7.8)
Let us examine the second term on the right hand side of (2.7.6). Using
the expression (2.5.10) we have
R~ R~ = R6Slror)R~
(2.7.9)
=R6 S(ror)R~TR6R~=S(R6ror)R6R~
=5(R6ror)R~
Combining the above expressions we have shown that
(2.7.10)
roo2 = rooJ + R 01 ro 21
(2.7.11 )
In other words, the angular velocities can be added once they are expressed relative to the same coordinate frame, in this case 0oXoYoZo.
The above expression can be extended to any number of coordinate
systems. For example, if
n
Rg = R6 R~' .. Rn _ 1
(2.7.12)
then
(2.7.13)
where
1
R oro,
1 2
4
roon =roo+
+ R 02 0032 + R 03 003+'"
n
+ R 0nl ronl
(2.7.14)
READING
[11
[2]
57
PROBI.F."'S
131
l4J
[5]
REDDY,
[6]
Muthematical A1elhod"
1958.
171
PROBLEMS
21
2 2
23
24
25
26
1.
_ Icos8 SinEl]
A  lsin8 cos8
.27
2R
29
,=
l{ I
1
2
..f;l
0'
2
0
';.3
2
1
2
0IXLJ'IZ1, 0lX::'Y2Z2,
anu
a
U;= fao 01 1]
loa
Ri.
210
211
212
213
214
21 :S
"';l
I~
,0,:
I.
XI
hase frame?
216
f.
59
"RIlRI.F:\IS
"
FTGURE 210
Diagram for Problem 217.
218
219
220
121
122
Prove assertion
22.~
12.s.~)
that R (axbl
== R axR
RSlajR T djRaJ
b, for R
= R x 'Xl,
'
5013).
Show by direct
60
camera
"
1m
~""':::'~,r/Table
"
FIGUHF. 211
Diagram [or Prohlem 218.
224
Given R~
:=
Evaluate
~= ~.
225
oR;
o~
al
6=2'
226
127
Show thit S{kp =Stkj. Use this and Problem 225 to verify
Equation 2.5.20.
228
as
e'~ =/ +A
1 1 +_A
1 3 r
+_A
2
e5
3!
61
PH()UL~'M;;
229
dB
230
US~
R
231
show th.:1t
Cit R = S (wlR
where
233
O,XIYIZl
H=I!n~Jj;
000 I
0lX1YJZI.
OnxuYOZo?
234
R,; J~
l~
~ ~l]
I 0
CHAPTER THREE
FORWARD I<.INEMATICS:
THE
DENAVITHARTENBERG
REPRESENTATION
In this chapter we develop the forward or configuration kinematic
equations for rigid robots. The forward kinematics problem can be
stated as follows: Given the joint variables of the robot, determine the
position and orientation of the endeffector. The joint variables are the
angles between the links in the case of revolute or rotational joints,
and the link extension in the case of prismatic or sliding joints. The
forward kinematics problem is to be contrasted with the inverse
kinematics problem, which is studied in the next chapter, and which
can be stated as follows: Given a desired position and orientation for
the endeffector of the robot, determine a set of joint variables that
achieve the desired position and orientation.
62
A,{qj 1
13.1.11
Link 1
'1
Joint I
base(lInItO)
"
FIGURE 31
Coordinate frames attached
to
elbow manipulator,
T~ljfjj
T~
_ lTi)
if j
13.1.2)
:>
65
Ai
R,:,
[0
13,1.51
Hence
T; A,., "A,
[RO; dij
('.1.61
i3.1. 7)
1'1.8)
These expressions will he useful in Chapter Five when we study Jacobian matrices.
In principle, that is all tbcre is to forward kinematics! Determine
the functions A;(q,J, and multiply tb~m together as needed. However,
it is possible tu achieve a considerable amount of streamlining and
simplification by introducing furth~r conventions, such as the
DenavitHanenberg repr~scntation of a joint, and this is the objective
of the remainder of the chapter.
3.2 DENAVITHARTENBERG
REPRESENTA.TION
While it is possible to carry Out all of the analysis in this chapter using
an arbitrary frame attached to each link, it is helpful to be systematic
in the choice of these frames. A comm~mly used convention for selecting frames of reference m robotic applications is the
DenavitHartenbcrg, or DH convention. In this convention, each homogeneous transformation Ai is represented as a product of four
"basic" transfonnations
Ai
= ROl z .t1
01 ~I a
So.
[C's&,
0
c,,
1.>.211
0]
a'll
0
c
0010
0 0 110100
0
I OOOld,OOIOO s"
1 00 0 1 0 0 0 1 0
0
So.
~]
So, Sa,
Of Ce,
Se,
Ceo Cn,
Ce,Su,
S"
Ca.
(I,
Sa,
d;
where the four quantities 8" a" d j , O:j .He parameters of link i anu joint
i. The various parameters in (3.2.1 J are generally given th~ fuUuwing
names: OJ is called the length, Ctj is called the twist, d j is caIted the
offset, and 8; is called the angle. Since the matrix A, is a function of a
single variable it turns out that three of the above four quantities are
constant for a given link, while the fourth parameter, 81 for a revolute
joint and d j for a prismatic joint, is the joint variable.
From Chapter Two one can see that an arbitrary homogeneous rna
trix can be characterized by six numbers, such as, for example, the
three components of the displacement vector d and three Euler angles
corresponding to the rotation matrix R. In the DH representation, in
contrast, there are only four parameters. How is this possible? The
answer is that, while frame j is required to be rigidly attached to link i,
we have considerable freedom in choosing the origin and the coordinate
axes of the frame. For example, it is not necessary that the oriKin 0i of
frame i should correspond to ioint i or to joint i + I, that is, to either
end of link i. Thus, by a clever choice of the origin and the coordinate
axes, it is possible to cut down the number of parameters needed from
six to four jor even fewer in some cases). Let us see how this can be
done.
We begin by determining just which homogeneous transformations
can be expressed in the form 13.2.1). Suppose we are ,l!;iven twO frames,
denoted by frames 0 and I, respectively. Then there exists a unique homogeneous transformation matrix A that takes the coordinates from
frame 1 into those of frame O. Now suppose the tWO frames have two
additional features, namdy:
i DH 1 J
13.22)
Of course, since 8 and a are angles, we really mean that they arc unique
to within a multiple of 2lt.
[~~]
13.2.31
67
DENAVITHAIITE:\IlERG REPHESENTATJO:\
and let rj denote the i th column of the rotation matrix R. Referring to
Figure 32 we see that assumption (DHl) above means that the vector
r1 (which is the representation of the unit vector it in frame 0) is orthogonal to k o ~ [00 1f, that is, 131 ~ O. From this we claim that there
exist unique angles 9 and a such that
(3.2.4)
Once 9 and a are found, it is routine to show that the remaining elements of R must have the form shown in (3.2.4), using the fact that R
is a rotation matrix.
,,
\
\
\
\ (1'
\
I
I
I
\
\
Zl
Zo
I
I
I
Xl
~E_=~
Yo
FIGURE 32
Coordinate frames satisfying assumptions DHl and
DH2.
(3.271
"
0,
:ri _ I
FIGl7RE 33
Positive sense for u, and
ai .
DENAVITHARTE:\"BERG REI'HI';SENTATIO:,\
69
choices of the various coordinate frames are not unique, even when
constrained by the requirements above. Once we have illustrated the
general procedure, we will discuss various common special cases where
it is possible to simplify the homogeneous matrix further.
To start, it is helpful to identify all of the joint axes and label them
ZO," . ,ZI11 Zi is the axis of revolution of joint i +1 if joint i +1 is revolute, and is the axis of translation of joint i+l if ioint i+l is prismatic.
Next choose the origin 00 of the base frame. This point can be chosen
anywhere along the Zo axis. Finally, choose xo, Yo in any convenient
manner so long as the resulting frame is righthanded. This sets up
frame O.
Now suppose frames 0, ... ,i 1 have been set up. To understand the
following it will be helpful to consider Figure 34. In order to set up
frame i it is necessary to consider two cases: (a) the axes Zil, Zi are not
coplanar, and (b) they are coplanar. If the axes Zil, Zi are not coplanar,
then there exists a unique line segment perpendicular to both such that
it connects both lines and it has minimum length. The line containing
this common normal to Zil and Zi is then defined to be Xi, and the
point where it intersects Zi is the origin 0i' Then by construction, both
conditions (DH1) and (DH2) are satisfied and the vector from 0il to 0i
is a linear combination of ZiI and Xi' The specification of frame i is
completed by choosing the axis Yi to form a righthand frame. Since assumptions (DH1) and (DH2) are satisfied the homogeneous matrix Ai is
of the form (3.2.1).
FIGURE
34
70
Now consider case (b), that is, the axes Zj_l and Zi arc coplanar. This
means either that they arc parallel, or that they intersect. This situation is in fact quite common, and deserves some detailed analysis. If
the axes Zi_l and Zj arc parallel, there arc infinitely many common normals between them and condition (DH1) docs not specify Xj completely. In this case we choose the origin 0; to be at joint i so that Xi is
that normal from Z,_j which passes through 0i' Note that the choice of
01 is arbitrary in this case. We could just as well choose the normal
that passes through 0'1 as the Xi axis in which case eli would be equal
to zero. In fact, the latter choice is common in much of the robotics literature. Since the axes Zi 1 and Zj are parallel, u, will be zero in this
case. Once Xj is fixed, y, is determined, as usual hy the righthand rule.
Finally, consider the case where Z; intersects the axis Z;_I. In this
case Xj is chosen normal to the plane formed by
and Z;_l' The positive direction of Xi is arbitrary. The most natural choice for the origin
0, in this case is at the point of intersection of Zj and Z,_I. However,
any convenient point along the axis z; suffices. Note that in this case
the parameter (J, equals O.
This constructive procedure works for frames 0, ... ,11 1 in an nlink robot. To complete the construction, it is necessary to specify
frame n. The final coordinate system 0nX"Y"Z" is commonly referred
to as the endeffector or tool frame Isee Figure 35!. The origin On is
most often placed symmetrically hetween the fingers of the gripper.
The unit vectors along the x"' y", and z" axes arc labeled as n, S, and a,
respectively. The terminology arises from fact that the direction a is
the approach direction, in the sense that the gripper typically approaches an object along thc a direction. Similarly the s direction is the
z,
Yo
FIGURE :~5
Tool frame assigne1l1l1t.
CHAPTER FOUR
INVERSE I(INEMATICS
4.1 INTRODUCTION
In the previous chapter we showed how to determine the endeffector
position and orientation in terms of the joint variables. This chapter is
concerned with the inverse problem of finding the joint variables in
terms of the endeffector position and orientation. This is the problem
of inverse kinematics, and is, in general, more difficult than the
forward kinematics problem. The general problem of inverse
kinematics can be stated as follows. Given a 4x4 homogeneous
transformation
H
= [~
~]
(31
(4. t.l)
(4.1.2)
where
(4.1.3)
92