Manipulator Kinematics Set 2 PDF
Manipulator Kinematics Set 2 PDF
net
1 Manipulator Kinematics
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Wrist Manipulator
(W) Base
Tool (B)
(T)
Goal
(G)
Station
(S)
S
G T
B S G
S T
B W T
B W
T
W T T
B
{S} Station Frame (Speci…ed relative to the base frame, S T)
B
{W} Wrist Frame (Speci…ed relative to the base frame, W T)
W
{T} Tool Frame (Speci…ed relative to the wrist frame, T T)
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
While the position and orientation of the wrist frame depends on the manip-
ulator con…guration, WB T = T (q); the other frames are usually constant. There
are two fundamental problems associated with this representation:
The …rst problem can be reduced to the problem of …nding the variable part
of the environment, WB T (q) for a given q: The rest of the problem can then be
solved easily form the local de…nition of other frames: TG T = GS T 1 SB T 1 WB T (q) W
T T:
Computing the matrix WB T (q) is called: forward (direct kinematics).
The second problem can be reduced to the inversion of the matrix function
B
W T (q) = T; where T is the desired pose of the wrist with respect to the manip-
ulator base, which can be expressed in terms of other known local de…nitions:
T = SB T GS T TG T TW T 1 : Inversion of the matrix function WB T (q) is called
inverse kinematics.
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
zi-1
zi
xi-1
i-1
p xi
i
θ i-1
Axis i-1 θi
Axis i
1 J.Denavit and R.S. Hartenberg: ”A Kinematic Notation for Lower-Pair Mechanisms Based
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
axis i
axis i-1 (shifted) axis i
αi -1
link twist a i -1 ο
90
ο
(rotation about 90
common normal)
common normal
(link distance)
In order to de…ne a relative position and orientation of two …xed axes (axes
which don’t move) only two parameters are required: link distance (also called
common normal ) and the link twist.
Link distance ai 1 is de…ned as distance between two axes, i 1; and i,
along the line which is perpendicular to both axes (if axes are intersecting, then
ai 1 = 0). Link twist i 1 is de…ned as the angle between the two axes, i 1;
and i, about the common normal (if axes are parallel, then i 1 = 0).
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
axis i
axis i-1 axis i+1
link offset ο
90
ο
90
90
ο ai
90
ο di
ai -1
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Moving axes:
If the axes are not …xed (i.e. they rotate), then one more parameter is needed:
the joint angle. The joint angle i is the angle between the common normals
ai 1 and ai about axis i. For revolute joints the i are variable parameters, and
for prismatic joints the i are constant parameters.
ο
90
90
ο ai
a i-1 ο
90 di
θi
joint angle
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Intermediate links:
(1) To each link i is assigned a frame fig:
(2) z-axis of the frame fig; zi is coincident with the
joint axis i.
(3) The origin of the frame fig is located at the intersection
of the joint axis i with the common normal ai , or at the
intersection of joint axes i and i + 1 if ai = 0:
(4) The x-axis of the frame fig, xi ; is placed along the common
normal ai , pointing to the joint i + 1. If ai = 0; the axis xi
is perpendicular to both zi and zi+1 (direction is arbitrary)
First link :
(5) Frame f0g is coincident with the frame f1g: (Consequently:
a0 = 0; 0 = 0; 1 = 0 -prismatic, d1 = 0 -revolute.)
Last link :
(6) Axis xn of the frame fng is colinear with xn 1 at n = 0:
The origin of fng is at the intersect. of xn 1 with joint axis n:
Consequently dn = 0 (home position for prismatic joints)
Remark 1 Older robotic literature uses original convention in which the z-axis
of the frame fig is coincident with the joint axis i + 1 Here we accept more
modern approach proposed by J. Craig2
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
θ i-1
θi
θi+1
zi
α i-1 ο
90
ο xi
90
zi-1
i-1
p θi
i
ο ο
di
90 xi-1 90
Common normals
a i-1
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
From the de…nitions above follows the local de…nition of the frame fig with
respect to the frame fi 1g:
or
i 1
iT = Screw(e1 ; i 1 ; ai 1 ) Screw(e3 ; i ; di ) (1)
Expanded form:
2 32 3
1 0 0 ai 1 ci si 0 0
6 0 c s 0 7 6 si ci 0 0 7
i 1 6 i 1 i 1 76 7
iT = 4 0 s c 0 54 0 0 1 di 5
i 1 i 1
0 0 0 1 0 0 0 1
2 3
ci si 0 ai 1
6 c si c ci s i 1 s i 1 di 7
i 1
iT =6
4 s
i 1 i 1 7 (2)
s
i 1 i
s i
c
1 i
c i 1 c i 1 di 5
0 0 0 1
10
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
1.6 DH Table
In order to describe kinematically the entire manipulator, all DH parameters
can be put in a compact table:
i i 1 ai 1 i di i
1 0 a0 1 d1 1
2 1 a1 2 d2 2
::: ::: ::: ::: ::: :::
i i 1 ai 1 i di i
::: ::: ::: ::: ::: :::
n n 1 an 1 n dn n
The parameter i gives information about the joint type ( i = 0 for revolute
joint, i = 1 for prismatic joint). Usually some parameters are prede…ned by the
convention: 0 = a0 = 0; 1 = 0; n = 0 (for prismatic joints), or d1 = dn = 0
(for revolute joints)
Note that the screws of the relative HT matrix for the i-th link (1)
i 1
iT = Screw(e1 ; i 1 ; ai 1 ) Screw(e3 ; i ; di )
11
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
8
< Screw(e1 ; i 1 ; ai 1 ) Screw(e3 ; i + qi ; d i ) if i =0
i 1
iT = (3)
:
Screw(e1 ; i 1 ; ai 1 ) Screw(e3 ; i ; di + qi ) if i =1
12
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
B 0 Q
n
i 1
WT = nT = iT (4)
i=1
i 1
where iT are known matrices computed by (3).
13
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
i 1
9
0 0
iR = i 1 R i R; =
i = 1; 2; :::; n (6)
0 ;
pi = 0 pi 1+
0
i 1R
i 1
pi
{i -1}
0 i -1
p p
i -1 i
{i}
0
p
{0} i
The iterative process (6) can be used for two purposes: to numerically eval-
uate the matrix n0 T , or to derive symbolically the closed-form solution for n0 T
(by using packages like MATHEMATICA, MAPLE, MACSYMA and the like).
14
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
For example, using the matlab-style the recursive version would look like
this:
function T = fkin(DH, q, i)
T = i 1i T (equation (3))
if i > 1
T = fkin(DH, q, i-1)*T
end
15
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
In most of the real manipulator designs, the joint axes are either parallel
( i 1 = 00 ; 1800 ); or they are perpendicular ( i 1 = 900 ): This considerably
simpli…es the matrices i 1i R; which then become:
2 3
ci si 0
i 1
iR =
4 si ci 0 5 for 0
i 1 = 0 =180
0
0 0 1
2 3
ci si 0
i 1
iR = 4 0 0 1 5 for i 1 = 900
si ci 0
The recurrent form (6) would then not be very e¢ cient since there are un-
necessary multiplications and additions due to the presence of zeroes and ones in
the matrices i 1i R. In order to eliminate the excessive ‡oating point operations,
we need further to decompose the relative orientation matrices. We will now
develop a new set of recurrent formulas from (6) which are valid in the general
case, and then derive simpler formulas for parallel and perpendicular axes.
As shown in subsection ?? we can write: 0i R = [0 xi 0 yi 0 zi ]; or if we drop
the leading superscripts for simplicity: 0i R = [xi yi zi ]; then (6) can be rewritten
as:
i 1
[xi yi zi ] = [xi 1 yi 1 zi 1] iR
2 3
1 0 0
= [xi 1 yi 1 zi 1 ] 4 0 c i 1
s i 1 5 rot(e3 ; i )
0 s i 1 c i 1
(7)
= [xi 1 j yi 1 c i 1
+ zi 1 s i 1
j yi 1 s i 1
+ zi 1 c i 1
] rot(e3 ; i )
2 3
ci si 0
= [xi 1 vi 1 wi 1]
4 si ci 0 5
0 0 1
= [xi 1 ci + vi 1 si j xi 1 si + vi 1 ci j wi 1]
where x0 = e1 ; y0 = e2 and z0 = e3 :
16
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
If the frame f1g is coincident with the base frame fBg = f0g, i.e. a0 =
0 = 0, then the …rst iteration of (7) gives:
2 3 2 3
c1 s1
x1 = 4 s1 5 ; y1 = 4 c1 5 ; z1 = e 3 : (8)
0 0
Therefore we can reduce number of iterations in (7) and start from i = 2:
Combining now (7) and (9) the original recurrent equation (6) becomes:
vi 1 = yi 1 c i 1 + zi 1 s i 1
xi = xi 1 ci + vi 1 si
yi = xi 1 si + vi 1 ci i = 2; 3; :::; n (10)
zi = yi 1 s i 1 + zi 1 c i 1
pi = pi 1 + ai 1 xi 1 + di zi
This is a generic formula which is valid for any serial manipulator. Note that
all vectors are with reference to the base frame.
17
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
For manipulators with parallel and/or perpendicular joint axes these formu-
las can be further simpli…ed:
Note that the iterations here start at i = 3; since in the second iteration
there are more savings possible. The closed-form values for the second iteration
are as follows:
0 0
2First two
3 axes parallel2( i 1 =30 =180 ):
c12 s12
(12)
x2 = 4 s12 5 ; y2 = 4 c12 5 ; z2 = e3
0 0
First
2 two3axes perpendicular
2 ( i3 1 = 900 ):
c1 c2 c1 s2
(13)
x2 = 4 s1 c2 5 ; y2 = 4 s1 s2 5 ; z2 = y1
s2 c2
18
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
θ2
θ1
z2
z0 z1 x1
x1
x2
x0
z3 z4
d3
LINK 3
LINK 0 x3 x4
LINK 4
yE (End Effector)
zE
xE θ4
Here we consider a popular four DOF manipulator which belongs to the fam-
ily of SCARA-type robots, called AdeptOne Robot. As seen, the robot is
RRPR, which means that the …rst, second and the forth joint are revolute,
while the third joint is prismatic. The con…guration in the picture above is not
the home con…guration (i.e. the values of joint displacements are not all zero).
We will assume that the origin of the frame f3g is o¤-set by a constant value,
d30 along the z-axis.
19
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
θ2
z0 z1 z2
x 0 x1 d3
x2
a1 a2 d3 0
z3 z 4
x3 x4
θ1
xE
yE
zE
20
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
2 3 2 3
c1 s1 0 0 c2 s2 0 a1
6 s1 c1 0 0 7 6 s2 c2 0 0 7
0 6
1T = 4 0
7 1 6
2T = 4 0
7
0 1 0 5 0 1 0 5
0 0 0 1 0 0 0 1
2 3 2 3
1 0 0 a2 c4 s4 0 0
6 0 1 0 0 7 6 s4 c4 0 0 7
2 6
3T = 4 0 0 1 d
7 3 6
4T = 4 0
7
3 d 30 5 0 1 0 5
0 0 0 1 0 0 0 1
21
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
The HT matrices for all frames, with respect to the base can be obtained by
multiplying the relative HT matrices:
2 3
c1 s1 0 0
6 s c1 0 0 7
0 6 1
1T = 4 0
7
0 1 0 5
0 0 0 1
2 3
c12 s12 0 c1 a1
6 s c12 0 s1 a1 7
0 6 12
2T = 4 0
7
0 1 0 5
0 0 0 1
2 3 (14)
c12 s12 0 c1 a1 + c12 a2
6 s c12 0 s1 a1 + s12 a2 7
0 6 12
3T = 4 0
7
0 1 d3 d30 5
0 0 0 1
2 3
c124 s124 0 c1 a1 + c12 a2
6 s c124 0 s1 a1 + s12 a2 7
0 6 124
4T = 4
7
0 0 1 d3 d30 5
0 0 0 1
22
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
θ4
x5 x6 z4 θ5
z5
x4
θ1 LINK 5
LINK 6
z6
θ6
z0 z1
θ3
z2 x3
z3
a3
d3
a2
LINK 1
θ2
LINK 0
23
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
24
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
zE
xE
yE
θ6
z4 z6
x 4 x5 x 6 z5
θ5
d4 θ4
y3
z 0 z1 θ2
z3
z2 x3
x0 x 1 x 2
θ3 d3
a2
a3
θ1
25
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
i i 1 ai 1 i di i
1 0 0 1 0 0
2 900 0 2 0 0
3 0 a2 3 d3 0
4 900 a3 4 d4 0
5 900 0 5 0 0
6 900 0 6 0 0
Nominal values for link distances and link o¤sets for PUMA 560 manipulator
are:
1700 1 1700
2250 2 450
2500 3 750
1350 4 1350
1000 5 1000
1800 6 1800
26
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
2 3 2 3
c1 s1 0 0 c2 s2 0 0
6 s c1 0 0 7 6 0 7
0 6 1
1T = 4 0
7 1 6 0
2T = 4
0 1 7
0 1 0 5 s2 c2 0 0 5
0 0 0 1 0 0 0 1
2 3 2 3
c3 s3 0 a2 c4 s4 0 a3
6 s c3 0 0 7 6 1 d4 7
2 6 3
3T = 4 0
7 3 6 0
4T = 4
0 7
0 1 d3 5 s4 c4 0 0 5
0 0 0 1 0 0 0 1
2 3 2 3
c5 s5 0 0 c6 s6 0 0
6 0 0 1 0 7 6 0 0 1 0 7
4 6
5T = 4 s
7 5 6
6T = 4
7
5 c5 0 0 5 s6 c6 0 0 5
0 0 0 1 0 0 0 1
27
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
TA = 01 T 12 T 23 T Screw(e1 ; 3 ; a3 ) T rans(e3 ; d4 )
(15)
TW = Rot(e3 ; 4 ) Rot(e1 ; 2 ) Rot(e3 ; 5 ) Rot(e1 ; 2 ) Rot(e3 ; 6)
28
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Exercise:
Given is a four DOF manipulator shown in the …gures on the following two
pages. The home con…guration is shown in the second …gure. The z-axes in both
…gures indicate the positive orientation of the joint displacements. Suppose a
link o¤set for the prismatic joint as indicated in the …gures. Also suppose that
the base frame is de…ned as shown. Do the following:
29
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
θ3
θ1
θ2
z0 z1
z2
LINK 1 a1
LINK 2
d30
LINK 0 d3
z3 z4
LINK 3 LINK 4
LINK 5
yE (End Effector)
zE
xE
θ4
30
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
z0 z1
z2
θ2
a1
d3
d3 0
θ1
θ4
z3 z4
xE
yE
zE
31
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Here we will show examples of deriving an analytic solution for the inverse
kinematics of the AdeptOne and Puma 560 manipulators. As will be shown,
the approach is heavily based on the solution of the transcendental equations of
the form ci p si q = h or si p + ci q = g, (see Appendix B).
32
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
c12 a2 = p1 c1 a1
(18)
s12 a2 = p2 s1 a1
After squaring and adding these two equations we can eliminate the angle
12 = 1 + 2 :
a22 = p21 + p22 + a21 2 a1 (s1 p2 + c1 p1 )
which is rearranged to become:
s1 p2 + c1 p1 = b1 (19)
where:
p21 + p22 + a21 a22
b1 = (20)
2 a1
We will add now to the equation (19) its accompanying equation c1 p2
s1 p1 = 1 as shown in Appendix B. These equations written together are:
c1 p2 s1 p1 = 1 (21)
s1 p2 + c1 p1 = b1
33
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
After swapping the arguments of the atan2() functions (23)can also be writ-
ten :
1 = atan2(p2 ; p1 ) atan2( 1 ; b1 ) (24)
Once we have 1, and therefore s1 and c1 ; we can use (18) to …nd 2:
2 = atan2(p2 s1 a1 ; p1 c1 a1 ) 1 (25)
However, we will rewrite the solution for 2 in a more compact and structured
form. By appropriate multiplications of equations (18) by p1 and p2 and by
adding and subtracting them, we can get:
a2 (c12 p2 s12 p1 ) = a1 (c1 p2 s1 p1 )
a2 (s12 p2 + c12 p1 ) = p21 + p22 a1 (s1 p2 + c1 p1 )
The expressions in parentheses at the right hand side can replaced by 1 and
b1 according to the equation (21):
a1 1
c12 p2 s12 p1 =
a2
a1 b2
s12 p2 + c12 p1 =
a2
where:
p21 + p22 a1 b1 p2 + p22 a21 + a22
b2 = = 1 (26)
a1 2a1
which gives us:
1 + 2 = atan2(b2 ; 1) atan2(p1 ; p2 )
or after reversing the arguments and other minor rearrangements:
2 = atan2( 1 ; b2 )
+ atan2(p2 ; p1 ) 1
= atan2( 1 1 + atan2( 1 ; b2 )
; b )
An important special case we have if the robot is symmetric with two elbow
links with equal length, i.e. a1 = a2 = a, then:
p21 + p22
b1 = b2 =
2a
2 = 2 atan2( 1 ; b1 )
4 Note, we have used the symbol by purpose, since this quantity can have two signs (sigma
sounds as ”signum” = sign).
34
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
So far we have found angles 1 ; 2 and displacement d3 for the given posi-
tion of the wrist p. Now we need to …nd angle 4 , so as to achieve a desired
orientation. Since this is not a full 3D manipulator (it has only four DOF), it
can not have arbitrary orientations. Recall the orientation matrix
2 3
c124 s124 0
0
4R =
4 s124 c124 0 5
0 0 1
It is obvious that this robot can only have an angle about the z-axis (this is
also apparent from the …gure on page 19). If 'z is the desired orientation, then
the last joint becomes:
4 = 'z 1 2
35
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
The inverse kinematics for the AdeptOne Robot we can summarize as follows:
2
= p21 + p22
2
+ (a21 a22 )
b1 =
2 a1
2
(a21 a22 )
b2 =
p 2a1
1 =
2 b21 (27)
1 = atan2(p2 ; p1 ) atan2( 1 ; b1 )
2 = atan2( 1 ; b1 ) + atan2( 1 ; b2 )
d3 = p3 + d30
4 = 'z 1 2
2
b1 =
2 ap
1 = 2 b21
2 = 2 atan2( 1 ; b1 )
1
1 = atan2(p2 ; p1 ) 2 2
d3 = p3 + d30
4 = 'z 1 2
The variable denotes the reach of the manipulator in x-y plane, i.e. the
projection of p onto the x-y plane
36
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Multiplicity of solutions:
The double sign of 1 indicates the multiplicity of solutions for the inverse
kinematics. In case of the AdeptOne Robot there are obviously two solutions
(we’ll consider the symmetric case only):
(1) (2)
2 = 2 atan2( j 1 j ; b) 2 = 2 atan2(+ j 1 j ; b)
(1) (1) (2) (2)
1 = atan2(p2 ; p1 ) 21 2 1 = atan2(p2 ; p1 ) 12 2
(1) (1) (12) (2) (2) (2)
4 = 'z 1 2 4 = 'z 1 2
y LEFT ELBOW
θ2(1) -
a1
+ θ1(1) a2
x
-
θ1
(2)
a2
a1
θ2(2) +
RIGHT ELBOW
37
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
In order to have a real solution, the argument of the square root in equation
(27) must be non-negative, i.e. b1 0. This condition can be written:
2
+ (a21 a22 )
0
2 a1
After rearranging we get the following polynomial inequality:
2
2a1 + (a21 a22 ) 0 (28)
a1 a2 a1 + a2 (29)
38
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
ρ
a2
x
a1
The shaded area represents the subspace of all possible desired positions for
which we have a real solution for the inverse kinematics equations (27). This
space is called the dexterous work space. Note this is only a two-dimensional
projection of the complete dexterous workspace, which obviously has a cylin-
drical shape. In the case of a symmetric robot, a1 = a2 ; the entire area around
the center would be covered. This shows that the symmetrical robot is optimal
from that point of view.
39
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Limitation of Joints
In real life, the joints don’t have in…nite freedom. For example, in the case
of the AdeptOne Robot, the …rst two joints are limited:
1 min 1 1 max
2 min 2 2 max
θ2min
θ2max
a2
θ1max
a1 x
θ 1min
40
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
The orientation of the wrist of the Puma 560 Manipulator (15), rewritten in
non-homogenous form is:
41
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Replacing now the appropriate terms of (30) by (33) we get the z-y-z version
of (30):
RW = ZY Z( 4 ; 5; 6) (34)
42
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
z5 z5
x4
x4 x5 x6
z6
x5 x6
z4 z6 z4
θ6 + 180 0 z5
z5
x4
x4 θ5 - 90 0
z6
x5 x6
x 5 x6
However, by introducing the appropriate o¤sets to last two joints, the kinematic
frames can be converted to the arrangement of Puma 560 and Stanford/JPL
manipulators. The corresponding wrist orientation will then be:
RW =
(35)
rot(e3 ; 4 ) rot(e1 ; 2 ) rot(e3 ; 5 2 ) rot(e1 ; 2 ) rot(e3 ; 6 + )
RW = ZY Z( 4 ; 2 5; 6 + ) (36)
43
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
RW = ZY Z( 4 ; 5; 6 )
where the arguments 4; 5 and 6 are taken with an appropriate o¤set.
R = R A RW
where RA is orientation contributed by the arm part, while RW is orientation
of the wrist which should compensate for RA and to realize the desired total
orientation R. Therefore the wrist equation becomes:
T
ZY Z( 4 ; 5; 6 ) = RA R (37)
44
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
p1 = c1 (c23 a3 s23 d4 + c2 a2 ) s1 d3
p2 = s1 (c23 a3 s23 d4 + c2 a2 ) + c1 d3 (38)
p3 = s23 a3 c23 d4 s2 a2
c1 1 s1 d3 = p1
(40)
s1 1 + c1 d3 = p2
The third equation of (38) and the equation (39) written together:
c23 a3 s23 d4 + c2 a2 = 1
s23 a3 + c23 d4 + s2 a2 = p3
c2 (b2 + a2 ) s2 2 = 1 (43)
s2 (b2 + a2 ) + c2 2 = p3
where:
b2 = c3 a3 s3 d4 (44)
2 = s3 a3 + c3 d4
The …rst two equations (43) can be used to determine b2 . Since the equations
represent a 2D rotation, it follows:
(b2 + a2 )2 + 2
2 = 2
1 + p23 = p2 d23 (45)
where: q
p = jpj = p21 + p21 + p23
45
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
b22 + 2
2 = a23 + d24 (46)
46
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
ZY Z( 4 ; 5; 6 )=G (51)
T
where G = RA R can be evaluated for the given R and RA derived in sub-
section 1.7.5. By using (16) it can easily be shown that the elements of G
are:
Solution of (51) can now be directly obtained from (??) i.e. (??):
5 = arctan 2( 3 ; g33 )
47
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Degenerate cases:
o o
5 = 0 ( 5 =0 ; 3 = 0; g33 +1)
4 + 6 = atan2 ( g 12 11 )
; g
5 = ( 5 = 180o ; 3 = 0; g33 1)
4 6 = atan2 (g12 ; g11 )
Remark 3 The con…guration of the manipulator for which the solution is de-
generate is called the singular con…guration. Singular con…gurations and the
related problems will be discussed in the following chapter.
48
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Multiplicity of solutions:
The multiplicity of the solutions for the Puma 560 Manipulator is the result
of having two signs for the three variables: 1 ; 2 ; and 3 . Therefore we have
23 = 8 possible solutions for each nonsingular con…guration (the arm has four
and the wrist has two solutions.) The arm solutions are illustrated in the …gure
below:
49
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
The existence of real solutions for Puma 560 is determined by two square
roots (41) and (48). The third square root (52) can never be imaginary and
can be excluded from the discussion. The reality of the …rst two square roots is
determined by the following inequalities:
Remark 7 These inequalities can be easily derived from the geometry of the
manipulator shown in …gures on pages 23 and 25.
Remark 8 The …rst inequality does not allow the wrist to approach too close to
the manipulator’s shoulder, while the second inequality prevents the manipulator
from stretching beyond the maximum reach (when the arm is fully stretched).
50
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
In order to choose a single solution from among the several possible solutions,
some additional rules are required. There are basically three important criteria
to be considered:
Obstacle avoidance
OBSTACLE
51
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Joint limits are always a painful restriction when performing the manipula-
tion tasks. Therefore it is a good practice to keep the joints away from the joint
limits qj min , qj max , and close to the middle of the joint range qjmid = (qj min
+qj max )=2: Consequently the solutions can be evaluated from the following cri-
teria:
N (k)
!2
X qj qjmid
F (k) = wj k = 1; 2; :::; Nsol (54)
j=1
qj max qj min
After evaluating all solutions, we choose the one which has minimal value of
F (k) ; i.e.
52
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
(k)
where qjcurrent are the current joint positions, i.e. qj qjcurrent is ab-
solute value of the joint travel when going from some current position to the new
position determined by the inverse kinematics. The weighting coe¢ cients are
usually de…ned according to the size of the joints. For example, the lower num-
bered joints are usually bigger since they carry all the other higher-numbered
links and joints. Therefore the weights with smaller index j should generally
have larger values.
53
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Example
Given is a symmetric AdeptOne type robot with a = 500 mm and d30 =
200 mm: The robot is in con…guration A as shown in the …gure below. The
robot is to move to con…guration B or B 0 which are also shown in the …gure.
The latter two con…gurations have identical poses for the wrist. Suppose that
all three con…gurations have the same elevation of the wrist, and that the orien-
tation of the wrist in all con…gurations is 'z = 0o : (a) Find values of all joints
for the three con…gurations A; B and B 0 . (b) Evaluate the con…gurations B and
B 0 in terms of two criteria: minimal joint travel and maximal distance from
joint limits. In both criteria use equal weights for all joints. Suppose that the
joint limits are as follows: j 1 j 170o ; j 2 j 150o ; j 4 j 180o :
a = 500 mm
y
o
g = 100 mm
B xo
h = 150 mm
B'
w = 750 mm
54
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
From the …gure above we can determine the position of the wrist for the two
con…gurations: 2 3 2 3
750 750
pA = 4 100 5 ; pB = 4 150 5
Conf: 1 2 4
A 48:4o 81:7o 33:2o
0
A + 33:2o 81:7o 48:4o
B 28:8o 80:2o 51:4o
0
B + 51:4o 80:2o 28:8o
By comparing the angles from the table and those from the …gure we can
conclude that the actual initial con…guration A is the one with the negative :
0
Therefore, we ignore the second solution for the initial con…guration A .
55
www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net
Conf ig: Fl Ft
B 0:1817 39:4o
0
B 0:1833 323:7o
0
We can see that the solution B is superior over B in terms of the minimal
travel criteria. As far as joint limits are concerned, both solutions are about
equal.
56
www.jntuworld.com || www.jwjobs.net