RSD-TR-1 3-87 Robot Trajectory Tracking With Self-Tuning Predicted Control Xinzhong -Qui Kang G. Shin Department of Electrical Engineering and Computer Science The University of Michigan Ann Arbor, Michigan 48109 August 1987 Center for Research on Integrated Manufacturing Robot Systems Division College of Engineering The University of Michigan Ann Arbor, Michigan 48109-2110

CaV IvkcAt

RSD-TR-13-87 TABLE OF CONTENTS 1. Introduction.............................................. 1 2. Robot Dynamic Equations & Their Simplification.......... 4 3. Self-Tuning Predictor & Parameter Estimation.......................... 7 4. The Predicted Controller With A Feedforward Loop................ 9 5. Determination of the Controller Parameters............................. 11 6. Simulation Results.12 7. Conclusion........................................ 17 References.................................... 18 Figures............................... 19

ROBOT TRAJECTORY TRACKING WITH SELF-TUNING PREDICTED CONTROL Xianzhong Cui and Kang G. Shin Department of Electrical Engineering and Computer Science The University of Michigan Ann Arbor, MI 48109-2122 ABSTRACT A controller that combines self-tuning prediction and control is proposed as a new approach to robot trajectory tracking. The controller has two feedback loops: One is used to minimize the prediction error and the other is designed to make the system output track the set point input. Because the velocity and position along the desired trajectory are given and the future output of the system is predictable, a feedforward loop can be designed for robot trajectory tracking with self-tuning predicted control (STPC). Parameters are estimated on-line to account for the model uncertainty and the time-varying property of the system. We have described the principle of STPC, analyzed the system performance, and discussed the simplification of the robot dynamic equations. To demonstrate its utility and power, the controller is simulated for a Stanford arm. Index Terms - Robot trajectory tracking, self-tuning predicted control (STPC), auto-regressive moving average. The work reported here was supported in part by the NSF under Grant No. ECS-8409938 and the NASA Johnson Space Center under Grant No. NCC-9-16. Any opinions, findings, and conclusions or recommendations expressed in this publication are those of the authors do not necessarily reflect the view of the funding agencies. All correspondence regarding this paper should be addressed to Kang G. Shin at the above address.

September 2, 1987 1. INTRODUCTION Because of their flexibility and capability, computer controlled robots have become an essential component of moder manufacturing systems. "Optimal" (in some sense) trajectory control of such a robot is very important for improving manufacturing productivity and product quality. The choice of a control strategy depends on the dynamic characteristics of the robot. For example, when a gear-driven robot arm moves with low speed, one can treat it as a linear system. However, when the robot moves with high speed or requires accurate positioning or is driven by high torque motors, one must consider its nonlinear characteristics and parameter uncertainties. Moreover, the controller's computational requirements are an important issue for real-time implementation. It is well-known that an industrial robot is a nonlinear, time-varying and highly-coupled multiple input multiple output (MIMO) system. For such a system, adaptive control appears to have a distinct advantage in handling the parameter uncertainties and stringent requirements on the positioning accuracy and motion speed. Adaptive robot control techniques can be categorized into two types: model reference adaptive control (MRAC) and self-tuning control (STC). Generally, the STC is known to be simpler in design and implementation than the MRAC. For STC, the dynamics of a robotic manipulator must be described by a controlled autoregressive moving average (ARMAX) model. If the dynamic coupling is neglected, then the model becomes multiple single input single output (SISO) systems. The work described in [1] is a typical example of multiple decoupled STC's, one for each joint, where the velocity and torque of a joint are considered as output and input, respectively. In that work the STC algorithm was simulated for a Stanford arm and the system parameters were estimated using a recursive least square (RLS) algorithm. This design method may also be extended to MIMO 1

