You are on page 1of 64

1.

OVERVIEW OF ROBOTICS In the treatment presented here, a robot will be


taken to mean an industrial robot, also called a
robotic manipulator or a robotic arm.
What is the definition of a 'robot'?
"A reprogrammable, multifunctional manipulator Example
designed to move material, parts, tools, or The following figure shows an articulated robotic
specialized devices through various programmed arm similar to a human arm. It can be modeled as a
motions for the performance of a variety of tasks" chain of rigid links interconnected by joints.

Where did the word 'robot' come from?


The word 'robot' from the Czech word ‘robota”,
meaning forced labor.

The first industrial modern robots were the


Unimates developed in the late 50's.

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.

2
1.1 AUTOMATION AND ROBOTS over which they are cost-effective continues to
expand at both ends of the production spectrum.
A qualitative comparison of the cost effectiveness
of manual labor, hard automation, and soft 1.1 ROBOTS CLASSIFICATION
automation as a function volume is summarized as
follows: Robots can be classified according to various
criteria such as drive technologies, work envelope
geometries, and motion control methods.

a) Drive Technologies
The two most popular drive technologies are
electric and hydraulic.

• Electric - DC servo motors or DC stepper


motors.

• Hydraulic - for manipulation of substantial


For very low production volumes, manual labor is loads.
the most cost-effective.
One serious drawback of hydraulic-drive robots is
As the production volume increases, robots the lack of cleanliness, a characteristic that is
become more cost-effective than manual labor. important for manufacturing assembly applications.

As the production volume increases still further, it


eventually reaches a point where hard automation
surpasses both manual labor and robots in cost-
effectiveness.
As robots become more sophisticated and less
expensive, the range of production volumes [v1 , v2 ]

3 4
b) Work-Envelope Geometries The particular combination of revolute and
prismatic joints for the three major axes determines
The end-effector, or tool, of a robotic manipulator the geometry of the work envelope.
is secured to the wrist of the robot. The gross work
envelope of a robot is defined as the locus of points Robot Work Envelopes Based On Major Axes
that can be reached by the wrist. --------------------------------------------------------------------------
Robot Axis 1 Axis 2 Axis 3 Total
The axes of the first three joints of a robot is the revolute
--------------------------------------------------------------------------
major axes that are used to determine the Cartesian P P P 0
geometry of the work envelope. Cylindrical R P P 1
Spherical R R P 2
The axes of the remaining joints, the minor axes, SCARA R R P 2
are used to established the orientation of the tool. Articulated R R R 3
---------------------------------------------------------------------------
P=Prismatic, R=Revolute
Two basic types of joints are commonly used in
industrial robots: Cartesian-coordinate robot (PPP)

Revolute joints (R) exhibit rotary motion about an Robot with all prismatic joints. The work envelope
axis. They are the most common type of joint. or work volume is a rectangular box.

Prismatic joints (P), exhibit sliding or linear


motion along an axis.

5 6
Clindrical-coordinate robot (RPP)
If the first joint of a Cartesian-coordinate robot is
replaced with a revolute joint (to form the
configuration RPP), this produces a cylindrical-
coordinate robot. The work envelope generated by
this joint configuration is the volume between two
vertical concentric cylinders.

SCARA (RRP)
Like a spherical-coordinate robot, a SCARA robot
(Selective Compliance Assembly Robot Arm) also
has two revolute joints and one prismatic joint (in
the configuration RRP) to position the wrist.
However, for a SCARA robot the axes of all three
joints are vertical.

Spherical-coordinate robot (RRP)


If the second joint of a cylindrical-coordinate robot
is replaced with a revolute joint (so that the
configuration is then RRP), this produces a
spherical-coordinate robot.
The work envelope generated in this case is the
volume between two concentric spheres.

7 8
Articulated-coordinate robot (RRR) • continuous-path motion, where the end-
When all the joints are revolute, this produces an effector must follow a prescribed path in three-
articulated-coordinate robot. The articulated- dimensional space. For example, spraying and
coordinate robot closely resembles the anatomy of arc welding.
the human arm. The motions of the joints create a
complex work envelope. d) Applications
“The word 'robot' from the Czech word ‘robota”,
meaning forced labor”.

Robotic applications often involve simple, tedious,


repetitive tasks such as the loading and unloading
of machines. They also include tasks that must be
performed in harsh or unhealthy environments such
as spray painting and the handling of toxic
materials.

A summary of major industrial applications is as


follows:
c) Motion Control Methods I) Industrial Automation
Another fundamental classification criterion is the
method used to control the movement of the end- • Material handling
effector or tool. The two basic types of movement • Spot welding
are: • Arc welding
• Spray painting and finishing
• point-to-point motion, where the end-effector • Mechanical assembly
moves to a sequence of discrete points in the • Electronic assembly
workspace. For example, spot welding, pick • Material removal
and place applications. • Inspection and testing

9 10
The country that has the largest population of 1.4 ROBOT SPECIFICATIONS
industrial robots is Japan; it is followed by the
United States, West Germany, and Sweden. There are a number of characteristics that allow the
user to specify a robotic manipulators.
------------------------------------------------------------
Characteristics Units
------------------------------------------------------------
Number of axes ----
Load carrying capacity kg
Maximum speed mm/sec
Reach and stroke mm
Tool orientation deg
Repeatability mm
Precision and accuracy mm
II) Others Operating environment ----
• Space and deep-sea exploration ------------------------------------------------------------
• military & police missions
• Pets & Entertainments Number of Axes
• Service Practical industrial robots typically have from four
• Medicine to six axes. A six-axis robot can move its tool to
both an arbitrary position and an arbitrary
orientation within its workspace.
It is possible to have manipulators with more than
six axes. The redundant axes can be used for such
things as reaching around obstacles in the
workspace.

11 12
Capacity and Speed The horizontal stroke represents the radial distance
the wrist can travel.
Load-carrying capacity varies greatly between
robots, from 2.2 kg to 4928 kg. The vertical reach of a robot is the maximum
The maximum tool-tip speed can also vary elevation above the work surface that the wrist
substantially between manipulators, from 92 mounting flange can reach.
mm/sec to 9000 mm/sec.
Similarly the vertical stroke is the total vertical
distance that the wrist can travel.
Reach and Stroke
The reach and the stroke of a robotic manipulator Tool Orientation
are rough measures of the size of the work
If three independent minor axes are available, then
envelope.
arbitrary orientations in a three-dimensional
workspace can be obtained.
A number of conventions are used in the robotics
literature to specify tool orientation. The tool
orientation convention that will be used here is the
yaw-pitch-roll(YPR) system.

The horizontal reach is defined as the maximum


radial distance the wrist can be positioned from the
vertical axis about which the robot rotates.

13 14
Repeatability, Accuracy and Precision
The operating environments within which robots
function depend on the nature of the tasks
performed.

Often robots are used to perform jobs in harsh,


dangerous, or unhealthy environments.

For these applications the robot must be


specifically designed to operate in extreme
temperatures and contaminated air.
Repeatability is a measure of the ability of the
robot to position the tool tip in the same place For example,
repeatedly. On account of such things as backlash
in the gears and flexibility in the links, there will • paint spraying robots - must be covered to
always be some small repeatability error. minimize the contamination of its joints.

Accuracy of a robotic manipulator is a measure of • Clean room robots - used to in the


the ability of the robot to place the tool tip at an semiconductor manufacturing industry for
arbitrarily prescribed location in the work such tasks as the handling of silicon wafers
envelope. and photo masks. The robot must be designed
to be very clean so as to minimize the
Precision of a robotic manipulator is a measure of contamination of work pieces by submicron
the spatial resolution with which the tool can be particles.
positioned within the work envelope. That is, the
smallest distance that the robot tool tip can
move. The resolution is not uniform in the robot
workspace.

Operating Environment

15 16
2 DIRECT KINEMATICS: THE
ARM EQUATION
A robot manipulator is mechanical systems
consisted of links connected by joints.
revolute prismatic
• Actuators drive joints.
• Joints move links. The objective is to control both the position and the
orientation of the tool in three-dimensional space. In
order to achieve that, we must first formulate the
relationship between the joint variables and the
position and the orientation of the tool.

Direct Kinematics
Given: joint variables of a robot
Want: position and orientation of tool with
respect to a coordinate frame attached to the base.
One end of the chain is fixed to a base, while the
other is free to move. The mobile end has a face
plate, with a tool, or end-effector, attached to it.

There are typically two types of joints:


• revolute joints - exhibit rotational motion
about an axis,
• prismatic joints - exhibit sliding motion along
an axis.

18
Illustrating Example Example 2.1
x2

p2x p

x1
p1x

2.2 Coordinate Transformations - Rotations


Let F = { f 1 , f 2 , f 3 } and M = {m1 , m 2 m 3 } be
2.1 Coordinates - Review coordinate frames for R 3 with F orthonormal
Let p be a vector in R n and let X = {x1 , x 2 ,..., x n } coordinate frames in R 3 having the same origin.
be a complete orthonormal set for R n . Then the
coordinates of p with respect to X are:
n
p = ∑ pkX x k
k =1

The kth coordinate of p with respect to X is:


pkX = p • x k 1≤ k ≤ n
where • represents the dot product.

Then, the point p can be expressed with respect to


the F coordinate as
19 20
⎡ p1f ⎤ ⎛ f 1 • m1 f 1 • m2 f 1 • m 3 ⎞ ⎡ p1m ⎤
p = p1f f1 + p2f f 2 + p3f f 3 ⎢ f⎥ ⎜ 2 ⎟⎢ ⎥
⎢ p2 ⎥ = ⎜ f • m f 2 • m2 f 2 • m 3 ⎟ ⎢ p2m ⎥
1

Similarly, the point p can also be expressed with ⎢⎣ p3f ⎥⎦ ⎜⎝ f 3 • m1 f 3 • m2 f 3 • m 3 ⎟⎠ ⎢⎣ p3m ⎥⎦


respect to the M coordinate as
p = p1m m1 + p2m m2 + p3m m3 Fundamental Rotations
If the mobile coordinate frame M is obtained from
We would like to find a 3× 3 matrix R that
the fixed coordinate frame F by rotating M about
transforms the coordinates of pM to the coordinates
one of the unit vectors of F , then the resulting
of expressed with respect to the F coordinate, after
coordinate transformation matrix is called a
the M coordinate has been rotated. That is,
fundamental rotation matrix.
PF = R pM
In the space R 3 there are three possibilities as
shown below:
where PF = [ p1f , p2f , p3f ]T and pM = [ p1m , p2m , p3m ]T.
The matrix R is called a rotation transformation
matrix.
Since
p1f = p • f1 = p1m m1 • f1 + p2m m2 • f1 + p3m m3 • f1

p2f = p • f2 = p1m m1 • f 2 + p2m m2 • f 2 + p3m m3 • f 2

p3f = p • f3 = p1m m1 • f 3 + p2m m2 • f 3 + p3m m3 • f 3

or in matrix form

21 22
a) Rotation of M about f 1 by angle φ : Since
(i) f 1 = m1 ,
Suppose that the mobile coordinate frame M is
(ii) the angle from f 2 to m 2 is φ , as is the
rotated about the f 1 axis of F by an angle φ (in a
angle from f 3 to m 3 ,
right-handed sense).
(iii) the angle from f 2 to m3 is π / 2 + φ ,
(iv) the angle from f 3 to m 2 is − (π / 2 − φ ) ,
then
⎛1 0 0 ⎞
⎜ ⎟
R1 (φ ) = ⎜ 0 cos φ − sin φ ⎟
⎜ 0 sin φ cos φ ⎟⎠

Similarly
b) Rotation of M about f 2 by angle φ :
Next let R1 (φ ) be the resulting coordinate ⎛ cos φ 0 sin φ ⎞
⎜ ⎟
transformation matrix which maps mobile M R2 (φ ) = ⎜ 0 1 0 ⎟
coordinates into fixed F coordinates. Then, from ⎜ − sin φ 0 cos φ ⎟⎠
page 22, we have, ⎝
c) Rotation of M about f 3 by angle φ :
⎛ f 1 • m1 f 1 • m2 f 1 • m3 ⎞
⎜ ⎟ ⎛ cos φ − sin φ 0⎞
R1 (φ ) = ⎜ f 2 • m1 f 2 • m2 f 2 • m3 ⎟ ⎜ ⎟
⎜ f 3 • m1 R3 (φ ) = ⎜ sin φ cos φ
f 3 • m 3 ⎟⎠
0⎟
⎝ f 3 • m2 ⎜ 0
⎝ 0 1 ⎟⎠

