Abstract:
An error-reducing feedback controller for a robotic system wherein a new torque term is added to the existing generated torque in order to compensate for nonlinearity or imperfect modeling accuracy in the existing system. Equations for development of the new torque term using relatively few inputs from the system output are described, along with several examples, including numeric values.

Description:
RIGHTS OF THE GOVERNMENT 
     The invention described herein may be manufactured and used by or for the Government of the United States for all governmental purposes without the payment of any royalty. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention relates to the field of robotic systems and to the use of such systems in military environments including uses having load variation. 
     Although robotic systems have achieved a significant degree of acceptance in certain well-controlled environments such as in repetitive manufacturing materials handling and the remote handling of dangerous materials, it is generally accepted in the robotic systems art that such systems perform best when exposed to predictable load demands and linear torque requirements, that is, torque requirements which are not varied according to such real-life effects as Coulomb friction, starting friction, gravity variations, and changes in the mass of the workpiece being transported by the robotic system. 
     In the military environment where a robotic system would be of major assistance in the loading of ordnance on a military aircraft or in the replacement of aircraft components on a flight line, such repetitive loading and controlled environment conditions are the exception rather than the rule of use. Such military robotic systems are contemplated to especially be susceptible to load variations and to torque linearity difficulties and other mismodeled effects or nonlinearities entering into their equations of motion. In such systems, additional losses due to nonlinear friction, gravity and other effects are found to provide an error between the actual output trajectory of the system, α(t), and the desired output trajectory of the system, α d  (t). 
     A previous effort to solve problems of this type has resulted in the computed torque method of reducing error in a robotic system. The computed torque method is described in the robotic literature, including the description presented in chapter 8 of the text &#34;Introduction to Robotics, Mechanics and Control&#34;, by John J. Craig, Addison Wesley Publishing Co., 1986, the contents of which are hereby incorporated by reference herein. Generally, the computed torque method of error reduction and in a robotic system is found to require exact knowledge of the nonlinearity condition affecting the robot performance and a measurement of the robotic system output, α(t), together with all of its time derivatives. Requirements of this refinement are somewhat difficult to achieve in a practical robotic system, especially the measurement of second derivatives of the system output position, that is, the acceleration of the system output member at any point along its path of travel. 
     The prior patent art also includes several examples of robotic systems that are concerned with the reduction of output error. Included in these patents is U.S. Pat. No. 4,362,972 of R. C. Evans et al., a system in which the robot&#39;s output performance is compared with an independent system of measurement and differences between this independent measurement system and the robot performance are used to improve the robot&#39;s performance. These patents also include U.S. Pat. No. 4,437,045 issued to P. Mitsuoka and concerned with the use of a model reference adaptive system in controlling a servomechanism. Also included is the patent of T. Maruo et al., U.S. Pat. No. 4,737,697, which is concerned with the manual teaching of a robotic system during a learning or teaching mode of operation and the imposition of deliberate differences between the learning and playback mode operations of the system. 
     Also included in these prior patents is the patent of M. Yoshida et al., U.S. Pat. No. 4,737,905, which is concerned with the movement of a driven member such as a machine stage in response to commands received at a joystick controller and including the use of nonlinear transforming circuitry. Additionally included is U.S. Pat. No. 4,763,276 of N. D. Derreirra et al., which is concerned with the refinement of an original command signal in order to improve the robot&#39;s output performance. Also included is U.S. Pat. No. 4,791,588 issued to N. Onda et al., which is concerned with the combining of an environmental information input signal with a command signal in order to achieve a high precision position control. 
     Although these prior art references indicate a considerable degree of attention to the improvement of robotic system performance and reduction of system errors, none is suggestive of the simplified and productive majorizing function addition of a supplemental torque to the normal output of a robotic system as taught in the present invention. 
     SUMMARY OF THE INVENTION 
     In the present invention, a stable adaptive robotic control system is achieved by the addition of a new torque τ new  to the existing robotic control system in order to reduce the output position error accomplished by the system. The τ new  torque includes components responsive to the loading mass and output member position of the robotic system, along with an error signal and the error signal&#39;s first derivative. The τ new  torque also includes the effects of a majorizing function, assures long-term system stability, and contemplates the selection of stability assuring position and velocity gain constants Kt and Kv. 
     It is an object of the present invention, therefore, to provide a robotic controller of reduced output error capability. 
     It is another object of the invention to provide a robotic system suitable for the environmental variations expected in a military robotic application. 
     It is another object of the invention to provide a robotic system in which the benefits of a majorizing function applied to the system controller prevail. 
     It is another object of the invention to provide a robotic system in which the addition of a new multiple componented torque achieves a reduced system error. 
     It is another object of the invention to provide a robotic controller capable of accommodating a plurality of differing friction types. 
     Additional objects and features of the invention will be understood from the following description and claims, and the accompanying drawings. 
     These and other objects of the invention are achieved by the method for assuring small errored operating stability in a nonlinear torque environment military robot comprising the steps of: 
     adding to the torque at each movable joint of said military robot an error reducing torque, τ new , that is defined by the mathematical relationship: 
     
         τ.sub.new =mgL cos αd+mL.sup.2 Kpe(t)+mL.sup.2 Kve(t) 
    
     wherein: m is the mass of the robotic arm and load being controlled, 
     g is the acceleration of gravity, 
     L is the length of the robotic arm being controlled, 
     αd is the angle between the robotic arm and the horizontal plane, 
     Kp is the position gain factor of the robotic arm controller, 
     Kv is the velocity gain factor of the robotic arm controller, and 
     e(t) is the first time derivative of e(t); 
     determining the magnitude of the velocity gain factor Kv of each movable joint controller of said robot in response to a predetermined mathematical criteria for absolute joint movement stability; 
     selecting the magnitude of the position gain factor K p  of each movable joint controller in response to predetermined mathematical criteria for absolute joint movement stability and the determined magnitude of the velocity gain factor Kv. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 in the drawings shows a typical military environment robotic system used in an aircraft flight line application. 
     FIG. 2 shows a one-link revolute joint simple robotic system. 
     FIG. 3 shows an adaptive robotic controller according to the invention. 
     FIG. 4 shows an altered torque summer usable in the FIG. 3 system. 
     FIG. 5 shows an adaptive controller and inputs therefor that are usable in the present invention. 
     FIGS. 6a; 6b, and 6c show graphical representations of three differing friction types to be accommodated by the FIG. 3 robotic system. 
     FIG. 7 shows a system of the FIG. 2 type with exposure to an altered gravity force vector. 
     FIGS. 8a and 8b show graphical representations of two mathematical functions used in the embodiment of a FIG. 3 type robotic system. 
     FIG. 9 shows the relationship between error magnitude and time for robotic systems that exclude and include the present invention. 
     FIG. 10 shows a typical input signal together with the corresponding output of a system according to the present invention. 
     FIG. 11 shows graphically the error signal and majorizing function of the FIG. 10 system. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 in the drawings shows one application of a robotic system to a military environment. In the FIG. 1 system, a human operator 116 is provided with a robotic assistance system 102 which is arranged to be disposed in exoskeleton fashion, paralleling the limbs of the human operator 100, in order that the forces exerted by the human may act as input signals for the robotic system. In the FIG. 1 robotic system therefore, the mechanized arms indicated generally at 108 and 110 are disposed in parallel with the arms of the human operator 100 as also is the robotic leg 112 with respect to the operator&#39;s leg 114. In the FIG. 1 drawing, the human operator 116 is being assisted by and is controlling the robotic system in the loading of ordnance 106 onto the wing 104 of an aircraft, as is commonly done in the supporting of military aircraft missions. Systems of the type shown in FIG. 1 have been suggested by the General Electric Company and others for use in situations requiring forces and endurances beyond the capability of a human operator. 
     Several difficulties have arisen with these systems, however, including their relatively undesirable performance in the presence of varying load masses, fatigue difficulties for the human operator, and instability in the performance of the robotic system. Even the less-complex and more conventional single arm robots used in automobile fabrication and elsewhere are found to also be limited in performance, especially with varying loads and especially with respect to system stability and accuracy. The FIG. 1 robotic system is therefore an example of a robotic system in which there is need for the addition of error correcting and stabilizing signals in the robotic controller which determines the operation of each movable joint in the FIG. 1 system. 
     FIG. 2 in the drawings shows a simple one-link robot system which is useful in discussing the present invention. The results obtained in the FIG. 2 one-link simplified robotic system can be extended to a multiple link situation of the type shown in FIG. 1 without undue effort. In the FIG. 2 robotic system, a torque τ as indicated at 208 is applied at the revolute joint 206 in order to accomplish change of the angle of rotation 210 of the link 202 of length L, as indicated at 204, which is supporting a mass 200 that is acted upon by the downwardly directed force of gravity indicated at 212. In the FIG. 2 robotic system, the mass M at 200 is concentrated at the end of the link of length L and the torque 208 is arranged to change the angle of rotation α subject to all of the forces acting on the system, these forces may include the gravity force 212 which acts in opposition of the torque 208. 
     If there is momentarily no gravity, the equations of motion of the system in FIG. 2 can be written as follows: 
     
         τ.sub.applied =mL.sup.2 α                        (1) 
    
     where α is the second time derivative (d 2  /dt 2 ) of the link 202 position vector α(t). The term mL 2  in equation 1 refers to the moment of inertia resulting from the mass M displaced L units from the revolute joint 206. If the objective is to make α(t) follow αd(t) (where αd is the desired trajectory), then the appropriate torque to apply is: 
     
         τ.sub.applied =mL.sup.2 αd                       (2) 
    
     under the assumption of no gravity vector. Since αd(t) is the known and desired trajectory, then the correct torque to apply is specified via equation (2) under the assumption that gravity does not enter into the equations of motion. 
     In real applications, however, nonlinear effects influence the operation of the FIG. 2 one link robot. For example, the total torque required for the system when the force of gravity g acts is given by: 
     
         τ.sub.total =mL.sup.2 α+mgL cos α          (3) 
    
     and the nonlinear effect due to gravity makes α actual &lt;α desired. This is easily seen to be true because the gravity torque opposes τ applied as displayed in FIG. 2. The position error is defined as follows: 
     
         error=e(t)=αd(t)-α(t)                          (4) 
    
     Therefore, for the nongravity situation a torque as given in equation (2) is applied; consequently, the error in this case is zero. When gravity interacts, however, and the previous value of torque as specified by equation (2) is applied, the following interaction occurs: 
     
         τ.sub.applied =mL.sup.2 αd=mL.sup.2 +mgL cos α(5) 
    
     In this situation the resulting α would be less than αd. To more easily analyze this situation, equation (5) is rewritten as follows: 
     
         mL.sup.2 [αd-α]=mgL cos α                (6) 
    
     or 
     
         mL.sup.2 [(e(t)]=mgL cos α                           (7) 
    
     Thus (for α≠90 degrees) there must be an error e(t)≠0 because the right hand side equation (6) is non-zero and equation (7) is integrated forward in time from t=0 resulting in e(t)≠0. 
     One aspect of the invention is to provide an adaptive controller as displayed in FIG. 3. In the FIG. 3 adaptive robotic controller an applied torque signal 318 is combined with a newly generated torque signal τ new , 320 in a summing node 316 to generate a total torque signal 322 that is applied to the robot system 300. The angular position signal 303 and its first and second derivatives 305 and 307 are generated by the robot system 300 for use in generating the new torque signal 320. These robot system generated signals are compared in the summing nodes 302, 304 and 306 with the desired performance determining signals 308, 310 and 312 to generate the error signal 324 and its first and second derivative 326 and 328 that are applied to the adaptive controller 314 in order to generate the new torque signal 320. 
     In the FIG. 3 controller in the absence of gravity, the error e(t) 324 is zero resulting in τ total  at 322=τ applied  at 318 and τ new  at 320=0 as shown. From FIG. 3 the relationship between total torque (τ total  at 322), the applied torque (τ applied  at 318), and the new torque (τ new  at 320) is given by: 
     
         τtotal=τ.sub.applied +τ.sub.new                (8) 
    
     When gravity is present, the new torque (τ new ) is used to compensate for the nonlinear effect due to gravity. When gravity or some other nonlinear effect enters the relationship, α at 303 may not be the same as αd at 308, or possibly α at 305 may differ from αd at 310, or possibly α at 307 is different from αd at 312. This occurs because of the appearance of an error signal when the torque τ specified in equation (2) is applied and the α which results is different from the αd which was expected. 
     In the present invention the adaptive controller as displayed at 314 in FIG. 3 is such that τ new  320 is created to counteract the nonlinear effects and reduce the error 324 to zero. For the special case of nonlinearity in the form of the FIG. 2 gravity situation, it is desired to have: 
     
         τ.sub.new =mgL cos αd                            (9) 
    
     then from FIG. 3 and equation (8): 
     
         τ.sub.total =τ.sub.applied +τ.sub.new          (10) 
    
     Thus, 
     
         τ.sub.total =mL.sup.2 αd+mgL cos αd        (11) 
    
     and the correct torque is applied such that α now follows αd. It is assumed that we know αd(t) to compute τ applied . It is reasonable to assume that α(t) can be measured from a potentiometer, optical encoder or magnetic resolver, or a measurement of α(t) obtained from a tachometer or α from an accelerometer. Thus this additional information can be included into the adaptive controller 314 as an &#34;other information&#34; input 330. 
     The typical approach to solving this problem is to use the &#34;Computed Torque&#34; method in which: 
     1. The exact nature of the nonlinearity is known (i.e., τ new  =mgL cos α). 
     2. Exact measurement of α and all its derivatives can be accomplished. 
     The invention described herein, however, has much weaker assumptions: 
     (1&#39;) It may not be possible to know the exact nature of the nonlinearity (it may not only be gravity alone, but there may be torque losses due to nonlinear friction, backlash, dead zone, or some other nonlinearity). 
     (2&#39;) It may sometimes only be possible to measure e(t) (or some of its derivatives) and direct access to α(t) and all of its derivatives may not be possible. 
     Going back to the assumptions (1) and (2) the computed torque method assumes that τ total  can be subdivided into two parts: 
     
         τ.sub.total =[M(α,α)]τ.sub.servo loop +τ.sub.model based                                                     (12) 
    
     The τ servo  loop term here is the linear part of the torque equation, and τ model  based is the nonlinear part and based on known nonlinearities in the dynamic equations describing the model. The term M(α,α) is used to describe the inertia in the system. In the robotics literature, the typical expression of the total torque 322 required for the load is given by: 
     
         τ.sub.total =[M(α,α)]α+V(α,α)+G(α)+F(α,.alpha.)                                                        (13) 
    
     where, again, M(α,α) describes the inertia of the system, V(α,α) are the centrifugal and coriolis torque terms, G(α) is the gravity vector torque, and F(α,α) are non-linear torque friction terms. 
     To implement equation (13), the expression is made of the form: 
     
         τ.sub.total =[gamma τ.sub.servo loop +τ.sub.model based (14) 
    
     where gamma and τ model  based are selected to be 
     
         gamma=M(α,α)                                   (15) 
    
     and 
     
         τ.sub.model based =V(α,α)+G(α)+F(α,α) (16) 
    
     Using equations (13, 14, 16) implies: 
     
         M(α,α)τ.sub.servo loop =τ.sub.total -τ.sub.model based =Mα                                           (17) 
    
     or 
     
         M(α,α) τ.sub.servo loop =Mα=Mαd+M[Kpe(t)]+M[Kve(t)]                   (18) 
    
     This now specifies τ servo  loop which results in the following error equation: 
     
         e(t)+Kveα(t)=Kpe(t)=0                                (19) 
    
     By designing Kv and Kp the error can be made to follow desired responses for their transient solution. This is the substance of the computed torque design method and is commonly used because the user needs to only work with the linear equation (19); the nonlinear effects are assumed to have been cancelled out in the model based torque given in equation (16). Note, however, that the &#34;Computed Torque&#34; method requires: 
     1. Exact knowledge of the nonlinearity (e.g., mgL cos θ must be known precisely). 
     2. Exact measurements of α(t), e(t), and all their respective derivatives. 
     Commonly in practice, however, other nonlinear effects may occur. For example, nonlinear friction or threshold effects give rise to other torque losses. Also, in practice, exact measurement of α(t), e(t), and their derivatives may not be possible. 
     The method of this invention considers the design of a stable, adapted, feedback controller as subject to less knowledge, of the cause of the nonlinearity than is used in the &#34;computed torque&#34; method and needs only limited information concerning α(t), e(t) and their derivatives, rather than assuming exact measurements. The objective, as in FIG. 3, is to achieve an adaptive control scheme to converge on solutions so that limit e(t)→0 as t→∞. This is defined as the stable condition. 
     In a first example of the present invention, an adaptive controller is arranged to combat the gravity effect. From this first example, extensions will be made to other nonlinear effects that appear in a robotic system. 
     With gravity considered, in FIG. 2, the torque given in equation (2) is applied but gravity interacts with the equations of motion and an error e(t) specified in equation (4) results. The error grows in time by the relationship specified by equation (7), i.e.: 
     
         mL.sup.2 [e(t)]=mgL cos α                            (20) 
    
     Therefore the appearance of an error indicates that the equations of motion have not been accurately modeled. Therefore, it is desired to find the torque τ new  in equation (10) such that lim e(t)=0 as t→∞. From FIG. 3 we can choose the value of τ new  as illustrated in FIG. 4 (a subset of FIG. 3) in any manner that is required. 
     If τ applied  =mL 2  αd in FIG. 4, then e(t) grows via equation (20) if τ new  =0. The torque equation can be rewritten as: 
     
         total torque required=τ.sub.total =τ.sub.applied +τ.sub.new (21) 
    
     or 
     
         mL.sup.2 α+mgL cos α=mL.sup.2 αd+τ.sub.new (22) 
    
     if τ new  is zero, as mentioned before, then equation (20) results. Therefore all the components of τ new  are the choice and include whatever is required to stabilize the system. The choice for τ new  (which is the design of the adaptive controller in FIG. 5) is: 
     
         τ.sub.new =mgL cos αd+mL.sup.2 kpε(t)+mL.sup.2 Kvε(t)                                            (23) 
    
     where ε is the new error vector when τ new  ≠0. When τ new  =0, then ε and e are identical. This is easily implemented as shown in FIG. 5. The three inputs to the adaptive controller must be αd(t), ε(t), and ε(t). Knowledge of ε(t) or derivatives of αd are not required for this adaptive controller. When τ new  is non-zero, then: 
     
         ε(t)=αd(t)-α(t)                        (24) 
    
     using the value of τ new  as specified in equation (23). Note that ε(t)≠e(t) because τ new  =0 for the e(t) equation but τ new  is non-zero and specified in equation (23) for the ε(t) equation. 
     The problem is to now choose the gains Kp and Kv of equation (23) such that ##EQU1## Thus, the system is stabilized. 
     To design Kp and Kv of equation (23) such that ε(t) satisfies equation (25), equations (21)-(23) are combined as follows: ##EQU2## This is rewritten as follows: 
     
         mL.sup.2 [αd-α]+mL.sup.2 Kpε(t)+mL.sup.2 Kvε(t)=mgL[cos α-cos αd]              (27) 
    
     or 
     
         mL.sup.2 [ε(t)]+mL.sup.2 Kpε(t)+mL.sup.2 Kvε(t)=mgL[cos α-cos αd]              (28) 
    
     Use is now made of the trigonometric identity: 
     
         cos α-cos αd=-2 sin(1/2)[α+αd]sin[α-αd](29) 
    
     or 
     cos α-cos αd=2 sin(1/2)[α+αd]sin[ε(t)](30) 
     let: 
     
         f(t)=-2g/L sin(1/2)[α+αd]                      (31) 
    
     note: 
     
         |f(t)|≦2g/L=G for all t           (32) 
    
     Equation (28) may be rewritten as follows: 
     
         ε(t)+Kvε(t)+Kpε(t)+f(t)sin[ε(t)]=0 (33) 
    
     The problem is to find values of Kv and Kp such that: ##EQU3## In the appendix use is made of Theorem (1): sin e&lt;e for e&gt;0 which results in equation (33) being written as: 
     
         ε(t)+Kvε(t)+Kpε(t)+Gε(t)&lt;0 (35) 
    
     or 
     
         ε(t)+Kvε(t)+[Kp+G]ε(t)&lt;0           (36) 
    
     where G is constant and defined in equation (32). To now show that the algorithm converges, define v(t) as the solution of the equality (the corresponding equation of the relationship specified in (36)), i.e., 
     
         v(t)+Kvv(t)+[Kp+G]v(t)=0                                   (37) 
    
     v(t) can be referred to as a majorizing function as disclosed in reference 2 herein, because from the appendix Theorem (2): if ##EQU4## For the case of nonpositive initial conditions on ε(t), similar results can also be shown using a norm of the quantity ε(t). For this example, as in most robotic problems, the torque requirements are generally under assumed, which makes ε(t) and its initial conditions positive. 
     If it is shown that ##EQU5## then it follows that from equation (38) that ##EQU6## and stability is assured. In the appendix (Theorem 3) it is shown that ##EQU7## under the conditions: 
     
         Kv&gt;0                                                       (39) 
    
     
         Kp+G&gt; or Kp&gt;-G                                             (40) 
    
     Thus, the algorithm converges for the proper choices of Kv and Kp specified in Equations (39-40). Note that v(t) is the majorizing function and it bounds the error. 
     To achieve a second order system step response with the requirement that the characteristic equation is: 
     
         s.sup.2 +2zwns+wn.sup.2 =0                                 (41) 
    
     where s is the Laplace transform variable, the z and wn coefficients can be evaluated simply by selecting: 
     
         wn=(Kp+G).sup.1/2                                          (42) 
    
     
         z=Kv/2wn=Kv/2(Kp+G).sup.1/2                                (43) 
    
     Convergence of this algorithm can be appreciated from a second example invoking nonlinear gravity force. For this example, the robotic system in FIG. 2 is considered when gravity is erroneously neglected and it still enters the equations of motion. Assume the length of the link L is 1 meter, the mass M=1 Kg., and a torque is applied of the form, τ applied  =mL 2  αd. θd is selected to equal a parabolic function, i.e., αd(t)=(1/2)t 2 . Therefore, 
     
         τ.sub.applied =mL.sup.2 αd=(1)(1).sup.2 =1 kg. meter.sup.3 /sec.sup.2                                                (44) 
    
     The link, however, has a load requirement of: 
     
         τ.sub.total =mL.sup.2 α+mgL cos α          (45) 
    
     Thus, the applied torque should be: 
     
         τ.sub.total =1 Kg. meter.sup.3 /sec.sup.2 +g cos αd (46) 
    
     The error equations evolve according to equation (7) via: 
     
         e(t)=g cos α(t)                                      (47) 
    
     assuming e(0)=0, e(0)=2, α(0)=45°. If gravity is now considered, τ applied  is still 1 Kg. meter 3  /sec 2 , however now; 
     
         τ.sub.new =g cos αd+Kpε(t)+Kvε(t) (48) 
    
     or more specifically, 
     
         τ.sub.new=[ 9.2 m/sec.sup.2 ]cos[t.sup.2 /2]+Kpε(t)+Kvε(t)                         (49) 
    
     If Kp and Kv satisfy: 
     
         Kv=1.0                                                     (50) 
    
     
         Kp&gt;-G=-9.2                                                 (51) 
    
     we choose Kp=10. The new torque law (the adaptive controller) is: 
     
         τ.sub.new =1 kg-m/sec.sup.2 +9.2 m/sec.sup.2 cos(t.sup.2 /2)+10ε(t)+ε(t)                           (52) 
    
     FIG. 9 illustrates plots of αd(t) and α(t) for the situation where the torque of equation (2) is applied to a system requiring the total torque given in equation (3). The divergence of e(t) is apparent in this figure. FIG. 10 illustrates the situation where the adaptive controller specified in equation (52) is used. The error ε(t) becomes smaller and the output α(t) converges toward αd. FIG. 11 illustrates a plot of ε(t) versus time from FIG. 10 and also a plot of v(t), the majorizing function, on the same axis. For v(t): 
     
         v(t)+Kvv(t)+Kpv(t)=0                                       (53) 
    
     or 
     
         v(t)+v(t)+10v(t)=0                                         (54) 
    
     The roots of the characteristic equation are of the form: 
     
         s.sup.2 +s+10=0                                            (55) 
    
     or 
     
         s=-1/2+(1-40).sup.1/2 /2=-1/2+(39).sup.1/2 i/2             (56) 
    
     where i=(-1) 1/2 , therefore: 
     
         v(t)=e.sup.-t/2 [C1 cos Bt+C2 sin Bt]                      (57) 
    
     where 
     
         B=(39).sup.1/2 /2=3.12 Radians/second                      (58) 
    
     since v(0)=0, v(0)=2, it follows from equations (57) and these initial conditions: 
     
         v(t)=(2/B)(sin Bt)e.sup.-1/2t                              (59) 
    
     since: 
     
         0&lt;ε(t)&lt;v(t)                                        (60) 
    
     and: 
     
         0&lt;ε(t)&lt;v(t)                                        (61) 
    
     From Theorem (2) of the appendix, the performance of this adaptive controller is defined as follows: 
     
         0&lt;ε(t)&lt;e.sup.-1/2t [0.64]sin[3.12t]                (62) ##EQU8## This now defines the performance of this algorithm which depends on both αd(t) and the values selected for Kp and Kv. 
    
     In the case of nonlinear torque losses due to friction effects, friction forces cannot be neglected because they are known to account for over 25% of the torque required to move a manipulator. There exist in this instance three kinds of frictional losses that provide losses to the input torque in a robotic manipulator, two of these losses being nonlinear. Linear friction is called viscous friction and is defined as: 
     
         τ.sub.1 =Bdα/dt                                  (64) 
    
     This friction force is proportional to joint velocity. FIG. 6a illustrates a plot of the characteristics of viscous friction. 
     The second type of friction is called Coulomb friction. It is a constant friction force depending only on the direction of the velocity and it can be characterized by: 
     
         τ.sub.2 =Fc for α&gt;0,                             (65) 
    
     
         τ.sub.2 =-Fc for α&lt;0                             (66) 
    
     FIG. 6b illustrates a plot of Coulomb friction. 
     The third type of friction considered here is starting friction or stiction. This friction only occurs when the gears initially move. Such friction is illustrated in FIG. 6c and it can be characterized by: 
     
         τ.sub.3 =Fs if α&gt;0 at t=0                        (67) 
    
     
         τ.sub.3 =-Fs if α&lt;0 at t=0                       (68) 
    
     Other types of friction exist. They occur if the gears of a mechanism are not perfectly round, for example, so that friction is dependent on α. These effects are, however, not considered herein. 
     Thus the total friction force considered can be represented as: 
     
         τ.sub.friction =τ.sub.1 +τ.sub.2 +τ.sub.3  (69) 
    
     or ##EQU9## where the term ##EQU10## only occurs when the joint is in a starting situation and is about ready to move. The expression sgn(α) is used to indicate the sign of the variable α (plus or minus). FIG. 7 illustrates a robotic system in the situation where the joint moves in such a manner that friction is considered but gravity is not. This would occur if the joint moves through a gravity field perpendicular to the axis of rotation of the joint arm, as is indicated at 708. 
     In FIG. 7 the direction of gravity is into the paper, and hence does not affect the equations of motion. To characterize an adaptive controller, as in FIG. 4 for this situation, one may start with: 
     
         τ.sub.total =τ.sub.applied +τ.sub.new          (71) 
    
     and again, as in FIG. 3: 
     
         τ.sub.total =M(α,α)τ.sub.servo loop +τ.sub.model based                                                     (72) 
    
     Choosing for the adaptive controller: 
     
         τ.sub.applied =M(α,α)α and           (73) 
    
     and ##EQU11## this results in: ##EQU12## and: 
     
         τ.sub.servo loop =L.sup.2 αd+L.sup.2 Kpε(t)+L.sup.2 Kvε(t)                                            (76) 
    
     It is noted in this example, the nonlinear starting friction torque Fs will be modeled as an initial condition for the e(t) equation. In this manner the nonlinearity can be still dealt with using a majorizing function. Using ε(t)=αd-α(t) rewrite equation (71) with the substitutions (72-76) as: ##EQU13## where 
     
         FD=1/(mL.sup.2)[Fc+Fs]                                     (80) 
    
     Again, as before, use is made of a majorizing controller v(t) which, for this case, is of the form: 
     
         v(t)+[Kv+B]v+Kpv=FD                                        (81) 
    
     From equation (80) it is obvious that the condition ##EQU14## would make the left hand side of equation (80) equal to 0, but the right hand side is non-zero. Therefore in steady state v(t) cannot go to zero. This is a well-known result that in cases where Coulomb friction occurs, there must always be a steady state error. A result of this nature is also noted in the textbook of Kuo identified in the appendix hereof. 
     To correct this situation, integrated error or feedforward error may be used in the second adaptive controller. Select: ##EQU15## and equations (72-73, 75-76) now yield: ##EQU16## The variable ε(t) in equation (84) satisfies for t&gt;0: 
     
         ε(t)+(Kv+B)ε(t)+Kpe(t)+Kiε&lt;0       (85) 
    
     with majorizing controller v(t) of the form: 
     
         v(t)+(Kv+B)v+Kpv(t)+Kiv(t)=0                               (86) 
    
     From Theoreom 4 in the appendix, to insure v(t) has left half plane poles implies: 
     
         Ki&gt;0                                                       (87a) 
    
     
         Kv&gt;-B                                                      (87b) 
    
     
         Kp&gt;Ki/(Kv+B)&gt;0                                             (87c) 
    
     Then ##EQU17## and 0&lt;e(t)&lt;v(t) is stabilized. Thus the Coulomb friction has been corrected by the adaptive control specified by equation (82). 
     In another example, consider a sudden changes in Mα,α), the inertia of a robotic manipulator, or changes in torque requirements for friction or requirement for torsional spring constant types of torque are considered. This is the next most common Problem in controlling a robotic manipulator. Typically the manipulator takes on a new load suddenly, or possibly the load is dropped or released. Consequently sudden changes in load are manifested, and as before, upon application of a torque, ε applied , the resulting α differs from αd. When a sudden change in load occurs, the error e(t) starts growing from zero. For these errors there is need to add an additional torque of the form: 
     
         τ.sub.new =I.sub.new +B.sub.new α+K.sub.new α(89) 
    
     Thus the new load may have a new inertia change, I new , possibly a new viscous friction term, B new , or possibly a new change in spring constant, K new . The quantities I new , B new , or K new  could also be negative values. Repeating the procedure used in the previous examples, first start with the torque relationship: 
     
         τ.sub.total =τ.sub.applied +τ.sub.new          (90) 
    
     and again requiring: 
     
         τ.sub.total =M(α,α)τ.sub.servo loop +τ.sub.model based                                                     (91) 
    
     and using a situation similar to FIG. 7 but with M, B, and K changing as indicated in equation (89), from τ new  specified in the same equation, the relationship evolves according to: ##EQU18## then the total torque equation becomes: ##EQU19## Thus B and K should be so that: ##EQU20## This case does not need a majorizing function but can be stabilized similar to equations (36-40) resulting in B&gt;0 and K&gt;0 which translates into the conditions Kv&gt;-B new  and Kp&gt;-K new . 
     An interesting superposition property occurs due to the linearity of v(t) and the procedure outlined herein. The overall gain values of Kp, Kv, and Ki can be obtained by developing a majorizing function to bound each nonlinearity and then, using the linearity properties of v(t), combine each of these nonlinearity bounds to develop the overall majorizing function. 
     Thus it is noted that the first type of adaptive controller (for the nonlinearity due to gravity effects) can be combined with the second adaptive controller (to handle nonlinear friction) and also with the third adaptive controller (to handle changing inertial loads). This is true because of the linearity of the v(t) function always dominates the error function no matter what the source of the nonlinearity. 
     While the apparatus and method herein described constitute a preferred embodiment of the invention, it is to be understood that the invention is not limited to this precise form of apparatus or method and that changes may be made therein without departing from the scope of the invention which is defined in the appended claims. 
     APPENDIX 
     
         Theorem 1: sin x&lt;x for x&gt;0                                 (98) 
    
     
         sin x&gt;x for x&lt;0                                            (99) 
    
     FIG. 8a illustrates a plot of sin x/x and FIG. 8b illustrates plots of y1=x and y2=sin x on the same axes. ##EQU21## To show sin x&lt;x for x&gt;0 it is only necessary to show it for 0&gt;x&lt;π. 
     
         Lemma (2): for 0&lt;x&lt;π, sin x/x&lt;1                         (103) 
    
     Proof: let f(x)=N(x)/D(x) where N(x)=sin x=numerator and D(x)=x=denominator. Note in ##EQU22## To show this is true we need to rewrite N(x) as follows: ##EQU23## Thus, since 0&lt;x&lt;π, N(x)&lt;x because each term, in all the square brackets, is never positive. Therefore, sin x/x&lt;1. 
     
         Lemma (3): For -π&lt;x&lt;0, sin x/x&lt;1                        (106) ##EQU24## Proof: Again rewriting N(x) as above in equation (105), we see for -π&lt;x&lt;0, that N(x)&gt;x since x&lt;0 and using the same argument as before. Therefore, 
    
     
         sin x/x&lt;1 (108) 
    
     Note: for |x|&gt;nπ, it is easily shown the |sin x/x|&lt;1/(nπ) and the bound gets successively tighter as the integer n increases. 
     Theorem (2): for the case of ε(0)&gt;0, and ε(0)&gt;0 then: 
     
         ε(t)+Kvε(t)+Kpε(t)&lt;0               (109) 
    
     with majorizing function: 
     
         v(t)+Kvv(t)+Kpv(t)=0                                       (110) 
    
     then: 
     
         0&lt;ε(t)&lt;v(t)                                        (111) 
    
     
         0&lt;ε(t)&lt;v(t)                                        (112) 
    
     if v(t)&gt;0. Proof: For Equation (101) choose state variables: 
     
         x1=v(t), x2=v(t)                                           (113) 
    
     x1=x2, x2=-Kv x2-Kp x1                                     (114) 
     x(t) be a vector=col[x1, x2], then: ##EQU25## with initial conditions: 
     
         v(0)=x1(0)&gt;0                                               (116) 
    
     
         v(0)=x2(0)&gt;0                                               (117) 
    
     therefore: 
     
         x(t)=e.sup.At x(0)                                         (118) 
    
     and 
     
         v(t)=[1,0]x(t)=x1(t)                                       (119) 
    
     for equation (109) let: 
     
         y1(t)=e(t), y2(t)=e(t)                                     (120) 
    
     Then: 
     
         y1=y2, y2=e&lt;-Kve -Kpe                                      (121) 
    
     y1=y2 , y2=e&lt;-Kve-Kpe                                      (121) 
     or 
     
         y2&lt;-Kve-Kpe                                                (122) 
    
     if 
     
         y is a vector=col[y1, y2]                                  (123) 
    
     then 
     
         y&lt;Ay, y(0)=x(0)                                            (124) 
    
     therefore: 
     
         y&lt;e.sup.At x(0)=v(t)                                       (125) 
    
     because e At  is always a positive definite matrix. This implies: 
     
         y1(t)&lt;x1(t) which implies e(t)&lt;v(t)                        (126a) 
    
     
         y2(t)&lt;x2(t) which implies e(t)&lt;v(t)                        (126b) 
    
     For the cases e(0) and e(0) not both positive, similar initial conditions can be put on v(t) to maintain the inequality (126a-b). 
     
         Theorem (3): if v(t)+Kvv(t)v+Kpv(t)=0                      (127) 
    
     Find Kv and Kp such that ##EQU26## Step 1--Laplace transforming equation (127), yields (assuming zero initial conditions): 
     
         V(s)[S.sup.2 +Kvs+Kp]=0                                    (129) 
    
     The characteristic equation is: 
     
         CE=S.sup.2 +Kvs+Kp=0                                       (130) 
    
     applying the Routh-Hurwitz test: ##EQU27## For stability to be assured, select Kv&gt;0, Kp&gt;0. Since Kp=Kp+G in equation (37), this implies: 
     
         Kp+G&gt;0 or Kp&gt;-G                                            (132) 
    
     and 
     
         Kv&gt;0                                                       (133) 
    
     and this assures that ##EQU28## Note: If equation (128) is Laplace Transformed for initial conditions on v(t) which are non-zero, this adds a polynomial P(s) on the right hand side of equation (129), but the characteristic equation specified by equation (130) is not affected. 
     
         Theorem 4: For v(t)+(Kv+B)v(t)+Kpv(t)+Kiv(t)=0             (135), 
    
     Laplace transforming yields: 
     
         V(s)[s.sup.3 +(Kv+B)S.sup.2 +Kps+Ki]=P(s)                  (136) 
    
     where P(s) is a polynomial of s dependent on the initial conditions v(0). This has a characteristic equation: 
     
         S.sup.3 +(Kv+B)S.sup.2 +Kps+Ki=0                           (137) 
    
     Using the Routh-Hurwitz test, implies: ##EQU29## For stability it is required that: 
     
         Ki&gt;0                                                       (139a) 
    
     
         Kv&gt;-B                                                      (139b) 
    
     
         Kp(Kv+B)-Ki&gt;0                                              (139c) 
    
     which implies: 
     
         Kp&gt;Ki/(Kv+B)                                               (140) 
    
     REFERENCES 
     Incorporated by reference herein 
     1. Craig, John J., &#34;Introduction to Robotics, Mechanics and Control&#34;, Addison-Wesley Publishing Company, Inc., 1986. 
     2. Marshall, A. W., I. Olkin, &#34;Inequalities: Theory of Majorization and Its Application&#34;, Academic Press, 1979. 
     3. Bellman, R., &#34;Methods of Nonlinear Analysis&#34;, Academic Press, 1970. 
     4. Kuo, B. C., &#34;Automatic Control Systems&#34;, Fourth Edition, Prentice-Hall, 1982.