September 2, 1987 systems, as discussed in [1] and [2]. Although the STC in [1] has the advantages of implementation simplicity and good performance, the choice of the weight coefficient ei is crucial to system performance. It decides not only system transient responses but also system stability. When ei=O, the controller becomes a minimum variance controller, which is unstable for non-minimum phase systems. If ei is too small, the system will have large oscillations, though it will be asymptotically stable. On the other hand, if si is too large, the system response will be very slow. The only way of choosing ei is trial and error. To remedy the difficulty in choosing the weight coefficient, one can attempt to use a pole placement self-tuning controller. Closed-loop system poles are assigned to predesigned positions. The work in [3] is a good example of direct application of the pole placement to control a Stanford arm. The STC can be realized in either joint or Cartesian space. Because it is the robot's endeffector, not the robot's joints, that performs the task, the performance may not be acceptable at the end-effector, even if it is acceptable at the joints. Therefore, it is highly desirable to formulate a control law directly in the task coordinate frame [4]. An example of hybrid control can be found in [5], where the position and force errors were transformed first from the endeffector's Cartesian coordinates to those in joint space. Then, the position and force errors at each joint were combined into one hybrid error which was eliminated using the pole placement STC. Some researchers presented the results of combining the STC with other techniques. For example, path control was combined with visual information [6]. The position and orientation of an object were determined from a binary image, and the extracted information was used for a self-tuning controller. The ideas of "resolved motion rate control" and "resolved acceleration control" were used to design a feedforwarid loop [7]. They resolved the specified posi2

September 2, 1987 tions, velocities and accelerations of the robot's hand into a set of values of joint positions, velocities and accelerations from which the joint torques were computed using the NewtonEuler equations to compensate for all the interacting forces among the joints. The feedback loop was then designed using the STC to reduce the errors in the hand's position and velocity. The drawback of the pole placement STC is that a time delay appears in the closed-loop characteristic equation, which affects system performance. This is especially true for a system with long delays. Ia this paper, we present a new approach to robot trajectory tracking that combines the self-tuning prediction and control (STPC), thus resulting in two feedback loops. One is used to minimize the prediction error and the other is designed to make the system output track the set point input, i.e., the desired robot trajectory. Using a separate predictor, the negative effect of time delay is eliminated from the controller. This controller, unlike the one in [1], does not require to choose any weight coefficient. The performance of the controller depends only on the convergence of the predictor, regardless of whether or not the system is in minimum phase, thereby making the controller more suitable for a time-varying system like industrial robots. Because the future velocity and position along the desired trajectory are given and the future output of the system is predictable, a feedforward loop can be added to speed up the tracking operation. Unlike the resolved motion rate or acceleration algorithms, the computation of this feedforward loop is very simple, which is important for real-time implementation. This paper is organized as follows. In Section 2, an ARMAX model is derived from the robot dynamic equations, on which the STPC will be based. The self-tuning predictor and parameter estimation are described in Section 3. A predicted controller with a feedforward loop is presented in Section 4. Section 5 deals with the analysis of system performance and the determination of the controller parameters. Section 6 presents the simulation results for the 3