Note that there is a simple, consistent pattern to the


structure of the three fundamental rotation matrices.

23 24
• The kth row and the kth column of Rk (φ ) are Example 2.3
identical to the kth row and the kth column of In example 2.2, suppose a point q in F has
the identity matrix I .
coordinates q F = [3,4,0]T . What are the coordinates
• In the remaining 2x2 submatrix, the diagonal of q with respect to the mobile coordinate frame
terms are cos φ , while the off-diagonal terms M?
are ± sin φ . The sign of the off-diagonal term
above the diagonal is (−1) k for the kth π
q M = R1−1 ( )q F
fundamental rotation matrix. 3
⎛1 0 0 ⎞⎛ 3 ⎞ ⎛ 3 ⎞
⎜ ⎟⎜ ⎟ ⎜ ⎟
Example 2.2 = ⎜0 0. 5 0.866 ⎟⎜ 4 ⎟ = ⎜ 2 ⎟
⎜ 0 − 0.866 0.5 ⎟⎜ 0 ⎟ ⎜ − 3.464 ⎟
Suppose that M is rotated about f 1 of F by an ⎝ ⎠⎝ ⎠ ⎝ ⎠
angle φ = π / 3 . If the coordinates of a point p in
M are p M = [2, 0 , 3]T, what are the coordinates
2.3 Composite Rotation
of p in F ?
Fundamental rotation matrices can be multiplied
⎛1 0 0 ⎞⎛ 2 ⎞ ⎛ 2 ⎞
π ⎜ ⎟⎜ ⎟ ⎜ ⎟ together to represent a sequence of rotations about
p F = R1 ( ) p M = ⎜ 0 0.5 − 0.866 ⎟⎜ 0 ⎟ = ⎜ − 2.598 ⎟ the unit vectors.
3 ⎜ 0.5 ⎠⎟⎝⎜ 3 ⎟⎠ ⎜⎝ 1.5 ⎟⎠
⎝ 0 0.866
Inverse Rotation Transformation Multiple rotations of this form is called composite
rotations.
The coordinate transformation matrix which maps
F coordinates into M coordinates is given by R −1 , Since matrix multiplications do not commute, the
where R −1 = R T . order of sequence of performing rotations is
important.
The composite rotation matrix can be obtained from
following simple rules:

25 26
Algorithm: Composite Rotations
Initially, both coordinate frames F and M are
coincident, hence the rotation matrix is R = I .
1. If M is to be rotated by an amount φ about
the kth axis of F , then premultiply R by
Rk (φ ) .
2. If M is to be rotated by an amount φ about its
own kth axis, then postmultiply R by Rk (φ ) .
If there are more fundamental rotations to be
performed, go to step 1; else, stop.
The resulting composite rotation matrix R maps Let YPR(θ ) represent the composite rotation matrix
mobile M coordinates into fixed F coordinates. obtained by rotating a mobile coordinate frame
Example 2.4 M = {m1 , m 2 , m 3 } first about unit vector f 1 with a
yaw of θ1 , then about the unit vector f 2 with a pitch
If M is rotated by an angle β about the 2nd axis of F,
followed by a rotation of angle θ about the 3rd axis of θ 2 , and finally about unit vector f 3 with a roll of
of M, followed by a rotation of angle α about the 1st θ3.
axis of M, the composite matrix that represents a
sequence of rotations is: Then resulting composite yaw-pitch-roll matrix
YPR(θ ) maps M coordinates into F coordinates and
R(θ ) = R2 ( β ) I R3 (θ ) R1 (α ) .
is given by:
Yaw-Pitch-Roll Transformation
Using composite rotations, an arbitrary orientation YPR(θ ) = R3 (θ 3 ) R2 (θ 2 ) R1 (θ1 ) I
for the robotic tool can be established.
⎛ cosθ 3 − sin θ 3 0⎞ ⎛ cosθ 2 0 sin θ 2 ⎞
⎜ ⎟ ⎜ ⎟
= ⎜ sin θ 3 cosθ 3 0⎟x ⎜ 0 1 0 ⎟
⎜ 0 1 ⎟⎠ ⎜ − sin θ 0 cosθ 2 ⎟⎠
⎝ 0 ⎝ 2

27 28
⎛1 0 0 ⎞ Example 2.5
⎜ ⎟
x ⎜ 0 cosθ 1 − sin θ 1 ⎟ Suppose the point p at the tool tip has mobile
⎜ 0 sin θ cosθ 1 ⎟⎠ coordinates p M = [0, 0, 0.6]T . Find p F following
⎝ 1

the yaw-pitch-roll transformation.


⎛ C 2 C3 S1S 2C3 − C1S 3 C1S 2C3 + S1S 3 ⎞
⎜ ⎟ p F = R p M = [0.6, 0, 0]T
= ⎜ C2 S 3 S1S 2 S3 + C1C3 C1S 2 S3 − S1C3 ⎟
⎜−S ⎟
⎝ 2 S1C2 C1C2 ⎠
2.4 Homogeneous Coordinates
where S k = sin θ k and C k = cosθ k .
In addition to the rotation, there is another
Example 2.5 transformation, translation. Since a 3 x 3 matrix
does not give any provision for translation, a fourth
Suppose we rotate the tool about the fixed axes coordinate is introduced to a position vector in a 3
starting with a yaw of π / 2 , followed by a pitch of dimensional space to form:
− π / 2 and, finally, a roll of π / 2 . What is the
resulting composite rotation matrix? q = [q1 , q2 , q3 , 1]T .

We say that the position vector q is expressed in


⎛0 0 1⎞ homogeneous coordinates.
π π π ⎜ ⎟
R = R3 ( ) R2 (− ) R1 ( ) = ⎜ 0 − 1 0 ⎟
2 2 2 ⎜ ⎟ A 4x4 homogeneous transformation matrix T is
⎝1 0 0⎠ defined as
⎛ rotation translation ⎞
T =⎜ R p ⎟
⎜ 0 1 ⎟⎠

• The 3x3 rotation matrix represents the
orientation of the mobile coordinate frame
relative to the fixed reference frame.
29 30
Fundamental Homogeneous Translation
• The 3x1 column vector p is a translation
vector to represent the position of the origin of The power of homogeneous coordinates lies in the
the mobile coordinate frame relative to the fact that matrices can also be used to represent
fixed reference frame. translations.

For example, let F and M be initially coincident,


and the origin of M is translated by an amount p k
along the kth unit vector of F for 1 ≤ k ≤ 3 . Then
this operation is represented by a 4x4 matrix
Tran( p ) as:
⎛1 0 0 p1 ⎞
⎜ ⎟
⎜0 1 0 p2 ⎟
Tran( p ) = ⎜
0 0 1 p3 ⎟
⎜⎜ ⎟
⎝0 0 0 1 ⎟⎠

2.4.1 Fundamental Translations and Rotations We refer to Tran( p ) as the fundamental


homogeneous translation matrix. Note that the
The fundamental operations of translation and translation vector is p, while the 3x3 rotation
rotation can each be regarded as important special
matrix R has been set to the identity matrix I .
cases of the general 4x4 homogeneous
transformation matrix.
Example 2.6
Suppose q M = [0, 0, 10, 1]T . The mobile M is
translated 5 units along f 1 and -3 units along f 2
axis. Then the homogeneous transformation matrix
is

31 32
⎛1 0 0 5 ⎞ ⎛ 0⎞
⎜ ⎟ ⎜ ⎟
⎜0 1 0 − 3⎟ R (φ )
Rot (φ , k ) = ⎜ k
0⎟
Tran( p ) = ⎜ for 1 ≤ k ≤ 3
0 0 1 0 ⎟ ⎜ 0⎟
⎜⎜ ⎟ ⎜0 0 0
0 0 1 ⎟⎠ ⎝ 1 ⎟⎠
⎝0
It follows that the homogeneous coordinates of the Note that the translation vector p in each case has
point q relative to the reference frame F are given been set to zero.
by:
We refer to Rot (φ , k ) as the kth fundamental
⎛1 0 0 5 ⎞⎛ 0 ⎞ ⎛ 5 ⎞ homogeneous rotation matrix.
⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜0 1 0 − 3 ⎟⎜ 0 ⎟ ⎜ − 3 ⎟
q F = Tran( p ) q M =⎜ = Composite homogeneous rotation matrices are then
0 0 1 0 ⎟⎜10 ⎟ ⎜ 10 ⎟ built up from the fundamental homogeneous
⎜⎜ ⎟⎜ ⎟ ⎜ ⎟
⎝0 0 0 1 ⎟⎠⎜⎝ 1 ⎠⎟ ⎜⎝ 1 ⎟⎠ rotation matrices.
Finally, the physical coordinates of the point q Example 2.6
relative to the reference frame F are q = [5,−3,10]T .
Given q M = [0, 0, 10, 1]T . Suppose initially M
Exercise: Inverse Translation. Verify that the coincident with F and M is rotated by π / 4 radians
inverse of the fundamental homogeneous translation about the first unit vector of F , the resulting
matrix Tran( p ) always exists and is given by: homogeneous coordinate transformation matrix is:

Tran −1 ( p ) = Tran(− p )
⎛ 0 ⎞ ⎜⎛ 1 0
π
0
π
0⎞

⎜ π ⎟ − sin
0 ⎟ ⎜⎜
0 cos 0⎟
π ⎜ R1 ( )
Fundamental Homogeneous Rotation Rot ( ,1) = 4 = 4
π π
4 ⎟
4 ⎜ 0 ⎟ ⎜ 0 sin cos 0⎟
If we rotate M by an amount φ about the kth unit ⎜0 0 0
⎝ 1 ⎟⎠ ⎜⎜ 0 4 4 ⎟
1 ⎟⎠
vector of F , then in terms of homogeneous ⎝ 0 0
coordinates, this operation can be represented by a
4x4 matrix Rot (φ , k ) as:

33 34
⎛1 0 0 0⎞ 2.4.2 Composite Homogeneous Transformations
⎜ ⎟
⎜ 0 0.707 − 0.707 0⎟
=⎜ A sequence of individual rotations and translations
0 0.707 0.707 0⎟
⎜⎜ ⎟ can represented as a product of fundamental
⎝0 0 0 1 ⎟⎠ homogeneous transformation matrices.
Hence the homogeneous coordinates of the point q
Algorithm: Composite Homogeneous
in the fixed coordinate frame F following the Transformations
rotation are:
π
q F = Rot ( , 1)q M Initially, the orthonormal coordinate frames F and
4 M coincident and the transformation matrix is set
⎛1 0 0 0 ⎞⎡ 0 ⎤ ⎡ 0 ⎤ as T = I .
⎜ ⎟
⎜ 0 0.707 − 0.707 0 ⎟⎢ 0 ⎥ ⎢− 7.07 ⎥
=⎜ ⎢ ⎥= ⎢ ⎥ 1. If the mobile M is to be rotated about or
0 0.707 0.707 0 ⎟ ⎢10⎥ ⎢ 7.07 ⎥ translated along a unit vector of the fixed F ,
⎜⎜ ⎟⎢ ⎥ ⎢ ⎥
⎝0 0 0 1 ⎟⎠ ⎣ 1 ⎦ ⎣ 1 ⎦ premultiply the homogeneous transformation
matrix T by the appropriate fundamental
Finally, the physical coordinates of the point q in homogeneous rotation or translation matrix.
the fixed coordinate frame F are 2. If M is to be rotated about or translated along
q = [0,−7.07,7.07]T . one of its own unit vectors, postmultiply T by
the appropriate fundamental homogeneous
Exercise: Inverse Rotation. Verify that the inverse rotation or translation matrix.
of the fundamental homogeneous rotation matrix
Rot (φ , k ) always exists and is given by: If there are more fundamental rotations or
translations to be performed, go to step 2; otherwise,
Rot −1 (φ , k ) = Rot ( −φ , k ) = Rot T (φ , k ) for 1 ≤ k ≤ 3 stop.
The resulting composite homogeneous
transformation matrix T maps mobile M
coordinates into fixed F coordinates.

