You are on page 1of 5


3, MAY/JUNE 1984 483

An Exact Kinematic Model of PUMA 600


Abstrac·t-An exact kinematic model of the Unimation PUMA 600

robotic manipulator is presented. Discrepancies found between the actual
manipulator in laboratory tests and the first model presented are discussed.
The link coordinate frames are redefined in order to introduce a new
transformation for a tool frame. Modifications are made to previously
published solutions of the inverse kinematics and differential kinematics.
The actual reference orientation frame of the manipulator is formulated
such that the orientation of the end effector can be expressed in terms of
the actual angles 0, A , T.

The development of mathematical models is motivated by the
complexity of robotic systems which have highly nonlinear dy-
namic characteristics, making the analysis and design of control
schemes impractical. In the development of real-time controls
and computer simulations for an industrial robot such as the Fig. 1. PUMA 600 coordinate frames.
PUMA 600 manipulator series, the problem of exact kinematic
modeling and parameter identification must be addressed. The
kinematic and differential kinematic models are needed for off- PUMA 600 LINK PARAMETERS
line/ on-line generation and tracking of task space trajectories of
manipulators. In addition, these models can be used for static Joint 0 r £ range
force/torque transformations between coordinate frames to allow
real-time processing information from end-effector force sensors.
'-90 0 0 0 ±2.7925
Paul et al. [1]-[3] have developed kinematic control and dif-
ferential kinematic control equations for simple manipulators. -3.892
0 0 £2 + .7504
These equations were then applied to the PUMA 600 robotic
manipulator with successful results. The solutions to these equa- 90 0
r3 £3 +4.040
tions failed to match the robot in actual laboratory tests, how- -1.918
ever, and were considered unacceptable for use in a simulation -90 0 r4 0 +2.9670
model. In this correspondence an addendum to [1]-[3] is pre-
+90 0 0 0 ±1.7453
sented. The additions to the algorithms presented in [1], [2] make
the kinematic and differential kinematic models match more 0 rs 0 ±4.6425
accurately the robotic manipulator's computer output.
It is assumed throughout that the reader is familiar with the £2 17.00 in £3 -.79 in
basic principles of kinematic modeling such as the specification r3 5.87 in r4 17.00 in rs = 2.22 in
of position and orientation through homogeneous transforma-
tions. The following basic notation is used herein:
R(x, lX) rotation about unit vector x by an angle lX, Using these coordinate frames the transformation matrices Ai are
T(x, d) translation along unit vector x by a distance d, defined relating the ith link frame to the coordinate frame of link
i-I. Some rules have been specified in assigning these frames
R ij rotation matrix from frame i to frame j,
[3], [4]. In the' case of PUMA 600 it was found that F6 does not
If coordinate frame of link j,
follow the same rules. The correct orientation of frame F6 was
Aj homogeneous transformation matrix from Fj -1 to
then assigned as shown in Fig. 1.
An additional frame in Fig. 1 is referred to as the reference
pi position vector coordinates of frame i with respect
orientation frame Fq, [6]. This frame represents the reference with
to frame j,
respect to which the orientation of the manipulator's end-effector
C(), S () cos 0, sin O.
and tool frames are defined.
II. ASSIGNMENT OF COORDINATE FRAMES The transformations {Ai} allow us to define the position and
orientation of the end-effector frame relative to the base frame
The PUMA 600 manipulator is a six-degree-of-freedom manip- using the following transformation 16:
ulator consisting of seven links with six rotary joints. To obtain
the Cartesian position and orientation of the end-effector frame
with respect to the base frame (Fo ) given the joint variables, we s2 (1)
follow the methods developed by Denavit and Hartenberg [4] for o
assigning coordinate frames to each link as shown in Fig. 1.
The vector pg= [Pxpypz]T specifies the position of the origin
of the end-effector coordinate frame with respect to the refer-
Manuscript received January 4, 1983; revised June 1983. This work was ence-base frame Fo and n~ = [nXnynz]T, s2 = [sxSySz]T and
supported by the NSERC under Grant A4664.
A. Bazerghi and 1. Apkarian are with the Department of Electrical Engineer-
ag = [aXayaz]T are the components of the projections of the
ing, University of Toronto, Toronto, ON, Canada. base three unit vectors of F6 with respect to Fo.
A. A. Goldenberg is with the Department of Mechanical Engineering, Uni- The transformation matrices A i are functions of the joint
versity of Toronto, Toronto, ON, Canada. variables 0i and the link parameters Ii' lXi' and ri which are

