0% found this document useful (0 votes)
60 views

Manipulator Kinematics Set 2 PDF

1. The document discusses robot kinematics and describes several important frames used - the base frame {B}, station frame {S}, wrist frame {W}, tool frame {T}, and goal frame {G}. 2. It introduces the Denavit-Hartenberg parameterization which describes the transformation between adjacent links using only four parameters - link length (a), link twist (α), link offset (d), and joint angle (θ). 3. By freely choosing the location of frames, the D-H parameterization reduces the number of parameters needed compared to assigning frames to "geometrically meaningful" locations on each link. It allows defining the transformation between any two fixed axes using just two parameters

Uploaded by

mohammad sammeer
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views

Manipulator Kinematics Set 2 PDF

1. The document discusses robot kinematics and describes several important frames used - the base frame {B}, station frame {S}, wrist frame {W}, tool frame {T}, and goal frame {G}. 2. It introduces the Denavit-Hartenberg parameterization which describes the transformation between adjacent links using only four parameters - link length (a), link twist (α), link offset (d), and joint angle (θ). 3. By freely choosing the location of frames, the D-H parameterization reduces the number of parameters needed compared to assigning frames to "geometrically meaningful" locations on each link. It allows defining the transformation between any two fixed axes using just two parameters

Uploaded by

mohammad sammeer
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.

net

1 Manipulator Kinematics

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1.1 Standard Frames

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

There are several important frames relevant to robot kinematics:

{B} Base Frame

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)

{G} Goal Frame (Speci…ed relative to the station frame, GS 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:

1. Where is the tool?


Given is manipulator con…guration q;
…nd the pose of the tool frame,
with respect to the goal frame TG T:

2. Where should the joints go?


Given is desired pose of the tool frame
with respect to the goal frame TG T; …nd
the corresponding manipulator con…guration q:

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

1.2 Assignment of Frames to Links


As a …rst step in solving the problems above is to assign a frame to each ma-
nipulator link. A straightforward way to do this is to place the frames to some
”geometrically meaningful place” on the link. For example, in the …gure below
the z-axes of the frames are aligned with the joint axes thus putting in a direct
correspondence the frame orientation with the joint angle i : The relative pose
of the frame fig with respect to the frame fi 1g is thus uniquely de…ned by
six independent parameters, one of which is i :

zi-1
zi

xi-1

i-1
p xi
i
θ i-1

Axis i-1 θi
Axis i

Can we de…ne the relative poses of frames by fewer parameters? An approach


which requires only four parameters is proposed by Denavit and Hartenberg1 .
Such reduction of required parameters is possible if we freely choose the location
of the frame’s origins, rejecting the ”geometrically meaningful place”on the link.

1 J.Denavit and R.S. Hartenberg: ”A Kinematic Notation for Lower-Pair Mechanisms Based

on Matrices,” Journal of Applied Mechanics, pp. 215-221, June 1955.

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1.3 Denavit-Hartenberg Parametrization


Two …xed axes:

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

Three …xed axes:


If there are more than two …xed axes the neighboring common normals in
general case will not intersect the common axes at the same point. Therefore
a new parameter is needed: link o¤ set. Link o¤set di is distance between the
common normals ai 1 and ai along the axis i. For prismatic joints the di are
variable parameters, and for revolute joints the di are constant parameters.

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.

axis i axis i+1

ο
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

1.4 Convention for Frame Assignments


Following the Denavit-Hartenberg parametrization we use the following rules
for the frame assignment to links:

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

2 J. Craig: ”Introduction to Robotics,” Addison-Wesley, 1986.

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1.5 Relative Link Pose

θ 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

Axis i-1 Axis i Axis i+1


We can now summarize the DH parameters in terms of coordinate axes:

ai 1 = distance between zi 1 and zi along xi 1


i 1 = angle between zi 1 and zi about xi 1
di = distance between xi 1 and xi along zi
i = angle between xi 1 and xi about zi

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:

1. fig is initially coincident with fi 1g


2. Rotate about fig xi 1 by i 1 ! Rot(e1 ; i 1 )
3. Translate new fig along xi 1 by ai 1 ! T rans(e1 ; ai 1 )
4. Rotate new fig about zi by i ! Rot(e3 ; i )
5. Translate new fig along zi by di ! T rans(e3 ; di )

This results in the following HT matrix:


i 1
iT = Rot(e1 ; i 1 ) T rans(e1 ; ai 1 ) Rot(e3 ; i ) T rans(e3 ; di )

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 )