35 36
Example 2.7 Example 2.8
let F = { f 1 , f 2 , f 3 } and M = {m1 , m 2 , m 3 } be two Suppose we repeat the transformation of Example
initially coincident fixed and mobile orthonormal 2.7 but the order of the operations reversed.
coordinate frames, respectively. Suppose we Suppose we first rotate M about f 3 by π radians
translate M along f 2 by 3 units and then rotate M and then translate M along f 2 by 3 units. Find m1
about f 3 by π radians. Find m1 with respect to F with respect to F after the composite transformation.
after the composite transformation.
T = Tran(3 f 2 ) Rot (π ,3) I
⎛1 0 0 0 ⎞⎛ − 1 0 0 0⎞ ⎛ −1 0 0 0⎞
T = Rot (π ,3)Tran(3 f 2 ) I ⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜0 1 0 3 ⎟⎜ 0 − 1 0 0⎟ ⎜ 0 −1 0 3⎟
=⎜ =

⎛ −1 0 0 0 ⎞⎛ 1
⎟⎜
0 0 0⎞ ⎛ −1 0
⎟ ⎜
0 0 ⎞
⎟ 0 0 1 0 ⎟⎜ 0 0 1 0⎟ ⎜ 0 0 1 0⎟
⎜⎜ ⎟⎟⎜⎜ ⎟⎟ ⎜⎜ ⎟
⎜ 0 −1
=⎜
0 0 ⎟⎜ 0 1 0 3⎟ ⎜ 0 −1
=
0 − 3⎟ ⎝0 0 0 1 ⎠⎝ 0 0 0 1⎠ ⎝ 0 0 0 1 ⎟⎠
0 0 1 0 ⎟⎜ 0 0 1 0⎟ ⎜ 0 0 1 0 ⎟
⎜⎜ ⎟⎜ ⎟⎟ ⎜⎜ ⎟ Thus, m1 = [−1,3,0]T with respect to F.
⎝0 0 0 1 ⎟⎠⎝⎜ 0 0 0 1⎠ ⎝ 0 0 0 1 ⎟⎠
⎛−1 0 0 0 ⎞ ⎛ 1 ⎞ ⎛ −1⎞
⎜ ⎟⎜ ⎟ ⎜ ⎟
0 −1 0 − 3⎟ ⎜ 0 ⎟ ⎜ − 3⎟
T m1 = ⎜⎜ =
0 0 1 0 ⎟ ⎜0⎟ ⎜ 0 ⎟
⎜⎜ ⎟⎜ ⎟ ⎜ ⎟
⎝0 0 0 1 ⎟⎠ ⎜⎝ 1 ⎠⎟ ⎝⎜ 1 ⎠⎟

Thus, m1 with respect to F after the composite


transformation is [−1,−3,0]T .
Inverse Homogeneous Transformation
The inverse of T is:

⎛ RT − RT p ⎞
T −1 = ⎜⎜ ⎟
⎝0 0 0 1 ⎟⎠
Example 2.9

37 38
Refer to the two frames M and F shown as
follows: ⎛0 1 0 − 2 ⎞ ⎡0 ⎤ ⎡ − 1 ⎤
⎜ ⎟
⎜−1 0 0 0 ⎟ ⎢1 ⎥ ⎢ 0 ⎥
−1 2
T f =⎜ ⎢ ⎥=⎢ ⎥
0 0 1 − 2 ⎟ ⎢0 ⎥ ⎢ − 2 ⎥
⎜⎜ ⎟
⎝0 0 0 1 ⎠⎟ ⎢⎣1⎥⎦ ⎢⎣ 1 ⎥⎦

Thus, f 2 with respect to M is [−1, 0, −2]T .

2.5 Link Coordinates

Recall that a robotic arm can be modeled as a chain


of links interconnected by revolute or prismatic
Suppose the homogeneous coordinate joints.
transformation matrix which maps M into F is The objective of this section is to systematically
⎛ 0 −1 0 0⎞ assign coordinate frames to each of those links. A
⎜ ⎟
⎜1 0 0 2⎟ general arm equation which represents the
T =⎜
0 0 1 2⎟ kinematic motion of the links is to be obtained.
⎜⎜ ⎟⎟
⎝0 0 0 1⎠
Find the homogeneous coordinate transformation
which maps F into M and use it to find f 2 with
respect to M.

⎛0 1 0 − 2⎞
⎜ ⎟
⎜−1 0 0 0 ⎟
T −1 =⎜
0 0 1 − 2⎟
⎜⎜ ⎟
⎝0 0 0 1 ⎟⎠

39 40
2.5.1 Kinematic parameters For a revolute joint, the joint angle θ k is variable
Every adjacent pair of links is connected by either a and the joint distance d k is fixed.
revolute or a prismatic joint. For a prismatic joint, the joint distance d k is
variable and the joint angle θ k is fixed.

Just as there is a joint connecting adjacent links,


there is a link between successive joints.

The links k-1 and k are connected by the joint k. The


axis of joint k is denoted by z k −1 .
The relative position and orientation of two
The link k connects joint k to k+1. The axis x k is a
successive links can be specified by two joint
common normal between the axes of joint k and
parameters.
joint k+1.
• The first joint parameter, θ k , is called the joint The relative position and orientation of the axes of
angle. It is the angle between axis x k −1 and axis two successive joints can be specified by two link
x k about axis z k −1. (angle between links) parameters.
• The first link parameter, ak , is called the link
• The second joint parameter, d k , is called the
length. It is the distance between axis z k −1 and
joint distance. It is the distance between link
axis z k along axis x k . (Distance between
axis x k −1 and link axis x k along axis z k −1. joints)

41 42
• The second link parameter, α k , is called the 2.5.2 Normal, Sliding, and Approach Vectors
link twist angle. It is the angle between axis
z k −1 and axis z k about axis x k .

For an n-axis robotic manipulator, the 4n kinematic


parameters constitute the minimal set needed to
specify the kinematic configuration of the robot.
For each axis, only one parameter is the joint
variable.
The orientation of the tool can be expressed in
Kinematic Parameters rectangular coordinates by a rotation matrix
---------------------------------------------------------------------------
R = [r 1 , r 2 , r 3 ], where the three columns of R
Arm Symbol Revolute
Prismatic correspond to the
parameter joint (R) Joint (P)
--------------------------------------------------------------------------- • normal vector,
Joint angle θ Variable Fixed • sliding vector, and
Joint distance d Fixed Variable • approach vectors,
Link length a Fixed Fixed
Link twist angle α Fixed Fixed respectively. The origin of the {r 1 , r 2 , r 3 } frame is
---------------------------------------------------------------------------
usually placed at the tool tip.
The approach vector r 3 is aligned with the tool roll
axis, along 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 tool.
The normal vector r 1 is orthogonal to both the
approach and sliding vectors and completes a right-
handed orthonormal coordinate frame.

43 44
2.5.3 The Denavit-Hartenberg (D-H) Algorithm: D-H Representation
Representation
Number the joints from 1 to n starting with the base
To describe the transnational and rotational and ending with the tool yaw, pitch, and roll, in that
relationship between adjacent links, Denavit and order.
Hartenberg (1955) proposed a systematic notation
Assign a right-handed orthonormal coordinate
for assigning right-handed orthonormal coordinate
frames to each link. frame L0 to the robot base, making sure that z 0
aligns with the axis of joint 1. Set k=1.
Once these link-attached coordinate frames are
assigned, transformations between adjacent 1. The z k axis aligns with the axis of joint k+1.
coordinate frames can then be represented by a
single standard 4x4 homogeneous coordinate 2. The intersection of the z k and z k −1 axes is
transformation matrix. selected as the origin of Lk . If they do not
intersect, use the intersection of z k with a
To assign coordinate frames to the links of the common normal between z k and z k −1.
robotic manipulators, let Lk be the frame associated
with link k. That is: 3. Select x k to be orthogonal to both z k and z k −1.
If z k and z k −1 are parallel, point x k away from
Lk = {x k , y k , z k } 0 ≤ k ≤ n z k −1.
Coordinate frame Lk will be attached to the distal 4. Select y k to form a right-handed orthonormal
end of link k for 0 ≤ k ≤ n . This puts the last coordinate frame Lk .
coordinate frame, at the tool tip.
Set k = k+1. If k < n, go to step 1; else, continue.
Set the origin of Ln at the tool tip. Align z n with the
approach vector, y n with the sliding vector, and x n
with the normal vector of the tool.

45 46
Example 2.10: Microbot Alpha II

Alpha II is a five-axis articulated-coordinate robot.

Here the dotted diagonal line between the origin of


L3 and the origin of L4 indicates that the origins of
these two frames coincide.
Applying steps 1 to 4 of the D-H algorithm, we get
Note that the assignment of link coordinates
the link-coordinate diagram shown in the following
dictated by D-H algorithm is not unique. For
Figure:
example, the directions of any of the z axes could
be reversed.

49 50
The set of kinematic parameters for the Alpha II transforms tool coordinates into base coordinates.
robot is shown in the following Table: This composite transformation matrix is called the
arm matrix.
-----------------------------------------------------
Axis θ d a α
2.6.1 The Arm Matrix
-----------------------------------------------------
1 θ1 d1 0 −π / 2 Four steps are required to construct the
2 θ2 0 a2 0 homogeneous transformation matrix which maps
3 θ3 0 a3 0 frame k coordinates into frame k-1 coordinates.
4 θ4 0 0 −π / 2 Each of these steps is associated with one of the
four kinematic parameters summarized in the Table.
5 θ5 d5 0 0
----------------------------------------------------- To determine the transformation matrix, we
Since the Alpha II is a five-axis articulated- successively rotate and translate coordinate frame k-
coordinate robot, the vector of joint variables is the 1 to render it coincident with coordinate with
5x1 vector θ . coordinate frame k. Using the D-H algorithm, this
involves the four fundamental operations:
Note that 9 of the 15 fixed parameters are zero,
which makes the Alpha II robot kinematically Transferring Frame k-1 to Frame k
simple. --------------------------------------------------------------
Operation Description
2.6 The Equation --------------------------------------------------------------
1 Rotate Lk −1 about z k −1 by θ k .
Once a set of link coordinate is assigned, we can
2 Translate Lk −1 along z k −1 by d k .
then transform from coordinate frame k to
coordinate frame k-1 using a homogeneous 3 Translate Lk −1 along x k −1 by a k .
coordinate transformation matrix. 4 Rotate Lk −1 about x k −1 by α k
By multiplying several of these coordinate --------------------------------------------------------------
transformation matrices together, we arrive at a
composite coordinate transformation matrix which

51 52
Tkk−1 (θ k , d k , ak ,α k ) = Rot (θ k ,3)Tran(d k i 3 )Tran(ak i1 ) Rot (α k ,1)

Define Sx = sin x and Cx = cos x .

Link-Coordinate Transformation
Let {L0 , L1 ,..., Ln} be a set of link-coordinate frames
assigned by D-H Algorithm, and let q k and q k −1 be
Operation 1 makes axis x k−1 parallel to axis x k . the homogeneous coordinates of a point q with
respect to frames Lk and Lk −1 , respectively. Then,
Operation 2 makes x k−1 aligned (collinear) with x k .
for 1 ≤ k ≤ n , we have q k −1 = Tkk−1q k , where:

⎛ Cθ k − C α k Sθ k Sα k Sθ k a k Cθ k ⎞
⎜ ⎟
⎜ Sθ Cα k C θ k − Sα k Cθ k a k Sθ k ⎟
Tkk−1 =⎜ k
0 Sα k Cα k dk ⎟
⎜⎜ ⎟
⎝ 0 0 0 1 ⎟⎠
Operation 3 makes the origins of frames Lk −1 and Lk
Its inverse transformation which maps link k-1
coincide. coordinates into link k-coordinates is given as:
Operation 4 makes axis z k −1 align with axis z k .
⎛ Cθ k Sθ k 0 − ak ⎞
⎜ ⎟
The four fundamental operations can be interpreted ⎜ − C α k Sθ k Cα k Cθ k Sα k − d k Sα k ⎟
Tkk −1 =⎜
as a rotation or a translation of Lk −1 along one of its S α k Sθ k − Sα k C θ k Cα k − d k Cα k ⎟
own unit vectors. Hence, we can postmultiply I by ⎜⎜ ⎟⎟
the four fundamental homogeneous transformation ⎝ 0 0 0 1 ⎠
matrices to get the composite homogeneous
transformation matrix as follows:

53 54
Recall that only one of the four parameters is joint the transformation matrix, as in the following
variable, θ k for revolute joints and d k for prismatic example:
joints. To avoid treating two cases separately, we
base
Ttool ( q ) = [ Tbase
tool
( q )]−1
introduce a joint type parameter as
2.6.2 The Arm Equation
⎧1 joint k revolute
ξk = ⎨
⎩0 joint k prismatic Once an expression for the arm matrix is available,
we can obtain the arm equation:
Thus the kth joint variable can be defined as
qk = ξ kθ k + (1 − ξ k )d k . ⎛ R(q) p(q) ⎞
tool
Tbase (q) = ⎜ ⎟
⎝0 0 0 1 ⎠
The transformation from tool coordinates to base
coordinate frame attached to the base is For each value of the joint vector q , the arm matrix
tool
T tool
(q ) = T ( q1 )T ( q2 ) ⋅ ⋅ ⋅ T (qn ) = T (q )
1 2 n n Tbase ( q ) can be evaluated.
base 0 1 n −1 0

The 3x3 matrix R(q) specifies the orientation of the


In order to compute the arm matrix, it is often tool, while the 3x1 matrix p(q ) specifies the
helpful to partition the problem at wrist. That is, position of the tool tip.
tool
Tbase (q ) = Tbase
wrist tool
(q1 , q2 , q3 )Twrist (q4 , q5 ,..., qn ) The three columns of R(q) indicate the directions of
the three unit vectors of the tool frame with respect
Notice that the diagonal identifiers in the composite to the base frame. Similarly, p(q ) specifies the
transformation cancel. coordinates of the tool tip with respect to the base
frame.
If one interchanges the subscript and superscript of
a given transformation, this changes the direction of
the transformation. Consequently, interchanging the
subscript and superscript is equivalent to inverting

55 56
The solution of the direct kinematics problem in the ⎛ C1C23 − C1S 23 − S1 C1 (a2C2 + a3C23 ) ⎞
above equation is shown schematically in following ⎜ ⎟
⎜SC − S1S 2 C1 S1 (a2C2 + a3C23 ) ⎟
figure: =⎜ 1 2
− S 23 − C23 0 d1 − a2 S 2 − a2 S 23 ⎟
⎜⎜ ⎟⎟
⎝ 0 0 0 1 ⎠
Here, to simplify the notation, we have used
C kj = cos(qk + q j ) and S kj = sin( qk + q j ) .

Next, to compute the tool coordinates relative to the


wrist, we have
tool
Twrist = T34T45
⎛ C4 0 − S 4 0 ⎞ ⎛ C5 − S 5 0 0 ⎞
⎜ ⎟⎜ ⎟
⎜S 0 C4 0 ⎟ ⎜ S 5 C5 0 0 ⎟
=⎜ 4
0 −1 0 0⎟ ⎜ 0 0 1 d5 ⎟
⎜⎜ ⎟⎟ ⎜⎜ ⎟
0 1 ⎠⎟
Example 2.11: Microbot Alpha II
⎝0 0 0 1⎠ ⎝ 0 0
Refer to the link-coordinate diagram in example ⎛ C 4 C5 − C 4 S 5 − S4 − d5 S4 ⎞
2.10. Using the notation C k = cos qk and S k = sin qk ⎜ ⎟
⎜ S C − S 4 S5 C4 d 5C 4 ⎟
and some trigonometric identities, we have, =⎜ 4 5
− S5 − C5 0 0 ⎟
⎜⎜ ⎟
= T01T12T23 1 ⎟⎠
wrist
Tbase
− S1 − S2
⎝ 0 0 0
⎛ C1 0 0 ⎞ ⎛ C2 0 a2C2 ⎞
⎜ ⎟⎜ ⎟
= ⎜⎜ 1
S 0 C1 0 ⎟ ⎜ S2 C2 0 a2 S 2 ⎟
0 −1 0 d2 ⎟ ⎜ 0 0 1 0 ⎟
To find the arm matrix, we multiply the two wrist-
⎜⎜ ⎟⎜ ⎟ partitioned factors together.
⎝0 0 0 1 ⎟⎠ ⎜⎝ 0 0 0 1 ⎟⎠
⎛ C3 − S 3 0 a3C3 ⎞ tool
Tbase (q ) = Tbase
wrist tool
Twrist
⎜ ⎟
⎜ S 3 C3 0 a3 S 3 ⎟
⎜ 0 0 1 0 ⎟
⎜⎜ ⎟
⎝ 0 0 0 1 ⎟⎠

57 58
For Microbot Alpha II, d1 = 215mm, d5 This yields the set of kinematic parameters.
=129.5mm, a2 = a3 = 177.8mm. Hence ----------------------------------------------------------------
T tool
(q ) = Axis θ d a α
base
----------------------------------------------------------------
⎛ C1C234C5 + S1S5

− C1C234 S5 + S1C5 − C1S234 C1 (117.8C2 + 177.8C23 − 96.5S234 ) ⎞
⎟ 1 q1 d1 0 −π / 2
⎜ S1C234C5 − C1S5 − S1C234 S5 − C1C5 − S1S234 S1 (177.8C2 + 117.8C23 − 96.5S 234 ) ⎟
⎜ − S234C5 S234 S5 − C234 215.9 − 177.8S 2 − 177.8S 23 − 96.5C234 ⎟
2 q2 0 a2 0
⎜⎜ ⎟⎟ 3 q3 0 a3 0
⎝ 0 0 0 1 ⎠
4 q4 0 a4 −π / 2
Here we use the notations Cijk = cos(qi + q j + qk )
5 q5 d5 0 0
and S ijk = sin(qi + q j + qk ) . ------------------------------------------------------------------
Note that the d 5 represents the tool length, which
Example 2.12: A Five-axis articulated robot may vary from robot to robot depending upon which
Applying steps 1 to 4 of the D-H algorithm to the type of tool is installed.
Rhino XR-3 robot, we get the following diagram of
link coordinates The Arm Matrix
wrist
Tbase = T01T12T23
=
⎛C 0 − S1 0 ⎞⎛ C 2 − S2 0 a 2 C 2 ⎞⎛ C 3 − S3 0 a 3 C1 ⎞
⎜ 1 ⎟⎜ ⎟⎜ ⎟
⎜ S1 0 C1 0 ⎟⎜ S 2 C2 0 a 2 S 2 ⎟⎜ S 3 C3 0 a3 S 3 ⎟
⎜0 −1 0 d 1 ⎟⎜ 0 0 1 0 ⎟⎜ 0 0 1 0 ⎟
⎜⎜ ⎟⎜ ⎟⎜ ⎟
⎝0 0 0 1 ⎠⎟⎜⎝ 0 0 0 1 ⎠⎟⎜⎝ 0 0 0 1 ⎟⎠
⎛ C1C 23 − C1 S 23 − S1 C1 ( a 2 C 2 + a3C 23 ) ⎞
⎜ ⎟
⎜SC − S1 S 2 C1 S 1(a 2 C 2 + a3C 23 ) ⎟
=⎜ 1 2
− S 23 − C 23 0 d1 − a 2 S 2 − a3 S 23 ⎟
⎜⎜ ⎟⎟
⎝ 0 0 0 1 ⎠

59 60
Since there is no tool yaw motion for this five-axis Example 2.13
robot, the wrist frame corresponds to the tool pitch
A four-axis SCARA robot (ADEPT ONE)
frame L3 .
Next we determine the position and orientation of
the tool relative to the wrist:
⎛ C 4 0 − S 4 a 4 C 4 ⎞⎛ C5 − S 5 0 0 ⎞
⎜ ⎟⎜ ⎟
⎜ S4 0 C 4 a 4 S 4 ⎟⎜ S 5 C5 0 0 ⎟
Twrist = T3 T4 = ⎜
tool 4 5

0 −1 0 0 ⎟⎜ 0 0 1 d5 ⎟
⎜⎜ ⎟⎟⎜⎜ ⎟
⎝ 0 0 0 1 ⎠⎝ 0 0 0 1 ⎟⎠

⎛ C 4 C5 − C4 S5 − S4 a4C4 − d 5 S 4 ⎞
⎜ ⎟
⎜S C − S 4 S5 C4 a4 S 4 + d 5C 4 ⎟
=⎜ 4 5 ⎟
− S5 − C5 0 0
⎜⎜ ⎟⎟
⎝ 0 0 0 1 ⎠
tool
Another important type of robotic manipulator is the
The arm matrix Tbase (q ) for the five-axis articulated- four-axis horizontal-jointed robot, or SCARA robot.
coordinate robot is:
⎛ C1C234C5 + S1S5 − C1C234 S5 + S1C5 − C1S 234 C1 (a2C2 + a3C23 + a4C234 − d5 S 234 ) ⎞ Link-Coordinate Diagram
⎜ ⎟
⎜ S1C234C5 − C1S5 − S1C234 S5 − C1C5 − S1S 234 S1 (a2C2 + a3C23 + a4C234 − d5 S 234 ) ⎟
⎜ − S 234C5 S 234 S5 − C234 d1 − a2 S2 − a3S23 − a4 S234 − d5C234 ⎟
⎜⎜ ⎟⎟ Apply steps 1 to 4 of the D-H algorithm and obtain
⎝ 0 0 0 1 ⎠
the link-coordinate diagram.

61 62
----------------------------------------------------
Axis θ d a α
-----------------------------------------------------
1 q1 d1 a1 π
2 q2 0 a2 0
3 0 q3 0 0
4 q4 d4 0 0
-----------------------------------------------------
The values for the joint distances and link lengths
of the Adept One robot are as follows:
d = [877,0.0, d 3 ,200]T mm
a = [425,375,0.0,0.0]T mm
Here a tool length of d 4 = 200 mm has been
assumed.
In this case the vector of joint variables is
q = [θ1 , θ 2 , d 3 , θ 4 ]T . The first two joint variables are The Arm Matrix
revolute variables which establish the horizontal
component of the tool position p . The third joint The arm matrix for the SCARA robot can be
variable is a prismatic variable which determines computed in one step since there are only four axes.
the vertical component of p . Finally, the last joint tool
Tbase = T01T12T23T34
variable is a revolute variable which controls the ⎛ C1 S1 0 a1C1 ⎞⎛ C 2 − S2 0 a 2 C 2 ⎞⎛ 1 0 0 0 ⎞⎛ C 4 − S4 0 0⎞
⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟
tool orientation R . ⎜S − C1 0 a1 S 1 ⎟⎜ S 2 C2 0 a 2 S 2 ⎟⎜ 0 1 0 0 ⎟⎜ S 4 C4 0 0⎟
=⎜ 1
0 0 − 1 d 1 ⎟⎜ 0 0 1 0 ⎟⎜ 0 0 1 q 3 ⎟⎜ 0 0 1 d4 ⎟
⎜⎜ 0 ⎟⎜
1 ⎠⎟⎝⎜ 0
⎟⎜
1 ⎠⎟⎝⎜ 0
⎟⎜
0 0 1 ⎠⎟⎝⎜ 0

0 1 ⎟⎠
⎝ 0 0 0 0 0
This yields the kinematic parameters.

63 64
⎛ C1− 2 S1− 2 0 a1C1 + a 2 C1−2 ⎞⎛ C 4 − S4 0 0⎞ Example
⎜ ⎟⎜ ⎟
⎜S − C1−2 0 a1 S 1+ a 2 S1− 2 ⎟⎜ S 4 C4 0 0⎟
= ⎜ 1− 2 Find the position of the tool tip of the Adept One
0 0 −1 d1 − q3 ⎟⎜ 0 0 1 d4 ⎟
⎜⎜ ⎟⎟⎜⎜ ⎟ robot when the joint variables are
⎝ 0 0 0 1 ⎠⎝ 0 0 0 1 ⎟⎠ q = [π / 4,−π / 3,120, π / 2] .
T

