I. INTRODUCTION
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
TABLE I
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
-0.9075
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
'F6
/'
/
/
/ 'X~
/
/
4 ~//
I
I
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
Then
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
0 0 0 1 III. KINEMATIC EQUATIONS
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)
(
(8) - SoC T + COSAST SOST + COCTSA COCA
IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMc-14, No.3, MAY/JUNE 1984 485
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
°
(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].
(17)
D. Solution to Forward Differential Kinematics
Therefore,
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.
(20)
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
486 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMc-14, No.3, MAY/JUNE 1984
~.
Then, (39) becomes
d~
6
= (R 000Ii 16
06 . (41)
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
0 -uj0z Uj y (43)
uj0z -uj0x
0 (36) Having obtained wg
and vg,
we can proceed to solve the
-uJ.v
0
»t.
0
0 inverse differential kinematic control problem using the method
in [2], [3].
Expanding (34) and (35), we obtain
IV. CONCLUSION
A kinematic model of the PUMA 600 which exactly matches
(37)
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)
-Cs
ssr
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
- 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
3
( - 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 ]
2
( - 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
1
Therefore,
- 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
2
( C4C6 - S4C5 S6 - S4CSS6 - S6C4 S4S 5 S4 SS r5 + '3
o o o 1