Path constrained robot control — experimental evaluation

Path constrained robot control — experimental evaluation

Mvchatran~J Voi. 4, No. 7.. pp. 173-198. 1994 Elscwvr ~ n c e Lid Printed in Gr'cat Br~uun. ~ Pergamon 0037 4136:04 ~,.00 4-0.00 0957-4185(94)E0007...

1MB Sizes 2 Downloads 23 Views

Mvchatran~J Voi. 4, No. 7.. pp. 173-198. 1994 Elscwvr ~ n c e Lid Printed in Gr'cat Br~uun.

~ Pergamon

0037 4136:04 ~,.00 4-0.00

0957-4185(94)E0007-D

PATH CONSTRAINED ROBOT CONTROL EXPERIMENTAL EVALUATION

--

OLA DAHL

LTH/Malm0 Institute of Science and Technology Ostra Varvsgatan IIH Malta0, Sweden Phone +46 40 325608, Fax +46 40 325646 E-mail [email protected]

Keywords Robot control, torque limits, minimum time optimization, path velocity control, experimental evaluation.

Abstract

Fast motion along a predefined path is important in many robot applications, and requires utilization of the maximum allowable torque range. If the torque is at the limit, there is no margin to cope with disturbances or modeling errors, which may result in deviation from the path. A path velocity controller outside the ordinary robot contrellcr can improve path tracking. The path velocity controller modifies a nominal velocity profile, which is specified in advance, e.g. by minimum time optimization or by a robot operator/programmer. The path velocity co,ltroller modifies a scalar path parameter, giving computational efficiency and coordination of joint motions. The path velocity controller has been verified by experiments on an industrial robot, and some of the results are presented in this paper. The experiments were done on an industrial robot, where the original robot contrel system has been replaced by a VME-based computer system. The experimental results demonstrate how the path velocity controller can adjust a nominal minimum time velocity profile, such that the result is good path following and good utilization of the available torque range. The experiments also show how the path velocity controller is able to compensate for time variations in the robot dynamics.

1.

INTRODUCTION

Motion along a predefined path is common in robotics. Typical examples are gluing, arc welding, and laser cutting. There are several occasions in these applications, where the robot performance is limiting the production speed, and it is n a t u r a l to look for a time optimal solution along the path. The path is given from the application and a first step is to obtain a nominal motion specification along the path. This can e.g. be done by a robot operator/programmer. If a rigid body model of the robot is available, m i n i m u m time optimization can be used [1, 2, 3]. The result of the nominal motion specification is a velocity profile, i.e. the velocity along the p a t h is expressed as a function of the position along the path. The nominal velocity profile typically requires utilization of the m a x i m u m allowable torque range. This can however cause problems d u r i n g motion, since, if the 173

174

O. DAHL

torque is at the limit, there is no margin to cope with disturbances or modeling errors. An approach to solve this robot path following problem is presented in [4], where a path velocity controller is used for modification of a nominal velocity profile. An experimental evaluation of such a controller on an industrial robot is presented in [5, 6]. This paper contains a brief s u m m a r y of path velocity control, including the main experimental results, which demonstrate how minimum time optimization can be used in a nonideal situation, and also how the path velocity controller can handle time varying dynamics.

2.

MINIMUM

TIME OPTIMIZATION