The arm matrix for a four-axes SCARA robot is:


⎛ C1− 2− 4 S1− 2− 4 0 a1C1 + a 2 C1− 2 ⎞ p = [ a1C1 + a2 C1−2 , a1S1 + a2 S1−2 , d1 − q3 − d 4 ]T
⎜ ⎟
⎜S − C1− 2− 4 0 a1 S 1+ a 2 S1− 2 ⎟ = [0.707 a1 − 0.259a2 ,0.707 a1 + 0.966a2 , d1 − d 4 − 120]T
tool
Tbase = ⎜ 1− 2− 4
0 0 − 1 d1 − q3 − d 4 ⎟
⎜⎜ ⎟⎟
⎝ 0 0 0 1 ⎠ = [203.4,662.7,557.0]T mm
Here we use the notations C1−2−4 = cos(q1 − q2 − q4 )
and S1−2−4 = sin(q1 − q2 − q4 ) .

Note that the approach vector is fixed at r3 = − i 3 ,


independent of the joint variables. This is
characteristic of SCARA robots, which are designed
to manipulate objects from directly above. They are
often used in light assembly tasks such as the
insertion of components into circuit boards.

65 66
Chapter 3

3 INVERSE KINEMATICS: SOLVING THE For example, a task of getting the tool to follow a
ARM EQUATION straight-line path or circle. It is then necessary to
find a corresponding trajectory in joint space which
• Solving the direct kinematics problem is will produce the straight-line motion of the tool tip.
equivalent to finding the mapping from joint
space to tool-configuration space
3.1 Inverse Kinematics Problem
• Solving the inverse kinematics problem is
equivalent to finding an inverse mapping from For convenience, we will refer to the position and
tool-configuration space back to joint space. orientation of the tool collectively as the
configuration of the tool.

The inverse kinematic problem is important


because manipulation tasks are naturally
This solution to the direct kinematics problem can
formulated in terms of the desired tool position and
be expressed in the following form:
orientation.
⎛ R p⎞
To command the robot to accomplish the tasks, we tool
Tbase (q ) = ⎜ ⎟
need to know the value of the joint variables q that ⎝0 0 0 1⎠
will produce the desired tool position and where R represents the rotation and p represents
orientation. the translation of the tool frame relative to the base
frame.

68
Chapter 3 Chapter 3

PROBLEM: Inverse Kinematics. 3.2 Tool Configuration


Given a desired position p and orientation R for
In order to develop a solution to the inverse
the tool, find values for the joint variables q which kinematics problem, the desired tool configuration
satisfy the arm equation. must be specified as input data.
Illustrating Example: A single link robot Specifying tool-tip position with a translation
vector p is a natural and convenient technique.
However, specifying tool orientation with a
rotation matrix R is, at least, awkward, because
two-third of the information is redundant.
In this section we introduce an alternative
representation of tool configuration that is more
compact.

3.2.1 Tool-Configuration Vector


Consider the tool orientation information provided
by the approach vector or last column of R .
The approach vector effectively specifies the
direction of the tool, but not the rotation (tool roll
angle), because the roll angle represents a rotation
about the approach vector.

69 70
Chapter 3 Chapter 3

The approach vector r 3 is a unit vector specifying a Definition: Tool-configuration Vector.


direction only. The size or length of the approach Let p and R denote the position and orientation of
vector can be scaled by a positive quantity the tool frame relative to the base frame where qn
without changing the specified direction.
represents the tool roll angle. Then the tool-
This is the key to encoding the tool roll information configuration vector is a vector w in R 6 defined:
into the approach vector to produce a minimal
representation of orientation. ⎛ w1 ⎞ ⎛ p ⎞
w = ⎜⎜ 2 ⎟⎟ = ⎜⎜ ⎟
3⎟
To recover the tool roll angle qn from a scaled ⎝ w ⎠ ⎝ [exp(qn / π )]r ⎠
approach vector, we must use an invertable
function of qn to scale the length of r 3 . • The first three components, w1 = p, represent
the tool-tip position,
The following exponential scaling function is • The last three components,
normally used: w = [exp(qn / π )]r , represent the tool
2 3

q
f (qn ) = exp n orientation.
π
The tool roll angle can be easily recovered from the
Note that f(qn) > 0 and its inverse is well defined. tool-configuration vector w, as can be seen from
the following exercise:
If we scale the approach vector r 3 by f (qn ) , this
yields a compact representation of tool orientation. Exercise: Tool Roll. Show that the tool roll angle
qn can be obtained from the tool-configuration
We then combine this representation of orientation vector w as follows:
with the tool tip position and refer to the resulting qn = π ln( w4 + w5 + w6 )1/ 2
vector in R 6 as a tool-configuration vector.
The tool-configuration vector w provides us with a
more convenient way to specify the desired tool
position and orientation as input data to the inverse
kinematics problem.

71 72
Chapter 3 Chapter 3

3.2.2 Tool Configuration of a Five-Axis the horizontal components of the approach vector,
Articulated Robot w4 / w5 . That is,

Many industrial robots have five axes; some have w4 w1


=
only four. But they are versatile enough to carry w5 w2
out tasks in a well planned work cell.
This yields the following locus of tool
configurations, where β is a constant:
w = [ w1 , w2 , w3 , βw1 , βw2 , w6 ]T

For example, if the tool tip is directly in front of the


robot ( w2 = 0 ), the approach vector must point
forward ( w5 = 0 ).

It is evident that this robot has only five degrees of


freedom, because components w4 and w5 cannot be
specified independently of w1 and w2 .
For example, the part feeders shown in the above
figure can 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, the
approach vector of the tool is constrained to lie in a
vertical plane through the base axis.
Hence, the ratio of the horizontal components of
the tool-tip position, w1 / w2 , must equal the ratio of

73 74
Chapter 3 Chapter 3

3.3.3 Tool Configurations of a Four-Axis The four-axis SCARA robot is a minimal


SCARA Robot configuration for a general-purpose robot. The first
three axes are the major axes used to position the
The most important special case for manipulating tool tip, while the fourth axis is a minor axis used
parts corresponds to approaching parts from to orient the tool by varying the sliding vector.
directly above.
If the last equation is substituted in the general
This includes picking up a part from a horizontal
expression for the tool-configuration vector, this
work surface and placing it down on a horizontal
yields:
work surface.
q4
Consider the four-axis SCARA robot as follows: w = [ p1 , p2 , p3 ,0,0,− exp ]T
π
The four degrees of freedom that are available are
evident from inspection of the last equation, 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 is a practical robot for many
applications.
The tool yaw and pitch angles are fixed in such a
way that the tool always points straight down.
The geometry of a SCARA robot restricts the
approach vector to lie along a vertical line:
r 3 = −i 3

75 76
Chapter 3 Chapter 3

3.3 Inverse Kinematics Analytic Method


The second basic approach is to exploit the
The inverse kinematics problem is more difficult
specific nature of the direct kinematic equations
than the direct kinematics problem because no
to determine an analytical or closed-form
systematic procedure is available.
expression for the solution.
The solution to the inverse kinematics problem can These exact method are considerably faster than the
be approached either, numerical approximation methods, and they can be
used to identify multiple solutions. The main
• numerically or,
drawback of the analytical methods is that they are
• analytically. robot-dependent.
Numerical Method (E6204) 3.3.1 Existence of Solutions
The numerical approaches employ nonlinear 1. The tool tip position p must be within the
programming techniques to invert the tool-
work envelope.
configuration function w( q ) by solving the
2. The tool orientations R must be realizable. If
following nonlinear programming problem:
the robot has fewer than three degrees of
∧ freedom to orient the tool, then whole classes
Minimize: v(q ) = w(q ) − w of orientations are unrealizable.
∧ If we are to have a general solution to the inverse
where w ∈ R 6 is the desired value for the tool kinematics problem, one for which a q can be
configuration. found which generates an arbitrary tool
If a solution can be found within the robot configuration, then the number of unknowns must
workspace such that v(q ) = 0 , then it is a solution at least match the number of independent
to the inverse kinematics problem. constraints. That is:
General manipulation ⇒ n ≥ 6

77 78
Chapter 3 Chapter 3

Robots that are designed with n > 6 are called 3.3.3 Examples
kinematically redundant robots, because they have
We illustrate the analytical solution techniques by
more degrees of freedom than are necessary to
applying it to a few types of robots.
establish arbitrary tool configurations.
Example 3.1: A Five-axis articulated Robot
These extra degrees of freedom add flexibility to (RHINO XR-3)
the manipulator.
The first class of robots are five-axis vertically-
jointed or articulated robots with tool pitch and tool
roll motion as given in example 2.12. The link-
coordinate diagram is displayed here again.

3.3.2 Uniqueness of Solutions


When solutions to the inverse kinematics problem
do exist, typically they are not unique. Indeed,
multiple solutions can arise in a number of ways.

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 developed in Example 2.12.

79 80
Chapter 3 Chapter 3

The tool-configuration vector for the five-axis ---------------------------------------------------------------------


articulated arm is: Case Quadrants atan2(y/x)
---------------------------------------------------------------------
x>0 1,4 arctan(y/x)
⎛ C1 (a2C2 + a3C23 + a4C234 − d 5 S 234 ) ⎞ [sgn(y)] π / 2
⎜ ⎟ x=0 1,4
⎜ S1 ( a2C2 + a3C23 + a4C234 − d 5 S 234 ) ⎟ x<0 2,3 arctan(y/x)+[sgn(y)] π
⎜d −a S −a S −a S −d C ⎟ ---------------------------------------------------------------------
w(q ) = ⎜ 1 2 2 3 23 4 234 5 234

⎜ − [exp( q5 / π )]C S
1 234 ⎟ Elbow Joint
⎜ − [exp(q5 / π )]S1S 234 ⎟ The elbow angle q3 is the most difficult joint
⎜ ⎟
⎝ − [exp(q5 / π )]C234 ⎠ variable to extract, because it is strongly coupled
with the shoulder and tool pitch angles in a
Base Joint vertical-jointed robot.
Since there is no yaw motion, the easiest joint
variable to extract is the base angle q1 . Inspection We begin by isolating an intermediate variable,
q234 , called the global tool pitch angle. Here
of the expressions for w1 and w2 in w(q ) reveals
q 234 = q 2 + q3 + q4 is the tool pitch angle measured
that they have a factor in common. Divide w2 by
w1 and yields the base angle simply: relative to the work surface or x 0 y 0 plane.
Inspection of the last three components of w(q )
q1 = atan2( w2 , w1 ) reveals that − (C1 w4 + S1 w5 ) /( − w6 ) = S 234 / C 234 .
Since the base angle q1 is already known, the global
The function atan2 denotes a four-quadrant version tool pitch angle can then be computed using:
of the arctan function. The atan2 function allows us
to recover angles over the entire range [−π , π ] as q234 = atan2[−(C1 w4 + S1 w5 ),− w6 ]
shown in following Table:
In order to isolate the shoulder and elbow angles,
we define the following two intermediate variables:
b1 = C1 w1 + S1 w2 − a4 C 234 + d 5 S 234
b2 = d1 − a4 S 234 − d 5C 234 − w3

81 82
Chapter 3 Chapter 3

Note that b1 and b2 are constants whose values are This shows that the solution to the inverse
known at this point because q1 and q 234 have kinematics problem is not unique.
already been determined. If we take the expressions
for the components of w(q ) and substitute them in In most instances, we use the elbow-up solution,
the expressions for b1 and b2 , this yields: because this keeps the elbow joint further away
from the work surface. Indeed, for some
b1 = a2 C 2 + a3C 23 -(a) commercial robots, this is the only solution
b2 = a2 S 2 + a3 S 23 -(b) allowed, because of joint limits.

We are now left with two independent expressions Shoulder Joint