directly map the i-th row of the DH table.

11

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

Sometimes it is convenient to consider the DH table as a constant quantity


which does not change with the manipulator con…guration. In other words,
the values for i and di are constant o¤sets given by the manufacturer for the
initial con…guration (home con…guration) of the manipulator. The relative HT
matrices can then be expressed in the following way for any con…guration given
by the joint vector q = (q1 ; q2 ; :::; qn ):

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

1.7 Forward Kinematics


1.7.1 Recurrent Formula
The HT matrix of the manipulator’s wrist with respect to the base can be
expressed now as the product:

B 0 Q
n
i 1
WT = nT = iT (4)
i=1
i 1
where iT are known matrices computed by (3).

More convenient form of (4) is its recurrent version:


0
0T = I4
(5)
0 0 i 1
i T = i 1T iT i = 1; 2; :::; n

This form is suitable for computer programming.

13

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

The equation (5) can also be expressed in a de-blocked


(non-homogeneous) form:

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

which has an obvious geometrical interpretation shown in the following …g-


ure:

{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

1.7.2 Recursive Procedure


There is an even more suitable form of the forward kinematics equations for
computer programming if the implementation language supports recursive pro-
cedures (like C/C++ , Pascal, Matlab etc.)

For example, using the matlab-style the recursive version would look like
this:

% FKIN() –Compute forward kinematics


% DH –Denavit-Hartenberg table
% q –Manipulator con…guration
% i –Joint index

function T = fkin(DH, q, i)
T = i 1i T (equation (3))
if i > 1
T = fkin(DH, q, i-1)*T
end

Apparently, the recursion hides the iteration construct which is explicitly


visible in recurrence (6).

15

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1.7.3 E¢ cient Recurrent Formula


Let us rewrite the expression for the relative orientation matrices from (2):
2 3
ci si 0
i 1
iR =
4 c i 1 si c i 1 ci s i 1 5
s i 1 si s i 1 ci c i 1

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

= [xi 1 yi 1 zi 1 ] rot(e1 ; i 1 ) rot(e3 ; i )

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:

Furthermore it is easy to see that:


0 i 1
i 1R pi = i 10 R (i 1 xi 1 ai 1 + di i 1
zi )
= 0 xi 1 ai 1 + di 0 zi (9)
= xi 1 ai 1 + di zi

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:

xi = xi 1 ci yi 1 si for parallel axes


yi = xi 1 si yi 1 ci ( i 1 = 00 =1800 )
zi = zi 1
i = 3; 4; :::; n (11)
xi = xi 1 ci zi 1 si for perpendicular axes
yi = xi 1 si zi 1 ci ( i 1 = 900 )
zi = yi 1

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

where: c12 = cos( 1 2 ); s12 = sin( 1 2 ).

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

1.7.4 Example 1: AdeptOne Robot

θ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

The simpli…ed kinematic diagram of the AdeptOne Robot is given below.


The …gure shows the home con…guration:

θ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

The simpli…ed kinematic diagram is convenient to determine the DH para-


meters by a straightforward application of the rules given in (1.4). The resulting
DH table is as follows:
i i 1 ai 1 i di i
1 0 0 1 0 0
2 0 a1 2 0 0
3 0 a2 0 d3 d30 1
4 0 0 4 0 0

The relative HT matrices can be directly derived by using (1):

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

1.7.5 Example 2: Puma 560 Manipulator

θ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

PUMA 560 manipulator is a popular 6 DOF, all revolute manipulator which


is commonly used in research and academic studies. Note that the manipulator
on this sketch is also not in the home con…guration.

23

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

The simpli…ed kinematic diagram of the Puma 560 manipulator in home


con…guration is given below:

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

The DH table which corresponds to the frame assignments in the …gures


above:

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:

a2 = 0:43180 m (17 in)


a3 = 0:02032 m (0:8 in)
d3 = 0:12446 m (4:9 in)
d4 = 0:43180 m (17 in)
The joint limits for the PUMA 560 have the following values:

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

The relative HT matrices derived by using (1):

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

As will be discussed later, it is useful sometimes to consider arm and wrist


separately if the manipulator has a spherical wrist. A spherical wrist has all
joint axes intersecting in a single point. Thus, the arm part is de…ned as the
part of the manipulator which contributes to the position of the wrist, while the
spherical wrist only changes its orientation (wrist does not a¤ect the position).
In case of Puma 560, the arm part consists of links #0-#3 and a part of the
link #4, which includes screw about x-axis and the translation part of the screw
about z-axis, excluding rotation of the 4-th joint 4 . Since the wrist does not
have any length parameters (ai = di = 0; i = 4; 5; 6), its relative HT matrices
have only pure rotations.. Consequently the HT matrices of the arm and wrist
of the Puma 560 manipulator are:

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)