The optimization algorithm for rigid robots [1, 2, 3] is a tractable way to obtain the nominal velocity profile. The robot model used is the common rigid body model, e.g. [7], r = H ( q ) ( l + v(q, dl) + d(q)cl + g ( q )

(1)

where q • IR~ is the vector of joint variables, r • IR~ is the vector of input torques, H ( q ) is the inertia matrix, v ( q , q ) is the vector of coriolis and centrifugal forces, d ( q ) is the viscous friction matrix, and g ( q ) is the vector of gravitational forces. The torque constraints are given by limiting each joint torque, i.e. r,m t n ~ ri ~ ri? r t ~ ( ,

1 ~ i~ n

(2)

where n is the number of joints. We use the notation r • E as a shorthand notation for the torque constraints (2). The path is parametrized in joint space by a vector function f ( s ) • lR n of the scalar path p a r a m e t e r s • IR, so <- s <_ s f , where f(so) is the starting point and f ( s f ) is the end point of the path. An optimal control problem is fi~rmulated by rewriting the robot dynamics (1) using the path constraint q = f ( s ) . l)iffcrentiation of q = f(s), using the chain rule, gives q = f ( s ) , di = f'(s).~, anti il = f"(s).~ 2 + f'(s).q. Substitution into (1) then gives the robot dynamics on the form, e.g. [5] r = bl(s)~ + b~(s,s)

(3)

Introducing a double integrator with states s and s, a second order optimal control problem can now be given as: minimize traversal time, subject to constraints on s, s, and 4. The constraints on s are given from the path description as so <- s < s f . The constraints on the path velocity s and on the path acceleration ~ are obtained from the rewritten robot dynamics (3) and the torque constraints (2). For given values o r s and s, the admissible values of ~ are those that result in r • E. The admissible values of d/are computed by finding the m a x i m u m and minimum admissible/L These values depend on s. Thus, there may exist values of s such that there is no .~ that gives r • E. The admissible values of are therefore defined, for a gdven s, as those values ors where there exist admissible ~, i.e. ~ t h a t gives v • E. The optimization algorithm constructs the time optimal velocity profile by forward and backward integration in the s-.~ plane, using either m a x i m u m or minimum acceleration ~. Examples are shown in Figures 3 and 9.

Path constrained robot control-,-experimental evaluation 3.

175

PATH VELOCITY CONTROL

The minimum time solution is bang-bang in the sense that at least one torque is always at the limit, as can be seen in Figure 9. This means that there is no control margin for the limiting joint in the case of disturbances or modeling errors. This may result in large tracking errors, which then gives deviations from the path. Path velocity control [4, 5] is an approach to solve this problem using feedback modification of a nominal velocity profile. The path velocity controller is used as an outer feedback loop, and modifies the reference trajectory for the ordinary robot controller, which is assumed available. The purpose of the reference trajectory modification is to achieve a reference trajectory which does not require more torque than what is available. If the robot controller has enough tracking performance, this will result in small tracking errors, which then will give motion along the path. The nominal reference trajectory is defined from a nominal path parameter s(t) and the path description f(.) as qr,_(t) = f(s(t)). It is represented in the path velocity controller by a nominal velocity profile, denoted vl and computed from the nominal path velocity s(t) as s(t) = vl(s(t)), and a nominal acceleration profile v2, defined from s'(t) = v2(s(t)). A relation between the profiles vi(s) and v2(s) is found by writing ~/(t) as ~/(t) = v't(s(t))s(t ) = v't(s(t))vt(s(t)) which shows that ,

dl

2

(4)

The modified reference trajectory is defined by the modified path parameter, denoted o'(t), and the path description f(.) as qr(t) = f ( a ( t ) ) . Controller Parametrization The robot controller is designed for good tracking performance, disturbance rejection etc., and is kept unchanged. It is however parametrized in the path parameter o'. The controller parametrization is, for a given controller, obtained by substituting qr(t) = f ( a ( t ) ) into tile controller equation for the torque r. The parametrization has tile form r =

p,,5" +p.~

(5)

The controller parametrization (5) can be obtained for commonly used robot controllers [4, 5], and is here exemplified by a computed torque controller [7] for the rigid model (1). The controller is given by r = f/(q)(/~r + Eve + Kvb.) +v(q, cl) +~l(q)cl +~,(q)

(6)

where e = qr - q is the tracking error, Kp and Ku are feedback matrices, and the variables [/, t~, tt, and ~ represent an available model of the robot. The controller (6) is parametrized as (5) with

fll(~.q) = / / ( q ) f ( a ) ~2(o'.cr.q.~/) =f/(q)(~'(o')~r 2 4- Kpe 4- Ku~t) + ~(q.q) + d(q)q + ~(q)

(7)

176

O. DAHL

The controller parametrization (5) is used in the path velocity controller as the basis for connecting measurements to the path parameter o. by computing limits on the the path acceleration t~. Each torque r . 1 _< i _< n, constrained by r~'i" < r, = ~ l , ~ + 13z, < r~ '~, gives jointwise limits on ~, denoted ~ , ~ ( f l l , , P 2 , ) and 8~,i~(fll,,~2,). Limits on ~ are then computed as x "i

a a i , ( f l l , 3 2 ) = ma o.min(~l,.#2,)

(8)

The limits (8) provide a way to modify the reference trajectory, via modification of ~, such that the torque limits are not violated. The idea is that if the nominal reference trajectory results in inadmissible torques, it is modified by limiting ~.

P a t h Velocity C o n t r o l A l g o r i t h m The path velocity control algorithm is obtained by combining the limits on path acceleration (8) with feedback from the nominal velocity profile. Define the function sat(x. Xmi,,xa~,) as the function that limits x by the limits x,,in and x~a~. The algorithm is then given by the second order dynamic system [4, 5] do. --.=dr

dt ddr --=(r dt c~ Ur -- V2(U) + ~(Vl(O.) 2 - drY')

(9)

= sat(ur,(rmin(]3l,fl2),Umax(~l,fl2))

The path velocity controller (9) is a feedback mechanism for generating the path parameter o.(t) and its time derivatives dr(t) and ~(t). The feedback is through the input signals fll and f12, which are functions of measured quantities, as shown in (7). There is also internal feedback, defined by the auxiliary variable u~ in (9). The purpose of the internal feedback is to ensure that dr approaches the nominal velocity profile vl (a), when the limits on/~ are not active, i.e. when i~m,,,(fll,fl.~) < u, < i~,,~z(fll,fl2), which implies = u~ from (9). Using the relation ~ = ,~La½dr2 and (4), with s replaced by o., the path acceleration dr is then given as d ~o. 1. 2 = - d~ - ~1v l ( o.2 1 2 - l o . .'2) i~ = -~-~ ) + a(~vl(o.) which, introducing the notation xr(o.) = ~vl(o.) 2 and x = ½dr2, can be written as

dx do"

-

dxr(o.) do"

+ ct(xr(o.) - x)

(10)

This shows that the internal feedback in (9) gives a linear system when the path parameter a is interpreted as time variable. This means that the internal feedback has the property that x --* Xr(a). Assuming dr > 0, this gives dr --* vl(a). As can be seen from (10), the parameter a determines a o.-time constant ~, 1 and therefore determines how fast the path velocity dr approaches the nominal velocity profile when the limits on d are not active.

Path constrained robot control--experimental evaluation

°i°nI Planning

vl(.)

---

,

cr ~r @.__l

[.___~ Controller

177

q Cl

Robot[

V2(" ) Figure I. The system structure when the path velocity controller is used. The feedback signals from the robot controller are fll and flz.

Motion

Planning s(t) ~(t) ~'(t)

Controller

Robot I qdl

Figure 2. The system structure when the nominal path parameter is used directly. The block "motion planning" generates or reads out stored values of the time functions s(t), s(t), and .~(t). The limits (8) depend on measured quantities through the vectors fit and f12. It can therefore not be guaranteed that ~mi~(flbfl2) < ~max(fll,fl2). In our implementation, we use ~ = ur in (9) if ~ ( , f l l , f l 2 ) > ~ o x 0 f l , f l 2 ) . This gives a stable generation of the reference trajectory since, when the limits are not active, we get a linear system in o" (10). An advantage with the path velocity controller (9) is the limited amount of computation needed. Using the path velocity controller requires that the robot controller is written in the form (5). The computation of fit and f12 is of the same complexity as the computations done in the Unparametrized controller, compare e.g. (7) and (6). The path velocity controller then adds a second order dynamic system (9), which includes the computation of the limits on ~ (8). The system structure when using path velocity control is shown in Figure 1. The torque constraints are represented by a saturation block, which limits the output of the robot controller. The path velocity controller (the block labelled PVC) uses feedback from the robot controller (the block labelled Controller). The feedback signals fll and f12 are defined from the controller parametrization (5). The system structure when using the nominal reference trajectory without path velocity control is shown in Figure 2, where the inputs to the robot controller are the nominal time functions s(t), s(t), and ~(t). As can be seen in Figure 1, the path velocity controller introduces an additional feedback loop in the system.

178

O. DAHL 4.

A SIMULATION

EXAMPLE

An simulation example is presented. The robot model used is a decoupled linear model. The model has two joints, with masses mr and rn2, and is given by =

0

rn2

=

t12

r2

- r

(11)

where ql and q2 are the joint positions, and rl and r2 are the input torques. The torque constraints are constant upper and lower limits for each torque, i.e. r,111 t rl < r~ < r,m U X ,

i = 1.2

(12)

The path is a straight line segment, described by

f(s) = Minimum

f,(s)

=

/o,s/ a,,s

.

so < s < sf -

(13)

Time Optimization

A minimum time optimization is formulated as: ndnimize traversal time, subject to the path constraint q = f(s), where f(s) is defined in (13), the torque constraints (12), and the dynamic constraints (11). Substitution of the path constraint q = f(s) into the robot dynamics (11) gives the equation

M f ( s ) , ~ + Mf"(s).~ z = r

(14)

which corresponds to (3). For the path (13), we get M/"(s)=

/'n"~t], I,

Mf'(s)s2=O

(15)

I 'g (Z 2

which, substituted into (14), gives the torque vector

r =Mf'(s)'~=

( m~x, nc 2t tc}t , a

(16)

Constraints on ~ are obtained by combining (12) and (16), which gives

r:'~i" <_ ri = mitr,~ < r~"a*,

i = 1,2

(17)

of the Minimum Time Solution For the chosen example, it is possible to derive an analytical solution to the minimum time optimization. The path acceleration g is constrained by (17). These constraints are in this example especially simple, since they can be replaced by constant limits on g. The limits are obtained by requiring that ff should be chosen so that both torques in (17) are Computation

Path constrained robot control--experimental evaluation

179

inside the torque limits. Assume that a l and a2 in (17) are both positive. The limits on

i then become min

Sma, =

i=1.2

~/,.,. = max

i=1,2

r ~ ax

(18a)

m4o~i l~m in

(18b)

miOti

The minimum time optimization for the robot (11) along the path (13) thus becomes a minimum time problem for a double integrator with states s and s, and constant limits on the input/~. The solution to this optimal control problem is bang-bang with one switch, e.g. [8]. The solution has the form =

..

s,.ax.., to < t <_ tl

(19)

tx <_ t < tf

smi.,

where t f is the traversal time. The switching time is denoted tl. This gives the path parameter

I ..

t2

s...x 7 + s o , _ c,-,,~" s,.i.---T - + s t ( t - t L ) + s t ,

s(t)=

0_< t < tl

(20)

t t <_ t < t f

where the velocity at the switching time tl is denoted st. The torque limits in (12) and the parameters in (11) and (13) are chosen as rain

ri

~ax

= -1,

etl = 2,

.

= 1,

a,~ = 1,

= 1.

mi

so = O,

i = 1,2

s[ = 1

(21)

This gives, using (18a) and (18b), s.., . . ~ =

rain(l. 1)= ~.

/~,,.,, = m a x ( - 1 , - 1 ) = _ 12

(22)

Using the boundary conditions s(to) = so, s ( t f ) = sf, s ( t o ) = 0, and S(tf) = 0, the variables t l , s h sL, and t f in (20) are determined as fl = v/'2,

1

s! = ~,

1

sl = " ~ ,

tf = 2v/'2

This gives the time optimal path parameter

s(t) = ~ ¼t~. o _< t _< v ~ ( -¼(t - v~) 2 + ~ ( t - v~) + ½. v ~ _< t _< 2 v ~

(23)

Velocity and acceleration profiles The above solution (23) can of course be represented by the corresponding velocity profile v l ( s ( t ) ) = s(t) and acceleration profile v 2 ( s ( t ) ) = ~(t). These profiles could be computed by differentiating s ( t ) in (23) to obtain

180

O. DAHL

s(t) and ~/(t), and then express s(t) and s(t) as functions ors(t). However, vl(s) and v2(s) are instead calculated directly, using (4). The acceleration profile v2(s) is given, using (19), by ( ~ ..... so <_s<_sL v2(s) = l s~'n' sl < s < sf The relation (4) now gives 1 2 = ~"~/,,axs + so. ~vl(s} l. ~,~i~(s - sl) + ~,,axsl + so,

so _< s <_ st sl < s <_ sf

(24)

Using (21) and (22), (24) becomes lv,(s)2

{ ~s~ -~(s-sl)+~st.

O <_ s < sl sl < s - < t

(25)

The boundary condition s(tf) = O, i.e. vt(sf) = vt(1) = 0, now gives sl = ~. This gives the velocity and acceleration profiles

,z. t

v.,(s) = { ~', -~,

(26)

O <_ s <_ ~I <- s < l -

solution is shown in Figure 3, both as a time function s(t), and as a velocity profile vl. The upper left plot shows the path parameter s(t) in (23). The upper right plot shows the path velocity d(t). The lower left plot shows the velocity profile vl(s) in (26). The lower right plot shows the torques r,(t), solid line, and r2(t), dashed line. The torques are computed from the path acceleration .~(t), using (16). For the example used here, it was possible, due to the constant limits on s', (18), to derive an analytical minimum time solution. In general, due to the robot model and/or the path description being more complicated, the limits on .~ depend on s and d, and it is not possible to derive an analytical solution. For these cases, phase-plane optimization [1, 3, 2] can be used.

The

Using t h e n o m i n a l p a t h p a r a m e t e r The time optimal path parameter s(t) in (23) is used to form a reference trajectory for a robot controller. The sensitivity to modeling errors is demonstrated by simulations. The reference trajectory is denoted q~(t) and is computed as q~(t) = f(s(t)), where f(s) is the path description, given in (13). The robot controller is a computed torque controller [7] for the model (11). The controller is given by r = ~I(Or + g~(qr - q ) + Kp(q~ - q ) )

(27)

where M is an estimated mass matrix, and Ko and Kp are feedback matrices. If,Q = M, combining (11) and (27) gives, introducing the tracking error e = qr - q , that e" + K~e + Kpe = 0

(28)

Path constrained robot control---experimental evaluation s it) 1

0.8

0.8

0.6

0.6

i 81

0.4

0.4 0.2

0.2 0 0

0.8

1

2

0 0

I

2

f t . r2 i t)

vl (s) !

0.6 0

0.4 0.2 0 0

-I I

0.5

0

Figure 3. The minimum time solution for the example. which gives asymptotic tracking of any reference trajectory. shown in Figure 2.

The system structure is

Simulations Simulations of the system in Figure 2 arc presented. The ideal case with a perfect model is first discussed. A simulation where the controller i27) is used on a perfect model, i.e. i l l ) with m t = m2 = 1, is shown in Figure 4. The model parameters were chosen as in (21} and the feedback matrices Ku and Kp in (27} were chosen as diagonal matrices with diagonal elements 20 and 100, respectively. The lower left plot in Figure 4 shows the path p a r a m e t e r s(t) in i23) together with s f, which represents the end point of the path. The mid left plot shows the velocity profile vt(s) in (26). The path p a r a m e t e r and the velocity profile are the same as in Figure 3, the upper left and the lower left plots. The reference trajectory qr,(t) = f , ( s ( t ) ) , i = 1,2, is shown in the upper right plot. The resulting torque outputs from the controller i27) are shown in lower right plot. Due to the ideal situation these torques coincide with the nominal torques, shown in Figure 3, the lower right plot. The actual trajectories qtit) and q2it) are shown in the upper right plot. This plot shows that the tracking is perfect, as is expected since the simulation is done for an ideal case. The mid right plot shows that there are however small tracking errors ei = qr, - q , , i = 1,2. These errors are due to errors in the numerical integration. The simulation was done with the initial conditions ei 0) = e(0) = 0, i.e. from (28), the correct solution has eit) ~ O. The upper left plot shows the desired path (13) and the actual path, obtained by plotting q2(t) as a function of ql(t). As can be seen, the path following is perfect.

182

O. DAHL

q~,(q,,)

q2(ql),

ql, qr,. q2. q,7 (t) 2

0.4

~ . /

"

i

0

0.5

1

1.5

2

vi(s)

0

1

i

I

i

i

2

3

4

5

2

3

4

5

el, e2 (t)

0t

-4-i0 -5

i

0 s, sf (t)

0.2 .

.

.

0.6 .

.

.

1

0 r~, r2 (t)

i

1

.

o.

_

i~

0

i

,

I

,

,

I

2

3

4

5

-.

-I

0

I

2

_

i

,

i

3

4

5

Figure 4, A simulation where :,he nominal time optimal path parameter is used in the reference trajectory. The model is perfect and the path following is good.

I n t r o d u c i n g m o d e l e r r o r s The sensitivity to modeling errors is illustrated by using a robot model with increased mass and viscous friction. Equation (11) is thus modified to m,i'l, + d,q, = r,,

i = 1,2

(29)

where the p a r a m e t e r s are chosen as mt=

1.1,

m2 = l,

t t t = 0.1,

d2 = 0

(30)

A simulation where the robot model (29) is used, and where the robot controller and the time optimal path p a r a m e t e r s(t) are unchanged is shown in Figure 5. The lower left plot and the mid left plot show the path p a r a m e t e r s(t) and the velocity profile vt(s). These plots are the same as in the previous simulation, shown in Figure 4. Thus, the same reference trajectory qr, (t) = f~(s(t)), i = 1, 2, as in the previous simulation is used. However, since the path p a r a m e t e r s(t) and the robot controller are based on the, now erroneous, model (1 i), the situation is no longer ideal. This is seen in the upper right plot which shows the reference trajectories and the actual traject.ories. The dashed line in this plot is the reference trajectory qr,(t). The solid line is the actual trajectory ql(t). As can be seen, the actual trajectory cannot track the reference trajectory. Consider the situation around t = 1.5 seconds. The actual trajectory qt(t) is then behind the reference trajectory qr,(t), i.e. the tracking error el(t) = qr,(t) - - q t ( t ) iS positive. This is seen in

Path constrained robot control----experimental evaluation

q2(ql), qt,(q,t)

183

ql. q~,. q2. q,, (t)

0

I

2

u

u

1

2

3

4

5

0 ft. /'2 (t)

I

2

3

4

5

0

1

3

4

5

0

vl(s)

el. e2 (t)

0 s. sf (t)

0.2

0.6

1

o!ij ,o 0

I

2

,ot'l

3

4

5

2

A simulation where model errors are introduced. As can be seen from the upper left plot, tht., path cannot be followed. Figure 5.

the mid right plot. The resulting torques are shown in tile lower right plot. The nominal switching time is v ~ ~ 1.41 seconds, see (23). However, the large tracking error in joint one has the effect that the torque r i, solid line in the lower left plot, remains at the limit r~"°' = 1 also after the switch. A similar phenomenon is seen in the final switch, where r t remains at the limit r; "i" = - 1 longer than r2. This is a result or a large negative tracking error, as can be seen in the mid right plot. This error is also seen in the upper right plot, as an overshoot in the actual trajectory qt. As a consequence, the path cannot be followed. This is seen in the upper left plot which shows the desired path (13), dashed line, and the actual path, solid line. The simulation example in Figure 5 shows the degradation in performance that occurs when the model is not perfect. Note however that the modeling error used here is not large from the robot controller perspective. This is seen by simulating the same system as in Figure 5, but without the torque limits. The result of this simulation is shown in Figure 6. As can be seen from this figure, the path following is good when the torque limits are removed. Note that the torque r x, the solid line in the lower right plot, is outside the torque limits +1. Path Velocity Control As was shown in Figure 5, using the nominal path p a r a m e t e r s(t) in (23) resulted in path deviations, due to the limited torques. This section demonstrates in a simulation how a path velocity controller can he used to modify this nominal path p a r a m e t e r to a path

I~

O. DAHL

q2(ql), q~,(q,,)

ql, q,,, q2, q~, (t) 2

0.

I

0

1

2

Vl(S)

o,l 0 el, e2 (t)

-lj 1

,

,

!

I

2

3

4

5

0 Z'l, r2 (t)

I

2

3

4

5

!

0 S, Sf (t)

0.2

0.6

1

0.840!U O. ....... 0

I

1~

0 2

I

;

3

4

I

.5

~, ....

--l

0

1

2

3

I

6

4

.5

Figure 6. A simulation of the perturbed model, when the torque limits are removed. Note that

the torque rl required to track the nominal trajectory q,~(t) is outside the limits ±I.

parameter a(t) which results in good path following. The system structure when using path velocity control is shown in Figure 1. A simulation where a path velocity controller is used as in Figure 1 and where the robot model is given by (29) and (30) is shown in Figure 7. The reference trajectory qr(t) = f ( a ( t ) ) is shown, together with the actual trajectories, in the upper right plot. As can be seen in this plot, the tracking is good. Note that the robot model used in this simulation is the same as in Figure 6, where the path following was unsatisfactory. The robot controller (27) is also unchanged. The reason for having good tracking in this simulation is that the reference trajectory is different from the reference trajectory in Figure 6. The reference trajectory is now qr(t) = f ( a ( t ) ) where a ( t ) is generated by the path velocity controller. The reference trajectory used in the previous simulations was qr(t) = [(s(t)) where s(t) is the nominal time optimal path parameter (23). A comparison can be seen in the mid left plot. The solid line is the nominal velocity profile vl in (26). The dashed line is the actual velocity profile, i.e. ~r as a function of a. As can be seen, the actual velocity profile is lower than the nominal velocity profile. The result of using the path velocity controller is thus that the reference trajectory is modified, via feedback, such that the path velocity is reduced. Compared to the simulation in Figure 5, see the upper right plot around t = 1.5 seconds, where the actual trajectory was behind the reference trajectory, the reference trajectory is now adjusted to cope with the actual velocity obtained using maximum torque, This has the consequence that the desired path

Path constrained robot control--experimental evaluation

q,z(q,,)

qt, q,,, q2, qr~ 2

, o . .

ol

qz(qO,

0 ol, ~r (a)

0.5

1

1.5

2

0 el, e2 (t)

o.

S, a , Sf

0.2

0.6

(t)

°:t/', 0

i

, 1

2

3

0 r t , r2 (t)

1

2

.

k

;

0

,

.......... , I

3

5

4

5

\/% 3

!

4

I

1

2

. -r

,

!

1

2

4

5

_, 4

(t)

!

,

0

185

3

Figure 7. A simulation where the path velocitycontroller is used for modificationof the nominal minimum time trajectory. (13) can now be followed. This is seen in the upper left plot, which shows the desired and the actual paths. The lower left plot shows the nominal path parameter s(t), solid line, and the actual path parameter o'(t), dashed line. As can be seen, the actual path parameter is delayed, resulting in larger traversal time. The traversal time tf was computed as the time when the reference trajectory reached the end of the path, i.e. a(tf) = sf. The traversal time was tf = 3 seconds. The nominal traversal time is given in (23) as 2vt2 ~ 2.83 seconds. Computation of the optimal traversal time for the perturbed model (29), using phase-plane optimization for computation of the minimum time velocity profile, gives the traversal time 2.97 seconds, i.e. the traversal time 3 seconds when the path velocity controller is used agrees well with the optimum. The motion is however not optimal, as can be seen in the lower fight plot in Figure 7, where there is a time interval, approximately between 1.5 and 2.3 seconds, where none of the torques are at the limit. The mid fight plot in Figure 7 shows the tracking errors. These errors are of the same magnitude as the tracking errors shown in Figure 6, where there are no torque limits. Hence, these errors are a result of decreased control performance for the robot controller, due to the model errors, and are not caused by the path velocity controller. Using the path velocity controller gives a synchronization effect between the two joints. This is seen by comparing the first torque switch in the lower right plots in Figures 5 and 7. The lower fight plot in Figure 7 shows that the torques now switch

186

O. DAHL

simultaneously. Note also that the switch occurs later in Figure 7, compared to the nominal switch, shown in Figure 4.

5.

EXPERIMENTAL

EVALUATION

The experiments were done on an industrial robot of the type ABB lrb-6. The robot has five degrees of freedom, and is driven by DC motors with gear ratio 1 : 160. The first three joints are used in the experiments. The robot design is similar to the Yasukawa Motoman L-3, e.g. [9, p.94]. The robot control system has been reconfigured, and the resulting system provides general interfaces that allow control using external computers [10]. The computer system used in the experiments is a VME-based system consisting of a Motorola M68030 processor and an AT&T digital signal processor (DSP). The V-MEsystem is connected to a Sun workstation using Ethernet. The software used in the experiments is written mainly in C++ and Modula-2. The path velocity controller is written in C + +, and runs in the DSP. The implementation is described in [5]. A schematic diagram of the system is shown in Figure 8.

Evaluation Criteria The purpose of path velocity control is to achieve fast motion along a path. The paths used in the experiments are measured using only joint positions, and there are no external sensors, e.g. for measuring the actual position of the endeffector. The path deviation is measured using visual inspection, either in joint space or in cartesian space, where the paths in cartesian space are obtained from the joint space paths using forward kinematics. A measure of the utilization of the torque range is used as a measure of fast motion. The torque utilization is denoted r,, and is computed as 1

~ ~

min

I

r,(t)

-

__

"

r, I

(31)

where N is the number of data points, and n is the number of joints. For the robot used here, n = 5. The notation r~" denotes the torque limit which is closest to ri. As can be seen from (31), the torque utilization r,, satisfies 0 ~ r , < 1, and achieves its maximum value when the motion has bang-bang character, i.e. r , = 1 when one torque is always at the limit. Another aspect of the evaluation is the possibility to evaluate the path velocity controller separately from the robot controller. If the torque limits could be removed, the performance of the robot controller could be evaluated. This can however not be done in experiments, and therefore two different levels of torque limits are used. The lower level is used in the minimum time optimization, and when using the path velocity controller. The upper level represents the condition of removed torque limits and is used to check the performance of the robot controller. The p a t h velocity controller is evaluated by comparing the path deviation when the path velocity controller is used, with the path deviation that occurs when the torque limits are set to the upper level. The performance is considered acceptable, if the path deviations for the two cases are comparable. The path velocity controller has then adjusted the reference trajectory such that the path error is of the same magnitude as when there are no torque limits, and the remaining path error is due to the robot controller.

Path constrained robot control--experimental evaluation m

Ethernet

187

I

m

L

!

workSun station

Host

computers

I,i,! I Server

Su station -

soo

workstation

..uA!x...................................................................................................................................................................... Real-Time

Microprocessor (M68030, M68882)

Computer boards vM .

bus

-

Ethernet Node Processor (M68010)

II

I

DSPboard I. (6 x ~-DSP32C) I

II

_

Sensor

IO:

lO-boards

SensorInterface ~

[

Original

[ndus t r ia 1

Robot

robot

system

Controller

F i g u r e 8.

A schematic description of the experimental environment.

Experiments The model used in the minimum time optimization is a linear decoupled model on the form m,ii, +d/i, = r~, where 1 _< i _< 5, the n u m b e r ofjoints. The parameters m, and d, were determined experimentally using system identification [11}. The robot controller is an individual joint PD controller, written as ri = rhii~r, + d/lr, + ku, ei + kpei, where 1 < i < 5 and e, = q ~ , - q , The feedback gains kp, and k,., 1 _< i < 5, were empirically tuned. The lower level of torque limits was chosen as +0.5Nm for all joints. The upper level of torque limits was +INto for all joints. The p a r a m e t e r choice a = 10 in (9) was used. The sampling frequency for the robot controller and the path velocity controller was 1 Khz, and the data logging was done with 100 Hz. Experiment

1

The path is an ellipse for joints one and two, parametrized as fl(s) =

188

O. DAHL

vl, v . o , (s)

I0

r~, r2 (s) 0.5

8

s,,'f

6 4 2 -0.5 0

0

2

4

6

0

i

I

1

2

4

6

Figure 9. The mimmum time solution for the elliptical path. The left plot shows the minimum time velocity profile, solid line, and the maximum velocity curve, i.e. the maximum admissible S as a function of s. dashed line. The dotted line in the left plot is 2 if s is maximum, and 0 if s is minimum. The right plot shows the corresponding torques rt, solid line, and r2, dashed line, as functions of s.

qr~(q~,), q2(qt)

o.:t

20

-201 0

5(1

100

t....

0

l"1,

r2 (t)

,, f ,l

I

2

3

Figure 10. The result of using the nomi,ml velocity profile without the torque limits. As can be seen in the right ph)t, the torques required to track the nominal trajectory are ouk~ide the limits 2.0.5. 50(1 - cos(s)), re(s) = 2 0 s i n ( s ) , where 0 < s <_ 2z. T h e m i n i m u m t i m e velocity profile is shown in F i g u r e 9. An e x p e r i m e n t where the n o m i n a l velocity profile is used, and w h e r e the u p p e r level of torque l i m i t s (+1) a r e used is shown in F i g u r e 10. T h e left plot shows the d e s i r e d p a t h in j o i n t space, solid line, and t h e a c t u a l p a t h , d a s h e d line. The axes a r e scaled in r a d i a n s for the m o t o r shaft. T h e right plot shows the t o r q u e s r l ( t ) , solid line, a n d r2(t), d a s h e d line. As can be seen from the plot, the t o r q u e s r e q u i r e d to t r a c k the n o m i n a l reference t r a j e c t o r y a r e o u t s i d e the limits ±0.5. T h e r e s u l t of u s i n g the n o m i n a l reference t r a j e c t o r y a n d the torque l i m i t s +0.5 is shown in F i g u r e 11. As can be s e e n in the r i g h t plot, the torque $t, solid line, is s a t u r a t e d for m o s t p a r t s of t h e motion. T h e t o r q u e t2 is also s a t u r a t e d , b u t for s h o r t e r t i m e i n t e r v a l s . T h e r e s u l t of t h e torque s a t u r a t i o n is t h a t the d e s i r e d p a t h c a n n o t be followed, as can be seen in t h e left plot. T h e reference t r a j e c t o r i e s a n d the c o r r e s p o n d i n g a c t u a l t r a j e c t o r i e s a r e shown in t h e left plot in F i g u r e 12. The t r a j e c t o r y qt (t), d a s h e d line, d e v i a t e s from the reference t r a j e c t o r y qr, (t), solid line. T h i s d e v i a t i o n is seen as a p a t h d e v i a t i o n in F i g u r e 11.

Path constrained robot control---experimental evaluation

q2(ql)

q,, (q~,),

189

rt, r2 (t)

]

0.5

20

'i L

i f 0

............. It,~

':!

i i j

. ~.'.,

'J

e

-20

-0.5 L

I

I

0

50

100

0

i

i

1

2

Figure II. The result when the nominal velocity profile is used directly. The path cannot be followed, due to torque saturation. qr,, qt, q~,, q2 (t)

q#,, qt, q#,, q2 (t)

100

100

50

50

0

-50

, 1

0

½

3

-50

' !

0

' 2

3

Figure 12. The reference trajoctories and the actual trajectories when the nominal velocity profile is used (left plot), and when the path velocity controller is used (right plot).

qr,(qr,),

rt, r~ (t)

q2(qt) 0.5

20

li%

~

e

,2,.' . . . .

0 ',~ -0.5 L

I

I

0

50

!00

;'

' i IIi

,~,,, •

', -20

~ 0

I

0

1

I

i! Ii %

I

2

Figure 13. Using the path velocity controller leads to path tracking with limited torques.

The right plot in Figure 12 shows the result of using the path velocity controller (9). The t r a c k i n g error in joint one is reduced, a result of the reference trajectory modification done by the path velocity controller. The path and the torques are shown in Figure 13.

190

O. DAHL

qr,(qr,),

q2(ql), qz..,.,(ql.__)

20

-20 1

t

1

I

L

I

0

20

40

60

80

100

F i g u r e 14. A comparison showing the actual path from the experiment without the torque limits, dotted line, and the actual path when the path velocity controller is used, dashed line. The solid line is the desired path.

a, vl (,r) 50 0 -50 0

L

2

1 .....

II

4

6

-10(} 2

4

6

Figure 15. The velocity modification done by the path velocity controller can be seen in the left plot. The right plot shows the path acceleration (r, and the limits on O.

As can be seen from the right plot, one of the torques are at the limit for most parts of the motion. The motion is however not optimal, since for t ~ 1.6, none of the torques are at the limit. This is also seen from the torque utilization (31), which was computed as r , = 0.94. The left plot shows that the path deviation is reduced. Compare the corresponding plot in Figure 11. Figure 14 shows the desired path, solid line, the path obtained when the path velocity controller is used, dashed line, and the path obtained from the experiment in Figure 10 where the torque limits were removed, dotted line. As can be seen in the figure, both the dashed line and the dotted line deviates from the desired path. However, the deviations are similar. This shows that when the path velocity controller is used, the behavior with respect to path deviation is qualitatively the same as for the case when the torque limits are removed. This can to some extent be expected, since the acceleration adjustment done by the path velocity controller has the effect that variations in the torque that would otherwise result in torque saturation, instead, via the adjustment of the path acceleration, become variations in the reference trajectory. The difference in path velocity is shown in Figure 15. The left plot shows the nominal velocity profile vt(o'), dashed line, and the

Path constrained robot control---experimental evaluation

191

rl, r~, r3 (s)

vl. v,..~ (s)

r

0.5 60 40

"'----'.

0 'l~'l ~

," i

20

i,

0I

0 Figure 16.

20

40

.O.5------5 0

20

40

The minimum time solution for Experiment 2, and the corresponding torques.

actual velocity profile, i.e. dr as a function of a , solid line. The dotted line indicates if the limits on @ (8) are used or not, i.e. the dotted line is one if the limits are used, and zero otherwise. As can be seen in the plot, the path velocity is reduced, resulting in increased traversal time. For this experiment, the nominal traversal time was tf,~, = 1.59 seconds, and the traversal time obtained when the path velocity controller is used was t f = 1.83 seconds. The traversal time is computed as the time when the reference trajectory reaches the end of the path. When the limits on b (8) are inadmissible, i.e. when ami~ > @max, the path velocity controller (9) cannot adjust the path acceleration such that all torques are admissible, which then may result in path deviations. An evaluation of the result of using path velocity control can be done by plotting the limits on path acceleration (8). This is done in the right plot in Figure 15, which shows the path acceleration ~, dotted line, and the limits @rain, dashed line, and ~ ..... solid line. The nominal acceleration and deceleration intervals are shown in Figure 9 by the dotted line in the left plot. From the dotted line in the left plot in Figure 15, it is seen that the limits are used during the acceleration intervals. From the right plot in Figure 15, it is seen that the upper limit is active, i.e. = @~ax in these intervals. It can also be seen that the lower limit ~,,i~ is active during parts of the deceleration intervals. For this experiment, the limits are admissible, i.e. b,,,~ < b , ~ , for the complete motion. The right plot in Figure 15 is then related to the torques, shown in the right plot in Figure 13, in the sense that in the intervals where the limits are active, i.e. when either @ = a,,,, or b = ~,,~, at least one of the torques are at the limit, and, conversely, when b,,,,, < ~ < ~ ..... then none of the torques are at the limit. 2 -y.z.square The path used in this experiment is specified in cartesian space. The path is a rectangle with rounded corners, aligned with the y and z-axis of the cartesian coordinate system. The length along the y-axis is 600ram, and the length along the z-axis is 400ram. The corners are circular arcs with radius 4 0 r a m . The cartesian path is shown as the solid lines in Figure 18. The corresponding path in joint space is shown as the solid lines in the upper plots in Figure 17. As can be seen in the upper right plot in Figure 17, the path for joints 1 and 3 is almost aligned with the coordinate axes. The minimum time solution is shown in Figure 16. The left plot shows the maximum velocity curve, dashed line, and the minimum time velocity profile, solid line. The dotted

Experiment

192

O. D A H L

qr,(q,,), qz(ql)

0

q,,(q,,), q a ( q l )

50

-10 -20 -30

-50

-40 -50 -I00

100

e. . -x . ~"

i

|

I

-50

0

50

100

-100 -100

&

-50

q,,, ql, qr~. q2, qr~, q3 (t)

i

i

0

50

100

r,, rz, ra (t) 0.5

i

5O 0

0

~.,.,,o ?.. ,,,

-50 -0.5 -100 0

|

I

2

4

i

6

0

2

4

F i g u r e 17. The result when the nominal velocity profile is used. The path in joint space is shown in the upper plots. The path cannot be followed duo to torque saturation.

1400

z,(y,), z(y)

yr(Xr), y(x)

400 200

i

i

1200 0 ."'[

I000 -200 800 -400

, - ...... ; -200 0

-r . . . . 200

400

-400 920

"'

:£ i

I

940

960

Figure 18. The result in cartesian space when the nominal velocity profile is used. The axes are scaled in millimeters. line is n o n z e r o w h e n g is m a x i m u m a n d z e r o w h e n g is m i n i m u m . T h e r i g h t p l o t s h o w s t h e t o r q u e s r t , solid line, r2, d a s h e d line, a n d rz, d o t t e d line, as f u n c t i o n s o r s . T h e p a t h p a r a m e t e r s is for t h i s p a t h d e f i n e d in t h e i n t e r v a l 0 _< s < s t- w h e r e s f = 56.3. T h e

Path constrained robot control---experimental evaluation

q,,(q,,), q2(ql)

193

q,-, (q,,), q3(ql) 50

0 -10

0

-20 -30

-50

-40

...=o

-50 00"

I

I

l

-50

0

50

100

-100 -I00

'

q,,, qt, q ~ , q~. q~3. q3 (t)

!00

'

-50

0

5'0

100

1-1, l'2, ~'3 (t)

50 0 -50 -I00

t

2

0

4

6

0

A

I

2

4

6

Figure 19. The result when the path velocity controller is used.

1400

z,(yr), z(y), z ...... (y ...... )

y~(xr), y(x). y.,,,,,(x,.,,m) 400 I ~

2001200



,5

o1000 -200 r

8-~400

I

i

i

-200

0

200

400

-400 920

f

940

9 0

Figure 20. The result in cartesian space when the path velocity controller is used. The solid lines show the desired path, and the dashed lines show the actual path obtained when the path velocity controller is used, and the dotted lines show the actual path from an experiment where the torque limits arc removed. motion s t a r t s a t t h e u p p e r r i g h t c o r n e r of t h e p a t h as shown in t h e u p p e r r i g h t plot in F i g u r e 17. a n d proceeds counterclockwise. F o r 0 < s < 15, which c o r r e s p o n d s to t h e first

194

O. DAHL

a, v~ (a)

,10 30 20 10 0

I

I

10

20



,:;

I

I

30

40

:

50

. . . . tt.,~, a (a)

200

0

-200

-400

"~f ,s,'~

o *..

°.

• ~. • •,

I0

.,t~l~ 'l

L...,,,.:,....,-•-.-,,,... .......i'"

" 20

30

40

50

Figure 21. Evaluation of Experiment 2. The nominal and actual velocity profiles are shown in the upper plot and the path acceleration o" and the limik~ on o" are shown in the lower plot.

straight line segment, r t is at the limit, except for a small interval around s ~ 12, where rz is at the limit. For 17 < s < 27, which corresponds to the next straight line segment, r3 is at the limit. This behavior repeats itself for the third and fourth line segments, i.e. for the third straight line segment, r l is at the limit, and for the final straight line segment r3 is at the limit. The result of using the nominal velocity profile is shown in Figure 17. The upper left plot shows the desired and actual paths in joint space for joints 1 and 2, i.e. qr2 as a function of qrt, and q2 as a function of qt. The upper right plot is the corresponding plot for the desired and actual paths for joints 1 and 3. The lower left plot shows the reference trajectories and the actual trajectories, i.e. qr,(t) and q,(t) where i = 1,2,3. At t = 0, the trajectories are, in order of decreasing values, qt, q3, and q2. The lower right plot shows the torques rt(t), solid line, r2(t), dashed line, and ra(t), dotted line. The motion in cartesian space is shown in Figure 18. As can be seen from Figures 17 and 18, the path cannot be followed. In cartesian space, the path deviation in the y-z-plane is concentrated to the corners, as can be seen in the left plot in Figure 18. The motion in the y-z-plane starts in the upper left corner and proceeds clockwise, i.e. the upper right corner in the left plot in Figure 18 corresponds to the upper left corner in the upper right

Path constrained robot control--experimental evaluation

195

plot in Figure 17. There is also path deviation in the x-y-plane, as can be seen in the right plot in Figure 18. The motion in the qvq3-plane, which is shown in the upper right plot in Figure 17 starts in the upper right corner. During the first line segment, joint one is limiting the motion, and the nominal reference trajectory cannot be followed, as can be seen in the lower left plot in Figure 17. This means that when joint 3 starts to move, joint 1 has not reached the corner, which results in deviation from the path. During the next line segment, joint 3 is limiting, but the tracking error is now smaller, as can be seen in the lower left plot in Figure 17. This has the effect that the path following through the next corner, i.e. the lower left corner in the upper right plot in Figure 17, is good. During the third line segment, joint one is again limiting, which results in path deviation in the lower right corner in the upper right plot in Figure 17. The result of using the path velocity controller (9) is shown in Figure 19. As can be seen from the plots, the path following is good. The path deviation in the corners has been reduced. The motion through the corners has been synchronized, in the sense that during the first line segment, the velocity of the reference trajectory has been reduced so that when joint 3 starts to move, there is no tracking error in joint 1, and motion along the path through the corner is possible. The corresponding motion in cartesian space is shown in Figure 20, which shows the desired paths, solid lines, the actual paths obtained when the path velocity controller is used, dashed lines, and the path obtained when the torque limits are removed (actually set to +_1), dotted lines. As can be seen from the dashed lines, the path deviation is reduced. Compare with Figure 18. The dashed lines and the dotted lines in Figure 20 show that the path deviation when the path velocity controller is used is comparable to the case when the torque limits are removed. This shows that the path velocity controller gives the same qualitative behavior with respect to path deviation as for the case when the torque limits are removed. The same observation could be done in Figure 14. An evaluation plot of the same type as shown in Figure 15 is shown in Figure 21. As can be seen from the lower plot, the limits on a are inadmissible for short intervals. This happens e.g. at the end of the deceleration phase for the first and the third line segments. As can be seen from the nominal minimum time velocity profile in Figure 16, the points where the optimal velocity profile touches the maximum velocity curve corresponds roughly to the points where the bounds on ~ are inadmissible, see the lower plot in Figure 21. For velocities above the maximum velocity curve, there are no values of such that all torques are inside the limits. It can therefore be expected that close to the touching points, there are no values o r b that gives all torques inside the limits, and hence that the computation of the limits on b (8) gives the result ~ , n ( f l l . f i 2 ) > b,,a,(flbfi',), as is the case for this experiment. Note however that in spite of the inadmissible bounds, the path following is comparable to the experiment where the torque limits were removed, as can be seen in Figure 20. For this experiment, the path deviation is concentrated to the corners. For the path in the previous experiment, the path deviation occurs along the entire path. The reason is that for this experiment the path in joint space is aligned with the coordinate axes. This was not the case in the previous experiment, as can be seen by comparing the left plot in Figure 11 and the upper right plot in Figure 17. This means that for the previous experiment, tracking errors in one joint result in path deviation, since the other joints

196

O. DAHL

q,,(q,,),

q~,(q,-,), q2(qz)

q2(q~)

20

-20

-2

0

50

lO0

I

1

A

0

50

100

a (a)

vl (s) +

1

6

~

~.~



0

0 /

0

2

4

0

6

,

,

,

2

4

6

rt, re (s)

::; /+V

0.5

v

0.5 ":.":::.."., ::7 ',

t~

0

i

L

, ,.

. '.

f!'~...}..

:.:.:

~.. I~'

.

), :~:"

:. ,,..

..

}m"

",i

~:,~4.-:.~

-0.5

.,'.L-%'

q

-0.5 0

I

I

I

2

,1

6

I

0

2

4

6

Figure 22. Time variations when the torques are limited (left plots), and when the path velocity controller is used (right plots). move simultaneously. This is not the case in this experiment where the tracking error in joint 1 did not result in path deviation during the s t r a i g h t line segments. The path deviation then occurred at the corner when joint 3 started to move, see the lower left plot in Figure 17. E x p e r i m e n t 3 - A d a p t a t i o n to t i m e v a r y i n g d y n a m i c s

The e x p e r i m e n t is done by

Path constrained robot control--experimental evaluation

r . (t)

tr (t)

1.9

I

1.8

0.98

1.7

0.96

1.6 0

197

0.94 |

I

50

100

0

I

|

50

100

Figure 23. The traversal time as a function of time is shown in the left plot. The right plot shows the torque utilization. repeated motion along a path. The motion is started after having the robot kept at zero velocity for approximately 5-10 minutes. This has the effect that as time elapses, the robot is able to move faster, probably due to decreased friction. The result of using path velocity control is then that the velocity of the reference trajectory increases, while path following is maintained. The nominal minimum time velocity profile is shown in Figure 9. The result of repeated motion along the path when the nominal velocity profile and the torque limits ±0.5 are used is shown in the left plots in Figure 22. As can be seen from the upper left plot the path deviation is varying. The time variability is also seen in the lower left plot which shows the torques rl and rz as functions of s. From this plot it is seen that the switches in r l occur irregularly. The experiment was repeated, but with the path velocity controller (9). The result is shown in the right plots in Figure 22. As can be seen from the upper right plot, the path deviation is kept small. The path velocity is however varying, as can be seen from the mid right plot. Compared to the case when the nominal velocity profile was used directly, the time variations now appear as velocity variations instead of variations in the path deviation. Compare also the torques for the two cases. In the lower left plot, the irregularity occurs mostly in vl. When the path velocity controller is used, the modification of the reference trajectory affects both torques. This is seen as an irregularity also in r,~, which can be seen in the lower right plot. The left plot in Figure 23 shows the traversal time for the individual runs when the path velocity controller is used, solid line, and when the nominal velocity profile is used, dashed line. As can be seen from the Figure, the traversal time for the individual runs varies when the path velocity controller is used. The robot traversed the path 42 times. The minimum traversal time was 1.61 seconds (traversal number 35), and the maximum traversal time was 1.87 seconds (traversal number 2). The right plot in Figure 23 shows the torque utilization (31) when the path velocity controller is used, solid line, and when the nominal velocity profile is used, dashed line. The torque utilization varies between 0.943 (traversal number 1) and 0.999 (traversal number 20).

198

O. DAHL

6.

CONCLUSIONS

Fast motion along a predefined path is important in many robot applications, and requires utilization of the maximum allowable torque range. If the torque is at the limit, there is no margin to cope with disturbances or modeling errors, which may result in deviation from the path. Path velocity control [4, 5] is an approach to solve this path following problem by using a controller for reference trajectory modification. The path velocity controller (9) has been verified experimentally on an industrial robot [5, 6]. The experimental results show how the path velocity controller can modify a nominal minimum time velocity profile such that the modified velocity profile results in path following, and good utilization of the available torque range. The experiments also show how the path velocity controller can compensate for time varying dynamics. The path velocity controller provides a computationally efficient way to utilize the available torque range by feedback modification of the reference trajectory. The feedback provided by the path velocity controller makes it possible to have a nominal velocity profile which exceeds the robot capability. This is not possible if the reference trajectory is fixed. The use of path velocity control can therefore increase performance in the sense that it is possible to come closer to the minimum possible traversal time, since it is not necessary to introduce a prespecified margin in the computation of the nominal velocity profile to account for modeling errors and disturbances in advance. 7.

REFERENCES

[1] J, BOBROW, S. DUBOWSKY,and d. GIBSON, "Time-optimal control of robotic manipulators along specified paths." lnt~,rnational Jourtaal o f Robotics llcscarch, 4:3, pp. 3-17, 1985. [2] K. SIlIN and N.D.MCKAY. "Minimum-time control of robotic manipulators with geometric path constraink~." IEEE Transaction.~ Ot~ Automatic ConttxJl, 30:6, pp. 531-541, 1985. [31 F. PFEIFFER and R.JOIIANNI. "A concept fi)r manipulator trajectory planning." In IEEE Conf. Robotics and Automation, San Francisco, 1986.

141 O. DAIIL and L. NIFLSEN. "%rque limited path fi)llowingby on-line trajectory time scaling." IEEE 7}'ansactions on Robotics and Automation, 6:5, 1990.

[5] O. DAllL. Path Constr~lh~ed Robot Contt~)l. Phl) thesis, Department of Automatic Control, Lund [nstituto of Technology, Lund, Sweden, 1992. [6] O. DAIlL. "Path constrained robot control with limited torques - experimental evaluation.'. Conditionally accepted for publication in IEEE Transactions on Robotics and Automation, 1993.

[71 H. ASADA and d.-d. E. ~LOTINE. Robot Analysis and Control John Wiley and Sons, New York, 1986. [81 A . E . BRYSON and Y. HO. Applied Optimal Control Ilemisphere Publishing Corporation, New York, 1975. [91 d. d. CRAIG. Introduction to Robotics - Mechanics and Control, Second Edition. Addison-Wesley Publishing Company, Inc., 1989. [101 R. BI~'~UN, L. NIELSEN, and K. NILSSON. "Reconfiguring an ASEA IRB-6 robot system for control experiments." Technical Report TFRT-7465, Department of Automatic Control, Lund Institute of Technology, 1990. [I1] L. LIUNG. System hlenti[ic;atiot~ "Ibolbox User's Gui&" The MathWorks, Inc., Cochituate Place, 24 Prime Parkway, Natick, MA 01760, USA, 1991.