0018-9472/84/0500-0483$01.00 ©1984 IEEE


/ 'X~
4 ~//

Fig. 2. End-effector frame and tool frame.

defined [1], [3] as where, in general,

link length
link twist (2) s~ a~ p~) = (ROT p~). (9)
link distance.
o 0 1 000 1

It was found that some of the link parameter values used in [1] The A j are obtained in [1] and A 6T takes into account '5 and the
do not match those of the actual PUMA 600. The correct values new transformation A ET. Through these transformations, one
for these parameters were experimentally obtained and are given can now obtain the position and orientation of the tool with
in Ta~le I. Note that /3 has a negative value and '5 is nonzero. respect to the base frame.
Keeping the matrices A 1-A 5 as described in [1], we can introduce For the computer simulation program of PUMA 600 [5], this is
'5 into the transformation matrix 16 by redefining A 6 as follows: a more viable alternative since it allows the user to define any
tool size at arbitrary orientations. This method is used in the
Ali = R(Z5' 90) . R(Z5' ()6) . T(Z5' (5). (3) actual manipulator when operated in its TOOL mode command.
In case no tool is specified, the tool frame is defined such that the
null tool orientation is taken as having an orientation 0, A, T of
-S6 -C6 0 0 (90, - 90, 0) [6] with respect to the reference orientation frame,
C6 -S6 0 0 and the origin of the tool frame coincides with the origin of the
Ali = (4) end-effector frame (F6).
0 0 1 '5

The U; transformations [1] can now be redefined (Appendix), A. Tool Orientation

and the solution to the inverse kinematics problem can be per-
formed. These transformations are nontrivial to solve using the The transformation matrix X in (8) allows us to express the
outline in [1] and [3] since a nonzero value of '5 introduces orientation of the tool frame FT with respect to the base frame
transcendental equations in the entries of transformations U Fo. The reference frame Fep is defined in reference to frame Fo as
n = 1,2,· . ·,6. To avoid the redefinition of the U transforma-
tions, F6. was made to coincide with F5 ('5 = 0) a~ done in [1], o
and a tool and end-effector transformations A 6T and AGE were o (10)
introduced as shown in Fig. 2. 1
The following transformations are now defined:
Th~ orie~tati<?n of FT with respect to Fep is expressed in terms
of orientation, approach, and twist (0, A, T) angles. This results
0 0
1 0 from three consecutive rotations about Fep, namely, 0 about Yep'
AGE = 1 (5) A about the new xep' and T about the new zep. This transforma-
tion is given by RepT:
0 0
= (RET
000 ~¥). (6)

Then A 6T, the transformation from FT to F6, is given by o

So) (1
. 0
A 6T = AGE· A ET · (7) Co 0

Thus the final transformation relating the tool frame to the base COCT + SOSAST - COST + CTSOSA SOCA)
frame is given as follows, usi~g (1) and (7):
RepT = CAST CTCA - SA (12)

and thus Since the tool transformation (7) is fixed, an expression for 16
in (1) can be obtained from (8) as follows:
ROT = R O$ . R$T

COCT + SOSAST - COST + CTSOSA t: = X(A ) -1 = (n~

s20 a~ pg).
0 1
SOCA) 6 6T
( Having obtained 16 from (13), the task of solving the inverse
kinematics problem can be dealt with in much the same manner
(13) as presented in [1] with the following exceptions:
from where 0, A, T angles can be calculated as shown in the next p, r3
a) (Jl = tan -1--:- - tan -1 (24)
section. Px ±Vd2 - rl
B. Solution to Forward Kinematics
The forward kinematic problem is defined as follows. Given
the joint angles OJ, obtain the position of the tool with respect to d2 = P; + p}:. (25)
Fo and its orientation relative to F . In contrast to what was mentioned in [1], the minus sign of
The position of the tool is obtained in a straightforward
manner by simply calculating the transformation matrix X given (± Vd 2 - rl) corresponds to a right shoulder configuration of
by (9). The first three elements of the fourth column in (9) the manipulator, and the plus sign corresponds to a left shoulder
denoted by P~ are the position of the tool frame with respect to configuration.
base frame.
The orientation of the tool frame is expressed in 0, A, Tangles
with respect to F<t>. The transformation from FT to base frame Fo
b) Since 13 has a negative value rather than the positive
value mentioned in [1], the calculation of 3 has to be slightly
modified, with the final result being
is given by (13). One has to solve for 0, A, and T to satisfy (13). -I d
In trying to obtain explicit solutions of 0, A, and T, we must 03 = tan- 1 _ 3 + tan- 1 (26)
use the arctan function (ATAN2 in a computer simulation) in r4 ±Vc 2
- d2
order to obtain an angle value in the [ - 'IT, 'IT] range. By examin- where
ing the ROT matrix (13), the following algorithm is proposed to
solve for 0, A, and T. c 2 = 4/~rl + 4/~/~ (27)
1) If R~j = ± 1, then A = +90° and T = 0°, respectively;
this is a singular case, where if A = ± 90°, then 0 and T become
collinear. In this case, the PUMA 600 robot sets the T angle to d = f? + fl - r1 - I~ - I~ (28)
zero and recalculates O.
2) If Rbj =1= 1, then T = ATAN2(R~~/R~}) if 90° ~ A ~ fl = C1Px + SIPv (29)
-90° and
f2 = -pz (30)
T = T + 180° otherwise. (14)
f12 + fl- r1 - I~ - I~ = 2/2r4S3 + 2/2/3c3 = d. (31)
A = ATAN2( - R~j/( Rb~ST + R~}CT )). (15)
Here, for a left shoulder configuration, the plus sign corre-
3) Note that sponds to the below elbow configuration, and the minus sign to an
above elbow configuration. If the manipulator is in a right shoulder