After multiplying the parts, we can get for the arm:


2 3
c1 c23 s1 c1 s23
RA = 4 s1 c23 c1 s1 s23 5
s23 0 c23
2 3 (16)
c1 (c23 a3 s23 d4 + c2 a2 ) s1 d3
pA = 4 s1 (c23 a3 s23 d4 + c2 a2 ) + c1 d3 5
s23 a3 c23 d4 s2 a2

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:

1. Write-in the x- and y- axes for all links.

2. Compose the DH table.


3. Derive all relative HT matrices.
4. Derive the HT matrix of the wrist with respect to the base.

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

1.8 Inverse Kinematics


The inverse kinematics discussed in section 1.1 consist of …nding the joint con…g-
uration q for a given Cartesian pose of the manipulator’s wrist (or end-e¤ector)
B 0
W T = n T . There is no general approach for the inverse kinematics, as we had
in forward kinematics. In general case there is not even a closed-form solution
for it. Pieper3 has shown that a manipulator has a closed form solution (in
analytic form) if:

1. The manipulator has six DOF,


2. Its three consecutive axes intersect in a single point, or
3. Its three consecutive axes are parallel

Most of the industrial robots satisfy these conditions.. Such manipulators


are called simple manipulators.

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).

3 D. Pieper: ”The Kinematics of Manipulators Under Computer Control,” Ph.D. Thesis,

Stanford University, 1968

32

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1.8.1 Example 1: AdeptOne Robot


Closed-form solution
The HT matrix of the manipulator’s wrist, according to (14), is:
2 3
c124 s124 0 c1 a1 + c12 a2
6 s c 0 s1 a1 + s12 a2 7
0 6 124
4T = 4
124 7
0 0 1 d3 d30 5
0 0 0 1

We start with the position …rst:


2 3
c1 a1 + c12 a2
p = 4 s1 a1 + s12 a2 5 (17)
d3 d30

where p is a given vector. The joint displacement d3 can be found immedi-


ately:
d3 = p3 + d30
For the x- and y- component of the position we can write:

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

or in the matrix form:


c1 s1 p2 1
= (22)
s1 c1 p1 b1

As discussed in Appendix B, the latter equation represents a two-dimensional


rotation about the z-axis by 1 which directly suggests the solution:

33

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1 = atan2(b1 ; 1) atan2(p1 ; p2 ) (23)


4
where 1 can be obtained from p21
+ = p22
+ 2
1 b21 , i.e.:
q
1 = p21 + p22 b21

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

The symmetric case:

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):

Left Elbow Solution: Right Elbow Solution:

(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

Existence of the solution

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)

The roots of the equation (28) are 1 = a1 a2 and 2 = a1 + a2 ; therefore


the condition (28) is satis…ed if:

a1 a2 a1 + a2 (29)

This is illustrated in the …gure on the next page.

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.

Remark 2 The dexterous workspace considered here is not strictly dexterous,