involving the shoulder and elbow angles; the Using equations (a) and (b) , we get
coupling with the tool pitch angle has been
removed. The elbow angle can be isolated by b1 = (a2 + a3C3 )C 2 − (a3 S 3 ) S 2
2
computing b . Using trigonometric identities, we b2 = (a2 + a3C3 ) S 2 + (a3 S 3 )C 2
find, after some simplification, that:
Since the elbow angle q3 is known, we get
b = a + 2 a 2 a3 C 3 + a
2 2 2
2 3 (a 2 + a3C3 )b1 + a3 S 3b2
C2 = 2
b
Note that b depends only on the elbow angle q3
( a2 + a3C3 )b2 − a3 S 3b1
because b represents the distance between the S2 = 2
shoulder frame L1 and the wrist frame L3 . If we b
now solve the last equation to recover q3 , this Then
results in two possible solutions, the elbow-up q2 = atan2 [(a2 + a3C3 )b2 − a3 S 3b1 , (a2 + a3C3 )b1 + a3 S 3b2 ]
solution, and elbow-down solution, respectively.
and finally
b − a22 − a32
2

q3 = ± arccos q4 = q234 − q2 − q3 .
2 a 2 a3

83 84
Chapter 3 Chapter 3

Tool Roll Joint q5 ⎛ a1C1 + a2 C1−2 ⎞


⎜ ⎟
The tool roll angle q5 can be recovered from the ⎜ a1 S1 + a2 S1−2 ⎟
⎜ d −q −d ⎟
last three components of w(q) . We have w(q ) = ⎜ 1 3 4

⎜ 0 ⎟
q5 = π ln( w42 + w52 + w62 )1 / 2 ⎜ 0 ⎟
⎜ ⎟
⎝ − exp(q4 / π ) ⎠
Example 3.2 A Four-axis SCARA Robot Note from the last three components of w(q ) that
(ADEPT ONE) the approach vector r 3 is fixed at r 3 = −i 3 . This is
characteristic of SCARA-type robots in general,
which always approach parts directly from above.

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(q ) and exploit trigonometric identities the result
is:
w12 + w22 = a12 + 2a1a2 C2 + a22
and then

Unlike the vertical-jointed robot, the vector of joint w12 + w22 − a12 − a22
q2 = ± arccos
variables in this case is not θ but is instead 2a1a2
q = [θ 1 ,θ 2 , d 3 ,θ 4 ]T .
From the Figure, we see that when q2 > 0 , the
The arm matrix for the SCARA robot has been robotic arm curls in from the left, whereas when
previously computed in Example 2.13. The tool- q 2 < 0 , it curls in from the right.
configuration vector for the SCARA robot is hence
given as:

85 86
Chapter 3 Chapter 3

Base Joint Vertical Extension Joint


The base angle q1 , which might also be thought of The prismatic joint variable q3 is associated with
as a horizontal shoulder angle, can now be obtained sliding the tool up and down along the tool roll
from q 2 . Take w1 and w2 , and expand C1−2 and S1−2 axis. In a SCARA-type robot, the vertical
using trigonometric identities. We get component of the tool motion is uncoupled from
the horizontal component, as can be seen from the
(a1 + a 2 C 2 )C1 + (a 2 S 2 ) S1 = w1 expression for w . Therefore:
(− a2 S 2 )C1 + (a1 + a 2 C 2 ) S1 = w2 q3 = d1 − d 4 − w3

Since the elbow angle q 2 is already known, solve Tool Roll Joint
for unknowns C1 and S1 and we get
The final joint variable is the tool roll angle q 4 .
a2 S 2 w1 + (a1 + a2 C 2 ) w2 Inspection of the last component of w reveals
S1 =
(a2 S 2 ) 2 + (a1 + a2 C 2 ) 2
q4 = π ln w6
(a1 + a2 C 2 ) w1 − a2 S 2 w2
C1 =
(a2 S 2 ) 2 + (a1 + a2 C 2 ) 2
3.8 A Robotic Work Cell
Thus The technique for transforming between tool
q1 = atan2[a 2 S 2 w1 + (a1 + a2 C 2 ) w2 , (a1 + a2 C 2 ) w1 − a 2 S 2 w2 ] coordinates and base coordinates using
homogeneous coordinate transformation matrices
can also be applied more generally to coordinate
transformations between various stations in a
robotic cell.

87 88
Chapter 3 Chapter 3

base
As an illustration, consider the single-robot work Next let Tcamera represent the position and
cell shown in the following figure. orientation of the base of the robot as seen by the
camera. In this case suppose that:

⎛ 0 − 1 0 15 ⎞
⎜ ⎟
⎜ − 1 0 0 25 ⎟
base
Tcamera =⎜
0 0 − 1 20 ⎟
⎜⎜ ⎟⎟
⎝0 0 0 1⎠

Consider the problem of finding the position and


orientation of the part relative to the base of the
robot. Using homogeneous coordinate
Here a part in the shape of a block has been transformation matrices, we have
extracted, say, from a feeder, and placed in the ⎛1 0 0 30 ⎞
⎜ ⎟
viewing area of an overhead camera. The vision −1 part ⎜0 1 0 15 ⎟
Tbase = Tbase Tcamera = (Tcamera ) Tcamera = ⎜
part camera part base
system inspects the part and then informs the robot 0 0 1 1⎟
⎜⎜ ⎟
1 ⎠⎟
controller to pick up the part and place it in either a
pass bin or a reject bin, depending upon the ⎝0 0 0
outcome of the inspection process.
Thus the position of the part relative to the base
part
Let Tcamera represents the position and orientation of frame of the robot is p = [30,15,1]T . Furthermore,
the part as seen by the camera. For example: the three axes of the part frame point to the same
directions as the base frame, as is indicated by the
⎛ 0 −1 0 0 ⎞ fact that the rotation submatrix is R = I . This is
⎜ ⎟
⎜ −1 0 0 − 5⎟ consistent with the picture in the Figure.
part
Tcamera =⎜
0 0 − 1 19 ⎟
⎜⎜ ⎟
⎝0 0 0 1 ⎟⎠

89 90
Chapter 3 Chapter 3

Next suppose we want to have the robot reach Alternatively, we can specify the more compact
down and pick up the part directly from above by tool-configuration vector w(q ) needed to pick up
grasping it on the front and back faces. the part. Here the required tool roll angle q n must
To determine the required rotation matrix be determined.
R = [ x t , y t , z t ] , first note from the Figure that to
Suppose the robot is a Rhino XR-3. Then, from
pick up the part from above we need an approach
Example 3.1, we have
vector which points down. In terms of base
q1 = atan2(15,30) = 26.6 degrees,
coordinates, this corresponds to r 3 = −i 3 .
q5 = atan2( S1 R11 − C1 R21 , S1 R12 − C1 R22 )
Next, to grip the object on the front and back faces, = atan2( S1 , C1 ) = 26.6 degrees
we need a sliding vector of r 2 = ±i 2 . This is consistent with the Figure, which is in the
Finally, to complete the right-handed orthonormal position q = [0,−π / 2,π / 2,0,−π / 2]T .
coordinate frame, it is necessary that r 1 = + i1 . Thus
there are two possible solutions for the rotation The tool-configuration vector w(q ) consists of the
matrix R , one being:
position vector p augmented by the approach
⎛1 0 0 ⎞ vector r 3 scaled by exp(q5 / π ) . Thus, in this case,
⎜ ⎟
R = ⎜ 0 −1 0 ⎟ the tool configuration needed to grasp the block
⎜ 0 0 − 1⎟ from above on the front and back faces is:
⎝ ⎠
w = [30,15,1,0,0,−1.159]T
Hence, the arm matrix is
To actually command the robot to reach down and
⎛ 1 0 0 30 ⎞ pick up the part, we now need to know the value of
⎜ ⎟
⎛R p ⎞ ⎜ 0 − 1 0 15 ⎟ the joint variables q that will produce the
tool
Tbase (q) = ⎜ ⎟=
⎝0 1 ⎠ ⎜ 0 0 −1 1 ⎟ configuration of the tool specified in the above
⎜⎜ ⎟⎟ equation. Inverse kinematics would be used to
⎝0 0 0 1 ⎠ determine the vector of joint variables q for the
five-axis articulated robot.

91 92
Chapter 4

4. TRAJECTORY PLANNING A simple, common type of gravity-fed part feeder


consists of an inclined tube or slide on which the
We now use this kinematics formulation as a parts are placed end to end in identical orientations.
steppingstone to a higher-level problem, the problem
of planning trajectories for the tool to follow in order
to perform meaningful manipulation tasks.

To plan the trajectory effectively, careful


consideration must be given to the design and layout
of workspace fixtures for each robotic work cell.

4.1 A Robot Cell with Gravity-fed Part Feeder


Part must be presented to the robot in a manner that is
compatible with the tool configurations realizable by
the manipulator. The incline angle β is made to overcome the friction
(with coefficient µ ):
β > atan2( µ ,1)

Typically, a part is approached along a line that is


orthogonal to the work surface on which the part
rests. If we assume that the part feeder is aligned with
the x 0 axis, then the approach vector r 3 will be in the
x 0 z 0 plane.

94
Chapter 4 Chapter 4

The x and z components of r 3 can be computed Next consider the tool-tip position vector p . Suppose
using the following diagram: the bottom of the part feeder is located f units along
the x 0 axis.

Using similar triangles, we find that


r = [ Sβ ,0,−Cβ ] .
3

To establish the sliding vector, suppose that the parts Further, suppose the part being grasped is a cube of
are stacked end to end on the inclined surface with no dimension c. If the cube is to be grasped at its centre,
space between them. From the Figure, the sliding then,
vector should be r 2 = ±i 2 .
p = [ f + c(Cβ − Sβ ) / 2,0, c( Sβ + Cβ ) / 2]T .
Suppose r = −i . The normal vector r = r × r
2 2 1 2 3

must be orthogonal to both r 2 and r 3 in a right Thus we have the arm matrix at the pick position:
handed sense. Thus the proper orientation for the tool
to pick a part off the bottom of the feeder is ⎛ Cβ 0 Sβ f + c(Cβ − Sβ ) / 2 ⎞
⎜ ⎟
⎜ 0 −1 0 0 ⎟
⎛ Cβ 0 Sβ ⎞ pick
Tbase =⎜

R=⎜ 0 −1
⎟ Sβ 0 − Cβ c(Cβ + Sβ ) / 2 ⎟
0 ⎟ ⎜⎜ ⎟⎟
⎜ Sβ 0 − Cβ ⎟⎠ ⎝ 0 0 0 1 ⎠

95 96
Chapter 4 Chapter 4

To command the robot to reach down to position


⎛ R pick p pick − vR pick i 3 ⎞
itself to grasp the part, we would use this arm matrix lift
Tbase = ⎜⎜ ⎟⎟
as the input to the inverse kinematics procedure. ⎝0 0 0 1 ⎠

4.2 A Pick-and-Place Problem • Note that the tool orientation at he lift-off


point is identical to the tool orientation at he
Simple point-to-point motion control can usually be pick point. This way the tool orientation
used to execute pick-and-place operations, with the remains fixed as the tool moves from the
minimal pick-and-place trajectory consisting of four lift-off point to the pick point.
discrete points, as follows: • The tool position at the lift-off point is
obtained by starting at the pick position and
1. At one end of the pick-and-place trajectory is moving backward a distance v along the
pick
the pick point, whose coordinate frame is Tbase . approach vector. Thus the lift-off point will
This represents the initial position and be a safe distance away from the pick point.
orientation of the part being manipulated. We refer to v as the approach distance.
place
3. A third point is the place point, with Tbase . This
represents the final position and orientation of
the part being manipulated.
The place orientation, R place , should be selected
in such a manner that the approach vector r 3 is
orthogonal to the surface on which the part will
come to rest.
lift
2. The second point is the lift-off point, with Tbase . Furthermore, the distance d place between the
pick
Once the pick point frame Tbase is determined, place position and the place surface, as measured
the associated lift-off point frame can then be along the approach vector, should be identical to
computed as follows:

97 98
Chapter 4 Chapter 4

the distance d pick between the pick position and


the pick surface:
d place = d pick