(16) configuration, the plus and minus signs take the reverse cor-
and respondence to that of the left shoulder configuration. Angles 2 ,
(J4' (Js, and (J6 can be obtained by the method outlined in [1].
D. Solution to Forward Differential Kinematics
The forward differential kinematic problem is defined as fol-
(18) lows. Given the joint rates 8 = (()1 O2 . . . ()6) T, calculate the linear
and angular velocities of the tool frame with respect to the base
also frame.
(19) The solution to this problem can be approached by first
establishing a relationship between the differential translations
and and rotations mentioned in [2] and [3] and linear and angular
veloci ties of the tool frame.
Define uj to be the unit vector along Zj' Pj6 the vector from
Therefore, the origin of Fj. to F6, vj 6 the linear velocity of the origin of F6
resulting from OJ + 1 with all other (Jk = 0, k =1= j + 1 and ""6 the
R~~(CT) + R~}( -ST) = So' (21) angular velocity of frame F6 resulting from ()j+ 1 (Fig. 3). Then it
follows that
We can obtain 0 from (18) and (21) as
Vj6 = u j X Pj6 ()j + 1 (32)
o= ATAN2(So/Co)' (22)
"'j6 = U j . OJ + L: (33)
C. Solution to Inverse Kinematics Therefore,
The inverse kinematic problem is defined as follows. Given the 5
orientation and position of the tool frame X in (8), obtain the -0 On
1'60_ '"
- 1...J U j P j 6 fJj + 1 (34)
joint configuration angles. )=0

Then, (39) becomes

= (R 000Ii 16
06 . (41)

Contrary to [2] and [3], in (41), it is assumed that all linear

velocities v introduced by w «(,,) X p = v) are already accounted
for in the initial velocity v supplied. This allows for easy transfer
between forward and inverse differential kinematics such that the
results completely match.
To obtain the inverse differential kinematics solutions, we
followthe method outlined in [2]. This method is developed for a
six-link ~UMA 600 with no offset at the end effector (r5 = 0) or
Fig. 3. Schematic representation of end-effector velocities. any tool attached to it. It is trivial though to compensate for these
changes in the following way.
a) Given the angular velocity of the tool (,,)T' since A 6T is fixed,
and then the angular velocity of frame F6 with respect to base frame
5 is given by
wg = L uj . ()j+l (35)

