Theory of Applied Robotics
Reza N. Jazar
Theory of Applied Robotics
Kinematics, Dynamics, and Control
Second Edition
123
Prof. Reza N. Jazar
School of Aerospace, Mechanical, and
Manufacturing Engineering
RMIT University
Melbourne, Victoria
Australia
[email protected]
ISBN 978-1-4419-1749-2
e-ISBN 978-1-4419-1750-8
DOI 10.1007/978-1-4419-1750-8
Springer New York Dordrecht Heidelberg London
Library of Congress Control Number: 201092 6 033
c Springer Science+Business Media, LLC 2006, 2010
All rights reserved. This work may not be translated or copied in whole or in part without the written
permission of the publisher (Springer Science+Business Media, LLC, 233 Spring Street, New York,
NY 10013, USA), except for brief excerpts in connection with reviews or scholarly analysis. Use in
connection with any form of information storage and retrieval, electronic adaptation, computer
software, or by similar or dissimilar methodology now known or hereafter developed is forbidden.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
c Konstantin Inozemtsev
Cover illustration
Printed on acid-free paper
Springer is part of Springer Science+Business Media (www.springer.com)
Dedicated to my wife,
Mojgan
and our children,
Vazan
and
Kavosh.
I am Cyrus, king of the world, great king, mighty king,
king of Babylon, king of Sumer and Akkad, king of the four quarters.
I ordered to write books, many books, books to teach my people,
I ordered to make schools, many schools, to educate my people.
Marduk, the lord of the gods, said burning books is the greatest sin.
I, Cyrus, and my people, and my army will protect books and schools.
They will fight whoever burns books and burns schools, the great sin.
Cyrus the great
Preface to the Second Edition
The second edition of this book would not have been possible
without the comments and suggestions from my students, especially
those at Columbia University. Many of the new topics introduced here
are a direct result of student feedback that helped me refine and clarify
the material.
My intention when writing this book was to develop material that I
would have liked to had available as a student. Hopefully, I have
succeeded in developing a reference that covers all aspects of robotics
with sufficient detail and explanation.
The first edition of this book was published in 2007 and soon after its
publication it became a very popular reference in the field of robotics. I
wish to thank the many students and instructors who have used the
book or referenced it. Your questions, comments and suggestions have
helped me create the second edition.
Preface
This book is designed to serve as a text for engineering students. It
introduces the fundamental knowledge used in robotics. This knowledge
can be utilized to develop computer programs for analyzing the kinematics,
dynamics, and control of robotic systems.
The subject of robotics may appear overdosed by the number of available
texts because the field has been growing rapidly since 1970. However, the
topic remains alive with modern developments, which are closely related to
the classical material. It is evident that no single text can cover the vast
scope of classical and modern materials in robotics. Thus the demand for
new books arises because the field continues to progress. Another factor
is the trend toward analytical unification of kinematics, dynamics, and
control.
Classical kinematics and dynamics of robots has its roots in the work of
great scientists of the past four centuries who established the methodology
and understanding of the behavior of dynamic systems. The development
of dynamic science, since the beginning of the twentieth century, has moved
toward analysis of controllable man-made systems. Therefore, merging the
kinematics and dynamics with control theory is the expected development
for robotic analysis.
The other important development is the fast growing capability of accurate and rapid numerical calculations, along with intelligent computer
programming.
Level of the Book
This book has evolved from nearly a decade of research in nonlinear
dynamic systems, and teaching undergraduate-graduate level courses in
robotics. It is addressed primarily to the last year of undergraduate study
and the first year graduate student in engineering. Hence, it is an intermediate textbook. This book can even be the first exposure to topics in spatial kinematics and dynamics of mechanical systems. Therefore, it provides
both fundamental and advanced topics on the kinematics and dynamics of
robots. The whole book can be covered in two successive courses however,
it is possible to jump over some sections and cover the book in one course.
The students are required to know the fundamentals of kinematics and
dynamics, as well as a basic knowledge of numerical methods.
xii
Preface
The contents of the book have been kept at a fairly theoretical-practical
level. Many concepts are deeply explained and their use emphasized, and
most of the related theory and formal proofs have been explained. Throughout the book, a strong emphasis is put on the physical meaning of the concepts introduced. Topics that have been selected are of high interest in the
field. An attempt has been made to expose the students to a broad range
of topics and approaches.
Organization of the Book
The text is organized so it can be used for teaching or for self-study.
Chapter 1 “Introduction,” contains general preliminaries with a brief review
of the historical development and classification of robots.
Part I “Kinematics,” presents the forward and inverse kinematics of
robots. Kinematics analysis refers to position, velocity, and acceleration
analysis of robots in both joint and base coordinate spaces. It establishes
kinematic relations among the end-effecter and the joint variables. The
method of Denavit-Hartenberg for representing body coordinate frames is
introduced and utilized for forward kinematics analysis. The concept of
modular treatment of robots is well covered to show how we may combine
simple links to make the forward kinematics of a complex robot. For inverse
kinematics analysis, the idea of decoupling, the inverse matrix method, and
the iterative technique are introduced. It is shown that the presence of a
spherical wrist is what we need to apply analytic methods in inverse kinematics.
Part II “Dynamics,” presents a detailed discussion of robot dynamics.
An attempt is made to review the basic approaches and demonstrate how
these can be adapted for the active displacement framework utilized for
robot kinematics in the earlier chapters. The concepts of the recursive
Newton-Euler dynamics, Lagrangian function, manipulator inertia matrix,
and generalized forces are introduced and applied for derivation of dynamic
equations of motion.
Part III “Control,” presents the floating time technique for time-optimal
control of robots. The outcome of the technique is applied for an openloop control algorithm. Then, a computed-torque method is introduced, in
which a combination of feedforward and feedback signals are utilized to
render the system error dynamics.
Method of Presentation
The structure of presentation is in a "fact-reason-application" fashion.
The "fact" is the main subject we introduce in each section. Then the
reason is given as a "proof." Finally the application of the fact is examined
in some "examples." The "examples" are a very important part of the book
because they show how to implement the knowledge introduced in "facts."
They also cover some other facts that are needed to expand the subject.
Preface
xiii
Prerequisites
Since the book is written for senior undergraduate and first-year graduate
level students of engineering, the assumption is that users are familiar with
matrix algebra as well as basic feedback control. Prerequisites for readers
of this book consist of the fundamentals of kinematics, dynamics, vector
analysis, and matrix theory. These basics are usually taught in the first
three undergraduate years.
Unit System
The system of units adopted in this book is, unless otherwise stated,
the international system of units (SI). The units of degree (deg) or radian
( rad) are utilized for variables representing angular quantities.
Symbols
• Lowercase bold letters indicate a vector. Vectors may be expressed in
an n dimensional Euclidian space. Example:
,
,
,
r
p
ω
,
,
,
s
q
α
,
,
,
d
v
²
,
,
,
a
w
θ
b
y
δ
,
,
,
c
z
φ
• Uppercase bold letters indicate a dynamic vector or a dynamic matrix. Example:
F , M , J
• Lowercase letters with a hat indicate a unit vector. Unit vectors are
not bolded. Example:
ı̂
Iˆ
,
,
ĵ
Jˆ
,
,
k̂
K̂
,
,
ê
êθ
,
,
û
êϕ
,
,
n̂
êψ
• Lowercase letters with a tilde indicate a 3 × 3 skew symmetric matrix
associated to a vector. Example:
⎡
⎤
⎡
⎤
0
−a3 a2
a1
0
−a1 ⎦
, a = ⎣ a2 ⎦
ã = ⎣ a3
−a2 a1
0
a3
• An arrow above two uppercase letters indicates the start and end
points of a position vector. Example:
−−→
ON = a position vector from point O to point N
xiv
Preface
• A double arrow above a lowercase letter indicates a 4 × 4 matrix
associated to a quaternion. Example:
⎡
⎤
q0 −q1 −q2 −q3
⎢ q1 q0 −q3 q2 ⎥
←
→
⎥
q = ⎢
⎣ q2 q3
q0 −q1 ⎦
q3 −q2 q1
q0
q = q0 + q1 i + q2 j + q3 k
• The length of a vector is indicated by a non-bold lowercase letter.
Example:
,
r = |r|
a = |a|
,
b = |b|
,
• Capital letters A, Q, R, and T indicate rotation
matrices. Example:
⎡
⎡
⎤
cα
cos α − sin α 0
⎢
0
QZ,α = ⎣ sin α cos α 0 ⎦ , G TB = ⎢
⎣ sα
0
0
1
0
s = |s|
or transformation
⎤
0 −sα −1
1
0
0.5 ⎥
⎥
0 cα 0.2 ⎦
0
0
1
• Capital letter B is utilized to denote a body coordinate frame. Example:
B(oxyz) , B(Oxyz) , B1 (o1 x1 y1 z1 )
• Capital letter G is utilized to denote a global, inertial, or fixed coordinate frame. Example:
G
,
G(XY Z)
,
G(OXY Z)
• Right subscript on a transformation matrix indicates the departure
frames. Example:
TB = transformation matrix from frame B(oxyz)
• Left superscript on a transformation matrix indicates the destination
frame. Example:
G
TB
= transformation matrix from frame B(oxyz)
to frame G(OXY Z)
• Whenever there is no sub or superscript, the matrices are shown in a
bracket. Example:
⎡
⎤
cα 0 −sα −1
⎢ 0 1
0
0.5 ⎥
⎥
[T ] = ⎢
⎣ sα 0 cα 0.2 ⎦
0 0
0
1
Preface
xv
• Left superscript on a vector denotes the frame in which the vector
is expressed. That superscript indicates the frame that the vector
belongs to; so the vector is expressed using the unit vectors of that
frame. Example:
G
r = position vector expressed in frame G(OXY Z)
• Right subscript on a vector denotes the tip point that the vector is
referred to. Example:
G
rP
= position vector of point P
expressed in coordinate frame G(OXY Z)
• Left subscript on a vector indicates the frame that the angular vector
is measured with respect to. Example:
G
B vP
= velocity vector of point P in coordinate frame B(oxyz)
expressed in the global coordinate frame G(OXY Z)
We drop the left subscript if it is the same as the left superscript.
Example:
B
B
vP
B vP ≡
• Right subscript on an angular velocity vector indicates the frame that
the angular vector is referred to. Example:
ω B = angular velocity of the body coordinate frame B(oxyz)
• Left subscript on an angular velocity vector indicates the frame that
the angular vector is measured with respect to. Example:
G ωB
= angular velocity of the body coordinate frame B(oxyz)
with respect to the global coordinate frame G(OXY Z)
• Left superscript on an angular velocity vector denotes the frame in
which the angular velocity is expressed. Example:
B2
G ω B1
= angular velocity of the body coordinate frame B1
with respect to the global coordinate frame G,
and expressed in body coordinate frame B2
Whenever the left subscript and superscript of an angular velocity
are the same, we usually drop the left superscript. Example:
G ωB
≡
G
G ωB
xvi
Preface
• If the right subscript on a force vector is a number, it indicates the
number of coordinate frame in a serial robot. Coordinate frame Bi is
set up at joint i + 1. Example:
= force vector at joint i + 1
measured at the origin of Bi (oxyz)
Fi
At joint i there is always an action force Fi , that link (i) applies on
link (i + 1), and a reaction force −Fi , that link (i + 1) applies on link
(i). On link (i) there is always an action force Fi−1 coming from link
(i − 1), and a reaction force −Fi coming from link (i + 1). Action
force is called driving force, and reaction force is called driven force.
• If the right subscript on a moment vector is a number, it indicates
the number of coordinate frames in a serial robot. Coordinate frame
Bi is set up at joint i + 1. Example:
= moment vector at joint i + 1
measured at the origin of Bi (oxyz)
Mi
At joint i there is always an action moment Mi , that link (i) applies
on link (i + 1), and a reaction moment −Mi , that link (i + 1) applies
on link (i). On link (i) there is always an action moment Mi−1 coming
from link (i−1), and a reaction moment −Mi coming from link (i+1).
Action moment is called driving moment, and reaction moment is
called driven moment.
• Left superscript on derivative operators indicates the frame in which
the derivative of a variable is taken. Example:
G
d
x
dt
G
B
dB
rP
dt
,
dG
rP
dt B
,
If the variable is a vector function, and also the frame in which the
vector is defined is the same as the frame in which a time derivative
is taken, we may use the following short notation,
G
dG
rP =
dt
G
B
,
ṙP
dB
rP =
dt o
B
o ṙP
and write equations simpler. Example:
G
G
v=
d
dt
G
r(t) =
G
ṙ
• If followed by angles, lowercase c and s denote cos and sin functions
in mathematical equations. Example:
cα = cos α
,
sϕ = sin ϕ
Preface
xvi i
• Capital bold letter I indicates a unit matrix, which, depending on
the dimension of the matrix equation, could be a 3 × 3 or a 4 × 4
unit matrix. I3 or I4 are also being used to clarify the dimension of
I. Example:
⎡
⎤
1 0 0
I = I3 = ⎣ 0 1 0 ⎦
0 0 1
• An asterisk F indicates a more advanced subject or example that is
not designed for undergraduate teaching and can be dropped in the
first reading.
• Two parallel joint axes are indicated by a parallel sign, (k).
• Two orthogonal joint axes are indicated by an orthogonal sign, (`).
Two orthogonal joint axes are intersecting at a right angle.
• Two perpendicular joint axes are indicated by a perpendicular sign,
(⊥). Two perpendicular joint axes are at a right angle with respect
to their common normal.
Contents
1 Introduction
1.1 Historical Development . . . . . . . . . . . . . . . . . . . .
1.2 Robot Components . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Link . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Joint . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Manipulator . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 Wrist . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5 End-effector . . . . . . . . . . . . . . . . . . . . . . .
1.2.6 Actuators . . . . . . . . . . . . . . . . . . . . . . . .
1.2.7 Sensors . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.8 Controller . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Robot Classifications . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Geometry . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Workspace . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Actuation . . . . . . . . . . . . . . . . . . . . . . .
1.3.4 Control
. . . . . . . . . . . . . . . . . . . . . . . .
1.3.5 Application . . . . . . . . . . . . . . . . . . . . . .
1.4 Introduction to Robot’s Kinematics, Dynamics, and Control
1.4.1 F Triad . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2 Unit Vectors . . . . . . . . . . . . . . . . . . . . . .
1.4.3 Reference Frame and Coordinate System . . . . . .
1.4.4 Vector Function . . . . . . . . . . . . . . . . . . . .
1.5 Problems of Robot Dynamics . . . . . . . . . . . . . . . . .
1.6 Preview of Covered Topics . . . . . . . . . . . . . . . . . . .
1.7 Robots as Multi-disciplinary Machines . . . . . . . . . . . .
1.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I
Kinematics
2 Rotation Kinematics
2.1 Rotation About Global Cartesian Axes . . . . . . .
2.2 Successive Rotation About Global Cartesian Axes
2.3 Global Roll-Pitch-Yaw Angles . . . . . . . . . . . .
2.4 Rotation About Local Cartesian Axes . . . . . . .
2.5 Successive Rotation About Local Cartesian Axes .
1
2
3
3
3
5
5
6
7
7
7
8
8
13
13
13
14
15
16
16
17
20
20
22
23
24
25
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
40
44
46
50