Speed Variation
4. The last point of the four-point pick-and-place
set
trajectory is the set-down point, with Tbase . Once For a typical pick-and-place operation, the proper
sequence of points, the types of motion between
the place-point frame has been determined, the
points, and the relative speeds over various segments
associated set-down point frame can be
of the trajectory are summarized as follows:
computed as follows:
-------------------------------------------------------
⎛ R place p place − vR placei 3 ⎞ Destination Motion type Speed
set
Tbase = ⎜⎜ ⎟⎟
-------------------------------------------------------
⎝0 0 0 1 ⎠ Lift-off Gross Fast
The sequence of motions needed to execute a typical Pause Fine Zero
Pick Fine Very slow
pick-and-place operation. Grasp Fine Slow
If the workspace contains obstacles, then to avoid Lift-off Fine Slow
Via Gross Fast
collisions one or more via-points may have to be Set-down Gross Fast
inserted between the lift-off and set-down points. Pause Fine Zero
Place Fine Very slow
Release Fine Slow
Set-down Fine Slow

99 100
Chapter 4 Chapter 4

The high-speed gross motions used to move the tool


We separate the spatial and temporal aspects of a tool
to the lift-off and set-down points often generate
trajectory by defining the trajectory in a parameteric
vibrations caused by an overshoot of the destination.
manner as follows:
The brief pauses are inserted to allow time for these
small oscillations, sometimes called ringing, to damp Definition: Tool Trajectory.
out. Let Γ be a curve in tool-configuration space R 6 and
let s (t ) be a differentiable speed distribution function
4.3 CONTINUOUS-PATH MOTION mapping [0, T ] into [0,1] , with s (0) = 0 and s (T ) = 1.
Then the tool trajectory associated with {Γ, s} is
Continuous-path motion is required in those
defined:
applications where the tool must follow a specific
path between points in the workspace. Typically, the Γ = {w(λ ) ∈ R 6 : 0 ≤ λ ≤ 1}
speed with which the tool moves along that path must λ = s (t ) 0≤t ≤T
also be regulated.
Here the curve Γ represents the path that the tool is
4.3.1 Paths and Trajectories
to follow. The parameter λ is a normalized path
The path-planning problem for continuous-path length parameter where
motion control is naturally formulated in tool
• λ = 0 corresponds to the start of the path and
configuration space R 6 , represented by
• λ = 1 corresponds to the end of the path.
w1 (q ) = p (q )
The speed at which the tool moves along the path is
w 2 (q ) = [exp(qn / π )]r 3 (q )
specified by the speed distribution function s (t ) . The
A tool path is a purely spatial representation. If simplest example is:
temporal information is added by specifying the t
times at which the tool must be at various points s (t ) = 0≤t ≤T
T
along the path, then the path becomes a trajectory.

101 102
Chapter 4 Chapter 4

The time derivative, s&(t ) , represents the it remains to determine the joint rates that will
instantaneous speed of the tool tip at time t . generate the desired tool trajectory.

The special case in the last equation corresponds to a Example 4.1 Continuous-Path Control of a Five-
constant tool speed 1 / T . Axis Articulated Robot (Rhino XR-3)

A plot of s&(t ) versus t is called a speed profile. A From example 3.1, the inverse kinematics solution
typical example of a speed profile is shown in the for the joint variables q given a tool-configuration
following Figure: vector w is:
q1 = atan2( w2 , w1 )
b − a22 − a32
2

q3 = ± arccos
2 a 2 a3
q2 = atan2 [(a2 + a3C3 )b2 − a3 S 3b1 , (a2 + a3C3 )b1 + a3 S 3b2 ]
q4 = q234 − q2 − q3
q5 = π ln(w42 + w52 + w62 )1 / 2
where
Here the robot ramps up, or accelerates, to a running
speed at the start of the trajectory, and then ramps b0 = C1w4 + S1w5
back down, or decelerates, to zero speed at the end of q234 = atan2[ −b0 ,− w6 ]
the trajectory. This ramping up and down effectively b1 = C1w1 + S1w2 − a4C234 + d 5 S 234
limits the maximum acceleration required.
b2 = d1 − a4 S 234 − d 5C234 − w3
Given a path in tool-configuration space and speed
distribution function s (t ) for moving along that path,

103 104
Chapter 4 Chapter 4


Base rate: q&1 .
Shoulder rate: q 2
Take differentiation and we get
b3 = (a2 + a3C3 )b1 + a3 S 3b2
w1 w& 2 − w2 w& 1 b4 = (a2 + a3C3 )b2 − a3 S 3b1
q&1 =
w12 + w22 • • • •
b 3 = (a2 + a3C3 ) b1 + a3 S 3 b 2 + a3 (C3b2 − S 3b1 ) q 3
Elbow rate: q&3 . • • • •
b 4 = (a2 + a3C3 ) b 2 − a3 S 3 b1 − a3 (C3b1 + S 3b2 ) q 3
Take differentiation of the related equations and yield
• • • •
b 0 = C1 w 4 + S1 w5 + (C1w5 − S1 w4 ) q1 Thus
• • • •
• w6 b 0 − b0 w6 • b b 4 − b b3
q 234 = q 2 = 3 2 42
w62 + b02 b3 + b4
• • • • • •
b1 = C1 w1 + S1 w 2 + (C1 w2 − S1 w1 ) q1 + (a4 S 234 + d 5C 234 ) q 234 Tool pitch rate: q 4 .
• • • • • • •
b 2 = (d 5 S 234 − a4 C 234 ) q 234 − w3 q 4 = q 234 − q 2 − q 3

Thus Tool roll rate: q 5 .


• • • • •
• 2(b1 b1 + b2 b 2 ) • π ( w4 w 4 + w5 w5 + w6 w 6 )
q3 = + q5 =
[(2a2 a3 ) − (b12 + b22 − a22 − a32 ) 2 ]1/ 2
2
w42 + w52 + w62

105 106
Chapter 4 Chapter 4

4.4 INTERPOLATED MOTION 4.4.1 Cubic Polynomial Paths

In many instances, the path will not be completely The simplest special case is m = 2 . Suppose the robot
specified. Instead, knot points along the path, such as is to move from point w 0 to point w1 in tool-
the end points and perhaps intermediate via-points, configuration space over an interval of time [0, T ] .
will be specified.
As a candidate for interpolating a smooth path
In these circumstances, the trajectory-planning between the two points {w0 , w1}, consider the
software has to interpolate between the knot points to
following cubic polynomial path:
produce a smooth trajectory Γ that can be executed
using continuous-path motion control techniques. w(t ) = at 3 + bt 2 + ct + d 0≤t ≤T

For the general interpolation problem, we have a Since the above equation represents a trajectory in
sequence of m knot points in tool-configuration tool configuration space, the polynomial coefficients
space that must be visited by the tool: {a, b, c, d } are vectors in R 6 .

Γm = {w 0 ,..., w m−1} The two position constraints at the end points of the
trajectory are w(0) = w 0 and w(T ) = w1.
The path w(t ) between the m knot points should be
If the tool is to start out at time 0 with velocity v 0 and
smooth, i.e., at least two continuous derivatives in
end up at time T with velocity v1, then the cubic
order to avoid the need for infinite acceleration.
polynomial trajectory can be used to interpolate
between the points with:

107 108
Chapter 4

T (v1 + v 0 ) − 2( w1 − w 0 )
a=
T3
[T (v1 + 2v 0 ) − 3( w1 − w 0 )]
b=−
T2
c = v0
d = w0

In the event that the discrete path Γm has more than


two knot points, the curve-fitting problem begins to
become involved. There are many approaches.
One simple extension of the discussed method is to
take adjacent cubic polynomial segments and spline
them together by requiring that the velocity and the
acceleration be continuous at the segment boundaries.

109
5. DIFFERENTIAL MOTION AND As an alternative approach, we can examine the
STATICS differential relationship between q and x . If we
differentiate both sides of the above equation, this
Once a robot trajectory is planned in tool- yields:
configuration space, one must then address the x& = V (q )q&
problem of commanding the robot to follow that
trajectory. Here V (q ) is a 6 x n matrix of partial derivatives of
w with respect to q called the tool-configuration
5-1 Tool-Configuration Jacobian Matrix Jacobian matrix, or simply the tool Jacobian
matrix, of the manipulator.
If we use x ∈ R 6 to denote the tool-configuration
vector, then the direct kinematics equations can be
The component of V (q ) appearing in the kth row and
formulated in terms of the tool-configuration function
jth column is the derivative of wk (q ) with respect to
w and joint variables q ∈ R n as follows:
qj:
x = w(q ) ∂w ( q )
Vkj ( q ) = k 1 ≤ k ≤ 6,1 ≤ j ≤ n
Given a desired trajectory x(t ) in tool-configuration ∂q j
space, one way to find a corresponding trajectory
q (t ) in joint space is to solve the inverse kinematics The tool Jacobian matrix V (q ) is a linear
problem directly, as in section 3. transformation which maps the instantaneous joint-
space velocity q& into the instantaneous tool-
However, finding an explicit closed-form solution to configuration velocity x& .
the inverse kinematics problem can be a difficult
task, depending upon the kinematic complexity of the
manipulator.

111
Example 5.1 Tool Jacobian Matrix of a Five-Axis ⎛ − S1 (a 2 C 2 + a3C 23 + a 4 C 234 − d 5 S 234 ) ⎞
Articulated Robot (Rhino XR-3) ⎜ ⎟
⎜ C1 ( a 2 C 2 + a3C 23 + a 4 C 234 − d 5 S 234 ) ⎟
⎜ 0 ⎟
Consider the five-axis articulated Rhino XR-3 robot. v1 (q ) = ⎜ ⎟
Recall from section 3 that the tool-configuration ⎜ [exp( q 5 / π )]S 1 S 234 ⎟
function of this robot is: ⎜ − [exp(q5 / π )]C1 S 234 ⎟
⎜ ⎟
⎝ 0 ⎠
⎛ C1 (a 2 C 2 + a3C 23 + a 4 C 234 − d 5 S 234 ) ⎞
⎜ ⎟
⎜ S1 (a 2 C 2 + a3C 23 + a 4 C 234 − d 5 S 234 ) ⎟ ⎛ − C1 (a 2 S 2 + a3 S 23 + a 4 S 234 + d 5 C 234 ) ⎞
⎜d −a S −a S −a S −d C ⎟ ⎜ ⎟
w(q ) = ⎜ 1 2 2 3 23 4 234 5 234
⎟ ⎜ − S1 ( a 2 S 2 + a3 S 23 + a 4 S 234 + d 5 C 234 ) ⎟
⎜ − [exp( q 5 / π )]C 1 S 234 ⎟ ⎜ −a C −a C −a C +d S ⎟
⎜ − [exp(q5 / π )]S1 S 234 ⎟ v 2 (q) = ⎜ 2 2 3 23 4 234 5 234

⎜ − [exp(q5 / π )]C1C 234 ⎟
⎜ ⎟
⎝ − [exp(q5 / π )]C 234 ⎠ ⎜ − [exp(q5 / π )]S1C 234 ⎟
⎜ ⎟
⎝ [exp(q5 / π )]S 234 ⎠
The first three components of w(q ) represent the
tool-tip position, while the last three components of ⎛ − C1 (a3 S 23 + a 4 S 234 + d 5 C 234 ) ⎞
w(q ) represent the approach vector of the tool scaled ⎜ ⎟

⎜ 1 3 23
S ( a S + a S + d 5 234 ⎟
C )
by exp(q5 / π ) , where q5 is the tool roll angle. 4 234
⎜ − a3C 23 − a 4 C 234 + d 5 S 234 ⎟
v 3 (q) = ⎜ ⎟
If we differentiate w(q ) , this yields the following tool ⎜ − [exp(q5 / π )]C1C 234 ⎟
Jacobian matrix, where v k (q ) denotes the kth column ⎜ − [exp(q5 / π )]S1C 234 ⎟
⎜ ⎟
of V (q ) for 1 ≤ k ≤ 5 : ⎝ [exp(q5 / π )]S 234 ⎠

112 113
⎛ − C1 (a 4 S 234 + d 5 C 234 ) ⎞ The columns of V (q ) correspond to the components
⎜ ⎟
⎜ − S1 (a 4 S 234 + d 5 C 234 ) ⎟ of q , while the rows of V (q ) correspond to the
⎜ −a C +d S ⎟ components of w(q ) . Consequently, V31 (q ) = 0 can
v 4 (q) = ⎜ 4 234 5 234