where ilj, the skew operator corresponding to the unit vector uj b) The linear velocity vg of frame F6 can be obtained from the
projected in frame Fo , is defined as tool's linear velocity v~ as follows:
0 -uj0z Uj y (43)
uj0z -uj0x
0 (36) Having obtained wg
and vg,
we can proceed to solve the
0 inverse differential kinematic control problem using the method
in [2], [3].
Expanding (34) and (35), we obtain
A kinematic model of the PUMA 600 which exactly matches
the actual manipulator was developed. In [1], [2], some link
parameters were not properly accounted for, and tool specifics
where Jo is the Jacobian matrix [2], [3] defined with respect to the were omitted. In this correspondence we redefined the link coor-
base frame. dinate frames and introduced a new transformation for the tool
Having defined the link transformation matrices (A 1-A 6 ) , the which took into account the value of r5 (end-effector offset), thus
Jacobian Jo can be obtained in a straightforward manner as allowing modeling any size of tool. Some modifications were also
described by (32)-(36) with the exception that the last transfor- made on the solutions of the inverse kinematics so that no
mation A 6 mentioned in [2], [3], [5] must be redefined as follows: discrepancies occurred when the manipulator was in left/right or
below/ above configurations. The actual reference orientation
A6= A 6 • A 6T (38) frame of the manipulator was also formulated in which the
orientation of the tool is expressed in 0, A, T angles. The orienta-
where A 6 T is defined in (7). tion angles were not previously discussed, and their inverse
solution was outlined in this correspondence. Some modifications
E. Solution to Inoerse Differential Kinematics to the differential kinematics solutions were also introduced so
The inverse differential kinematic problem is defined as fol- that the tool frame is properly taken into consideration.
lows. Given the linear and angular velocities of the tool frame,
With these changes, a simulation model was implemented [5].
obtain the joint rates 6.
The results matched the measurements taken from real-time tests
In [2], [3] a method to obtain the inverse Jacobian for differen-
of the PUMA 600 at the University of Toronto Automation and
tial translations and rotations without resorting to inverting the
Robotics Laboratory.
6 X 6 Jacobian matrix (37) is presented. The Jacobian can be
singular at more than one point in space.
The differential dT matrix of any homogeneous transforma- APPENDIX
tion T can be expressed in terms of the differential change of its
-C6 0