September 2, 1987 STPC of a Stanford arm, and the conclusion follows in Section 7. 2. ROBOT DYNAMIC EQUATIONS AND THEIR SIMPLIFICATION An ARMAX model of a system has the following form: A(z-l) y(k) = B(z-') u(k - d) + C(z-l') e(k), (2.1) where A(z-l)= I + Al z-l +....+ A z, B(z -)=B0+Blz- + z-.....+B z b C(z-l) = I + Cl z-l +.....+ Cn, z-~, y(t) and u(t) are respectively the n -dimensional output and input of the system at a discrete time t, d is the time delay, and e(t) is a random sequence with zero mean and a2 = 1 that describes the mqiodel uncertainty. A(z-'), B(z-') and C(z-') are nxn matrix polynomials of z-1 with the order of na, nb and nc, respectively. If the STC is to be used for robot trajectory tracking, the robot dynamic equations should be converted to the same form as Eq. (2.1). The robot dynamics are described by nonlinear second-order differential equations: n.o n / ~. ZDij(O) j + F hi*jk(8) OjO + Gi () = i, 1 S i 5 n (2.2) j=l j=lk=1 where 0 = (1. 0.,...., e )T is the vector representing joint angle displacements, n is the number of joints of the robot, 9 and 0 are the joint velocity and acceleration vectors, respectively, and' = (tl, 22..., o )T is the joint torque/force vector. The first term of Eq. (2.2) represents the inertial torques, the second term represents the Coriolis and centrifugal forces and the third term is the gravitational loading. The major difficulty associated with the convern n sion of Eq. (2.2) to the form of (2.1) is the nonlinear term, hijk(9) 0jOk. and the coupling j=lk=l parameters, D,/(9), i j, and G,(9). 4

September 2, 1987 Rewrite Eq. (2.2) in the following matrix form: D(O) 0 + H(0, 0) + G(0) = r. (2.3) Let the operating point be the current position and velocity, denoted by Qo = (00, 00), and assume that the changes of D around Qo is negligible, i.e., D(00 + q) D(0o), where (q, q) is a small perturbation around Q0. Then, using the Taylor series expansion of Eq. (2.3) about Qo and neglecting the second and higher order terms, we get a linearized form of Eq. (2.3): Do q(t) + Ho q(t) + Go q(t) = u(t), (2.4) where Do = D(00o) Hoi = Goq =. +, and ue R is the "' Iqo ( JUIQo differential joint torque resulting from the perturbation. Change the differential equation (2.4) to a difference equation using t) = q(k + 2 T) - 2 q(k + T) + q(k) T2 = q(k + T) - q(k) T Assuming the sampling interval T = 1, Eq. (2.4) becomes: Do q(k + 2) + (Ho - 2 Do) q(k + 1) + (Do - Ho + Go) q(k) = u(k). If Do is nonsingular, then we can get a MIMO difference equation: q(k + 2) + Do-l (Ho - 2 Do) q(k + 1) + D-' (Do - Ho + Go) q(k) = Do-l u(k). That is, q(k) + Al q(k - 1) + A2 q(k - 2) = Bo u(k - 2) or A(z-') q(k) = B(z-l) u(k - d), where A(z-l)= I + A1 z-l +A2 z-2, B(z-l)= Bo, andd =2. According to [9], Eq. (2.3) for a Stanford arm can be written as a simplified set of equations under the assumption that 0jh = 0 1 5 i,j 5 6, and dj=O for all i*j. Then we get 5

September 2, 1987 D(o) 0 + G(O) = (2.5) where D() = diag (dii) - inertial terms, and G(O) = Col (gi) gravity terms. Again expanding (2.5) with a Taylor series around the nominal position 00(t) and neglecting the second and higher order terms, we get: Do q(t) + Go q(t)= u(t) (2.6) where Do= diadi(0)J( Go= -loI 1 ~ij 6. If the interacting effects of gravity among joints are neglected,' i.e., assume Go to be a diagonal matrix, Eq. (2.6) will become uncoupled, dii qi(t) + goii qi(t) = ui(t), 1 ~ i < 6. (2.7) Replacing differential with difference leads to: [q,(k + 2T) - 2 qi(k + T) + qi(k) dii T2 + goii qi(k) = ui(k). Again by letting the sampling interval T = 1, we get dii + goii 1 qi(k) - 2 qi(k - 1) + d q (k - 2)= d i (k - 2) or A (z-') qi(k) = B (z-') ui (k - d) (2.8) where A'"-I)=1+a' -2 B~ -b d=2, -2dii + g aii where A(z-t)=l+ al z-t+a 2Z-2, B(z-)B =bo, d = 2, a = -2, a2 diigi and bo =. (Note that dii ~ 0 for all i.) Considering the modeling error and system disturbance, dii lThe error resulting from this approximation will be compensated for by introducing an additional term into each joint ARMAX model. 6

September 2, 1987 a disturbance term C(z-1) e(k) is added to Eq. (2.8), where e(k) is an uncorrelated random sequence with zero mean, and C(z-l) is a polynomial of z-1 with unknown coefficients. A scalar term h (k) can be added to this equation to express the gravity coupling effects [3]. Then the final equation becomes A (z-') q(k) = B(z-l) ui(k - d) + C(z-) e(k) + h (k). (2.9) Because the linearization is achieved around the operating point, if the operating point is changed, the linearization should be repeated, i.e., the parameters of Eq. (2.9) are time-varying. For a time-varying system, the application of adaptive control algorithms is natural, especially for those robots that move at high speed and/or in a large range of the workspace. Note, however, that for the STPC we do not linearize the robot dynamic equations everytime the operating point is changed. Instead, the change of the operating point is handled by on-line estimation of the model parameters. 3. SELF-TUNING PREDICTOR AND PARAMETER ESTIMATION For a SISO system described by A(z-') y(t) = B(zl') u(t-d) + C(z-l') e(t) (3.1) where A (z-l) = 1 + a I zl' +.....+ a z - B(z-1)=bo + blz-1 +.....+ bnb z, and C(z-') = 1 + cl z-'+..... + Cn Z, define the prediction error E(t+k) = y(t+k) - y (t+k/t) or A s(t+k)= A y (t+k) -A (t+kt). (3.2) Substituting (3.2) into (3.1), we get [10] 7

September 2, 1987 A e(t) = B u (t-d) - A y (t/t-k) + C e (t). (3.3) Eq. (3.3) represents a new system in which the input is the prediction y(t/t-k), the output is the prediction error e(t), u (t-d) is a measurable noise and e (t) is an unlmeasurable noise. We want to determine an input y(t/t-k) to minimize some cost functional resulting from the prediction error. For the system (3.3), the expected squared prediction error is used as the cost functional, i.e., J = E [e2(t+k)]. (3.4) Define an identity C =foA +z-k F (3.5) where Eo and F are polynomials of z-, and deg (Eo) = k - 1, deg (F) = n - 1 and n is the order of system (3.3). Now, the problem is to derive the optimal input by minimizing J, which is a typical minimum variance control problem. To minimize J, we get the optimal predictor Bzd F y(t+k=t) A= A u(t+k) + E(t). (3.6) A EoA The prediction error associated with Eq. (3.6) is e(t+k) = Eo e (t+k). (3.7) Since deg (Eo) = k - 1, the prediction error is a k - 1-th order moving average sum of e (t). Although Eq. (3.6) gives the optimal predictor, the parameters, A, B, Eo and F, are unknown. These parameters are estimated on-line as, outlined below. If C in Eq. (3.5) is equal to 1, then A 1- Z F Plugging this into Eq. (3.3), we get Eo

September 2, 1987 E(t+k) = - Eo A y(t+k/t) + F E(t) + B Eo u (t+k-d) + Eo e (t+k). Let F = P, Eo A = -Q and B Eo = R, where deg (P) = n - 1, deg (Q) = n + k -, and deg (R) = n + k - 1. Then, the parameter estimation model becomes e(t+k) = Q y(t+k/t) + P e(t) + R u (t+k-d) + rl(t+k), (3.8) where ir(t+k) = Eo e (t+k). The recursive least squares (RLS) method can be used to estimate the parameters in Eq. (3.8). The number of estimated parameters is 3n + 2k - 1. Let P. Q and R be the estimates of P, Q, and R, respectively. Then, using the estimated parameters, the predictor Eq. (3.6) becomes y(t+k/t)= (1 +Q)(t+k t)+ PQ e(/) + R u(t+k-d). (3.9) 4. THE PREDICTED CONTROLLER WITH A FEEDFORWARD LOOP For the system (3.1), define a performance index J =E {[ry(t+d)-~yr(t) + [A u(t)] t (4.1) The problem is then to choose an input to minimize (4.1). Because y (t+d) = E(t+d) + y(t+d/t), Eq. (4.1) can be rewritten as J = E [ r e(t+d) + r y (t+d/t)- )( Yr(t) + Ao U (t) It } (4.2) From Eq. (3.7), e(t+d) is only related to the noise input, e (t), so that Eq. (4.2) becomes J=E {r9y(t+df Ir(t)] + [A14(t)] }+E{[e(t+d)]2} 9

September 2, 1987 2 E {[re(t+d)]2} J becomes the minimum when the first term attains the minimum. The first term is only related to the measured system input and output. The problem then becomes to choose an input to minimize J = or y(t+d/t)- q y,(t)2 + Ao u(t) (4.3) The control that minimizes Jl is given by yr(t)- ry(t+d/t) Ao 1 u (t) =, where A =. (4.4) A roYo To determine the closed-loop system, substitute Eq. (3.6) into Eq. (4.4) to get (AA + r B) u(t) = A yr(t) - F E(t) (4.5) Eo and substitute Eq. (4.5) into Eq. (3.1) to obtain B,. -Zd F r B z-d C y(t)AA +B yr(t) E(t)+ - e(t). (4.6) A A+rB A E0 (AA+FrB) A Using Eq. (3.5) and e(t) = Eo e (t), we get B d zd C A+EoB F y (t) ---- Yr(t)+ A e(t). (4.7) *A +rB A + rFB The characteristic equation is A A+ r B = O for which A and r can be chosen to make the system stable and provide the desired performance. Block diagrams for the system discussed thus far are given in Figs. l(a) and (b). In case of robot trajectory tracking, the future set point input of the system is given as the desired motion trajectory of the robot's end-effector, and the system's future output is predict10

September 2, 1987 able (via the predicted controller). Thus, these two signals can be combined into a feedforward loop, which improves the system's tracking speed and accuracy. A feedforward loop is added to the controller (4.4) so that the new control becomes u*0 0+ 0 PYr(t) u(t+(t) + (t+l) - y(t+d+l/) )G. (4.8) u* W = U 1(0 + U20 A Y The linearity of the controlled system allows this loop to be analyzed separately from the rest of the system. For example, one can simply choose G (z-l) = go = constant. Then 2(t) Yr(t+l) - y(t+d+l/t) go (4.9) and the closed-loop system becomes B z-d (t+d+l C Y2 A r(t+l)- (t+d+/t) go+ e(t). (4.10) The system block diagram is shown in Fig. 2. 5. DETERMINATION OF THE CONTROLLER PARAMETERS The performance of the closed-loop system (4.7) is determined by the characteristic equation AA +B r=0. (5.1) The pole placement method can be used to move poles in the z -plane. Let the desired characteristic equation be T = I + t1 z-l + t2 z-2 (5.2) To get the desired performance, choose A and r such that A A + B r = T. Recall that deg (A ) = 2, and deg (B)= O, or 11

September 2, 1987 A(z-) = 1 + al z-1 + a2 Z-2, B(z-) = bo. We can choose deg (A) = 0 and deg (F) = 1 to get: (+boy)+( a I + bo 1 )Z- +( Xa2)z2= 1 +tlz-A +t2z-2 (5.3) 1 bo0 1o or a 0 bo YO = tl (5.4) a2 0 0 Y t2 The solution of Eq. (5.4) would be the desired parameters. The stationary gain of the closed-loop system can be determined by the (D in Eq. (4.7). Apply the final-value theorem of z-transform to y (t): lim y(t) = lim 1 Z (Yr (t)) t -o) z-1 z AA+Br Suppose yr(t) is a unit step input, or Z(yr(t)) =. Then we get z-1 lim y (t)= B (1) (1) If one wants to let the output track the set point input t —+- A(1) A(1) + B (1) F(1) yr(t), he can choose ()(1) = (1) A (1) + B (1) r(l) B(1) The feedforward gain, go, determines the feedforward effects on system performance. The value of go should be chosen experimentally using the amplitude of set point changes and the open-loop gain of the system. 6. SIMULATION RESULTS The STPC algorithm is applied to control a Stanford arm, which is modeled as multiple SISO systems, one for each joint, as follows. Ai(z-') qi(t) - Bi(z-') ui(t-d) + hi(t) + ei(t) 1 ~ i < 6 (6.1) where Ai(z-l) = 1 + ail z-l + ai2 z-2, Bi(z-) - bio, d=2, ail = -2, 12

September 2, 1987 di +,oij 1 and di = dii a2 = di di' From [9], we get dl = 1.423 + [2.51 + (-5.49 + 0.232 cos 05) 03 + 6.48 023 sin2 02 d2 = 4.72 + [-5.49 + 0.232 cos 05] 03 + 6.48 023 d3 = 7.253 d4= 0.107 + 0.015 sin2 OS d5 = 0.099 + 0.013 d6 = 0.02 + 0.0004 agI ag3 ag6 g011 = g= 033 a3 g = ao6 g9022 =. = g (al + a2 03) cos 02 + g a3(cos 02 cos 05 - sin 02 sin 04 sin 05) a94 g044 -g a3 sin 02 sin 04 sin 05 a04 ag5 g055 = = g a3 (-sin 02 sin 04 sin 85 + cOS 02 COS 05) a = -2.788 a2 = b4 = 6.48 a3 = 0.05 b5 = 0.0116. Note that all the numbers here refer to the case of "no load" in the robot's hand. Inputs are joint torques/forces and outputs are joint angular positions. The desired end-effector path is a straight line segment, P l - P2 - P 1, where P = ( -80.95, 10.6, 40.9, ) and P2 = (-31.2, -1.2, 50.0 ). The time of motion is 0.66 second. The initial and final speeds are set to zero and the sampling interval is chosen to be 0.01 sec. The predictor for the system (6.1) is written as 13

September 2, 1987 Bi 1 Fi q (t+k/t) =- ui (t+kd)+ h(t+k) + -- hi(t+k) + (t). (6.2) Ai Ai Eoi Ai When compared with Eq. (3.6), Eq. (6.2) has only one additional term, hi(t). Similarly, the parameter estimation model can be obtained as: Ei(t) = i q (t/t-k) + Pi Ei(t -k) + Ri ui(t-d) + H ++ i (t). (6.3) Since na = 2 and nb = 0, we get 1i —+li,Z1 =- +..... + li,+l z-(k+l) Pi = Pi,o + Pi,l z: Ri = ri,O + ri,1 z-l +...... + rik-1 zk-1) Hi = Hio + Hi l z. Then, the vector of estimated parameters becomes Xi = [l 4,.-., li,k+l, Pi,o, Pi,l, ri,o, ri,l,...., rikl, Hi]T (6.4) and the vector of measured values is: ~i = [qi(t-1/t-l-k),...., qi(t-l-k/t-2k-1), ei(t-k), Ei(t-1-k ), ui(t-d),...., ui(t+1-k-d), 1]T. (6.5) That is, ei (t) = (t/t-k)+ i Xi +ii (t). (6.6) The number of estimated parameters is 3 + 2k + 1. Since we have already obtained the one and two step-ahead prediction, to reduce the computation time, a three step-ahead predictor can be obtained as: qi (t+3/t) = -ai,l qi (t+2/t) - ai,2 qi(t+llt) + bi,o ui(t) + hi. (6.7) The one step ahead predictor is used for the pole placement calculation based on Eq. (5.4). Because deg (Eoi)= k - 1, if k = 1, then Ri = Bi and 4i = -Ai. Thus, the parameters in Eq. 14

September 2, 1987 (6.7) become Xi = [-ai, — ai,2, Pi,o, Pi,l, bio, HiT. Two and three step-ahead predictors are respectively used to calculate the feedback and feedforward parts of the controller. Considering all those discussed thus far, the simulation of the STPC algorithm for a Stanford arm is performed as follows. (1) Using the desired trajectory, calculate the desired positions of hand, Qr(t), and each joint, q, (t). (2) To simulate the robot system, read in the real position of each joint qi (t). (3) Calculate the real hand position Q(t) as the system output. (4) Using the RLS algorithm, estimate the predictor parameters and calculate the predictor output. (5) Complete the design of the controller. j6) Update time index t - t + 1 and repeat steps (1) - (5) until the robot reaches its destination. Some of simulation results are plotted in Figs. 3 - 5. Figs. 3(a) and 4(a) are the trajectories of joint 3 and 4 with the desired closed-loop characteristic equation T = 1 - 1.5 z-l + 0.69 z-2, and Figs. 3(b) and 4(b) are with T = 1 - 1.5 z-l + 0.65 z-2. The results for the other joints are similar to these and, thus, omitted. From these plots, it is obvious that the feedforward loop improves the behavior of the controller. The square root average errors of each joint are tabulated below. 15

September 2, 1987 Joint No feedforward With feedforward 1 0.002 rad 0.001 rad 2 0.010 rad 0.005 rad 3 0.361 cm 0.145 cm 4 0.006 rad 0.001 rad 5 0.012 rad 0.008 rad 6 0.005 rad 0.002 rad Table 1. Square root average position error of each joint. Fig. 5 shows the convergence of 1 and 2 step-ahead predictors for joint 3. The 1 stepahead predictor needed about 6 sampling intervals for settling, whereas the 2 step-ahead predictor needed about 9 intervals. In the beginning of operation, we can even open the controller loop and keep the predictors only. After the predictors have converged, the controller loop is closed so that any large fluctuation is avoided during the initial transient period. The computation time required by the controller is an important consideration for realtime implementation. Table 2 shows the number of multiplications and additions for each joint controller in one sampling interval. When popular 32-bit microprocessors, such as MC68020 and NS 32132, are used, the required computation time for the STPC algorithm is listed in Table 3. 16

September 2, 1987 Subroutine Multiplication Addition 1 step-ahead predictor 99 74 & parameter estimator 2 step-ahead predictor 156 121 & parameter estimator 3 step-ahead predictor 3 3 controller with 10 8 feedforward Total 268 203 Table 2. Number of multiplications and additions. Microprocessor Multiplication Addition Required computing time MC68020 5.68 As 1.2 ls 10.6 ms (32 bit, 12.5 MHZ) NS32132 3.6 Is 0.8 gs 6.76 ms (32 bit, 10 MHZ) Table 3. Required computation time. These figures indicate the feasibility of implementing the STPC algorithms in real-time on popular 32-bit microprocessors. 7. CONCLUSION The self-tuning predicted control is presented as an attractive method for robot trajectory tracking. Using the information of future position, a feedforward loop is shown to improve the system performance. Because of the separation between the predictor and the controller, the system is easily adjustable. The controller need not the prior knowledge of manipulator dynamic parameters. The computation time analysis shows that this algorithm can be implemented in real-time by using popular 32-bit microprocessor. 17

September 2, 1987 REFERENCES [1] A. J. Koivo and T. H. Guo "Control of Robotic Manipulator with Adaptive Controller", Proc. of IEEE 1981 Conference on Decision and Control, pp. 271-276. [2] H. N. Koivo and J. Sorvari "O'n-line Tuning of a Multivariable PID Controller for Robot Manipulators", Proc. of IEEE 1985 Conference on Decision and Control, pp. 1502-1504. [3] G. G. Leininger, "Self-tuning Adaptive Control of Manipulators", Advanced Software in Robotics, pp. 81-96, 1983. [4] C. H. Chung and G. G. Leininger "Adaptive Self-tuning Control of Manipulators in Task Coordinate System", Proc. of IEEE 1984 Int'l Conf. on Robotics and Automation, pp. 546-555. [5] P. G. Backes, "Joint Self-Tuning with Cartesian Setpoints", Proc. of IEEE 1985 Conference on Decision and Control, pp. 1416-1421. [6] A. J. Koivo, R. Lewczyk and T. H. Chiu "Adaptive Path Control of a Manipulator with Visual Iiformation", Proc. of IEEE 1984 Int'l Conf. on Robotics and Automation, pp. 556-561. [7] C. S. G. Lee and B. H. Lee "Resolved Motion Adaptive Control for Mechanical Manipulators", Proc. of 1984 American Control Conference, pp. 314-319. [8] H. Seraji, "Design of Multivariable Controllers for Robot Manipulators", Proc. of 1986 American Control Conference, pp. 1736-1741. [9] A. K. Bejczy, "Robot Arm Dynamics and Control", JPL Technical Report 33-669, Pasadena, CA, Feb. 1974. [10] D. Keyser and A. R. Van Cauwenberghe "A Self-Tuning Multistep Predictor Application", Automatica, vol. 17, no. 1, pp. 167-174, 1981. 18

utSelf-Tuning ) Controlled ___y(t) y, (t) Controller System Parameter Estimator Figure l(a). The structure of a self-tuning predicted control system.

C/A e t) x k~~~~~~~ 1 /A BiB /A r B/A Fu 1 Fi ure 1 b) Predicted control'syste~m.