since the wrist (or end-e¤ ector) can not have arbitrary orientation in 3D space.
However, since this robot is expected to have an arbitrary orientation in the x-y
plane while the other orientation angles are ignored, we can call it ”dexterous”.

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

The e¤ect of limiting joints is a severe reduction of the dexterous workspace,


which is illustrated in the …gure below.

θ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

1.8.2 Spherical Wrists


As mentioned earlier, most of the industrial manipulators are designed to be
simple, with three perpendicular wrist joint axes which intersect in a single
point - the spherical wrist center . In this subsection we show that the wrist
kinematics of such manipulators can be represented in a unique form of z-y-z
Euler angles. Therefore, the problem of the inversion of the wrist kinematics can
be reduced to the inversion of Euler angles, which was discussed in subsection
??.

The orientation of the wrist of the Puma 560 Manipulator (15), rewritten in
non-homogenous form is:

RW = rot(e3 ; 4 ) rot(e1 ; 2 ) rot(e3 ; 5 ) rot(e1 ; 2 ) rot(e3 ; 6 ) (30)


By reviewing the …gures in chapter 2, it can be seen that the same equation
holds for the Stanford/JPL manipulator. The basic characteristics of these
manipulators is that the joint axes 4 and 6 are aligned in the home con…guration.
We will now make use of the property of the rot() operator shown in sub-
section ??:
R rot(k; ') RT = rot(Rk; ') (31)

41

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

In the particular case: R = rot(e1 ; 2 ) and k = e3 ; ' = we have:

rot(e1 ; 2 ) rot(e3 ; ) rot(e1 ; 2) = rot( rot(e1 ; 2 ) e3 ; ) (32)


Clearly, the rotation of e3 about e1 by 2 gives e2 , and consequently:

rot(e1 ; 2 ) rot(e3 ; ) rot(e1 ; 2) = rot(e2 ; ) (33)

Replacing now the appropriate terms of (30) by (33) we get the z-y-z version
of (30):

RW = rot(e3 ; 4) rot(e2 ; 5) rot(e3 ; 6)

This can also be written in a more concise form:

RW = ZY Z( 4 ; 5; 6) (34)

where ZY Z( ; ; ) represents the mapping of z-y-z Euler angles into the


rotation matrix, discussed in subsection ??

42

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

Other manipulators described in chapter 2 are Cincinnati Milacron (T3 ) and


RTX where the neighboring wrist axes are mutually perpendicular for the home
con…guration, as shown in the …gure below.

PUMA 560, Stanford/JPL Cincinnati Milacron, RTX


(home configuration) (home configuration)
z4 z 6 z4

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 + )

which results in the following z-y-z Euler angle equivalent:

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

In general, all spherical wrists can be represented in the form:

RW = ZY Z( 4 ; 5; 6 )
where the arguments 4; 5 and 6 are taken with an appropriate o¤set.

The total orientation of the manipulator is:

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)

This equation can be solved analytically for 4; 5 and 6 by using expressions


(??) presented in subsection ??

44

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

1.8.3 Example 2: Puma 560 Manipulator


Inverse Kinematics of the Arm
It was established in section 1.7.5 that the manipulator distance is fully
determined by the arm distance as shown in (16). Therefore we will use this
equation to …nd …rst three joint angles for a given Cartesian position of the
robot wrist p = (p1 ; p2 ; p3 ):

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

If we introduce the substitution:

1 = c23 a3 s23 d4 + c2 a2 (39)

the …rst two equations of (38) become:

c1 1 s1 d3 = p1
(40)
s1 1 + c1 d3 = p2

which directly gives:


q
1 = p21 + p22 d23 (41)
1 = atan2 ( 1 ; d3 ) atan2 (p1 ; p2 ) (42)

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

which after breaking s23 and c23 , and rearranging gives:

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

Similarly, the second two equations (44)give:

b22 + 2
2 = a23 + d24 (46)

Equations (45) and (46) can be solved for b2 and 2:

p2 a22 a23 d23 d24


b2 = (47)
2a2
q
2 = a23 + d24 b22 (48)

Solutions for 2 and 3 directly follow from (43) and (44):