⎜ − [exp(q5 / π )]C1C 234 ⎟
be interpreted to mean that w3 ( q ) is independent of
⎜ − [exp(q5 / π )]S1C 234 ⎟ q1 . That is, the z coordinate of the tool tip cannot be
⎜ ⎟ controlled by rotating the arm about its base.
⎝ [exp(q5 / π )]S 234 ⎠
Similarly, from Vk 5 ( q ) = 0 for 1 ≤ k ≤ 3 we conclude
⎛ 0 ⎞ that the tool-tip position p does not depend on the
⎜ ⎟
⎜ 0 ⎟ tool roll angle q5 .
⎜ 0 ⎟
v 5 (q) = ⎜ ⎟
⎜ − [exp(q5 / π )]C1 S 234 / π ⎟ Example 5.2 Tool Jacobian Matrix of a Four-Axis
⎜ − [exp(q5 / π )]S1 S 234 / π ⎟ SCARA Robot (Adept One)
⎜ ⎟
⎝ − [exp(q5 / π )]C 234 / π ⎠ Consider a four-axis SCARA robot as in section 3.
Recall that the tool-configuration function of this
To interpret the tool Jacobian matrix of robot, it is robot is:
helpful to examine the distribution of zeros in V (q ) ,
⎛ a1C1 + a 2 C1−2 ⎞
where an X is used to denote a variable element: ⎜ ⎟
⎜ a1 S1 + a 2 S1−2 ⎟
⎛X X X X 0⎞
⎜ d −q −d ⎟
⎜ ⎟
⎜X X X X 0⎟ w(q ) = ⎜ 1 3 4

⎜ 0 ⎟
⎜0 X X X 0⎟
V (q) = ⎜ ⎟ ⎜ 0 ⎟
⎜X X X X X⎟ ⎜ ⎟
⎜X ⎝ − exp(q4 / π ) ⎠
X X X X⎟
⎜⎜ ⎟
⎝0 X X X X ⎟⎠ where q 4 is the tool roll angle.

114 115
If we differentiate w(q ) with respect to q , this yields This is achieved by multiplying both sides of
the following tool-configuration Jacobian matrix for x& = V (q )q&
the SCARA robot:
by a pseudo-inverse of the tool-configuration
⎛ − a1 S1 − a 2 S1−2 a 2 S1−2 0 0 ⎞ Jacobian matrix V (q ) .
⎜ ⎟
⎜ a1C1 + a 2 C1−2 − a 2 C1−2 0 0 ⎟
⎜ ⎟ 5.2.1 Pseudo-inverse
0 0 −1 0
V (q) = ⎜ ⎟ If
⎜ 0 0 0 0 ⎟
⎜ ⎟ y = Ax
0 0 0 0
⎜⎜ ⎟ where x, y∈ R n and A ∈ R n×n is a square matrix,
⎝ 0 0 0 − [exp(q 4 / π )] / π ⎟⎠ then
x = A -1 y.
It is evident from the first two rows of V (q ) that the
( x, y ) coordinates of the tool tip depend only on the If x ∈ R n , y ∈ R m and A∈ R m×n is not a square
matrix, can we express x in terms of y?
first two joint variables {q1 , q2 } .
Note that AT A ∈ R n× n is a square matrix. Hence,
The z coordinate of the tool tip depends only on q3 ,
multiply both side of y = Ax by AT yields,
while the orientation of the tool is controlled by q4 .
AT y = (A T A)x
5.2 Inverse of Jacobian Matrix ⇒ x = (AT A) -1 AT y = A+y
We call A+ the pseudo-inverse of A. x is also referred
The relationship between the joint-space velocity and
to as a least-squares solution in the sense of
the tool-configuration velocity can be used to solve
• • minimizing the norm of Ax − y .
for q in terms of x .
Note that A* A=(AT A) -1 AT × A=I

116 117
Example 5.3 Example 5.4:
If let A be the following 2x3 matrix:
⎡1 0 ⎤
⎛1 0 2 ⎞
A= ⎢0 0⎥ ∈ R 3×2 , A=⎜ ⎟
⎢ ⎥ ⎝1 − 1 0 ⎠
⎣⎢0 1⎦⎥
then It is clear from inspection that rank(A)=2. Thus,

AT =
1 0 0
∈ R 2×3 , ⎛1 4 ⎞
+ 1⎜
T −1

0 0 1 A = A [ AA ] = ⎜ 1 − 5 ⎟
T

Hence 9⎜ ⎟
⎝ 4 − 2⎠
⎡1 0 ⎤
1 0 0⎢
0 0⎥ =
T 1 0
A A=
⎢ ⎥ 5.3 Resolved-Motion Rate Control: n ≤ 6
0 0 1 0 1
⎢⎣ 0 1 ⎦⎥
and If V(q) is an 6 × n matrix where n ≤ 6, then
1 0 0 multiplying both sides of x& = V (q )q& by the transpose
A* = (AT A) -1 A = of V(q), we have
0 0 1
V T (q ) x& = V T (q )V (q )q&
In general, let A be an m × n matrix, and let A + be the
pseudoinverse of A . If A is of full rank, then A + can Since V T (q)V (q) is a square matrix, we have
be computed as follows:
q& = [V T (q )V (q )]−1V T (q ) x&
⎧ AT [ AAT ]−1 m≤n
+ ⎪ −1 or
A = ⎨A m=n
⎪ [ AT A]−1 AT m≥n q& = V + (q ) x&

The pseudoinverse always exists and is unique.

118 119
V+(q) is called the pseudoinverse of V(q) where If n = 6 , the rate-control equations simplify to:
V+(q)V(q) = I . • •
q = V (q ) −1 x q (0) = w −1 ( x(0))
Resolved-Motion Rate Control: n ≤ 6 .
The control technique described by the above
let x(t ) be a differentiable tool-configuration equation is commonly referred as resolved-notion
trajectory which lies inside the work envelope and rate control.
which does not go through any workspace
Here the motion of the robot in tool-configuration
singularities (i.e. [V T V ]−1 exists), and let V (q ) be the space is resolved into its joint-space components
6xn tool-configuration Jacobian matrix where n ≤ 6. through the tool-configuration Jacobian matrix.
Then a joint-space trajectory q (t ) corresponding to
x(t ) can be obtained by solving the following Example 5.5
nonlinear differential equation:
Consider the application of resolved-motion rate
q& = [V T (q )V (q )]−1V T (q ) x& q (0) = w −1 ( x(0)) control to a four-axis SCARA robot. First we must
compute the pseudoinverse of V (q ) .
The initial condition supplied with the nonlinear
To simplify the notation, we use {α , β , γ ,...} for the
differential equation ensures that the joint-space
trajectory q (t ) and the tool-configuration trajectory nonconstant components of V ( q ) . From section 5.1,
we have,
x(t ) correspond to the same physical point at time
t = 0 . Here the notation w −1 refers to the inverse of ⎛α β 0 0⎞
⎜ ⎟
the tool-configuration function. Therefore q (0) can ⎜γ δ 0 0⎟
be computed from x(0) using the inverse kinematic ⎜0 0 −1 0⎟
equations. V (q) = ⎜ ⎟
⎜0 0 0 0⎟
⎜0 0 0 0⎟
⎜⎜ ⎟
⎝0 0 0 ε ⎟⎠

120 121
Since ε = −[exp(q4 / π )] / π ≠ 0 , it follows that Note that for x(t ) to be a trajectory in the robot work
[V T V ]−1 is well defined as long as envelope we must have x4 (t ) = 0 and x5 (t ) = 0 ,
∆ = (α + γ )( β + δ ) − (αβ + γδ ) ≠ 0 .
2 2 2 2 because the approach vector of a SCARA robot is
always vertical.
This will be the case if x(t ) does not go through a
As the trajectory of the arm approaches a singularity,
workspace singularity. Multiply [V T V ]−1 by V T to • •
compute V + . This yields: ∆ becomes small, and the joint velocities q1 and q2
becomes large. This is precisely the ill-conditioned
⎛ (αδ − βγ )δ ( βγ − αδ ) β 0 0 0 0 ⎞
⎜ ⎟ behavior that is to be avoided through proper
+ 1 ⎜ ( βγ − αδ )γ (αδ − βγ )α 0 0 0 0 ⎟ trajectory planning.
V = ⎜
∆ 0 0 −∆ 0 0 0 ⎟
⎜⎜ ⎟
⎝ 0 0 0 0 0 ∆ / ε ⎟⎠ 5.5 Joint-Space Singularities
As seen from the previous example, one of the
From this expression, we can write down the rate- potential problems with solving for the joint-space
control equations as follows: velocity in this manner is that at certain points in
• • joint space, the tool Jacobian matrix loses rank.
• (αδ − βγ )δ x1 + ( βγ − αδ ) β x 2
q1 = The points at which V (q ) loses rank are called joint-
∆ space singularities.
• •
• ( βγ − αδ )γ x1 + (αδ − βγ )α x 2 Joint-Space Singularity: Let V (q ) be the 6xn tool-
q2 =
∆ configuration Jacobian matrix of a robotic arm. Then
• • ~
q3 = − x3 q is a joint-space singularity of the arm if and only
• • if:
q4 = x6/ ε ~
rank [V (q)] < min{6, n}

122 123
Sometimes we use the term workspace singularity. A • boundary singularity, which occurs when the
~
point w in tool-configuration space is a workspace tool tip is on the surface of the work envelope.
~ ~ • interior singularity, which occurs when the tool
singularity if and only if w = w(q ) for some joint- tip is within the work envelope
~
space singularity q .
Example 5.6: Boundary Singularities.
For the most common case, n ≤ 6 , the tool Jacobian Consider the SCARA robot whose tool-configuration
matrix is less than full rank if and only if the n × n Jacobian matrix is specified in Example 5.2.
matrix V T (q )V (q ) is singular.
The last two columns of V ( q ) are linearly
Since robotic arms are difficult to control when they independent of each other and the first two columns.
are operating near joint-space singularities, the Thus V ( q ) loses full rank if and only if the 2 × 2
following measure of manipulator dexterity can be submatrix in the upper left corner becomes singular.
used: The determinant of this submatrix is:
∆ = a1a 2 S 2
dex (q ) = det[V T (q )V (q )] n≤6
Consequently, the tool Jacobian matrix of the
Hence a manipulator is at a joint-space singularity if SCARA robot is less than full rank if and only if
and only if dex (q ) = 0 . More generally, the dexterity S2 = 0.
index dex (q ) becomes small as joint angles approach This will occur when the elbow angle q2 is an integer
a joint-space singularity. multiple of π . For example, when q2 = 0 where the
arm is reaching straight out with the tool tip on the
For the redundant case n > 6, the determinant of the outer surface of the work envelope, or when q2 = π
6 × 6 matrix V ( q )V T ( q ) must be used, and in this case
where the arm is folded straight back with the tool tip
dex (q ) has been referred to as the manipulability of
on the inside surface of the work envelope.
the robot.
There are two types of joint space singularities:

124 125
Boundary singularities can be avoided by performing π
v1[q ( β )] = 0 0< β <
the manipulations sufficiently far from the surface of 2
the work envelope.
Clearly, V ( q ) loses full rank along the line q = q (β)
However, interior singularities occur inside the work for 0 < β < π / 2 . Therefore q(β) represents a locus of
envelope when two or more of the axes of the robot interior singularities for the articulated robot.
form a straight line, that is, become collinear.
Here the effects of a rotation about one of the axes This particular locus of points corresponds to the tool
can be canceled by a counteracting rotation about the being directly above the base and pointing straight
other axis. Thus the tool configuration remains up, with the tool roll axis collinear with the base axis
constant even though the robot moves in joint space. as shown in the following Figure.

We refer to these motions of the joints which produce


no movement of the tool as self-motions of the
manipulator.

Example 5.7: interior Singularities


Consider the robot discussed in Example 5.1.
Suppose we evaluate the tool-configuration Jacobian
matrix along:
π
q ( β ) = [q1 ,− β ,2 β − π ,− β , q5 ]T 0<β <
2
Suppose the upper arm and the forearm are of the
same length, a3 = a 2 . Using this fact together with
a 4 = 0 , we find that the first column of the tool Notice that if the base axis rotates by γ while the tool
Jacobian matrix in this case reduces to: roll axis rotates by − γ , the tool configuration remains
fixed even though the robot moves in joint space.

126 127

You might also like