3 stepahead prediction e t) I'I +Oh Yr (t) i/AF-/,III _Izk Fig. 2. Predicted Control System with Feedforward.

Odesired trajectory Areal output no feedforward Oreal output with feedforward 95 90 85 80 s0 E E 75 70 65 60 55 ~.6.7.8.9 1 1.1 1.2 1.3 1.4 time (sec) Figure 3(a). Displacement of Joint 3.

Odesired trajectory &real output' no feedforward Oreal output with feedforward 95 90 85 80 75 570 65 60 55 *.6.7.8.9 1 1.1 1.2 1.3 1.4 time (sec) Figure 3(b). Displacement of Joint 3.

Odesired trajectory Areal output no feedforward Oreal output with feedforward.3.25.2.15.05 0.05 -.1....... i. i.... i i.6.7.8.9 1 1.1 1.2 1.3 1.4 time (sec) Figure 4(a). Displacement of Joint 4.

Odesired trajectory Areal output no feedforward 0 real output with feedforward.3.25.2.15.1.05 0 -.05 -.1.., - I ~.......6.7.8.9 1 1.1 1.2 1.3 1.4 time (sec) Figure 4(b). Displacement of Joint 4.

Fig. 5. Outputs of I & 2 Step-ahead Predictors for Joint 3. 0 real output A1 step-ahead prediction 02 step-ahead prediction 100 80 60 40 20 CO cu C) 0 5 10 15 20 25 30 35 time (x 0.01 sec.)