Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

298 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO.

3, MAY/JUNE 1983

Conventional Controller Design for


Industrial Robots—A Tutorial
J. Y. S. L U H , SENIOR M E M B E R , I E E E

Abstract—Industrial robots are serial link manipulators whose dynamic The last row in H(t) is added for the convenience of future
characteristics are highly nonlinear. By controlling each link or joint computation using homogeneous transformation [3]. The
individually, employing the conventional technique to design linear feed­
orientation may also be defined in terms of Euler angles
back controllers for the robot is possible. The gravitational force and force
interactions between joints are suppressed by precalculated feedforward with respect to the base coordinates. Initially, at / = i , let 0

compensation. To ease the computational burden, the compensating signals n ( r ) , s(t \


0 0 and a(t ) align with J C , y and z , respec­
0 0 Q9 0

are either approximated or their computational formulas are simplified. tively, as shown in Fig. 4(b). Any orientation [n(t) s(t)
a(t)] may be obtained by a rotation of γ rad, about z so 0

I. INTRODUCTION that s(t ) aligns with 5 ( ^ ) , then a rotation of β rad about


0

T H E N U M B E R of joints of industrial robots commer­ s ( / , ) so that a(t ) = a(t ) aligns with a(t\ and finally a
0 x

cially available today varies from three to seven. rotation of α rad about a(t) to obtain the required n{t)
Typically, they have six joints, giving six degrees of free­ and s{t). This is equivalent to rotating the [n(t ) s(t ) 0 0

dom, with a gripper which is referred to as a hand or an a(t )]


0 coordinate, which aligns with [x y z ] origi­0 0 0

end effector. Fig. 1 shows the commercially available nally, by a rad about z , then β rad about j , and finally γ
0 0

Cincinnati Milacron Model T3 and Unimation P U M A rad about z again. The relationship is thus
0

600. Fig. 2 shows a Stanford manipulator [1] which is also cos a cos β cos γ - sin a sin γ
an industrial robot existing among research institutes in the
«(/) = cos α cos β sin γ + sin a cos γ (2)
United States. Each joint of these robots is driven hydrauli-
- cos a sin β
cally, pneumatically, or electrically with a feedback control
loop. As an example, a block diagram for a joint control of — sin a cos β cos γ - cos a sin γ
the Stanford manipulator, which has a permanent magnet
5(0 = — sin a cos β sin γ + cos a cos γ (3)
motor drive [2], is shown in Fig. 3. It has an optical sin a sin β
encoder for positional feedback with a tachometer feed­
back for damping. Thus an industrial robot is a positioning sin β cos γ
device in that each of its joints has a positional control «(0 sin β sin γ (4)
system. cos β

II. CARTESIAN AND JOINT COORDINATES


Consequently, the state of the hand at time t in Cartesian
coordinates with reference to the base coordinates may also
In reality a robot task is naturally specified in terms of be represented by a six-dimensional vector [ρ(ί)' θ(/)']'
its hand in Cartesian coordinates. It consists of position, where [θ(ί)]' = [« β ϊ ] and ( · ) ' = transpose of ( · ) ·
described by a position vector p{t), and orientation, de­ The hand, however, is driven by the actuators at the
scribed by a unit approach vector a(t), and a unit sliding joints. Intuitively, if all the joint displacements are given,
vector s(t), as indicated in Fig. 4(a). All these vectors are the position and orientation of the hand are determined.
defined with reference to the base coordinates. For con­ Let η be the number of joints. For / = 1,2, · · · , « , let q be i

venience, a unit normal vector is defined SLS n(t) = s(t) X the displacement of the / t h joint with respect to its own
a(t) where X denotes the "cross product." Thus the state reference point. Then, for any given robot with known
of hand at time t in Cartesian coordinates can be repre­ geometrical dimensions,
sented by a four-by-four hand matrix
[p( y
t θ(0Τ=/[9„?2.···,?„], (5)
n(t) s(t) a{t) Pit)
H(t) where / ( · ) is a six-by-one vector-valued function. This
(1)
0 0 0 1
relation is known but almost always nonlinear which com­
plicates the problem [4]. Since, in reality, one specifies
Manuscript received February 24, 1982; revised December 21, 1982.
[ρ(ί)' θ(/)'] in Cartesian coordinates and desires to de­
This work was supported in part by the National Science Foundation
under Grant DAR (APR) 77-14533, in part by Division of Continuing termine the corresponding [q\,-—,q ] so that one mayn

Education, Florida Atlantic University, and in part by the School of command the joint actuators to comply with the specifica­
Engineering, Oakland University, MI.
tion in Cartesian coordinates, the solution requires the
The author is with the School of Electrical Engineering, Purdue Univer­
sity, West Lafayette, IN 47907. inverse vector function / ( · ) of η dimensions. This solu-
_ 1

0018-9472/83/0500-298$01.00 ©1983 IEEE


LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 299

(a) (b)
Fig. 1. Examples of industrial robots, (a) Cincinnati Milacron T3. (b) Unimation PUMA 600.

Fig. 2. Stanford manipulator.

tion, if it can be found, may not be unique. F o r the wise, the controller must keep u p with path tracking. These
commercially available robots in operation, η is usually two problems will be analyzed in the following sections.
either five or six. The geometrical configuration of these
robots with proper definitions and ranges of q enables one
i
HI. POSITIONAL C O N T R O L OF A S I N G L E JOINT
to obtain a unique solution of (5) [4].
Knowing the transformation of position in Cartesian If no path constraints exist, the controllers only have to
and joint coordinates, one is ready to examine the follow­ make sure that the hand passes through all the specified
ing simple task. As shown in Fig. 5, the robot is required to corner points of the path. The input to the control system
go to the bolt magazine to fetch a bolt and place it on top is the desired Cartesian corner points of the path, which
of the bolt hole on the beam. Intuitively, one expects the may be a) numerically fed into the system, or b) furnished
robot hand to travel along the path of straightline seg­ through so-called "teaching by doing," i.e., corner points
ments, as indicated in Fig. 5, so that it will reach the bolt are recorded while the hand of the robot is led through
first and then arrive at the beam. The question is how these points manually by an operator. Then the coordi­
would one control the joint actuators to accomplish the nates transformation takes place, which computes the cor­
goal? Before one arrives at an answer, one may examine responding joint coordinates [q >- · ·, q ] of the specified
x n

the following possible specification. Must the hand follow corner points in Cartesian coordinates by means of / " ( ) !

the specified path? If the answer is no, then one has a —digitally for case a), or analogously for case b ) — a n d
simple point-to-point positional control problem. Other­ then positionally control the robot in joint coordinates
300 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

K
R

V ( s .) 1

Mi croco - i p u t e r j
Tachome te r

Opt i cal

Encode r

πβ S)

Fig. 3. Positional control system.

Q(t) \

BASE COORDINATES

p(t)

(a) (b)
Fig. 4. (a) Position and orientation vectors of hand, (b) Euler angles of
orientation.

from point to point. In practice, a positional servo is used B m damping coefficient at actuator side (oz · in
for each joint. If the robot is allowed to move only one s/rad),
joint at a time, alternatively, by locking all the other joints B ( damping coefficient at load side,
as suggested by Paul [5], then each of the joint controllers f
m average friction torque (oz · in),
is very simple. When the number of joints in simultaneous r g gravitational torque,
motion is more than one, force interactions among the rm generated torque at actuator shaft,
joints create couplings which complicate the control sys­ 17 internal load torque,
tem. These topics will be discussed as follows. 0 m angular displacement at actuator shaft (rad),
6 S angular displacement at load side.
A. Single Joint Controller Let
In the following discussion, the robot is considered to number of teeth of the gears at the actuator
have a rigid body structure. Refer to Fig. 6(a), the sche­ shaft and load shaft, respectively,
matic representation of an a c t u a t o r - g e a r - l o a d assembly pitch radii of the gears at the actuator shaft and
for a single joint, in which load shaft, respectively.
J a actuator inertia of one joint (oz · in · s / a d ) , 2 r

Then
J m manipulator (robot) inertia of the joint fixtures at
actuator side, η = r /r
m s = N /N
m s < 1 (6)
J t inertia of the manipulator link, is the gear ratio. As indicated in Fig. 6(b), the force F is
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 301

so that
9 = e NJN
s m s = ne . m (12)

By taking time derivatives on both sides of (12), one


obtains the relations between angular velocities and accel­
erations as

Κ= nb m (13)

9, = nS . m (14)
F r o m Fig. 6(a), it is seen that the internal load torque τ, is
required to overcome the link inertia effect J U and t s

damping effect B θ . Using D'Alembert's principle " Σ { 5

torque = Σ ( / 0 ) , " one obtains

Fig. 5. Simple robot task for illustration.


Apply the same principle at the actuator shaft to obtain

r m - r ; - B j m = (J a + J )9 .
m m (16)
If we wish to express the torque relation at the actuator
shaft, first substitute (13) and (14) into (15), and then
combine the result with (9) to obtain

V = « Ui + M j . 2
(17)
Combining (16) and (17) yields

r=
m U + Λ, + " '/R + 2
(i^ + A^R, (18)
where J = (J + J + n J ) is the effective inertia and
ei{ a m
2
t

B — {B ~h n^Bj) is the effective damping coefficient at


ei{ rn

the actuator shaft.


T o express the torque relation at the load shaft, eliminate
6 and 0 among (13), (14), and (18) to obtain
m m

T
m/ n
= [U + m)/n
J 2
+ J ]9 t s + {BJn 1
+ B,)i>s9

(19)

where [(J H- J )/n + J ] is the effective inertia and


a m
2
t

(B /n m + B ) is the effective damping coefficient at the


2
t

load shaft. r /n is the equivalent generated torque at the


m
(b) (c)
load shaft.
Fig. 6. Schematic representation of actuator-gear-load assembly for
one joint. T h e actuators used in the industrial robots are either
hydraulic, pneumatic, or electrical. As an example, the
Unimation P U M A and the Stanford manipulators have
transmitted from the actuator to the load at the contacting electrical system using permanent magnet dc motors. They
point of the mating gears. Thus are armature controlled, and their schematic diagram is
τ/ = equivalent internal load torque at actuator shaft shown in Fig. 7. In this figure, v (t) is the back electromo­ h

tive force ( E M F ) in volts in the armature winding which


= Fr ,
can be represented by
and
v (t)
h = K ejt), h (20)
τ , = Λ·„ (7)
where K is the back E M F constant in V · s / r a d . Let L
h

which leads to
and R be the inductance in henries and resistance in ohms
T
/A = r
m/ s
r
= n
()
8 of the motor armature winding, respectively. Then by
applying the Kirchhoff s voltage law to the armature cir­
or
cuit, one obtains
τ/ = /IT,. (9)
v(t)-v (t) h = Ldi(t)/dt + Ri(t), (21)
From Fig. 6(c), the pitch angle of one tooth is
which has an equivalent equation in frequency domain
em = 2it/N m (10) through a Laplace transformation

0 = 2v/N
s s (Π) V( )-K sQ„(s)-(U
S h + R)I(s), (22)
302 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

ARMATURE WINDING
where K is the conversion constant in V / r a d . Combine all
e

the physical apparatus together, one may construct a posi­


tional controller whose block diagram is shown in Fig. 8(a).
T h e feedforward gain, or the open-loop transfer function,
is

E(s)
ηΚ,Κ,
Fig. 7. Schematic diagram for electrical drive system. =

s[U s e((
2
+ {RJ e(( + LB )s eft + (RB ett + K,K„)]
where s is the complex frequency in r a d / s . The dc motor is (29)
operated in its linear range so that the generated torque is
which is obtained either from Fig. 8(a) or by combining
proportional to the armature current. The relation in the
(25) and (28) and the relation @ (s) = nQ (s).
frequency domain is s m

Physically, the inductance of the armature winding is in


Tjs) = K,I(s), (23) the order of tenths of millihenries, while its resistance is in
where K is the torque constant in oz · i n / A . The motor units of ohms. Thus L is practically zero so that (29) may
f

shaft is mechanically connected to an a c t u a t o r - g e a r - l o a d be reduced to


assembly, as indicated in Fig. 7, with an effective inertia
θ,(*) ηΚ,Κ,
/ and effective damping coefficient 2? at the actuator
=
e f f eff

E(s) s[RJ s+(RB + K,K )]-


shaft. The relation among the mechanical components is e{f e(S b

described by (18) which has a Laplace transform equiva­


T h e unity feedback positional controller, Fig. 8(a), then has
lence
a closed-loop transfer function
Tjs) = [{J a + Jm + n J,)s 2 2
+ [B m + n B,)s]® {s)
2
m
Θ,(*) ^ Θ,/Ε

= (J** 2
+ B s)& (s).
ei{ m (24) Q (s)
d 1+ Q /E s

Eliminating T (s) m and I(s) in (22)-(24) yields ηΚ Κ, θ

RJ e{{

V(s) 1
s2
+ (RB ei! + K,K )s/(RJ ) b e!i + K K,/{RJ )
e M '
= K,
s[LJ s
ett
2
+ (RJ ett + LB )s ett + (RB ef{ + K,K„)] (31)
(25)
It yields a second-order system which is theoretically al­
which is the transfer function, or the feedforward gain, ways stable. T o increase the response time, one customarily
from the applied voltage to the dc motor (input), to the increases the system gain, such as increasing Κ and θ9

angular displacement of the motor shaft (output). injects some damping into the system to reinforce the effect
of back E M F by adding a negative feedback of the motor
T o construct a positional controller for the angular
shaft velocity. This can be done by either using a tachome­
displacement of the load shaft, one must convert the dis­
ter or computing the difference in angular displacements of
placement into electrical voltage to actuate the dc motor.
the shaft during a fixed time interval. The block diagram of
For a feedback (or closed-loop) controller, the actuating
the resulting controller is shown in Fig. 8(b) in which K
signal is the error at time t between the desired and the t

is the tachometer constant in V · s / r a d , and K is the gain


actual displacements: x

of amplifier in V / V . Since the feedback voltage at the


e{t) = e {t)-e {t). (26)
motor armature circuit is now K 0 (t) + K K 6 (t) in­ h m x t m
d s

stead of K 0 {t) alone, the circuit equation (21) is mod­


h m

By means of a potentiometer or an optical e n c o d e r / c o u n - ified as


ter assembly, the displacement error is converted into
voltage as v(t) - (K h + K K,)e {t)
x m = Ldi/dt + Ri(t) (32)

v{t) = K [e {t)
e d -e (t)],s (27) which has a Laplace transform

which has a transformed equivalence V(s) - (K + K K )sS (s) = (Ls + * ) / ( * ) . (33)


b x t m

V{s)-K E(s)t
T h u s the revised open-loop and closed-loop transfer func­
= K„[Q {s) d - Q {s)], s (28) tions can be obtained simply by replacing K by (K + h h
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 303

° (s)
d _ E(s) Ks) Τ (s) θ (s)

Ls+R

V (s)
b

(a)

QAs) E(s) Ks) Τ (s) Q (s)


e

-r©

(b)

Centr i fuga1
F (s)
m T (s)L Τ (s) Contributi

0 (s)

Fig. 8. Positional controller.

K K)
x t in (30) and (31), respectively. Consequently, ters n, K,, K K , R, J , and B are either specified (by
n h ett ett

the component manufacturer) or determined by experi­


Q,{s) nK e sQ (s)m
ments. As an example, joint 1 and 2 assemblies of the
E(s) s K E(s)
e Stanford manipulator contain, respectively, a U 9 M 4 T and
a U12M4T dc motor with an integral tachometer 0 3 0 / 1 0 5
nK K,
9
(34) by Photocircuits Corporation. The parametric data for the
RJ s ett
2
+ [RB e!i + K,(K h + *,*,)]* m o t o r - t a c h o m e t e r unit are listed as follows [6]:
Model U9M4T U12M4T

β,(*) K, (oz · in/A)


J (oz · in · s / r a d )
a

B (oz · in · s/rad)
2
6.1
0.008
0.01146
14.4
0.033
0.04297
ΘΑ*) m

^(V-s/rad) 0.04297 0.10123


ΜμΗ) 100. 100.
1 + S,(s)/E(s) R(Q) 1.025 0.91
K (V · s/rad)
t 0.02149 0.05062
fm (oz · in) 6.0 6.0
nK K,9 η 0.01 0.01
RJ s c{(
2
+ [RB e(i + Kj{K h + K K )]s
x t + nK Kj
e T h e s e c o n d t Q t h e , a s t U n e [ $ Λ β a v e r a g e f r i c t i o n torque/ m

(35) exists in each assembly which must be overcome. The


effective inertia of each joint of the Stanford-JPL (Jet
For a specific robot, the numerical values of the parame- Propulsion Laboratory) manipulator is listed as [7]:

Joint Minimum Value/No Load Maximum Value/No Load Maximum Value/Full Load
(number) (kg-m ) 2
(kg-m ) 2
(kg-m ) 2

1 1.417 6.176 9.570


2 3.590 6.950 10.300
3 7.257 7.257 9.057
4 0.108 0.123 0.234
5 0.114 0.114 0.225
6 0.040 0.040 0.040
304 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

The given values of the effective inertia is in kg · m . F r o m 2

Newton's second law of motion, F = ma, where mass m is


in kg and acceleration a is in m / s ; the force F is in 2

kg · m / s which is defined as the unit of force " N e w t o n . "


2

The unit for torque τ is Ν · m, or kg · m / s , b u t τ = J6 2 2

where the angular acceleration θ is in r a d / s so that / is in 2

Ν · m · s / r a d (or kg · m ) . N o w one Ν · m (or kg · m /


2 2 2

s ) of work is equivalent to 0.73756 ft · lb or 0.73756 X 12


2

Fig. 9. Structural representation of one joint.


X 16 = 141.61 oz · in. Consequently, one kg · m (or Ν · 2

m · s / r a d ) of inertia is the same as 141.61 oz · in · s / r a d .


2 2

so that
N o t e that the conversion constant K a n d amplifier gain 0

K , however, must be determined from the parameters


x ζ = [RB et[ + K,{K b + Κ Κ,)]/[2^Κ Κ^ ].
χ θ α

corresponding to the structural resonant frequency a n d the


damping ratio of the robot, which will be discussed in the (41)
following section. Refer to Fig. 9 in which k is the effective stiffness (in cff

As listed, an average friction torque f of the m o t o r - m


oz · i n / r a d ) of the joint of the robot. T h e restoring torque
tachometer assembly must be overcome by the motor. Of due to stiffness is - k 6. Thus by D'Alembert's principle
c{i

course, the motor must also compensate the external load


torque T , gravitational torque τ , and the centrifugal con­
l
-k e = J e,
e{{ ef{ (42)
tribution r (t). These quantities represent the reaction from
c
so that the structural resonant frequency in r a d / s is
the physical burden to the robot. Schematically, they are
inserted in the block diagram of the positional controller,
«r = ^ e f f A f f · (43)
Fig. 8(b), at the point where the torque is generated from
the motor. Fig. 8(c) shows the revised block diagram of the Although k for the joint is fixed, / varies as the load
c{[ e f f

positional controller, in which F (s), T (s), a n d T (s) are m L g


varies so that ω changes accordingly. Let ω b e the mea­
Γ

the Laplace transformed variables of f ,r a n d r respec­ m L9 g9


sured structural resonant frequency of the same joint corre­
tively. The centrifugal term is a function of 6 (t) square s
sponding to the effective inertia / , then
whose Laplace transform involves the convolution in­
tegrals. Since the mathematical model of the system is
" = {KU7J- (44)
linear, the principle of superposition applies. Hence the
centrifugal contribution will b e treated separately in the Thus, by (43) a n d (44),
following discussions.
ω Γ = ω / 7 7 ^ . (45)

B. Determination of Κ and K
T h e measured ω a n d its corresponding / for the Stanford
θ x

From (35), the closed-loop transfer function can b e


written as

6,(J) = nK K, 9 1
(36)
%{s) il/eir s2
+ [RB e{{ + K (K
r b + K K )]s/{RJ )
x t Qii + » K 9 Κ '

Thus the characteristic equation for the closed-loop con­ manipulator are listed as follows [1]:
troller is
Joint J / ω(= 2π/)
s1
+ [RB ci{ + Kj{K h + K K )]s/(RJ )
x t c(i
(number) (kg · m ) 2
(Hz) (rad/s)

+ nK K /(M<n)-0 ()
37 1 5 4 25.1327
9 r
2 5 6 37.6991
which is conventionally expressed as 3 7 20 125.6636
4 0.1 15 94.2477
5 0.1 15 94.2477
s2
+ 2ξω * + ω = 0,
η
2
(38) 6 0.04 20 125.6636
where ζ is the damping ratio and ω the undamped natural η

frequency. From (37) and (38), one obtains Paul [5] suggested that for a conservative design with a
safety factor 200 percent, one sets the u n d a m p e d natural
ω„ = ^K K,/(RJ ) e t{t > 0 (39) frequency ω to n o more than one-half of the structural
η

resonant frequency <o . Thus by (39) a n d (45), one obtains


r

and
2ξω = [RB η ett + K,{K b + K K,)]/{RJ )
X M (40) jnKeKj/iRJ^) < co/V^/2 (46)
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 305

which reduces to where E(s) is the Laplace transform of e(t). For a con­
stant load, 7 = C . Since f = C , and r = C are also
{Ju )R/{4nKj).
2
(47) L L m f g g

constant, then T (s) = C / S , F (s) = C /s, and T (s) =


L z m f g

Relation (47) establishes the upper bound of Κ \ the bound θ C /s. Consequently, (56) becomes
on K remains to be determined. For practical reasons, one
x

avoids the underdamped positional controller for the robot. E(s) = ({^ . + eff
2
[RB ett + K (K r b + K K )]s}X(s)
x (

Thus ζ > \, and from (41) one obtains + nR[C +C + nC ]/s)/Q(sl (57)
f g L

RB ei{ + Kj{K h + K K) x t > 2jnK K RJ e f ei{ > 0. (48) where X(s) replaces <d (s) to represent a generalized input d

command.
Again for conservative design, Κ at the right side of (48) θ
The steady-state error e may be determined by the use
is replaced by its upper bound which is given by (47) as ss

of the final value theorem, which states that


( / ω ) Λ / ( 4 ^ ) . Thus (48) reduces to
2
7

e ss = lim e(t) = limsE(s) (58)


K > R ^ ^ t
x ~ * eff )/(*,*,) - K /Kb r (49) OC Λ' — * 0
provided the limits exist.
Since / varies as the load changes, the lower bound on K
eff x

changes accordingly. To simplify the design of the con­


D. Steady-State Position Error and Compensation
troller, the amplifier gain should be fixed. Thus the maxi­
mum value of / should be used in (49) to avoid any e f f If the input is a constant displacement Q , then
possibility of resulting in an underdamping system.
X(s) = Q U) d = C /s.
9 (59)

C. Steady-State Error for Joint Controller By (58), one obtains a steady-state position error

In the preceding section, the block diagram of the posi­ i>, = R(C +Csp f g + nC )/{K K,). L g (60)
tional controller for a single-joint robot was presented in Since Κ has an upper bound given by (47), the error may
θ

Fig. 8(c). Because of the addition of the physical burden f nv


not be reduced to an arbitrary small value by merely
t , T , and T to the motor, the closed-loop transfer function
l G c
adjusting the parameter Κ . However, if one knows the θ

of the controller is not the same as given by (35), and it values of τ , / , and r in advance, it is possible to feed
7 m g

must be modified to include the additions. From Fig. 8(c), these quantities forward into the controller to anticipate
it is seen that the burden. Based on this idea, an anticipated gravitational
(y , 2
+ B s)<d = T (s) - F (s) - T (s) - nT (s). torque signal τ and a desired compensating torque signal
α
e f f ef{ m m m g L

T are fed to the controller as an additional input, as shown


d

(50) in Fig. 10(a) where T (s) and T (s) are Laplace transforms a d

The centrifugal contribution is not included in (50) but will of τ and r , respectively. With this arrangement, the error
α d

be treated separately. Now given by (56) is modified to become

Tjs) = K,[V(s) - s(K h + K K )% (s)/n]/Rx t s (51) E(s) = {{RJ s ell


2
+ [RB M + K,(K h + K K,)]s}X(s)
t

and + nR{Fjs) + T (s) g + nT (s) L - K,K R

V{s) = K [<d {s)-<d {s)]. (52)


•[T (s) + T (s)]/R))Ms), (61)
e d s

a d

Thus, after some algebraic manipulation


where X(s) replaces ® (s) to represent a generalized input d

e (s)
s = {nK K,Q (s) e d signal. For an input of a constant displacement X(s) =
@ (s) = C /s, the steady-state position error now becomes
d e

-nR[Fjs) + T (s) g + nT (s)]}/Q(s) L (53)


essp = l i m s { / < | > „ , ( s ) + T (s) g + nT (s)] L

where s—>0

Q(s) = RJ s eSf
2
+ [RB „ + K,(K e h + Κ Κ,)]5 } + ηΚ Κ,.
θ
-K,K [T (s) R a + T (s)])/(K K,).d e (62)
(54) If T (s)= a RT (s)/(Κ,
g Κ ) and R

Whenever F (s), T (s), and T (s) vanish, (53) reduces to


m g L W = R[F (s) m + nT (s)]/(K,K ),
L R

(35). Since the position error e(t) is defined as


then the steady-state error would be zero. In practice, one
e(r) = e ( t ) - e ( t ) ,
d s (55) may set
then by (53), (55) can be written as τ = (R/K,K )r
α R g (63)
E(s) = e (s)-e (s)
d s and
= {{RJ s e{i
2
+ [RB C{{ + Kj(K h + K K )]s)Q {s)
x t d T =(R/K,K ){f
d R m + ni ) L (64)
+ nR[F (s) m + T (s) g + nT (s)])/Q(s), L (56) to reduce the error, where f ,/ , and f are the estimates of g m 7
306 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

T,(s)+T (s) d

Γ ι F m (s) T (s) T (s
+ L + g ) +

S0 e (s)
s

J ,rS+B
ef τ

V l t
K K

(a)

T (s)+T (s) Τ (s)+T.(s)


a d a d

I +

V )
s

v (.)'
d

κ
θ
R B
eff + K
l V l t ( K K )

+ nK,K R

(b)

(c)

Centrifugal T
a ( ^ s + T
d^ ^ s

Compensation
/ τ - - ϊ , c = ab

P r o c e s s i n g time-domain
s ignals d i g i t a l l y .

R
« .ff |(V l t
B +K K K )

nK,K R
/ \ « / \ ^ / \ Centrifugal
I R F (s)+T (s) T (s)
m L + g + contribution

X(s) S0 e (s)
s

eft

r 1

Ξ LJ
(d)

,T (s)+T.(s)+ Centrifugal Τ (s)+T ( s ) + C e


9n t r i f u a l
a d
Compensation • a^ 'd^
s ; s ;
Compensation

X(s)

(e) (f)
Fig. 10. Controller with anticipated burden and feedforward compensation.
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 307

τ , / , and T , respectively. For a given task, the value r


m l L result, E(s) given by (61) is modified to become
which includes the compliant torque, is usually known.
Thus T can be estimated directly. The measured value of E(s) = ({RJ s ett
2
+ [RB C{( + K,(K b +
L

f through experimentation is usually used for f . The


m m
-nK,K V (s) + nR{F (s) + T (s) + nT (s)
R d m g L

value of f is normally computed which will be discussed in


the section on multiple joint controller. -K,K [T (s) R a + T (s)]/R))/Q(s)
d (68)
What is the contribution to the positional steady-state
so that e ssv in (65) now becomes
error e from the centrifugal term r (t)l Since r (t) =
s s p c c

D[0 (t)] , where D is a proportional constant, and since


s
2
^v = { K + K,{K„ + K K,)]C
X V

θ (ί) -> 0 as t -> oo for a stable positional controller, the


5

contribution is therefore none. Thus no feedforward com­ -nK,K limsV (s)}/(nK K,) R d e + e . ssp (69)
pensation is required for the centrifugal term as far as the
positional steady-state error is concerned. Consequently, the first term of e s s v vanishes if
V (s)
d = s{C /s )[RB v
2
et( + K,{K h + K K )]/{nK,K ),
x t R

IV. CONVEYER F O L L O W I N G W I T H A SINGLE - JOINT


(70)
CONTROLLER
but C /s 2
= X(s) represents the ramp input signal, hence
Quite often the robot is required to follow a moving
v

conveyer with a constant speed and perform a certain task v = (dx/dt)[RB


d M + K,(K„ + K K )\/{nK,K ),
x t R

on the conveyer. In this case the input signal of the desired (71)
position 0 (t) must be updated very frequently, say every
d
which can be obtained directly from the input terminal of
1 / 6 0 s, to synchronize the moving conveyer. In essence, the
the controller [5] as indicated in Fig. 10(c). Since x(t) is a
input is a ramp signal C t with a constant slope so that v
ramp input C t, or X(s) = C /S , then dx/dt is the con­ 2

X(s) = C /S . 0
2 v v

stant slope Q , or sX(s) = CJs. Of course, one may obtain


dx/dt by computing the quotient [x(i -) - x(t _ )]/(t -
A. Velocity Error and Compensation f i ] i

where x{t ) and x(t _ ) are values of two consecu­


t ( x

Applying the final value theorem to (61), with X(s) = tive input signals. These arrangements will automatically
CJs , one obtains the steady-state velocity error
2
take care of the steady-state error in the original positional
control mode. When the controller leaves the conveyer
essw = [RBa + K (K r b + K K )]C /(nK K )
x t O 9 t + e s s p . following mode and enters the positional control mode,
x(t) is a step input Q , or X(s) = Q (s) = C /s. Then
(65) d e

dx/dt = Q 5 ( 0 , or sX(s) = C (an impulse which is ab­ e

sorbed by the energy storing elements of the system), so


Note that the contribution from the centrifugal term T is C
that the compensation for the velocity error vanishes.
not included in (65). Its effect, however, does exist since
6 (t)
s 0 when the robot is in motion. In fact, the effect
becomes significant when the robot moves at a high speed, B. Compensation for the Centrifugal Term
which is intuitively true from the physics viewpoint. Essen­ The centrifugal contribution r (t) can be computed from c

tially, the centrifugal term affects the path along which the D[0 (t)]
s where D is a proportional constant and θ is the
2
5

robot travels. Its feedforward compensation, however, will velocity of the robot link. The value of the velocity can be
be discussed later. Now, since the controller requires ξ > 1 measured at the output shaft by means of a tachometer.
to avoid underdamping, (48) holds so that (65) becomes The value of parameter D depends on the geometrical
configuration of the robot and will be discussed in detail in
e ssv > 2CjRJ ,/(nK K,) et e + e s s p . (66) the section on the multiple-joint controller. Once D is
determined, r (t) can be obtained at the output terminal.
c

If the controller is designed conservatively to require ω < η


The resulting value is then used for compensation. To feed
ω / 2 , then (47) holds and (66) reduces to
Γ
this compensating term forward to the system at the same
point that T and T enter, as indicated in Fig. 10(c), a gain
a d

««ν > 4 ( ς , / ω ) / ^ / 7 + e (67) factor of R/{K K ) must be included to cancel the exist­
X R
ssp

ing gains in the path. Fig. 10(d) shows the schematic


arrangement of the feedforward compensation for the
which gives a lower bound for the steady-state velocity
centrifugal contribution.
error.
To reduce the steady-state velocity error, additional
C. Acceleration Error and Compensation
feedforward signal v , corresponding to the desired con­ d

stant slope of the ramp signal, is fed to the controller at the T o minimize the traveling time of the robot, one often
same place where r and r are injected. This is indicated in
a d
desires to accelerate it from one desired velocity to the
Fig. 10(b) where V (s)\s the Laplace transform of v . As a
d d
other in the shortest possible time. To do so, one usually
308 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

uses the constant maximum possible acceleration. In this [*(*,.) - χ(/,._,)]/(/,· - /,·_!> and that of d x/dt 2 2
by
mode, x(t) is a parabolic input signal C t /2 so that a
2

X(s) = Q / y , where C is a constant. By the final value


3
a

theorem, (61) yields the steady-state acceleration error - [*(/,·_,) " *(ί,·- )]/('/-1 "
2 2)}/('/ - '/-ΐ)·

(80)
^ssa = ( { ^ e f f + [RB + K,{K„ + K,k,)]/s)C
These arrangements also automatically handle the errors of
M a

other control modes. When the controller is in positional


-nK,K Xim V {s))/(nK K,) +e . (72)
R S d e ssp
control mode, x(t) is a step signal C a n d X(s) = C /s. e B
5—»0 '
Then dx/dt = C 8(t), d x/dt
0
2
= C 6 (t\
2
a doublet or e d

N o t e that the contribution from the centrifugal term is double impulse, and sX(s) = Q , s X(s) = sQ so that the 2

again not included in (72), which should b e taken care of compensations for both the velocity error and acceleration
as described in the preceding section. error vanish. When the controller is in the conveyer follow­
If a feedforward signal v is provided as indicated before d ing mode, x(t) is a ramp signal C t a n d X(s) = C /s . v v
2

and the controller is connected as shown in Fig. 10(c), then Then dx/dt is a step input C , d x/dt = C 8(t); or sX(s)
0
2 2
v

= C /s, and s X(s) = C which give a correct amount of


0
2
v

V (s) d = sX(s)Q(s) compensation for velocity error, but n o compensation for


= {C /s )Q(s),2
(73) acceleration error is provided.
a

Also, in computing A (s\ one needs the value of / .


d e f f

where This value must b e estimated or approximated if it is not


Q(s) = [RB ett + Kj{K b + K,K )]/{nK,K ).
t R (74) available. T o avoid an overcompensation which may result
in a n overshooting of the output of the positional con­
Consequently,
troller, o n e normally uses the minimum value of J [5] e{{

e ssa = RJ C /(nK K,) e{i a e +e . ssp (75) since A (s) is a positive feedforward signal.
d

For a conservatively designed controller with co„ < u /2, r D. Effect of Feedforward Compensation
(47) holds so that (75) becomes
An investigation was performed at the Carnegie-Mellon
University o n feedforward compensation of gravity force,
(76)
friction torque, a n d centrifugal contribution for a direct-
This establishes the lower bound for the steady-state accel­ drive arm [8]. The arm is a mechanical manipulator with
eration error. As before, to reduce the error, additional six revolute joints in which the shafts of articulated joints
feedforward signal a must b e fed to the controller at the are directly coupled to the rotors of torque motors. Physi­
d

same point where v is applied, as shown in Fig. 10(e) with cally, no gears or transmission mechanisms are between the
d

A (s) being the Laplace transform of a . With this addi­ motors and the output shafts. Consequently, the mechani­
d d

tion, (68) reduces to cal system has small friction, high stiffness, and n o back­
lash. When fully stretched, the a r m of the manipulator
measures 1.7 m long. The maximum payload is 6 kg.
E(s) = [RJ s X(s) eff
2
- nKjK A (s) R d
Usually, the friction torque f is difficult to compensate
m

because its variation is not always known in advance. Since


+ nR{F (s) m + T (s) + g nT (s)L
the direct-drive arm has small friction, the effect of feed­
forward compensation is noticeable. Fig. 11, which is re­
-Κ,Κ [Τ (5) Λ α + ΤΛ*)]/η}]Μ*) 9 (77)
produced from [8], shows a comparison of the angular
and hence displacements of one joint among the arrangements of n o
compensation a n d various compensations. When all the
e = [*/ E F F C A - nKjK R \imsA {s)^/{nK Kj) d e + e .ssp
compensations are fed forward, the output is seen to follow
the input command closely.
(78)
Again, if one chooses V. CONTROLLER FOR ROBOT WITH MULTIPLE
JOINTS
A (s)
d = s (C /s')RJ /(nK K ),
2
a e{{ f R (79)
Intuitively, restricting the robot moving one of its joints
the first term of e will be eliminated. Since C /s
s s a = X(s), a
3
at a time alternatively by locking all the other joints is not
the parabolic input signal, A (s) may be obtained from the d efficient. Such a procedure makes the execution time of a
input terminal directly [5] as shown in Fig. 10(f). Since x(t) given task unnecessarily long, and hence the operation is
is a parabolic signal C t/2, then dx(t)/dt = C Ms a ramp a fl not economical. However, by allowing more than one joint
signal with constant slope, or sX(s) = C /s \ and d x(t)/ a
2 2
to move simultaneously, force a n d moment interactions
dt = C is a constant, or s X(s) = C /s. Again, the value
2
a
2
a result among the moving joints and cause the inadequacy
of dx/dt m a y b e obtained b y computing the quotient of the use of the previously presented positional controller
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 309

1 Second
joints (or η links), one obtains [5], [7], [10]:
η η

7-1 7-1
Di s p l a c e m e n t

(in Degrees)

+ Σ Σ Dijdjh + Di, (82)


7=1A-l
j*k
where

D„ = Σ *[υΜν,ι)'] (83)
ρ = max (/, j)

Ay* = Σ tr[U J (U y]
pjk p pi (84)
p = max(/, j , k)

D
i = Σ m g'U f
p pi p (85)
p=i

and where

tr trace operator,
(·)' transpose of ( · ) ,
η· input generalized force for joint /,
m p mass of link /?,
Displacement
(in Degrees)
rp vector describing the center of mass of link ρ with
respect to /?th coordinate system,
g [0,0,9.8 m / s , 0 ] , gravitational acceleration vector
2

at a sea level base,


inertia matrix for link /?,
Fig. 11. Effect of feedforward compensation, case of single joint (Joint
4). (a) Without compensation, (b) With compensation for gravity, (c)
With compensation for gravity and friction, (d) With compensation for
gravity, friction, and inertia.
0, otherwise,
(86)
for each joint. Thus an additional compensation is needed d T£2

to overcome the interaction. T o determine the compensa­ dqjdq k

tion for interaction, one must analyze the dynamic behav­


ior of the robot.
' (Tt )Qj(Tj .V)Q (T^h
l k
k

A. Lagrangian Formulation of Dynamic Equation for ρ > k > j ,

The discussion on Lagrangian equations can be found in {{Tf-^QaTHfiQjiTf.t), (87)


most physics textbooks (e.g., [9]). It represents the dynamic fotp>j>k
behavior of a system of rigid bodies, and it has the form 0, otherwise,

1,2,·.·,,!, (81) -1 0 0
dt\dq,l dq{

0 0 0
where 0 0 0
0 0 0
qt generalized coordinates,
if joint j is rotational,
L £ι>· · ·> Rn)> Lagrangian, 07 = (88)
r( generalized forcing function. 0 0 0 0"
0 0 0 0
The generalized coordinate q represents the displacement
t
0 0 0 1
θ of joint /'. The Lagrangian is also defined as
5
0 0 0 0.
L = (kinetic energy of the system) \ if joint j is translational,
- (potential energy of the system). four-by-four matrix which transforms any vector
By applying the Lagrangian equation to a robot with η expressed in the fcth coordinate system to the
310 ieee transactions on systems, man, and cybernetics, vol. smc-13, no. 3, may/june 1983

Fig. 12. Complete controller for Joint /' of robot having η joints.

same vector expressed in the yth coordinate sys­ respectively. Again, these torque terms must be fed forward
tem, in the controller for joint / to compensate the physical
qk generalized coordinate (i.e., joint displacement). interactions between joints as shown in Fig. 12. This figure
depicts the complete block diagram of the controller for
B. Coupling Between Joints and Compensation joint / of an industrial robot, i = 1 , 2 , · · · , « . T o implement
these η controllers, the values of the feedforward elements
For each joint i, the required torque or force is divided
D D , and D must be computed for the specific robot,
into five groups as shown in (82). The first group repre­
iJ9 ijk t

which will b e discussed in the following sections.


sents the contribution from inertias of all the joints. Unlike
the single joint case in which all other joints are locked and
the inertias of all joints are lumped together, now there are G Computation of Compensation for Coupling Inertia
contributions from coupling inertias between joints. These
torque terms Σ " ^ ^ must be fed forward in the The computation of terms D is, unfortunately, very / y

controller for joint /, as shown in Fig. 12, to compensate complicated and time consuming. T o illustrate the diffi­
the interaction between joints. The second term in (82) culty, (82) is expanded for a six-joint robot, η = 6, as
represents the inertia torque of the actuator of joint i which follows:
has already been included in the / - t e r m as outlined in the
eff τ, = D qiX x + Dqi2 2 + ··· + Dq i6 6 + Jq
ai t

discussion on the single-joint controller. The last term


results from the gravitational acceleration, which has also + All*? + A22?2 + 2
'·· + A-66^6 2

been compensated by the feedforward term r . This is the a + i\lkAl


D
+ Al3*l4f3 + * * * + Al6*l*6
anticipated gravitational torque signal which must be com­ + . . .
puted by (63), i.e., r = (R/K K )/f
a f R where r is the
g g

estimate of gravitational torque τ . Intuitively, one uses D i

for the best estimate for T for joint / controller. Thus by


G / = 1 , 2 , - . - , 6. (90)
(85), one sets F o r / = 1 , the term D = D is further expanded as
n u

shown in Fig. 13 in which 0, = q i = 1,2, · ·, 6. Obvi­


r = D, = - Σ m g'U f (89)
i9

g p pi p ously, it is not a simple computational task, especially


p=i when the position- and orientation-dependent parameters
for joint /. change as the robot moves. Therefore, the effort of search­
The third and fourth groups in (82) represent the contri­ ing for methods of simplifying the computation is war­
butions from the centrifugal term and the Coriolis force, ranted. Three approaches to simplification are known, viz.,
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 311

D u = mk x
2
22

+ m 2 [ k l u s 2
e 2 + k\ cH
33 2 + r (2y 2 2 + r )\ 2

+ m [k]3 2 2 s e 2
2 + k\ c Q
33
2
2 + r (lz 3 3 + r ).Y 0
3
2
2 + r] 2
2

+m {{k A
2
u [s e (2s e - 2
2
2
A \ ) + s % ] + {k (\ 2
A72 + c 0 2
2 + s % )

+ {k 2
3 3 [ s 2
e 2 { \ - 2 s 2
e 4 ) - s 2
e 4 ] + r 2
s 2
e 2 + r 2
- 2y r s e 4 3
2
2 + 2z (r jtf + r 3 j0 2 c0 2 c0 4 )}
4 2 4

-hm {i(-/c| 5 M + /; 5 22
2
+ /c 2
3 3 )[(*0 *0 2 5 " €θ 3θ €θ ) 2 4 5
2
+ c 0 c 2
4
2
0 ] 5

+ H*511 - *S22 + ^ Χ * ^ + C 2
^ )

+ ϊ(*511 + *522 " *533 ) [ ( J * 2 ^ 5 + C0 J0 J0 ) 2 4 5


2
+ C 0 5 0 ]
2
4
2
5 + r Vfl 3 2 + r 2
2

+ 2z |7 (.s 0 c0
5 3
2
2 5 + se se ce s0 ) -
2 4 4 5 r c0 *0 ]}
2 4 5

+ ^6{ΐ(-^611 + *622 + ^6 3 )[(^2^5^6 ~ 2


3 C0 *0 C0 C0 2 4 5 6 ~ C0 C0 *0 ) 2 4 6
2
+ (c0 C0 C0
4 5 6 - ί β 4 ^ 6 ) 2
]

+ ±(*611 " *622 + *633)[( ^ 2 ^ * 5 ^ 6 ~ ' « 2 ^ 6 " ^ cfl ci )


2 4 6
2
+ (c0 C0 *0 4 5 6 + 5* C« ) ]
4 6
2

+ ±(*611 + * « 2 " ^)[(€θ εβ 8β 2 Α 5 + ^ β 5 ) 2


+ C 0 * 0 ] 2
4
2
5

+ [/- c0 *0 50
6 2 4 5 + (r c0 6 5 + r 3 ) ^ ] 2
+ (r c0 50 6 4 5 - r ) 2
2

+ 2z [r (s 0 c 0
6 6
2
2
2
5 + c 0 s 0
2
4
2
5 + c e s e s e
2
2
2
4
2
5 + 2sd ce se se ce )
2 2 4 5 s

+ r (s0 c0 s0 s0
3 2 2 4 5 + s 0 c0 ) -
2
2 5 r c0 .y0 ]}
2 4 5

Fig. 13. Coefficient of inertia term for Joint /'.

geometric/numeric, composite, and differential transfor­ nates changes. In Fig. 14(c),


mation. Bejczy's geometric/numeric evaluation [11] deals
a = OP c o s ( 0 + γ ) = OP [ c o s 0 c o s y -
x sin0siny]
with the nature of joints, whether revolute or prismatic.
Thus the Tj matrices in (86)-(88) can be simplified in
k
b =~OP
x s i n ( 0 + γ ) = 0 P [ s i n 0 c o s y + cos 0 sin γ ] ,
advance. Since many elements in the four-by-four matrices (91)
are zeros, the resulting expressions for Z) , D and D are z ij9 ijk

less complicated [11]. The composite technique by Luh and but


Lin [12] involves the comparison of all the terms in a = O P cos 0
N e w t o n - E u l e r formulation of the dynamic equation [13] in
/3=0Psin0. (92)
a computer. Some of the terms may be eliminated under
various criteria. The remaining terms are then rearranged Thus
in a Lagrangian formulation. The upshot is a computer
a = a cos γ — b sin γ
x
output of a simplified equation in symbolic form. Paul's
differential transformation [5] which converts the partial b = α sin γ +
x fccosy
derivatives of the matrix transformation dTfi/dqj into the c, = c, (93)
matrix product of the transformation and a differential
matrix which reduces to a much simpler form. The third which can be written as
approach will be discussed in the following. T o facilitate V " cos γ — sin γ 0 0" 'a
the discussion, it is necessary to introduce the homoge­ sin γ cos γ 0 0 b
neous transformation which is a four-by-four matrix that (94)
0 0 1 0 c
represents the rotation and translation of vectors in some
1 0 0 0 1. _ 1
coordinate systems.
Fig. 14(a) shows two aligned coordinate systems ( J C , y, z) T h e reason for the addition of the fourth row and fourth
and ( J C ' , y',z'). A point Ρ is fastened upon ( J C ' , y', z'), i.e., column in the matrix of (94) will be clear when the
when ( J C ' , y\z') moves with respect to ( J C , y,z), point Ρ translation of the position is introduced. In the meantime,
moves with it. Suppose ( J C ' , y\z') is rotated γ rad about the matrix in (94) is the homogeneous transformation
the ζ axis, as shown in Fig. 14(b). Since Ρ moves together which rotates the vector or point P , and hence the coordi­
with ( J C ' , y',z'\ its location in that coordinates remains nates ( J C \ y\ z'\ γ rad, about the ζ axis. For convenience,
unchanged. However, the location of Ρ in ( J C , y, z) coordi­ the matrix is denoted by R(z, γ ) so that (94) may be
312 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

(a) (b) (c)


Fig. 14. Rotation of coordinates with reference to base coordinates.

written as or
"βι' a' a R
3
R
\2
b R R R
= R(z,y) (95) 2] 22
(100)
c C
3 R 3 2 R
.1 .1.
1 .0 0 0
Likewise,
where
1 0 0 0 R u = cos β cos γ
0 cos a -sinα 0
R(x,a) = R l2 = - cos β sin γ
0 sin α cos α 0
R = sin β
0 0 0 1. l3

cos β 0 sin β 0 R 2X = c o s a s i n y + sin a sin β cos γ


0 1 0 0 R = cos a cos γ — sin a sin β sin γ
(96)
22

-sin β 0 cos β 0 R 23 = - s i n a cos β


0 0 0 1
R 3l = sin a sin γ - cos a sin β cos γ
N o w supposing (jc', y\ z') is rotated β radians about the j>
Λ = sin a cos γ + cos a sin β sin γ
axis. Again, the location of point Ρ in (*', y\ z') does not 3 2

change but in (jc, y, z) changes from (a ,b ,c ) to } x x Λ 3 3 = cos a cos /?. (101)


(a , b ,c ) as
2 2 2
N o w suppose (jc', Z') is translated t , t , and i units, x y z

~2
a 'a' respectively, along the x, >>, and ζ axes. Then
b b
a a
c , (97)
2
4
«3 R
\2 *13
C
2
b _ 2\ R R b
+
R
3
.1 .1
22 2 3
<y
.1.
R
32 /?33 c
or
1 .1 .0 . . 0 0 0 1 1.
a
2 cos β cos γ - cos β sin γ sin β a (102)
b2 sin γ cos γ 0 b Let
— sin β cos γ sin β sin γ cos β c
1 0 0
.1 0 0 0 1.
0 1 0 ty
(98) (103)
0 0 1 tz
Thus (97) and (98) show that coordinates (jc', y\ z') is first 0 0 0 1
rotated γ rad about the ζ axis and then rotated β rad,
about the y axis. If it is further rotated a radians about the denote the previously mentioned linear translation, Then
χ axis, one will have the four-by-four matrix in (102) may be written as

L(t t ,t )R(x,a)R(y fi)R(z y)


~a - 2 a x9 y z 9 9

h b R l2
t
= R{x,a) = R(x,a)R(y,fi)R(z,y)
x

C
2 c R 2X R 2 2 R 23
<y
(104)
A .1 .1 Λ 33
R
32 tz
(99) 0 0 0 1
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 313

which represents a rotation of γ rad, about the ζ axis, then 1


a rotation of β rad, about the y axis, followed by a rotation
of α rad about the χ axis, and finally a translation of
t , t , t , respectively, along the x, >>, and ζ axes. Thus the
x y z

four-by-four matrix which is called the homogeneous trans­


formation includes rotation as well as translation of the
coordinates (x\ y\ z'). Since the matrix multiplications d o
not commute, the order of multiplying the matrices L and
R in (104) cannot be interchanged. For example, should
/?(x, a) and R(y, /?), or L{t ,t ,t ) and R(z, γ ) inter­ x Y z

change their places in (104), the resulting matrix, and


hence the physical order of rotations and translation, would Fig. 15. Rotation and translation of coordinates with reference to base
be different. coordinates.
Refer to Fig. 15 and suppose that the pth joint of the
robot is originally at the point P. Then On the other hand, one may express
X
P y Z
P 1
P ι ι 1 ,1
P
(105) ρ y
p ύ
ρ 'p (108)
0 0 0 1
0 0 0 1
represents the coordinate frame with respect to the base
Combining (106)-(108) yields the perturbation
coordinates. Now rotate the joint in the following order: γ
rad, about the z axis, β rad about the y axis, a rad about
0 0
0 -S y 0 δβ 0
8χ 0

the x axis. Finally, translate t with respect to (jc , y , z )


0 0 0 0 0 -δ α 0 %y
coordinates. Suppose the resulting orientation and position W = TP. (109)
0 8ζ 0

of the joint are, respectively, (x , y \ z ) and l with refer­ p p p p


0 0 0 0
ence to (jc , j , z ) . Thus the current state of the hand with
0 0 0

reference to base coordinates can be represented by The matrix in (109) is the variational operator with respect
to the base coordinates. If the variation is referred to the
«,, «12 «.3 /?th joint's own coordinates, then it must be premultiplied
z**p Zp
x
l
1
R 2i «23 '? by a four-by-four transformation matrix
0 0 1 R t.
«31 3 2 «33 r,° = ( ! ? ) - ' (no)
0 0 0 1
which transforms any vectors or coordinate frames with
(106)
reference to base coordinates (jt , y , z ) to the pth joint 0 0 0

Now if T£ is perturbed by a small translation and coordinates (x , y , z ). Thus the perturbation on the pth
p p p

rotation with respect to the base coordinates, then t «- x joint coordinate frame with reference to its own coordi­
δ χ , t <- S y, t <- δ ζ , a «- δ α, β <- δ /?, γ <- δ γ .
0 y 0 z 0 0 0 0 nates is
However, c o s ( £ a ) - 1, s i n ( 5 a ) = δ α , · · ·, δ αδ β — 0,
0
0 0 0 0 0

• · · , etc. Hence by (101), ~ oy 8


P 8β 0 Ρ

0 8
oy P
TP.
«Π «.2 «13 0
8
0p a 8
0p z

«2, R «23 <y 0 0


22
0 0
«32 «33 t.
«3. (Ill)
0 0 0 1
Since
1 -δ γ 0 8β 0
δ χ 0
X
px x
py X
p: -*'P P 1

1 -δ α 0
(107) yv -y' i
δα 0 1 δ ζ 0
p P P
(112)
P* PV P! -z' l„
0
Z Z

0
Z
p

0 0 0 1
Then

x' {A Xx ) p p p x' (A Xy )
p p p x' (A X )
p p Zp x' [(A Xl )+d ]
p p p p

y' {A xx ) y' {A Xy ) y (& x z) y' [{A x f„) + d ]


p p p p p p P p p p p p
(113)
z' (A Xx ) p p p z' {A Xy )
p p p z' (A Xz )
p p p z' [{A
p p x l) + p d] p

0 0 0 0
314 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

where ( · ) ' = transpose of ( · ) , Δ , = [8 a 8 fi 8 y ]\ d = 0 p 0 p 0 p p


where δ^α, is a small rotation of coordinates frame of joint
[8 x 8 y 8 z ]\
0 p 0 and X indicates cross product. By the
p Q p
ρ about the χ axis with respect to the ith joint's coordi­
vector identities a\b X a) = 0, a'{b X c) = b'(c Χ a ) , x p nates, and k is the radius of gyration "xx " of joint (or
pxx

X
^ = Z
P =
~yp x X
P>' ' *' E T C
-' ( ] 1 3
) R E D U C E S T O link) ρ about the origin of the pth joint's coordinates, etc.

ο Λ x
'p(K P XI
+ d
p) D. Computation of Compensation for Gravity, Centrifugal,
ζ'Δ 0 -*;Δ, y;{b Xl p p + d) p and Coriolis Terms

y
P^P P P
o *;(δ, χ + From (85) and (86) one obtains
0 0 0 0
(114) (120)
ρ-·
Since 8 T£ is the perturbation on the pth joint coordinate
p

frame with reference to its own coordinates, then based on By some algebraic manipulation, [5] also shows that
the results in (109), it can be written as
0 z>, = r (i2i)
- ν
P=i
0 -δ α
Γ/
ρ
(115) where r is a vector describing the center of mass of link
1

- ν 0 V
p

ρ with respect to the (i-l)th coordinates, and


0 0 0 0

where 2^ is an identity matrix, so that '[-g'tt-x &' i-\ x 0


°L i f
joint/? is revolute,
Γ =
[ο ο ο - i v , L if joint ρ is prismatic.
8
P a
= x
A
Since the term D contains a second partial derivative
ijk

d Tg/(dqjdq ),
2
k it is not able to simplify (84) for computa­
V = * P \ tion. Conventionally, one often ignores the centrifugal and
δχ = χ;(δ, χ
ρ ι + </„)
ρ
Coriolis terms. The justification is that these two terms are
velocity dependent. When the robot starts to move from its
δ^ = .ν;(Δ, χ / , + <*,) initial location and approaches its goal location, the veloci­
ties are usually low, and hence the contributions from these
ν = ;(Δ, χ + (Π6)
Σ
two terms are insignificant. Once it picks up velocity, the
Equations (115) and (116) serve as the basis for numerical robot is traveling in the space, and normally the traveled
computation because of their reduced form. Now, if the path is not of importance. Should the path be important,
perturbation on t h e p t h joint coordinate frame is expressed such as avoiding collision with obstacles, then these two
with reference to the j th joint coordinates (x y z ), then J9 j9 y
terms may not be ignored. They must be computed either
it has a form by (84) or by using the N e w t o n - E u l e r formulation ap­
proach [13], which is a computational scheme. This scheme
8jTP=Tf{8 TP). p (117) has been proven to be computationally efficient [14]—[16].
Also, Bejczy [7], [11] used the geometric/numeric approach
to show that for the last four joints of the Stanford-JPL
As a limit,
manipulator, which has six joints (n = 6), the following
terms are identically zero:
d
-^d =Tf{8 Tf).
qj p (118)
^333 ^334 ^335 ^336 ^344 ^345 ^346 ^356 ^366
Through a lengthy algebraic manipulation, [5] shows that Ai33 Ai34 Ai35 A*36 ^ 4 4 4 ^ 4 4 6 ^ 4 5 5 ^ 4 6 6
(with the condition that all the cross inertia terms are
^ 5 3 3 ^ 5 3 4 ^ 5 3 5 ^ 5 3 6 ^ 5 5 5 ^ 5 5 6 ^566
ignored since they are relatively insignificant by experi­
ments [5], [7]) ^ 6 3 3 ^ 6 3 4 ^ 6 3 5 ^636 ^ 6 4 4 ^ 6 6 6 ·

Thus reducing the computational task is possible if the


geometrical configuration of the robot is known and if an
ρ = max (/, j)
analysis is carried out.
As mentioned before, the N e w t o n - E u l e r formulation
yields a computationally efficient scheme. Further shorten­
ing of computing time is possible by means of parallel
computations using a computer with multiple central

(τ**,) χ (τχ))]} (119) processing units (CPU's). A variable branch-and-bound


method, which determines an optimum ordered schedule
LUH: CONTROLLER DESIGN FOR INDUSTRIAL ROBOTS 315

for each of the CPU's, was developed by Luh and Lin [17]. loop must be added to each controller. Alternatively, one
When the computational task is reduced and the computa­ may take advantage of the associated digital computer to
tional time is shortened, having a real-time controller for compute the required joint torques which would yield
the robot is feasible. appropriate velocities at fixed accelerations. The computa­
tion requires the knowledge of the dynamical equation of
VI. PATH T R A C K I N G B Y R O B O T W I T H M U L T I P L E the robot. Since the robot is a nonlinear mechanism with
JOINTS
couplings among its joints, as shown in Section V-A on
Lagrangian formulation, the computation is time consum­
Refer to the questions raised at the end of Section II. If ing.
the robot is required to travel along a prescribed path, the A possible way to avoid the storage of numerous pre-
controller must keep up with path tracking. With posi­ computed points of joint trajectories or the computation of
tional controllers the path tracking can be accomplished by these points on-line is to determine the functional represen­
dividing the Cartesian path into a number of segments. tation of η joint trajectories. However, the transformation /
Each endpoint of the segments is transformed into joint in (5) is pointwise. Since no transformation of a function is
coordinates, and then the positional control is applied from known, the curve fitting procedure may be adopted as
point to point in joint coordinates. A number of facts follows [20]-[22]. The corner points of the Cartesian path
related to this approach should be mentioned. By transfor­ are first transformed into joint coordinates. A cubic func­
ming all the endpoints of segments of Cartesian paths, one tion is assigned to each segment between every two adjac­
essentially constructs η corresponding trajectories in joint ent joint coordinate points. The adjacent cubic functions
coordinates, one for each of the η joints. If these segments are then splined together with the continuity conditions of
[dp(t)' ί/β(ί)Ί y short, the increments of joint
a r e v e r
desired velocity and, if required, desired acceleration. Curve
displacement dq between adjacent points are very small, so
( fitting is done by using a large number of points on the
that sin dq - dq and cos dq - 1. Thus the transformation
i t { Cartesian path after they are transformed into joint coordi­
/ ( · ) defined by (5) becomes a differential transformation nates and applying the least square error fit to obtain the
which is usually linear. This transformation is the Jacobian coefficients of the spline function. Thus one needs to store
matrix of the displacement, which contains trigonometric only the coefficients. The points on the joint trajectories
functions of the joint displacement with respect to the joint can be obtained by a simple computation when needed.
coordinates before the differential increment takes place
[18]. Analytically, the solution dq in terms of dp and dti
t
VII. E F F E C T O F F E E D F O R W A R D C O M P E N S A T I O N ON
can be obtained simply by inverting the Jacobian matrix.
A M U L T I P L E - JOINT ROBOT
Although it is sometimes possible, it is usually difficult
since the Jacobian is quite complicated. Numerical solution In the same report of Carnegie-Mellon University [8]
is also possible but usually requires long computing time. referred to earlier, the investigation on the feedforward
Moreover, the Jacobian matrix becomes singular when the compensation of gravity force, friction torque, centrifugal,
robot reaches a degenerate position at which the solution and Coriolis contributions for a direct-drive arm was ex­
dq is not unique (i.e., more than one value of dq yields a
l t tended to two joints. A comparison of the joint trajectories
same dp and </θ.) An alternative method proven to work for two joints of the direct-drive arm is shown in Fig. 16,
successfully is to differentiate the solution of (5) directly which is reproduced from [8]. A noticeable interaction is
[18]. This is possible since for a given robot with fixed seen between these two joints when no feedforward com­
dimensions, the transformation / is known. Using this pensation is applied. A close coincidence is also seen
approach, one must set dq to zero if it is physically
l between output and input commands for both joints when
impossible due to constraints, or if it is undetermined. It the full dynamic compensation is implemented.
usually results in a simpler expression [18].
The desired Cartesian corner points of the path may be
VIII. CONCLUSION
fed into the control system either numerically or through
the teaching by doing procedure. The intermediate points For industrial robots whose assignments are limited to
of the small segments of the path are usually specified, or usual tasks involving mainly synchronization, controllers
interpolated by the computer-controller, or sampled and can be designed by conventional methods based on two
recorded through teaching by doing. factors: damping factor and structural resonant frequency.
When the robot is controlled from point to point using For a single-joint controller, it is possible to reduce the
the positional controller, it has a natural tendency to stop steady-state position error and to eliminate the velocity
at each point. This undesirable phenomenon may be and acceleration errors by feedforward compensations. For
eliminated by specifying a nonzero velocity at each Carte­ multiple-joint controllers, further feedforward compensa­
sian point, which can be transformed into the correspond­ tion is necessary to encounter the force interactions
ing nonzero joint velocities by a Jacobian matrix of the between joints. However, this introduces computational
velocity. The joint velocities are often referred to as the difficulties so that methods of approximation, simplifica­
"resolved rate" [19]. For implementation a velocity control tion, or parallel computation are needed.
316 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-13, NO. 3, MAY/JUNE 1983

NOTE:

I Second

30 h

4J C «-
υ — cd
ω ο 4)

- 30

Fig 16. Effect of feedforward compensation, case of multiple joints


wiith interaction, (a) Without compensation, (b) With compensation.

REFERENCES Control Conf., June 1981, pp. TA-2D.


[13] J. Y. S. Luh, M. W. Walker, and R. P. C. Paul, "On-line computa­
[1] V. D. Scheinman, "Design of a computer controlled manipulator," tional scheme for mechanical manipulators," Trans. ASM Ε J. Dy­
Artificial Intelligency Lab., Stanford Univ., Stanford, CA, A. I. namic Syst., Measurement Contr., vol. 102, pp. 69-76, June 1980.
Memo 92, June 1969. [14] J. M. Hollerbach, "A recursive Lagrangian formulation of manipu­
[2] J. Y. S. Luh, "Anatomy of industrial robots and their controls," lator dynamics and a cooperative study of dynamics formulation
IEEE Trans. Automat. Contr., vol. 28, pp. 133-153, Feb. 1983. complexity," IEEE Trans. Syst., Man, Cybern., vol. SMC-10, pp.
[3] L. G. Roberts, "Homogeneous matrix representation and manipula­ 730-736, Nov. 1980.
tion of N-dimensional constructs," Lincoln Lab., Mass. Inst. Tech- [15] W. M. Silver, " O n the equivalence of Lagrangian and Newton-
nol., Cambridge, Document MS 1045, 1965. Euler dynamics for manipulators," Int. J. Robotics Res., vol. 1, no.
[4] R. P. Paul, B. Shimano, and G. E. Mayer, "Kinematic control 2, pp. 60-70, Summer 1982.
equations for simple manipulators," IEEE Trans. Sys., Man, [16] J. L. Turney, Τ. N. Mudge, and C. S. G. Lee, " Connection between
Cybern., vol. SMC-11, pp. 449-455, June 1981. formulations of robot arm dynamics with applications to simulation
[5] R. P. Paul, Robot Manipulators: Mathematics, Programming and and control," Robot Syst. Div., Univ. Michigan, Ann Arbor, Rep.
Control. Cambridge, MA: MIT Press, 1981. RSD-TR-4-82, Nov. 1981.
[6] J. Y. S. Luh, W. D. Fisher, and R. P. C. Paul, "Joint torque control [17] J. Y. S. Luh and C. S. Lin, "Scheduling of parallel computation for
by a direct feedback for industrial robots," IEEE Trans. Automat. a computer-controlled mechanical manipulator," IEEE Trans. Svst.,
Contr., vol. 28, pp. 153-161, Feb. 1983. Man, Cybern., vol. SMC-12, pp. 214-234, Mar./Apr. 1982.
[7] A. K. Bejczy, "Robot arm dynamics and control," Jet Propulsion [18] R. P. Paul, B. Shimano, and G. E. Mayer, "Differential kinematic
Lab., Pasadena, CA, Tech. Memo. 33-669, Feb. 1974. control equations for simple manipulators," IEEE Trans. Svst.,
[8] Η. T. Asada and I. Takeyama, "Control of a direct-drive arm," Man, Cybern., vol. SMC-11, pp. 456-460, June 1981.
Robotics Inst., Carnegie-Mellon Univ., Pittsburgh, PA, Rep. [19] D. E. Whitney, " Resolved motion rate control of manipulators and
CMU-RI-TR-82-4, Mar. 9, 1982. human prostheses," IEEE Trans. Man-Machine Svst., vol. MMS-10,
[9] H. Goldstein, Classical Mechanics. Reading, MA: Addison- pp. 47-53, June 1969.
Wesley, 1959. [20] R. C. Paul, "Modeling trajectory, calculation and servoing of a
[10] R. A. Lewis, "Autonomous manipulation on a robot: Summary of computer controlled arm," Artificial Intelligence Lab., Stanford
manipulator software functions," Jet Propulsion Lab., Pasadena, Univ., Stanford, CA, A. I. Memo 177, Sept. 1972.
CA, Tech. Memo. 33-679, Mar. 1974. [21] R. A. Finkel, Constructing and Debugging Manipulator Programs,
[11] A. K. Bejczy and R. P. Paul, "Simplified robot arm dynamics for Artificial Intelligence Lab., Stanford Univ., Stanford, CA, A.I.
control," in Proc. 20th IEEE Conf. Decision and Control, Dec. 1981, Memo 284, Aug. 1976.
pp. 261-262. [22] J. Y. S. Luh and C. S. Lin, "Approximate joint paths for control of
[12] J. Y. S. Luh and C. S. Lin, "Automatic generation of dynamic mechanical manipulators," in Proc. IEEE Conf. Pattern Recognition
equations for mechanical manipulators," in Proc. Joint Automatic and Image Processing, June 1982, pp. 622-628.

You might also like