2 = atan2 ( p3 ; 1 ) atan2 ( 2 ; b2 + a2 ) (49)


3 = atan2 ( 2 ; b2 ) atan2 (d4 ; a3 )

Expression for 2 can also be written in more convenient form:

2 = atan2 ( 1 ; p3 ) atan2 ( 2 ; b2 + a2 ) (50)


2

46

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

Inverse kinematics of the wrist


The general equation for the spherical wrist (37) applied to the Puma 560
Manipulator (see (34)) is:

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:

g1i = (c1 c23 ) r1i + (s1 c23 ) r2i s23 r3i


g2i = s1 r1i c1 r2i
g3i = (c1 s23 ) r1i (s1 s23 ) r2i c23 r3i

Solution of (51) can now be directly obtained from (??) i.e. (??):

Regular case ( 5 6= 0o ; 180o )


p
= 2 + g2
g31
3 32

arctan 2(g23 ; g13 ) if 3 <0


4 =
arctan 2(g23 ; g13 ) if 3 >0 (52)

5 = arctan 2( 3 ; g33 )

arctan 2(g32 ; g31 ) if 3 <0


6 =
arctan 2(g32 ; g31 ) if 3 >0

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.

Remark 4 A singular con…guration can be recognized right after the computa-


tion of the arm joints, from the coe¢ cients of the matrix G: g31 = g32 = 0, or
g33 = 1. These values correspond to 3 = 0; or 5 = 0; :

Remark 5 The singular con…guration 5 = is only theoretical. In real life,


this value can never occur due to the limits of the 5-th joint (see page 26.)

Remark 6 In a singular con…guration only the sum (di¤ erence) between 4


and 6 can be determined. In order to resolve the ambiguity, the most practical
approach is to use the most recent value of 4 . This means that if the ma-
nipulator moves into a new pose which is singular, then simply do not change
the 4-th joint, i.e. keep its current value and determine the 6-th joint from
6 = atan2( g12 ; g11 ) 4:

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:

LEFT arm - BELOW elbow RIGHT arm - BELOW elbow

LEFT arm - ABOVE elbow RIGHT arm - ABOVE elbow

49

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

Existence of the solution

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:

p21 + p22 d23 0


2 2
p a22 a23 d23 d24
a23 + d24 0
2a2

which after some rearrangements become:

p21 + p22 d23


p (53)
p21 + p22 + p23 a22 + a23 + d23 + d24 + 2a2 a23 + d24

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

1.8.4 Resolving The Ambiguity

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

Sometimes the choice of an alternative solution can help to avoid an obstacle


(see illustration)

Solution "elbow above" is


rejected due to the obstacle

OBSTACLE

51

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

Maximum distance from the joint limits

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

where N is number of joints (DOF),P Nsol is the total number of solutions,


while wj are weighting coe¢ cients ( wj = 1): These coe¢ cients can be used
to give a higher priority to some joints (if all joints are equally important then
wj = 1 for all j.)

After evaluating all solutions, we choose the one which has minimal value of
F (k) ; i.e.

F (kopt ) = min F (k) :


k

52

www.jntuworld.com || www.jwjobs.net
www.jntuworld.com || www.android.jntuworld.com || www.jwjobs.net || www.android.jwjobs.net

Minimal joint travel (The closest solution)

Another possible optimization criteria is to choose a solution which mini-


mizes the total joint motion of the manipulator. This can make the motion
more natural and will also minimize the wear of the movable parts in joint
transmission (gears, ball bearings etc.). The minimization function in that case
would be:
N
X (k)
F (k) = wj qj qjcurrent k = 1; 2; :::; Nsol (55)
j=1

(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

The elevation is not important in this exercise so we ignore it. By using


formulas for inverse kinematics for AdeptOne Robot (27), we can obtain the
following values:

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

The con…guration qA we use now as the initial con…guration needed to de-


termine the total joint travel Ft by using the formula (55). Also, by using the
formula (54) we can …nd the value for the criterion function for the maximal
distance from the joint limits, Fl . The values for these criterion functions for
0
two solutions, B and B are as follows:

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

You might also like