Professional Documents
Culture Documents
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.
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.
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.
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”.
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.
13 14
Repeatability, Accuracy and Precision
The operating environments within which robots
function depend on the nature of the tasks
performed.
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.
18
Illustrating Example Example 2.1
x2
p2x p
x1
p1x
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 ⎟⎠
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
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 ⎠⎟
⎛ 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 ⎥⎦
⎛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.
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 .
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
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)
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
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 ) .
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
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.
68
Chapter 3 Chapter 3
69 70
Chapter 3 Chapter 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,
73 74
Chapter 3 Chapter 3
75 76
Chapter 3 Chapter 3
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.
79 80
Chapter 3 Chapter 3
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.
q3 = ± arccos q4 = q234 − q2 − q3 .
2 a 2 a3
83 84
Chapter 3 Chapter 3
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
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⎠
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
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.
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
97 98
Chapter 4 Chapter 4
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
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
•
105 106
Chapter 4 Chapter 4
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
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.
126 127