elements [2], [3], or in terms of the linear velocity v = (VXv)Pz) T,
and the angular velocity w = (wxwywz ) T. (-S - S6 0
U6 = {: 1
11 16 IS as given In (1), then 0
0 0
dsg (39)
o C
( - S6 S
-CSC6 s, s)
Us = - S6SS -SsC6 - Csrs
Given the angular velocity (,,), the skew symmetric differential C6 - S6 0 0
rotational matrix can be expressed as 0 0 0 1

( - C4CSS6 - S4C6 - C4CSC6 + S4 S6 C4SS

C4SS rs )
(40) U = - S4S6CS + C4C6 - S4CS C6 - S6 C4 St SS S4 S S rS
S6SS SSC6 Cs csrs1+ r4
0 0 0

- C3(C4CSS6 + S4C6 ) + S3S6 S S - C3(C4CSC6 - S4 S6) + S3SSC6 C3C4SS + S3CS C3C4SS'S + S3(CS'S + '4)+ [3 C3)
U = - S3( C4CSS6 + S4C6) - C3S6SS - S3(C4CSC6 - S4S6) - C3SSC6 S3C4SS- C3CS S3C4SS'S - C3(Cs's + '4) + [3 S3
( - S4S6 CS + C4C6 -~~4-~~ ~~ ~~~+~
o 0 0 1

C2 [S3 S 6 S S - C3(C 4CS S6 + S4C6 ) ] + S2 [S3(C4CSS6 + S4C6 ) + C3S6SS ] C2[S3 S S C6 - C3(C4CSC6 - S4S6)] + S2[S3(C4CSC6 - S4C6) + C3SSC6]
U = [S3S 6 S S - C3(C4CSS6 + S4C6)] - C2 [S3 (C4CSS6 + S4C6) + C3S6SS ]
S2 S2 [S3 S SC6 - C3 (C4CSC6 - S4S6)] - C2 [S3(C4CSC6 - S4C6) + C3SSC6 ]
( - S4S6CS + C4C6 - S4CS C6 - S6C4
o o
C2 [ C3C4 s, + S3CS]- S2[ S3C4 s, - C3CS ] C2 [C3C4S S ' S + S3(Cs's + '4) + [3 C3]
S2 [C3C4SS + S3CS ] + C2 [S3C4S S - C3CS ] - S2 [S3C4S S' S - C3(Cs's + '4) + '3 S3] + C2 '2
S4SS S2 [C3C4S S ' S + S3(Cs's + '4) + [3 C3]
o + C2[S3C4S S' S - C3(Cs's + '4) + [3 S3] + [2 S2
S4 S S' S + '3

- C23(C4CSS6 + S4C6) + S23 S6S S - C23 (C4CSC6 - S4S6) + S23 S S C6 C23C4s, + S23 CS C23C4S S' S + S23(C S' S + '4)+C23/3 + 12C2 )
U = - C23(S6 S S) - S23 (C4CSS6 + S4C6) - C23SSC6)- S23(C4CSC6 - S4S6) - C23CS + S23 C4s, - C23(Cs's + '4) + S23(C4S S's + 13) + 12S 2
( C4C6 - S4C5 S6 - S4CSS6 - S6C4 S4S 5 S4 SS r5 + '3
o o o 1

Simultaneous Experimentation of Self-Learning

Classification, Connectivity Analysis and
nx = C1[S23 S6S5 - C23(C4C5S6 + S4C6)] + S1[S4C5 S6 - C4C6] Visualisation for Data Interpretation
"» = S1[S23 S6S5 - C23(C4C5S6 + S4C6)] - C1[S4C5 S6 - C4C6] A; OLLERO AND 1. AGUILAR-MARTIN
». = C23S6S5 + S23(C4C5S6 + S4C6)
Abstract-Self-learning classification of data and connectivity analysis
SX = C1[S23 S5C6 - C23(C4CSC6 - S4S6)] + S1[S4C5 S6 - S6C4] using probabilistic and fuzzy concepts are compared with subjective and
Sy = S1[S23 S5C6 - C23(C4C5C6 - S4S6)] - C1[S4C5S6 - S6C4] visual rearrangement of data. Both methodologies are fully described and
results are compared on two examples: crisp binary data and normalized
SZ = C23S5C6 + S23 (C4C5C6 - S4S6) real data.


a y = S1[C 23C4S5 + S23C5] + C1S4S5 A. I ntroduction
az = C23C5 - S23 C4 S5 Multivariable data analysis is required when a structure is to be
detected on a set. This enables the observer to have a different
Px = C1[C23C4S5'5 + S23 (C5'5 + '4) + C23/3 + 12Cz ]
look at the same set where the elements, no longer appear by
- S1 (S4 S5'5 + '3) themselves, but by their cross relations. Statistical analysis gives
an interpretation of the unhomogeneity of the set in terms of
p.'¥' = S1[ C23( C4S5'5 + 13) + S23(C5'5 + '4) + IzCz] features directly linked to probabilistic populations. Clustering,
or automatic classification adds to that interpretation a decision
+ C1(S4 S5'5 + '3) process, or mapping, which assigns to each element x Ega class
pz = C23( C5'5 + '4) - SZ3 ( C4S5'5 + 13) - IzSz. C, such that x E C; The set of classes {C} i E I is therefore a
partition fJlJ of the set Q.
B. Classification and Partitions [9J
REFERENCES A classifier is a system that performs the mapping w ~ 0.
[1] R. P. Paul, B. Shimano, and G. E. Mayer, "Kinematic control equations The partition f!JJ = {C, }~=1 is equivalent to the set X =
for simple manipulators," IEEE Trans. Syst., Man, Cybern., vol. SMC-11,
pp. 449-455, June 1981.
{ Xi( W ) } ~= 1 of the characteristic functions of each class, that is
[2] - , " Differential kinematic control equations for simple manipulators," 1,
IEEE Trans. Syst., Man, Cybern., vol. SMC-11, pp. 456-460, June 1981.
if w E C,
[3] R. P. Paul, Mathematics, Programming and Control. Cambridge, MA: , if w e C,
MIT Press, 1981.
[4] J. Denavit and R. S. Hartenberg, "A kinematic notation for lower pair
mechanisms based on matrices," J. Appl. Mech., pp. 215-221, June 1955. Manuscript received April 11, 1983; revised October 1983.
[5] A. Goldenberg, "Software development for simulation of a robotic-manip- A. Ollero is with Escuela Tecnica Superior de Ingenieros Industriales de
ulator," Univ. of Toronto, Toronto, ON, Canada, Mech. Eng. Tech. Rep., Vigo, Universidad de Santiago, Vigo (Pontevedra), Spain
Apr. 1982. J. Aguilar-Martin is with Laboratoire d'Automatique et d'Analyse des
[6] PUMA Robot Manual, Unimation. Systemes du CNRS, Toulouse, France

0018-9472/84/0500-0487$01.00 ©1984 IEEE