Patent Publication Number: US-2022226993-A1

Title: Method of controlling a robot arm based on adaptive friction

Description:
FIELD OF THE INVENTION 
     The present invention relates to methods of controlling a robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, where at least one of the robot joints is a rotational robot joint comprising a joint motor having a motor axle, where the motor axle is configured to rotate an output axle of the rotational robot joint via a robot joint transmission. 
     BACKGROUND OF THE INVENTION 
     Robot arms comprising a plurality of robot joints and links where motors can rotate the joints in relation to each other are known in the field of robotics. Typically, the robot arm comprises a robot base which serves as a mounting base for the robot arm and a robot tool flange where to various tools can be attached. A robot controller is configured to control the robot joints to move the robot tool flange in relation to the base. For instance, in order to instruct the robot arm to carry out a number of working instructions. 
     Typically, the robot controller is configured to control the robot joints based on a dynamic model of the robot arm, where the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Often, the dynamic model comprises a kinematic model of the robot arm, knowledge about inertia of the robot arm and other parameters influencing the movements of the robot arm. The kinematic model defines a geometric relationship between the different parts of the robot arm and may comprise information of the robot arm such as, length, size of the joints and links and can for instance be described by Denavit-Hartenberg parameters or the like. The dynamic model makes it possible for the controller to determine which torques the joint motors shall provide in order to move the robot joints for instance at specified positions, velocities, and accelerations. 
     On many robot arms it is possible to attach various end effectors to the robot tool flange, such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, dispensing systems, visual systems etc. 
     In some robots the robot joint comprises a joint motor having a motor axle configured to rotate an output axle, for instance via a transmission system. The robot joint transmission system is configured to transmit torque provided by the motor axle to the output axle. Typically, the output axle is connected to and configured to rotate parts of the robot arm in relation to each other. The robot joint transmission system can for instance comprise a robot joint gear or a direct drive mechanism. The robot joint gear can for instance be provided as a spur gears, planetary gears, bevel gears, worm gears, strain wave gears or other kind of transmission systems. 
     Commonly flexibility and friction exist in the various types of transmissions. Taking into account the friction of the transmission in the dynamic model makes the dynamic model more accurately resemble the dynamics of the real robot arm because the robot joint friction originating from the transmission system can be known and thereby compensated in the robot controller. The art of compensating the effects of friction in the controller is well known in the field of motor control {1}. A more accurate dynamic model can for instance allow the robot controller to control the robot arm with greater accuracy and precision. A more accurate dynamic model can also allow the robot controller to more accurately identify external disturbances, for instance human interference which is of great concern in terms of safety. 
     One issue when taking into account the robot joint friction in the robot controller design is that the friction changes in a manner that is difficult to predict accurately. For instance, friction is known to change with quantities such as temperature and wear that are hardly measurable on most industrial robots. The friction&#39;s temperature dependency is caused for instance by the thermal expansion of mechanical parts in contact and/or temperature-dependent lubricant properties. The friction&#39;s wear dependency is caused for instance by material being worn off at contacting surfaces such as for instance at the gear meshing in a robot joint gear. 
     Due to the variation of the robot joint friction it is desired to estimate the friction on-line, such that the friction can be compensated more accurately in the robot controller. The art of adaptive friction compensation is well known within the field of motor control. Adaptive friction compensation has been accomplished through various strategies by several researchers {2}, {3}, {4}. 
     There are several robot control strategies that utilizes the knowledge on the dynamic model of the industrial robot to compute the control action. The control strategy Joint Torque Feed-back (JTF) has been widely used to improve the performance of robot motion and force control {5}, {6}, {7}. Implementation of JTF control requires to know the joint torque transmitted to the output axle from the transmission system. The joint transmission torque is most often obtained by measuring the deformation of an elastic member inside the transmission. If for instance strain wave transmissions are used as robot joint gears the joint transmission torque can be obtained for instance by mounting strain gauges on the flex spline {8}, {9}, {10}. Another option is to measure the angular position of both the input axle and the output axle in the robot joint. The difference between these position measurements defines the deformation of the transmission system. This deformation combined with an accurate mathematical model of the transmission system can yield an estimate of the robot joint transmission torque as shown in {11}, {12}, {13}. However, while these works demonstrate sufficient accuracy in the experimental test systems during a maximum period of 80 seconds, the methods are deemed to fail if applied to industrial robots where changes in ambient conditions or changes in the temperature or wear level of the robot joint transmission system occurs and influences the industrial robot&#39;s friction characteristics. 
     EP165264A1 discloses a method and device of controlling a robot arm driven by a motor, a technique of compliance servo control of controlling a robot arm, and a method and device of controlling a stoppage of a robot arm conducted after a collision of the robot arm against an object has been detected. A frictional torque of the robot joint is calculated based on the motor angular velocity, which is obtained based on the largest one of a feed-back motor angular velocity or a desired motor angular velocity. 
     REFERENCES 
     
         
         {1} B. Bona and M. Indri (2005). “Friction Compensation in Robotics: An Overview,” Proc. 44 th IEEE Conference on Decision and Control , Seville, Spain, Dec. 15, 2005. 
         {2} C. Canudas-de-Wit et al. (1987). “Adaptive friction compensation in dc-motor drives,”  IEEE Journal on Robotics and Automation , Vol. 3, No. 6, pp. 681-685. 
         {3} C. Canudas-de-Wit et al. (1991). “Adaptive Friction Compensation in Robot Manipulators: Low Velocities,”  The International Journal of Robotics Research , Vol. 10, No. 3, pp. 189-199. 
         {4} W. Susanto et al. (2008). “Adaptive Friction Compensation: Application to a Robotic Manipulator,”  IFAC Proceedings Volumes , Vol. 41, No. 2, pp. 2020-2024. 
         {5} F. Aghili and M. Buehler and J. M. Hollerbach (2001). “Motion control systems with/spl Hscr//sup/spl infin// positive joint torque feedback,”  IEEE Transactions on Control Systems Technology , Vol. 9, No. 5, pp. 685-695. 
         {6} L. Le Tien et al. (2008). “Friction observer and compensation for control of robots with joint torque measurement,”  IEEE/RSJ International Conference on Intelligent Robots and Systems , Nice, France, Sep. 22-26, 2008, pp. 3789-3795. 
         {7} A. Albu-Schaffer et al. (2007). “The DLR lightweight robot: design and control concepts for robots in human environments,”  Industrial Robot: An International Journal , Vol. 34, No. 5, pp. 376-385. 
         {8} M. Hashimoto et al. (1993). “A Torque Sensing Technique for Robots with Harmonic Drives,”  IEEE Transactions on Robotics and Automation , Vol. 9, No. 1, pp. 108-116. 
         {9} W.-H. Zhu et al. (2006). “Adaptive Control of Harmonic Drives,”  Journal of Dynamic Systems, Measurement, and Control , Vol. 129, No. 2, pp. 182-193. 
         {10} J. W. Sensinger and R. F. ff. Weir (2006). “Improved Torque Fidelity in Harmonic Drive Sensors Through the Union of Two Existing Strategies,”  IEEE/ASME Transactions on Mechatronics , Vol. 11, No. 4, pp. 457-461. 
         {11} T. Kawakami et al. (2010). “High-Fidelity Joint Drive System by Torque Feedback Control Using High Precision Linear Encoder,”  IEEE International Conference on Robotics  &amp;  Automation , Anchorage, Ak., USA, May 3-8, 2010. 
         {12} H. Zhang et al. (2013). “Torque Estimation Technique of Robotic Joint with Harmonic Drive Transmission,”  IEEE International Conference on Robotics  &amp;  Automation , Karlsruhe, Germany, May 6-10, 2013. 
         {13} H. Zhang et al. (2015). “Torque Estimation for Robotic Joint with Harmonic Drive Transmission Based on Position Measurements,”  IEEE Transactions on Robotics , Vol. 31, No. 2, pp. 322-330. 
         {14} M. W. Spong (1987). “Modeling and Control of Elastic Joint Robots,”  Journal of Dynamic Systems, Measurement, and Control , vol. 109, no. 4, pp. 310-319. 
         {15} Gene F. Franklin, J. David Powell, and Abbas Emami-Naeini. “Feedback Control of Dynamic Systems”, 8th Edition. Pearson, 2018. 
       
    
     SUMMARY OF THE INVENTION 
     The objective of the present invention is to address the above described limitations with the prior art or other problems of the prior art. This is achieved by a method of controlling a robot arm with robot joints, where the joint motors of the joints are controlled based on a signal generated based on the friction torque {circumflex over (F)} of the input side and/or output side of the robot joint transmission and the robot joint transmission torque {circumflex over (τ)} J  between the input side and the output side of the transmission. The friction torque is determined based on: at least two of the angular position of the motor axle; the angular position of the output axle and/or the motor torque provided to the motor axle by the joint motor. The robot joint transmission torque is determined based on: at least one of the angular positions of the output axle; the angular position of the output axle and/or the angular position of the motor axle; the angular position of the motor axle and the motor torque provided to the motor axle by the joint motor. This makes it possible to provide a more accurate control of a robot arm as the friction torque of the joint transmissions can be adaptively obtained and used to generate the controls signals of the robot joint motors. Further the objective of the present invention is addressed by a robot arm comprising a plurality of robot joints and a robot controller where the robot controller is configured to control the robot arm based on an adaptively obtained friction torque of the robot joint transmission. The dependent claims describe possible embodiments of the method according to the present invention. The advantages and benefits of the present invention are described in the detailed description of the invention 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a robot arm configured according to the present invention; 
         FIG. 2  illustrates a schematic cross-sectional view of a rotational robot joint; 
         FIG. 3  illustrates a model of a rotational robot joint gear; 
         FIG. 4  illustrates a simplified structural diagram of a robot arm configured according to the present invention; 
         FIG. 5  illustrates a flow chart of a method of controlling a robot arm according to the present invention where the robot arm is controlled based on adaptive friction of a rotational robot joint; 
         FIG. 6  illustrates a structural diagram of a robot controller system controlling a robot arm where the robot arm is controlled based on adaptive friction of a rotational robot joint; 
         FIG. 7  illustrates a flow chart of a method of controlling a robot arm according to the present invention, where the robot arm is controlled based on an adaptive friction depending transmission torque of a rotational robot joint; 
         FIG. 8  illustrates a structural diagram of a robot controller system controlling a robot arm where the robot arm is controlled based on an adaptive friction depending transmission torque of a rotational robot joint; 
         FIG. 9  illustrates a flow chart of a method of controlling a robot arm according to the present invention where the robot arm is controlled based on adaptive friction dependent feed-forward control; 
         FIG. 10  illustrates a structural diagram of a robot controller system controlling robot arm where the robot arm is controlled based on adaptive friction dependent feed-forward controller; 
         FIG. 11  illustrates a structural diagram of an adaptive friction module of a robot controller system controlling a robot arm where the adaptive friction module provides the friction of the robot joint transmission. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention is described in view of exemplary embodiments only intended to illustrate the principles of the present invention. The skilled person will be able to provide several embodiments within the scope of the claims. Throughout the description, the reference numbers of similar elements providing similar effects have the same last two digits. Further it is to be understood that in the case that an embodiment comprises a plurality of the same features then only some of the features may be labeled by a reference number. 
     The invention can be embodied into a robot arm and is described in view of the robot arm illustrated in  FIG. 1 . The robot arm  101  comprises a plurality of robot joints  103   a ,  103   b ,  103   c ,  103   d ,  103   e ,  103   f  and robot links  104   b ,  104   c ,  104   d  connecting a robot base  105  and a robot tool flange  107 . A base joint  103   a  is connected directly with a shoulder joint and is configured to rotate the robot arm around a base axis  111   a  (illustrated by a dashed dotted line) as illustrated by rotation arrow  113   a . The shoulder joint  103   b  is connected to an elbow joint  103   c  via a robot link  104   b  and is configured to rotate the robot arm around a shoulder axis  111   b  (illustrated as a cross indicating the axis) as illustrated by rotation arrow  113   b . The elbow joint  103   c  is connected to a first wrist joint  103   d  via a robot link  104   c  and is configured to rotate the robot arm around an elbow axis  111   c  (illustrated as a cross indicating the axis) as illustrated by rotation arrow  113   c . The first wrist joint  103   d  is connected to a second wrist joint  103   e  via a robot link  104   d  and is configured to rotate the robot arm around a first wrist axis  111   d  (illustrated as a cross indicating the axis) as illustrated by rotation arrow  113   d . The second wrist joint  103   e  is connected to a robot tool joint  103   f  and is configured to rotate the robot arm around a second wrist axis  111   e  (illustrated by a dashed dotted line) as illustrate by rotation arrow  113   e . The robot tool joint  103   f  comprising the robot tool flange  107 , which is rotatable around a tool axis  111   f  (illustrated by a dashed dotted line) as illustrated by rotation arrow  113   f . The illustrated robot arm is thus a six-axis robot arm with six degrees of freedom, however it is noticed that the present invention can be provided in robot arms comprising less or more robot joints, and the robot joints can be connected directly to the neighbor robot joint or via a robot link. In the illustrated embodiment the robot joints are illustrated as rotational robot joints where a the rotational robot joint rotates one part of the robot arm in relation to another part of the robot joint, however it is to be understood that some of the robot joint may be provided as translational robot joints where the robot joint is configured to move a part of the robot arm in relation to another part of a robot arm via a translational movement. For instance, such translational robot joint may be provided as a prismatic robot joint. It is to be understood that the robot joints can be identical and/or different. The direction of gravity  123  is also indicated in the figure. 
     The robot arm comprises at least one robot controller  115  configured to control the robot joints by controlling the motor torque provided to the joint motors based on a dynamic model of the robot. The robot controller  115  can be provided as a computer comprising an interface device  117  enabling a user to control and program the robot arm. The controller can be provided as an external device as illustrated in  FIG. 1  or as a device integrated into the robot arm. The interface device can for instance be provided as a teach pendent as known from the field of industrial robots which can communicate with the controller via wired or wireless communication protocols. The interface device can for instance comprise a display  119  and a number of input devices  121  such as buttons, sliders, touchpads, joysticks, track balls, gesture recognition devices, keyboards etc. The display may be provided as a touch screen acting both as display and input device. 
       FIG. 2  illustrates a schematic cross-sectional view of a rotational robot joint  203 . The schematic robot joint  203  can reflect any of the robot joints  103   a - 103   f  of the robot  101  of  FIG. 1 . The robot joint comprises a joint motor  209  having a motor axle  225 . The motor axle  225  is configured to rotate an output axle  227  via a robot joint transmission  229 . The robot joint transmission can be any device transferring the rotation of the motor axle to the output axle and may for instance be provided as a direct drive where the motor axle is directly coupled with the output axle and the motor axle and output may thus be the same. The robot joint transmission may also be provided as a robot joint gear providing a ratio between the motor axle and the output axle, for instance in order to increase the rotational torque provided by the output axle. The robot joint gear can be provided as any kind of gear mechanism such as strain wave gears, planet gears, epicyclic gears, spur gears, bevel gears etc. and may be provided as single stager or multi stage gear systems. The output axle  227  rotates around an axis of rotation  211  (illustrated by a dot-dash line) and can be connected to a neighbor part (not shown) of the robot arm. Consequently, the neighbor part of the robot arm can rotate in relation to the robot joint  203  around the axis of rotation  211  as illustrated by rotation arrow  213 . In the illustrated embodiment the robot joint comprises an output flange  231  connected to the output axle and the output flange can be connected to a neighbor robot joint or an arm section of the robot arm. However, the output axle can be directly connected to the neighbor part of the robot arm or by any other way enabling rotation of the neighbor part of the robot by the output axle. 
     The joint motor  209  is configured to rotate the motor axle by applying a motor torque to the motor axle as known in the art of motor control, for instance based on a motor control signal  233  indicating the torque, τ control  applied by the motor axle, for instance by driving the joint motor with a motor current i motor  proportional with a motor torque. The robot transmission  229  is configured to transmit the torque provided by the motor axle to the output axle for instance to provide a gear ratio between the motor axle and the output axle. The robot joint comprises at least one joint sensor providing a sensor signal indicative of at least the angular position, q, of the output axle and an angular position, Θ, of the motor axle. For instance, the angular position of the output axle can be indicated by an output encoder  235 , which provide an output encoder signal  236  indicating the angular position of the output axle in relation to the robot joint. Similar, the angular position of the motor axle can be provided by an input encoder  237  providing an input encoder signal  238  indicating the angular position of the motor axle in relation to the robot joint. The output encoder  235  and the input encoder  237  can be any encoder capable of indicating the angular position, velocity and/or acceleration of respectively the output axle and the motor axle. The output/input encoders can for instance be configured to obtain the position of the respective axle based on the position of an encoder wheel  239  arrange on the respective axle. The encoder wheels can for instance be optical or magnetic encoder wheels as known in the art of rotary encoders. The output encoder indicating the angular position of the output axle and the input encoder indicating the angular position of the motor axle makes it possible to determine a relationship between the input side (motor axle) and the output side (output axle) of the robot joint gear. 
     The robot joints may optionally comprise one or more motor torque sensors  241  providing a motor torque signal  242  indicating the torque provided by the motor axle. For instance, the motor torque sensor can be provided as current sensors obtaining the current i motor  through the coils of the joint motor whereby the motor torque can be determined as known in the art of motor control. For instance, in connection with a multiphase motor, a plurality of current sensors can be provided in order to obtain the current through each of the phases of the multiphase motor and the motor torque can then be obtained based on the obtained currents. For instance, in a three-phase motor the motor torque may be obtained based on quadrature current obtained from the phase currents through a Park Transformation. Alternatively, the motor torque can be obtained using other kind of sensors for instance force-torque sensors, strain gauges etc. 
       FIG. 3  illustrates a model of a rotational robot joint  303  connecting robot link  304   i - 1  and robot link  304   i , where the joint motor  309   i  is arranged on robot link  304   i - 1  and rotates robot link  304   i  in relation to robot link  304   i - 1 . The motor axle  325   i  of the joint motor is connected to an output axle  327   i  via robot joint transmission  329   i  (illustrated in schematic form) and the robot link  304   i  rotates together with the output axle  327   i . The robot joint transmission provides a transmission ratio between the motor axle and the output axle and in an infinitely stiff transmission the rotation of the motor axle is immediately transformed into rotation of the output axle according to the transmission ratio of the robot joint transmission. However as described in the background of the invention flexibility exist in the types of robot joint transmissions used in the field of robot arms. The flexibility of a robot joint transmission can be indicated by the transmission stiffness of the robot joint transmission which defines a relationship between torque through the robot joint transmission and the deformation between the input side (motor axle) and the output side (output axle) of the robot joint transmission. The flexibility of a robot joint transmission can be represented as a spring  326  and a damper  328  coupled in parallel between the input side (motor axle) and the output side (output axle) of the robot joint transmission. The stiffness K i  of the spring indicates the transmission stiffness of the robot joint transmission and the damping D i  of the damper indicates the damping of the robot joint transmission. 
       FIG. 4  illustrates a simplified structural diagram of a robot arm comprising a plurality of n number of robot joints  403   i ,  403   i +1 . . .  403   n . The robot arm can for instance be embodied like the robot arm illustrated in  FIG. 1  with a plurality of interconnected robot joints, where the robot joints can be embodied like the rotational robot joint illustrated in  FIG. 2 . It is to be understood that some of the robot joints and robot links between the robot joints have been omitted for sake of simplicity. The controller is connected to an interface device comprising a display  119  and a number of input devices  121 , as described in connection with  FIG. 1 . The robot controller  415  comprises a processor  443 , a memory  445  and at least one input and/or output port enabling communication with at least one peripheral device. 
     The robot controller is configured to control the robot arm based on a dynamic model of the robot arm D robot . The dynamic model of the robot arm can be defined and pre-stored in the memory  445  of the controller and the user can in some embodiment be allowed to modify the dynamic model op the robot arm, for instance by providing payload information of a payload attached to the robot arm or defining the orientation of the robot arm in relation to gravity. 
     The configuration of the robot arm can be characterized by the generalized coordinates (q Θ)∈   2N  where q is a vector comprising the angular positions of the output axles of the robot joint transmissions and Θ is a vector comprising the angular positions of the motor axles as seen in the output side of the robot joint transmission. Consequently: 
     
       
         
           
             
               
                 
                   Θ 
                   = 
                   
                     
                       Θ 
                       ′ 
                     
                     r 
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   1 
                 
               
             
           
         
       
     
     where Θ′ is the actual angular position of the motor axle, which can for instance be measured by a rotary encoder, and r the gear ratio of the robot joint transmission. This is the notation used throughout this application. 
     Alternatively, it is noted that q can be indicated in the input side of the robot joint gear: 
         q=q′r   eq. 2
 
     where q′ is the actual angular position of the output axle, which can for instance be measured by a rotary encoder. 
     The transmission flexibility of the robot joint results in a deflection between the input side and the output side of the robot joint transmission when a torque is applied to the robot joint transmission. The deflection of the robot joint transmission can be indicated by a joint transmission deformation variable Φ joint  indicating the differences between the angular position Θ of the motor axle and the angular position q of the output axle, thus the joint transmission deformation for robot joint i is defined as: 
       Φ joint,i =Θ i   −q   i   eq. 3
 
     The joint transmission torque τ joint,i  defines the torque that is transferred from the motor axle to the output axle via the robot joint transmission and can be modeled as a function of the joint transmission deformation Φ joint  and its time-derivative: 
       τ joint,i (Φ joint,i ,{dot over (Φ)} joint,i )=τ E,i (Φ joint,i )+τ D,i ({dot over (Φ)} joint,i )  eq. 4
 
     where τ E,i (Φ joint,i ) is a flexibility torque depending on the robot joint transmission stiffness K i  and the joint transmission deformation of the robot joint transmission and τ D,i ({dot over (Φ)} joint,i ) is a damping torque depending on the damping D i  and the first time derivative of the joint transmission deformation of the robot joint transmission. 
     The transmission stiffness K i  of the robot joint transmission can be characterized by how much the flexibility torque τ E,i (Φ joint,i ) causing the joint transmission deformation changes as a function of the joint transmission deformation. The transmission stiffness can thus be expressed as: 
     
       
         
           
             
               
                 
                   
                     
                       K 
                       i 
                     
                     ( 
                     
                       Φ 
                       
                         joint 
                         , 
                         i 
                       
                     
                     ) 
                   
                   = 
                   
                     
                       
                         ∂ 
                         
                           
                             τ 
                             
                               E 
                               , 
                               i 
                             
                           
                           ( 
                           
                             Φ 
                             
                               joint 
                               , 
                               i 
                             
                           
                           ) 
                         
                       
                       
                         ∂ 
                         
                           Φ 
                           
                             joint 
                             , 
                             i 
                           
                         
                       
                     
                     ≈ 
                     
                       
                         Δ 
                         ⁢ 
                         
                           τ 
                           
                             E 
                             , 
                             
                               i 
                               ⁡ 
                               ( 
                               
                                 Φ 
                                 
                                   joint 
                                   , 
                                   i 
                                 
                               
                               ) 
                             
                           
                         
                       
                       
                         Δ 
                         ⁢ 
                         
                           Φ 
                           
                             joint 
                             , 
                             i 
                           
                         
                       
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   5 
                 
               
             
           
         
       
     
     The flexibility torque τ E,i (Φ joint,i ) of the robot joint transmission can be obtained experimentally, for instance by following these steps:
         Impose a set of different known torques around the rotational axis ( 111   a - 111   f ,  211 ) of the robot joints and for each torque obtain the resulting joint transmission deformation Φ joint  based on obtained/measured the angular positions of the input axle and output axle using eq. 3. The torques can be exerted to the robot joint for instance by;
           orienting the joint rotation axis parallel to the direction of the gravitational acceleration such that there will be no torque resulting from gravity, and then;
               using a device capable of measuring force to exert a force on the robot arm, the force being exerted at a position with a known distance between the applied force and the joint axis, the distance being perpendicular to the direction of the exerted force and perpendicular to the joint rotation axis, and then calculating the torque as force times distance;   letting part of the robot, for instance the tool flange, exert a force/torque on its surroundings and using the kinematic properties of the robot arm and the actual configuration of the robot arm to calculate the torque around the joint rotation axis.
 
Based on the experimental results a mathematical model of the relationship between the joint transmission deformation and the flexibility torque for joint i can be constructed, for instance a polynomial of odd powers in Φ joint,i  can be used to describe the relationship between the joint transmission deformation and the flexibility torque for joint i, thus
   
               
               

     
       
         
           
             
               
                 
                   
                     
                       τ 
                       
                         E 
                         , 
                         i 
                       
                     
                     ( 
                     
                       Φ 
                       
                         
                           j 
                           ⁢ 
                           o 
                           ⁢ 
                           i 
                           ⁢ 
                           nti 
                         
                         , 
                       
                     
                     ) 
                   
                   = 
                   
                     
                       [ 
                       
                         
                           Φ 
                           
                             joint 
                             , 
                             i 
                           
                         
                         ⁢ 
                             
                         
                           Φ 
                           
                             joint 
                             , 
                             i 
                           
                           3 
                         
                         ⁢ 
                             
                         … 
                         ⁢ 
                             
                         
                           Φ 
                           
                             joint 
                             , 
                             i 
                           
                           
                             
                               2 
                               ⁢ 
                               P 
                             
                             - 
                             1 
                           
                         
                       
                       ] 
                     
                     · 
                     
                       [ 
                       
                         
                           
                             
                               k 
                               
                                 1 
                                 , 
                                 i 
                               
                             
                           
                         
                         
                           
                             
                               k 
                               
                                 2 
                                 , 
                                 i 
                               
                             
                           
                         
                         
                           
                             ⋮ 
                           
                         
                         
                           
                             
                               k 
                               
                                 P 
                                 , 
                                 i 
                               
                             
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   6 
                 
               
             
           
         
       
     
     where k j,i  is j th  polynomial coefficient and P is the total number of polynomial coefficients. 
     The τ D,i ({dot over (Φ)} joint,i ) damping torque of the robot joint transmission can, if assumed linear in the time-derivative of joint transmission deformation, for instance be obtained by following the steps:
         Fix the output axle of the robot joint transmission;   Apply a torque to the motor axle of the robot joint transmission to yield a transmission deflection of the joint transmission;   Keep the motor axle of the robot joint transmission still and remove the applied torque from the motor axle of the robot joint transmission;   Observe the position of the motor axle of the robot joint transmission over time as the motor axle of the robot joint transmission undergoes a damped harmonic motion with an amplitude that decreases over time.   The damping torque is a measure of the energy dissipation during the motion. Assuming an underdamped harmonic motion, the damping coefficient D i  can be obtained as:       

     
       
         
           
             
               
                 
                   
                     D 
                     i 
                   
                   = 
                   
                     
                       
                         - 
                         2 
                       
                       ⁢ 
                       B 
                       ⁢ 
                          
                       
                         
                           log 
                             
                         
                         e 
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             A 
                             2 
                           
                           
                             A 
                             1 
                           
                         
                         ) 
                       
                     
                     
                       
                         t 
                         2 
                       
                       - 
                       
                         t 
                         1 
                       
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   7 
                 
               
             
           
         
       
         
         
           
             where B is the mass moment of inertia of the motor axle, A 1  and A 2  are, respectively, amplitudes of the first and second vibration, and t 1  and t 2  are, respectively, times for the first and second motion.
 
If the motion is not underdamped, a larger mass moment of inertia is added to the input axle.
 
           
         
       
    
     The output-side friction torque F q  of the transmissions of robot joints can be obtained experimentally, for instance by following these steps for each of the robot joints independently:
         Orient the rotation axis ( 111   a - 111   f ,  211 ) of a robot joint parallel to the direction of the gravitational acceleration.   Apply motor torque such as to rotate the output axle of the robot joint with different known constant angular velocities in a known period of time while measuring the joint transmission deformation.   The output-side friction torque is obtained as the joint transmission deformation mapped to flexibility torque during the constant angular velocity motion of the output axle, thus       

         F   q,i =τ E,i (Φ joint,i )  eq. 8
 
     The input-side friction torque F θ  of the robot joint transmission can be obtained experimentally, for instance by following these steps for each of the robot joints independently:
         Orient the robot joint axis rotation axis ( 111   a - 111   f ,  211 ) parallel to the direction of the gravitational acceleration;   Apply motor torque such as to rotate the motor axle of the robot joint with a known constant angular velocity in a known period of time while obtaining the joint motor torque, for instance based on motor currents.   The input-side friction torque is obtained as the joint motor torque during the constant angular velocity motion of the motor axle as a function of the flexibility torque, thus       

         F   θ,i =τ motor,i −τ E,i (Φ joint,i )  eq. 9
 
     Facing  FIG. 4  the robot controller is configured to control the joint motors of the robot joints by providing motor control signals to the joint motors. The motor control signals  433   i ,  433   i+ 1 . . . 433n are indicative of the motor torque τ control,i , τ control,i+1 , and τ control,n , that each joint motor shall provide to the motor axles; alternatively, the motor control signal may be provided as or indicate the current i control,i , i control,i+1 , and i, control,n  that each joint motor shall provide. The motor control signals can indicate the desired motor torque, the desired torque provided by the output axle, the currents provided by the motor coils or any other signal from which the motor torque can be obtained. The motor torque signals can be sent to a motor control driver (not shown) configured to drive the motor joint with the motor current resulting in the desired motor torque. The robot controller is configured to determine the motor torque based on a dynamic model of the robot arm as known in the prior art. The dynamic model makes it possible for the controller to calculate how much torque the joint motors shall provide to each of the motor axels to make the robot arm perform a desired movement and/or be arranged in a static posture. The dynamic model of the robot arm can be stored in the memory  445 . 
     As described in connection with  FIG. 2  the robot joints comprise an output encoder providing output encoder signals  436   i ,  436   i +1 . . .  436   n  indicating the angular position q, i , q, i+1  . . . q, n  of the output axle in relation to the respective robot joint; an input encoder providing an input encoder signal  438   i ,  438   i +1 . . .  438   n  indicating the angular position of the motor axle Θ, i , Θ, i+1  . . . Θ, n  in relation to the respective robot joint and a motor torque sensors providing an motor torque signal  442   i , 442   i +1 . . .  442   n  indicating the torque τ motor,i , τ motor,i+1  . . . τ motor,n , provided by the motor axle of the respective robot joint; alternatively the motor torque signals may be provided as the current i control,i , i control,i+1 , and i control,n  that is provided to each joint. The controller is configured to receive the output encoder signal  436   i ,  436   i +1 . . .  436   n , the input encoder signal  438   i ,  438   i +1 . . .  438   n  and the motor torque signals  442   i , 442   i +1 . . .  442   n.    
     The controller can for instance be configured to carry out the method of controlling the robot arm as illustrated in  FIGS. 5, 7 and 9  and be structured as illustrated in  FIGS. 6, 8 and 10  as described forwardly. 
       FIG. 5  illustrates a flow diagram of a method of controlling a robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, where at least one of the robot joints is a rotational robot joint comprising a joint motor having a motor axle, where the motor axle is configured to rotate an output axle of the rotational robot joint via a robot joint transmission. The method comprises a step of initializing  550 , a step  552  of obtaining the angular position of the motor axles of the joint motors; a step  554  of obtaining the angular position of the output axle of the robot joint and a step  556  of obtaining the motor torque provided by the robot motors, a step  558  of obtaining the friction torque of the robot joint transmission, step  560  of obtaining the transmission torque between the input side and output side of the robot joint transmission and a step  562  of generating control signals for the joint motors. 
     Step of initializing  550  comprises a step of obtaining the dynamic model D robot  of the robot arm and can be based on prior knowledge of the robot arm and robot joints, KoR [Knowledge of Robot], such as the dimensions and weight of robot joints and robot links; joint motor properties; information relating to an eventual payload attached to the robot arm, orientation of the robot arm in relation to gravity and frictional properties of the robot arm and robot joints. The dynamic model of the robot arm can be defined and pre-stored in the memory of the controller and the user can in some embodiment be allowed to modify the dynamic model of the robot arm, for instance by providing payload information of a payload attached to the robot arm or defining the orientation of the robot arm in relation to gravity. The dynamic model of the robot arm can be obtained by considering the robot arm as an open kinematic chain having a plurality of (n+1) rigid robot links and a plurality of n revolute robot joints, comprising a joint motor configured to rotate at least one robot link. 
     For instance, the dynamic model as seen from the output side of the robot joint transmissions of the robot arm can be characterized by {14}: 
       τ joint   =M ( q ) {umlaut over (q)}+C ( q,{dot over (q)} ) {dot over (q)}+g ( q )+ F   q +τ ext   eq. 10
 
     where τ joint  is a vector comprising the transmission torques τ joint,i  . . . τ joint,n  of each of the robot joint transmissions; q is a vector comprising the angular position of the output axles of the robot joint transmissions; {dot over (q)} is a vector comprising the first time derivative of the angular position of the output axles of the robot joint transmissions and thus relates to the angular velocity of the output axles; {umlaut over (q)} is a vector comprising the second time derivative of the angular position of the output axles of the robot joint transmissions and thus relates to the angular acceleration of the output axles. M(q) is the inertia matrix of the robot arm and indicates the mass moments of inertia of the robot arm as a function of the angular position of the output axles of the robot joint transmissions. C(q, {dot over (q)}){dot over (q)} is the Coriolis and centripetal torques of the robot arm as a function of the angular position and angular velocity of the output axle of the robot joint transmissions. g(q) is the gravity torques acting on the robot arm as a function of the angular position of the output axles of the robot joint transmissions. 
     F q  is a vector comprising the friction torques acting on the output axles of the robot joint transmissions. The F q  can be obtained during calibration of the robot joints for instance as described in paragraph [0026]. τ ext  is a vector indicating the external torques acting on the output axles of the robot joint transmissions. The external torques can for instance be provided by external forces and/or torques acting on parts of the robot arm. For instance, if the tool flange of the robot is subject to external forces and/or torques described by F ext , the resulting torques at the output axles of the robot joints becomes: 
       τ ext   =J   T ( q ) F   ext   eq. 11
 
     where J T (q) is the transposed manipulator Jacobian of the robot arm and where F ext  is a vector describing the direction and magnitude of the external forces and torques in relation to the tool flange of the robot arm. 
     Secondly, the dynamic model as seen from the input side of the robot joint transmissions becomes {14}: 
       τ motor   =B{umlaut over (Θ)}+F   Θ +τ joint   eq. 12
 
     where τ joint  is a vector comprising transmission torque τ joint,i  . . . τ joint,n  of each of the robot joint transmissions; {umlaut over (Θ)} is a vector comprising the second time derivative of the angular position of the motor axle of the joint motor and thus relates to the angular acceleration of the motor axle. B is the positive-definite diagonal matrix indicating the mass moments of inertia of the joint motors&#39; rotors. F Θ  is a vector comprising the friction torques acting on the motor axles and τ motor  is a vector indicating the torque generated by the joint motors. F Θ  can be obtained for each robot joint as described in paragraph [0027]. 
     Step  552  of obtaining the angular position of the motor axles of the joint motors can be obtained by measuring the angular position of the motor axle for instance by using an encoder such as optical/magnetic encoders as known in the art of robotics. The angular position of the motor axles Θ can be stored in a memory for later usage for instance in order to store a number of angular positions of the motor axles obtained at different times. 
     Step  554  of obtaining the angular position of the output axle of the robot joint transmission can be obtained by measuring the angular position of the output axle for instance by using encoders such as optical/magnetic encoders as known in the art of robotics. The angular position of the output axles q can be stored in a memory for later usage, for instance a number of angular positions of the output axles obtained at different times can be stored in a memory. Alternatively, the angular position of the output axles of the robot joint transmissions can be obtained as the desired angular position of the output axles upon which the controller is generating the motor torques. This makes it possible to estimate the angle of the output axles in robot joints that does not comprise encoders for measuring the angular position of the output axles or the One could also estimate the output axle angular position based on the motor axle angular position for instance by estimating the output axle based on the gear ratio of the robot joint transmission. 
     The step  556  of obtaining the actual motor torque τ motor  provided by the joint motors can for instance be obtained by obtaining the current i motor  through the joint motors whereby the actual motor torque can be obtained as known in the art of motor control. For instance, if the joint motors are provided as three-phase Permanent Magnet Synchronous Machines (PMSM) with dynamics much faster than that of the manipulator and if the joint motors are operated under their current saturation limit, the motor axle torque can be obtained by: 
       τ motor   =K   τ   i   motor   eq. 13
 
     where τ motor  is a vector comprising, the actual torque provided by the motor axles of the joint motors (seen in the output space of the robot joint gear), K τ  is the positive-definite diagonal matrix of torque constants and i motor  is a vector comprising the torque-generating (quadrature) current obtained from the phase currents of the joint motors using the Park Transformation. 
     The actual motor torque can also be obtained by using force/torque sensors such as strain gauges indicating the actual torque of the motor axle, as in many cases it can be assumed the motor torque is transferred to the motor axle. 
     Step  558  of obtaining the friction torque {circumflex over (F)} of the input side and/or the output side of the robot joint transmission can be obtained based on at least two of:
         the angular position Θ of the motor axle;   the angular position q of the output axle;   the motor torque τ motor /i motor  provided to the motor axle by the joint motor;
 
by using any method or a combination of methods within the field of Digital Signal Processing (DSP) or an adaptive observer method known in the art of adaptive state estimation in the field of control theory. This makes it possible to provide an online estimation of the friction torque of the robot joint transmission whereby it becomes possible to take varying friction of the robot joint transmission due to wear and changes in ambient working conditions into account when providing a control system for the robot arm. Consequently, a more accurate control of a robot arm can be provided. Further in many robots arms the angular position of the motor axle, the angular position of the output axle and the motor torque are already obtainable by various sensors and thus no additional sensors need to be provided in such robots. The adaptive filtering methods include for instance;
   Least Mean Squares (LMS) filter; and   Recursive Least Squares (RLS) filter;
 
And the observer methods include for instance;
   Luenberger Observer (LO);   Kalman Filter (KF), including also Extended Kalman Filter (EKF) and Uncented Kalman Filter (UKF);   Sliding Mode Observer (SMO), including also the Super-Twisting Sliding-Mode Observer (STSMO);   High-Gain Observer (HGO);   Fuzzy Observer (FO);   Artificial Neural Network (ANN);
 
where at least two of the angular position Θ of the motor axle; the angular position q of the output axle; and the motor torque τ motor /i motor  provided to the motor axle by the joint motor serves as inputs of the observers.
       

     For instance, adaptive friction torque estimation can be conducted to obtain an estimate of the input-side and/or output-side friction torque(s) of the robot transmissions based on the position of the motor axles of the robot joints, and/or the position of the output axles of the robot joints, and the motor torques, for instance by describing the friction torque by the linearly parametrizable model 
     
       
         
           
             
               
                 
                   
                     F 
                     ˆ 
                   
                   = 
                   
                     
                       
                         
                           
                             F 
                             ˆ 
                           
                           C 
                         
                         ⁢ 
                         sgn 
                         ⁢ 
                            
                         
                           ( 
                           ω 
                           ) 
                         
                       
                       + 
                       
                         
                           
                             F 
                             ˆ 
                           
                           V 
                         
                         ⁢ 
                         ω 
                       
                     
                     = 
                     
                       
                         [ 
                         
                           
                             
                               
                                 sgn 
                                 ⁢ 
                                    
                                 
                                   ( 
                                   ω 
                                   ) 
                                 
                                   
                               
                             
                             
                               ω 
                             
                           
                         
                         ] 
                       
                       · 
                       
                         [ 
                         
                           
                             
                               
                                 
                                   F 
                                   ˆ 
                                 
                                 C 
                               
                             
                           
                           
                             
                               
                                 
                                   F 
                                   ˆ 
                                 
                                 V 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   14 
                 
               
             
           
         
       
     
     where ω is the angular velocity of the motor axle and/or output axle, {circumflex over (F)} C  is the vector of estimated Coulomb friction coefficients, and {circumflex over (F)} V  is the vector of estimated viscous friction coefficients. Due to the linear parametrization it is possible to estimate the unknown and assumed slowly changing coefficients by Recursive Least Squares (RLS) methods with some forgetting scheme discounting past data. 
     Assuming that data for each robot joint is sampled at times t k =k T S , where T S  is the sampling time and k an incrementing integer denoting the specific sample, and that the dynamic friction residual F i (k)=τ motor,i (k)−B i  {umlaut over (θ)} i (k)−τ J,i (ϕ i (k), {dot over (ϕ)} i (k)), the RLS method works by estimating the unknown filter coefficients {circumflex over (α)}=[{circumflex over (F)} C,i  {circumflex over (F)} V,i ] T  through the following procedure for each sample as 
     
       
         
           
             
               
                 
                   
                     Ψ 
                     ⁡ 
                     ( 
                     k 
                     ) 
                   
                   = 
                   
                     [ 
                     
                       sgn 
                       ⁢ 
                          
                       
                         ( 
                         
                           
                             ω 
                             i 
                           
                           ( 
                           k 
                           ) 
                         
                         ) 
                       
                       ⁢ 
                            
                       
                         
                           ω 
                           i 
                         
                         ( 
                         k 
                         ) 
                       
                     
                     ] 
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   15 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     P 
                     ⁡ 
                     ( 
                     k 
                     ) 
                   
                   = 
                   
                     
                       1 
                       λ 
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           P 
                           ⁡ 
                           ( 
                           
                             k 
                             - 
                             1 
                           
                           ) 
                         
                         - 
                         
                           
                             
                               P 
                               ⁡ 
                               ( 
                               
                                 k 
                                 - 
                                 1 
                               
                               ) 
                             
                             ⁢ 
                             
                               Ψ 
                               ⁡ 
                               ( 
                               k 
                               ) 
                             
                             ⁢ 
                             
                               
                                 Ψ 
                                 T 
                               
                               ( 
                               k 
                               ) 
                             
                             ⁢ 
                             
                               P 
                               ⁡ 
                               ( 
                               
                                 k 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           
                             λ 
                             + 
                             
                               
                                 
                                   Ψ 
                                   T 
                                 
                                 ( 
                                 k 
                                 ) 
                               
                               ⁢ 
                               
                                 P 
                                 ⁡ 
                                 ( 
                                 
                                   k 
                                   - 
                                   1 
                                 
                                 ) 
                               
                               ⁢ 
                               
                                 Ψ 
                                 ⁡ 
                                 ( 
                                 k 
                                 ) 
                               
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   16 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     Q 
                     ⁡ 
                     ( 
                     k 
                     ) 
                   
                   = 
                   
                     
                       P 
                       ⁡ 
                       ( 
                       k 
                       ) 
                     
                     
                       λ 
                       + 
                       
                         
                           
                             Ψ 
                             T 
                           
                           ( 
                           k 
                           ) 
                         
                         ⁢ 
                         
                           P 
                           ⁡ 
                           ( 
                           k 
                           ) 
                         
                         ⁢ 
                         
                           Ψ 
                           ⁡ 
                           ( 
                           k 
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   17 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     L 
                     ⁡ 
                     ( 
                     k 
                     ) 
                   
                   = 
                   
                     
                       Q 
                       ⁡ 
                       ( 
                       k 
                       ) 
                     
                     ⁢ 
                     
                       Ψ 
                       ⁡ 
                       ( 
                       k 
                       ) 
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   18 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     
                       F 
                       ˆ 
                     
                     ( 
                     k 
                     ) 
                   
                   = 
                   
                     
                       
                         Ψ 
                         T 
                       
                       ( 
                       k 
                       ) 
                     
                     ⁢ 
                     
                       
                         α 
                         ˆ 
                       
                       ( 
                       
                         k 
                         - 
                         1 
                       
                       ) 
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   19 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     
                       α 
                       ˆ 
                     
                     ( 
                     k 
                     ) 
                   
                   = 
                   
                     
                       α 
                       ⁡ 
                       ( 
                       
                         k 
                         - 
                         1 
                       
                       ) 
                     
                     + 
                     
                       
                         L 
                         ⁡ 
                         ( 
                         k 
                         ) 
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             F 
                             ⁡ 
                             ( 
                             k 
                             ) 
                           
                           - 
                           
                             
                               F 
                               ˆ 
                             
                             ( 
                             k 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   20 
                 
               
             
           
         
       
     
     where λ is the forgetting factor. A forgetting factor of λ=1 is chosen to estimate time-invariant (constant) parameters, and a forgetting factor λ&lt;1 is chosen to estimate time-varying parameters. A smaller forgetting factor will make the RLS method forget parameters faster. 
     Estimating for instance the input-side friction torque through the use of an observer can be obtained using for instance the observer structure shown in  FIG. 11  illustrating an adaptive friction module  1174 , which can be implemented as the adaptive friction module  674  of the robot system illustrated in  FIGS. 6, 8 and 10 . Here, the difference between a model-based estimate of the angular velocity {dot over ({circumflex over (θ)})} of the motor axle and the measured velocity {dot over (θ)} obtained by time-differentiation of the motor axle angular position θ signal is used to estimate the friction torque. The observer gain L is used to tune the observer. Based on the angular position of the motor axle θ and the angular position of the output axle q, the joint transmission deformation Φ joint  is determined by a joint transmission deformation module  1190  based on eq. 3. The time-derivative of the joint transmission deformation {dot over (Φ)} joint  is obtained by a joint transmission deformation differentiating module  1191  by differentiating the joint transmission deformation Φ joint . Based on the joint transmission deformation and the time-derivative of the joint transmission deformation, the joint torque τ J  is obtained by a joint torque obtaining module  1192  based on eq. 4. The dynamic model as seen from the input side of the robot joint transmissions (eq. 12) is used by a motor axle inertia torque estimation module  1193  to obtain the torque from the angular acceleration of the motor axle. An estimate of the angular acceleration of the motor axle {umlaut over ({circumflex over (θ)})} obtained by a motor axle angular acceleration estimation module  1194  by dividing the torque obtained from  1193  with the rotor inertia B. An estimate of the motor axle angular velocity {dot over ({circumflex over (θ)})} is obtained by a motor axle angular velocity estimation module  1195  based on the estimate of the angular acceleration of the motor axle. Based on the angular position θ of the motor axle, the angular velocity of the motor axle {dot over (θ)} is obtained by a motor axle position differentiating module  1196 . The difference between the estimated angular velocity {dot over ({circumflex over (θ)})} of the motor axle and the angular velocity of the motor axle {dot over (θ)} is obtained by a motor axle angular velocity difference module  1197  and multiplied by the observer gain L and the rotor inertia B in the inertia module  1198  to generate the input-side friction torque estimate {circumflex over (F)} θ . The estimated input-side friction torque is also fed back to  1193 . 
     In another embodiment the adaptive friction module  674  can also be configured to provide an estimate of the input-side and/or output-side friction torque(s) of the robot transmissions based on the position of the motor axles of the robot joints, and/or the position of the output axles of the robot joints, and the motor torques. The adaptive friction module can for instance be obtained by describing the friction torque by the linearly parametrizable model 
     
       
         
           
             
               
                 
                   
                     F 
                     ˆ 
                   
                   = 
                   
                     
                       
                         
                           
                             F 
                             ˆ 
                           
                           
                             C 
                                
                           
                         
                         ⁢ 
                         sgn 
                         ⁢ 
                            
                         
                           ( 
                           ω 
                           ) 
                         
                       
                       + 
                       
                         
                           
                             F 
                             ˆ 
                           
                           
                             V 
                                
                           
                         
                         ⁢ 
                         ω 
                       
                     
                     = 
                     
                       
                         [ 
                         
                           sgn 
                           ⁢ 
                           
                             ( 
                             ω 
                             ) 
                           
                           ⁢ 
                                
                           ω 
                         
                         ] 
                       
                       · 
                       
                         [ 
                         
                           
                             
                               
                                 
                                   F 
                                   ˆ 
                                 
                                 C 
                               
                             
                           
                           
                             
                               
                                 
                                   F 
                                   ˆ 
                                 
                                 V 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   eq 
                   . 
                       
                   21 
                 
               
             
           
         
       
     
     where ω is the angular velocity of the motor axle and/or the output axle, {circumflex over (F)} C  is the vector of estimated Coulomb friction coefficients, and F V  is the vector of estimated viscous friction coefficients. Due to the linear parametrization it is possible to estimate the unknown and assumed slowly changing coefficients by Recursive Least Squares (RLS) procedures as known in the art of adaptive control. 
     Step  560  of obtaining the transmission torque t between the input side and the output side of the joint transmissions can be obtained based on at least one of:
         the angular position (q) of the output axle;   the angular position (q) of the output axle and the angular position (Θ) of the motor axle;   the angular position (Θ) of the motor axle and the motor torque       

     (τ motor ) provided to the motor axle by the joint motor; 
     for instance, based on the angular position (q) of the output axle using eq. 10, where F q  have been obtained for each robot joint as described in paragraph 
     using equation eq. 8; or by using eq. 4, where the joint transmission deformation Φ joint  and its time-derivative have been obtained based on the angular position (Θ) of the motor axle and the angular position (q) of the output axle using equation eq. 3. Alternatively, the transmission torque can be obtained based on the angular position (Θ) of the motor axle and the motor torque (τ motor ) provided to the motor axle by the joint motor using eq. 12, where F Θ  have been obtained for each robot joint as described in paragraph [0027]. It is noted that in one embodiment the F q  and/or F Θ  can be obtained based on the friction torque {circumflex over (F)} of the input side and/or the output obtained in step  558 . Further it is to be understood the transmission torque {circumflex over (τ)} J  can be obtained based on two or more of the data sets described above and where the transmission torque is obtained as any combination of the transmission torques obtained using the different methods. 
     Step  562  of generating motor control signal indicative of a desired motor torque τ control  for at least one of the joint motors is based on at least:
         the friction torque {circumflex over (F)} of the input side of the robot joint transmission and/or the output side of the robot joint transmission;   the robot joint transmission torque τ J  between the input side and the output side of the robot joint transmission;
 
where the friction torque {circumflex over (F)} have been obtained as described in step  558  and where the robot joint transmission torque has been obtained as described in step  560 . In addition to the friction torque {circumflex over (F)} and the joint transmission torque τ J , the desired motor torque is also obtained based on a desired motion M d  of at least a part of the robot arm, and a dynamic model of the robot arm D robot . For instance, the desired motor torque can be obtained using dynamic model of the robot arm as expressed by eq. 12 where the second time derivative of the angular position of the motor axle {umlaut over (Θ)} has been obtained based on the angular position Θ of the motor axle obtained in step  552 , the friction torques F Θ  acting on the motor axles have been obtained in step  558  and the transmission torque τ J  have been obtained in step  560  based on eq. 10, and based on desired motion of the robot arm. In eq. 10 the desired motion parameter is provided as desired angular positions q d , desired angular velocities {dot over (q)} d , and desired angular accelerations {umlaut over (q)} d  of the output axles of the robot joint transmissions. The friction torques F Θ  are adaptively obtained in step  558  and consequently the motor control signals indicating the desired motor torques are generated based on adaptive friction of the robot joint transmissions whereby a more accurate control of the robot joints can be provided.
       

       FIG. 6  illustrates a structural diagram of a robot system  600  comprising a user interface  617 , a robot control system  615  controlling a robot arm (not illustrated) by controlling the robot joints  603 . The robot arm is like the robot arm illustrated in  FIGS. 1-4  and comprises at least one rotational robot joint like the robot joint illustrated in  FIG. 2 . The rotational robot joint comprises an input encoder  637  indicating the angular position of the motor axle Θ, and output encoder  635  indicating the angular position q of the output axle and a motor torque sensor  641  indicating the motor torque provided by the joint motor. In the illustrated embodiment the motor torque is provided as a current sensor indicating the motor current i motor  of the joint motor. The robot control  615  system is configured to control the robot joints based on the method of controlling a of the robot arm obtained according to the present invention. The user interface enables  617  a user to communicate with the robot controller system for instance in order to program the robot arm to perform various tasks. The user interface may be provided as described in connection with  FIG. 1 . 
     The robot controller system  615  comprises a motion planner module  670 , an adaptive friction module  674 , a transmission torque module  676 , a motor controller module  680  and optional a motor torque obtaining module  678 . 
     The motion planner module  670  is configured to provide the desired motions of the robot arm, for instance by generating trajectories of parts of the robot arm. The trajectories can for instance be generated based on a robot program instructing the robot arm to perform various tasks. In the illustrated embodiment the motion planner module provides a desired motion M d  of parts of the robot arm. The desired motion of parts of the robot arm can for instance be indicated as motions properties of the robot joints, such as angular position q d  of output axles of the joint transmissions, a desired angular velocity {dot over (q)} d  of output axles of the joint transmissions, a desired angular acceleration {umlaut over (q)} d  of the robot transmission. It is noted that the desired motion of parts of the robot arm also can be indicated as a position of various parts of the robot arm in relation to a reference point, for instance the desired motion may be indicated as a position, velocity and/or acceleration of the robot tool flange in relation to the robot base. 
     The desired motion M d  is provided to the motor controller module  680 . The motor controller module  680  is configured to generate at least one motor control signal  633  to the joint motors, for instance in form of a signal indicating the motor torque τ control  that each joint motor shall provide to the motor axles or a current signal indicating the current i control , that each joint motor shall provide. The motor controller module  680  is configured to generate the motor control signal  633  based on:
         the desired motion M d ;   a dynamic model of the robot arm D robot ;   the friction torque {circumflex over (F)} of at the input side of the robot joint transmission and/or the output side of the robot joint transmission;   the robot joint transmission torque τ J  between the input side and the output side of the robot joint transmission;
 
where the friction torque {circumflex over (F)} is obtained by the adaptive friction module  674 , the robot joint transmission torque τ J  is obtained by transmission torque module  676  and the dynamic model of the robot arm D robot  is stored in a memory  645 . The motor controller module can for instance be configured to generate the motor control signal  633  by carrying out step  562  of the method described in  FIG. 5 . As indicated by dotted lines the motor controller module may additionally also be configured to generate the motor control signal  633  based on:
   the angular position q of the output axle;   the angular position Θ of the motor axle;   the motor torque τ motor  provided to the motor axle by the joint motor.       

     The optional motor torque obtaining module  678  is configured to obtain the motor torque provided by the joint motors based on the current i motor  as known in the art and to provide the motor torque τ motor  to the adaptive friction module  674  and optionally to the transmission torque module and the motor controller module  680 . However, it is noted that the motor torque obtaining module  678  also can be provided as a part of the adaptive friction module  674 , the transmission torque module and/or the motor controller module whereby the current i motor  is provided directly to the various modules. Further the motor torque obtaining module may also be provided as an external module to the robot controller system  615 . 
     The adaptive friction module  674  is configured to provide the friction torque {circumflex over (F)} at the input side of the robot joint transmission and/or the output side of the robot joint transmission based on at least two of:
         the angular position Θ of the motor axle;   the angular position q of the output axle;   the motor torque τ motor /i motor  provided to the motor axle by the joint motor;
 
and is configured to carry out step  558  of the method described in  FIG. 5 . The friction torque {circumflex over (F)} is provided to the motor controller module as an adaptive parameter, further additionally the friction torque {circumflex over (F)} may also be provided to the transmission torque module as an adaptive parameter.
       

     The transmission torque module  676  is configured to provide the transmission torque {circumflex over (τ)} J  between input side and the output side of the joint transmissions and can be obtained based on at least one of:
         the angular position q of the output axle (illustrated in solid line);   the angular position q of the output axle (illustrated in dotted line) and the angular position Θ of the motor axle;   the angular position (Θ) of the motor axle and the motor torque (illustrated in dotted line) provided to the motor axle by the joint motor.
 
The transmission torque module is configured to carry out step  560  of the method described in  FIG. 5 . The transmission torque is then provided to the motor controller module.
       

     The robot system  600  illustrated in  FIG. 6  makes it possible to provide a robot arm where the friction torque of the robot joint transmissions is dynamically adapted whereby a more accurately control of the robot arm can be provided. 
       FIG. 7  illustrates a flow diagram of another method of controlling a robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, where at least one of the robot joints is a rotational robot joint comprising a joint motor having a motor axle, where the motor axle is configured to rotate an output axle of the rotational robot joint via a robot joint transmission. The method is like the method illustrated and described in  FIG. 5  and similar steps and features have been given the same reference numbers as in  FIG. 5  and will not be described further. 
     In this embodiment step  760  of obtaining the transmission torque {circumflex over (τ)} J  between the input side and output side of the robot joint transmission is further obtained based on the friction torque {circumflex over (F)}. Consequently, the transmission torque is obtained based on the adaptive friction torque whereby the transmission torque {circumflex over (τ)} J ({circumflex over (F)}) can be obtained and adapted according to the adaptive friction torque. For instance, the transmission torque {circumflex over (τ)} J ({circumflex over (F)}) can be obtained by using eq. 10, where F q  have been obtained according to step  558 . Additionally or alternatively the transmission torque {circumflex over (τ)} J ({circumflex over (F)}) can be obtained by using eq. 12, where F Θ  each robot have been obtained in step  558 . 
     In this embodiment step  762  of generating control signals for the joint motors is based on the joint transmission torque {circumflex over (τ)} J ({circumflex over (F)}) obtained in step  760  and since the joint transmission torque {circumflex over (τ)} J ({circumflex over (F)}) in step  760  is obtained based on the friction torque {circumflex over (F)} of at the input side of the robot joint transmission and/or the output side of the robot joint transmission the control signals of for the joint motor will in step  762  indirectly also be obtained based on the friction torque F. In addition, as described the desired motor torque are also obtained based on a desired motion M d  of at least a part of the robot arm and a dynamic model of the robot arm D robot . 
       FIG. 8  illustrates a structural diagram of a robot system  800 . The robot system is like the robot system illustrated and described in  FIG. 6  and similar elements and features have been given the same reference numbers as in  FIG. 6  and will not be described further. 
     In this embodiment the transmission torque module  876  is configured to provide the transmission torque {circumflex over (τ)} J  between the input side and output side of the robot joint transmission based on the friction torque {circumflex over (F)}. Consequently, the transmission torque is obtained based on the adaptive friction whereby the transmission torque {circumflex over (τ)} J ({circumflex over (F)}) can be obtained and adapted according to the adaptive friction. For instance, the transmission torque {circumflex over (τ)} J ({circumflex over (F)}) can be obtained by using eq. 10, where F q  have been obtained as described in step  558 . Additionally or alternatively the transmission torque {circumflex over (τ)} J ({circumflex over (F)}) can be obtained by using eq. 12, where F Θ  have been obtained as described in step  558 . 
     The motor controller module  880  is configured to generate control signals for the joint motors based on the joint transmission torque {circumflex over (τ)} J ({circumflex over (F)}) provided by transmission torque module  876 , where the transmission torque module  876  for instance is configured to carry out step  760  described above. Since the joint transmission torque {circumflex over (τ)} J ({circumflex over (F)}) provided by the transmission torque module  876  is obtained based on the friction torque {circumflex over (F)} of the input side of the robot joint transmission and/or the output side of the robot joint transmission the control signals for the robot joint motor generated by the motor controller module  880  will indirectly also be obtained based on the friction torque {circumflex over (F)}. In addition, as described the desired motor torque are also obtained based on a desired motion M d  of at least a part of the robot arm and a dynamic model of the robot arm D robot . 
       FIG. 9  illustrates a flow diagram of another method of controlling a robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, where at least one of the robot joints is a rotational robot joint comprising a joint motor having a motor axle, where the motor axle is configured to rotate an output axle of the rotational robot joint via a robot joint transmission. The method is like the method illustrated and described in  FIG. 5  and similar steps and features have been given the same reference numbers as in  FIG. 5  and will not be described further. 
     In this embodiment step  962  of generating motor control signals comprises:
         a step  963  of determining a desired transmission torque τ J,d ;   a step  964  of determining a desired feed-forward motor torque τ m,FF ;   a step  965  of determining a transmission torque error correction motor torque τ m,torque-err ;   a step  967  of determining a resulting motor torque τ r ;   an optional step  966  of determining an error correction motor torque;   a step  968  of generating a motor control signal indicative of a motor control current.       

     Step  963  of determining a desired transmission torque τ J,d  indicative of desired transmission torque of the robot joint transmission can be based on:
         a dynamic model of the robot D robot ;   at least one motion parameter M d , q d , {dot over (q)} d , {umlaut over (q)} d  indicating a desired motion of at least a part of the robot arm; and   the friction torque {circumflex over (F)} of at least one of the input side of the robot joint transmission and the output side of the robot joint transmission.
 
This makes it possible to obtain a more accurate desired transmission torque τ J,d  as the friction term adaptively can be determined and therefore more correctly be incorporate into the dynamic model of the robot arm. For instance the desired transmission torque τ J,d  may be obtained by using eq. 10 and the desired transmission torque τ J,d  may in step  965  be used to obtain a transmission torque error correction motor torque τ m,torque-err .
       

     Step  965  of determining the transmission torque error correction motor torque τ m,torque-err  indicating a motor torque minimizing differences between the desired transmission torque τ J,d  and the robot joint transmission torque {circumflex over (τ)} J  can be based on desired transmission torque τ J,d ; and the robot joint transmission torque {circumflex over (τ)} J . This makes it possible to compare the actual transmission torque {circumflex over (τ)} J  obtained in step  560  with the desired transmission torque τ J,d  and provide a determine a transmission torque error correction motor torque which can correct eventual differences as known in the art of feed-back control systems. 
     Step  964  of determining a desired feed-forward motor torque τ m,FF  indicating a desired motor torque of the joint motor can be based on:
         a dynamic model of the robot D robot ;   at least one motion parameter M d , q d , {dot over (q)} d , {umlaut over (q)} d  indicating a desired motion of at least a part of the robot arm; and   the friction torque ({circumflex over (F)}) of at least one of the input side of the robot joint transmission and the output side of the robot joint transmission.
 
This makes it possible to obtain a more accurate desired feed-forward motor torque τ m,FF  as the friction term adaptively can be determined and thus be more correctly incorporated into the dynamic model of the robot. For instance the desired feed-forward motor torque τ m,FF  may be obtained by using eq. 10 and eq. 12 and desired feed-forward motor torque τ m,FF  may then be used to generate the motor control signal as known in the art of feed-forward control mechanisms.
       

     Step  966  of determining error correction motor torque τ m,err  indicating a motor torque minimizing errors between at least one of:
         a desired motion parameter of the robot arm and actual motion parameter of the robot arm;   a desired angular position q d  of the output axle and the angular position q of the output axle;   a desired angular velocity {dot over (q)} d  of the output axle and the angular velocity {dot over (q)} of the output axle;   a desired angular acceleration {umlaut over (q)} d  of the output axle and the angular acceleration velocity {umlaut over (q)} of the output axle;   a desired angular position Θ d  of the motor axle and the angular position Θ of the motor axle;   a desired angular velocity {dot over (Θ)} d  of the motor axle and the angular velocity {dot over (Θ)} of the motor axle;   a desired angular acceleration {umlaut over (Θ)} d  of the motor axle and the angular acceleration velocity {umlaut over (Θ)} of the motor axle;   a desired torque τ motor ,d provided to the motor axle by the joint motor and the motor torque τ motor ) provided to the motor axle by the joint motor.
 
This makes it possible to compare the parameters of the robot arm with corresponding desired parameters of the robot arm and determine a correction parameters which can be used to correct eventual errors between desired parameters and actual parameters as known in the art of feed-back control systems for instance as described in {15}
       

     Step  967  of determining a resulting motor torque τ r  indicative of the resulting motor torque to be applied by the joint motor can be based on at least one of:
         the transmission torque error correction motor torque τ m,torque-err ;   desired feed-forward motor torque τ m,FF ; and   error correction motor torque τ m,err ;
 
where the motor control signal is generated based on the resulting motor torque. This makes it possible to generate the motor control signals for the joint motors based on both feed-forward parameters and feed-back parameters where the friction of the robot joint transmissions are adapted according to the operation of the robot arm.
       

       FIG. 10  illustrates a structural diagram of a robot system  1000 . The robot system is like the robot system illustrated and described in  FIG. 6  and similar elements and features have been given the same reference numbers as in  FIG. 6  and will not be described further. The robot controller system  1070  comprises a motion planner module  1070 , an adaptive friction module  674 , a transmission torque module  676 , a motor controller module  1080  and optional a motor torque obtaining module  678 . 
     The motion planner module  1070  is configured to provide the desired motions of the robot arm, for instance by generating trajectories of parts of the robot arm. The trajectories can for instance be generated based on a robot program instructing the robot arm to perform various tasks. In the illustrated embodiment the desired motions M d  provided to the motor controller module  1080  are a desired angular position q d  of the output axles of the joint transmissions, a desired angular velocity {dot over (q)} d  of the output axles of the joint transmissions and a desired angular acceleration {umlaut over (q)} d  of output axles of the robot transmission. 
     The motor controller module comprises a feed-forward controller module  1082 , a torque feed-back module  1084 , a motor current controller  1086  and an optional a feed-back controller module  1080 . 
     The feed-forward controller module  1082  is configured to determine a desired transmission torque τ J,d  indicative of desired transmission torque of the robot joint transmission based on:
         a dynamic model of the robot D robot ;   at least one motion parameter M d , q d , {dot over (q)} d , {umlaut over (q)} d  indicating a desired motion of at least a part of the robot arm; and   the friction torque ({circumflex over (F)}) of at least one of the input side of the robot joint transmission and the output side of the robot joint transmission.
 
The feed-forward controller module can for instance be configured to carry out step  963  of the method illustrated in  FIG. 9  and similar advantages are achieved by the feed-forward controller.
       

     The feed-forward controller module  1082  can also be configured to determine a desired feed-forward motor torque τ m,FF  indicating a desired motor torque of the joint motor based on:
         a dynamic model of the robot D robot ;   at least one motion parameter M d , q d , {dot over (q)} d , {umlaut over (q)} d  indicating a desired motion of at least a part of the robot arm; and   the friction torque P of at least one of the input side of the robot joint transmission and the output side of the robot joint transmission.
 
The feed-forward controller module can for instance be configured to carry our step  964  of the method illustrated in  FIG. 9  and similar advantages are achieved by the feed-forward controller.
       

     The torque feed-back controller module  1084  is configured to determine a transmission torque error correction motor torque τ m,torque-err  indicating a motor torque minimizing differences between the desired transmission torque τ J,d  and the robot joint transmission torque ({circumflex over (τ)} J ), where the transmission torque error correction motor torque τ m,torque-err  is determined based on:
         the desired transmission torque τ J,d ; and   the robot joint transmission torque {circumflex over (τ)} J .
 
The torque feed-back controller module  1084  can for instance be configured to carry out step  965  of the method illustrated in  FIG. 9  and similar advantages are achieved by torque feed-back controller module  1084 .
       

     The robot controller comprises a feed-back controller module  1088  configured to determine an error correction motor torque τ m,err  indicating a motor torque minimizing errors between at least one of:
         a desired motion parameter of the robot arm and actual motion parameter of the robot arm;   a desired angular position q d  of the output axle and the angular position q of the output axle;   a desired angular velocity {dot over (q)} d  of the output axle and the angular velocity {dot over (q)} of the output axle;   a desired angular acceleration {umlaut over (q)} d  of the output axle and the angular acceleration velocity {umlaut over (q)} of the output axle;   a desired angular position Θ d  of the motor axle and the angular position Θ of the motor axle;   a desired angular velocity {dot over (Θ)} d  of the motor axle and the angular velocity {dot over (Θ)} of the motor axle;   a desired angular acceleration {umlaut over (Θ)} d  of the motor axle and the angular acceleration velocity {umlaut over (Θ)} of the motor axle;   a desired torque τ motor,d  provided to the motor axle by the joint motor and the motor torque τ motor  provided to the motor axle by the joint motor.       

     The feed-back controller module  1088  can for instance be configured to carry out step  966  of the method illustrated in  FIG. 9  and similar advantages are achieved feed-back controller module  1088 . 
     The motor current controller module  1086  is configured to generate a motor control signal indicating a motor current i control  for the robot joint based on a resulting motor torque τ r  indicative of a resulting motor torque to be applied by the joint motor where the resulting motor torque τ r  is determined based on at least one of:
         the transmission torque error correction motor torque τ m,torque-err ;   desired feed-forward motor torque τ m,FF ; and   error correction motor torque τ m,err .       

     The motor current controller may be provided as any motor control driver driving and controlling motors base on a desired torque. Typically, such motor control drivers generate signal indicative of the current to be provided to the motor coil. In some embodiment the motor control driver generates the currents directly. It is to be understood that an adaptive or non-adaptive system can be configured to provide smoothed estimates of the position of the motor axles and/or output axles of the robot joints based on noisy measurements. 
     The invention comprises an adaptive control system having an adaptive feed-forward control command and a computation of the torque through the robot joint transmission in at least one of the robot joints. The present invention can for instance be provided at a robot arm comprising a robot control system which monitors and controls the robot joint, whereby the position error is reduced when the robot is subject to changes in ambient conditions, wear, etc. This is achieved by providing control of robot joint torque based on an adaptive observer estimating the robot joint friction torque adaptively and the robot joint torque. 
     BRIEF DESCRIPTION OF FIGURE REFERENCES 
       
     
       
         
           
               
               
             
               
                   
               
             
            
               
                 600, 800, 1000 
                 Robot system 
               
               
                 101 
                 robot arm 
               
               
                 103a-103f, 203, 303, 403i, 
                 robot joint 
               
               
                 403i + 1, 403n, 603 
               
               
                 104b, 104c, 104d, 304i; 304i − 1 
                 robot link 
               
               
                 105 
                 robot base 
               
               
                 107 
                 robot tool flange 
               
               
                 209, 309 
                 joint motor 
               
               
                 111a-111f, 211 
                 axis of rotation 
               
               
                 113a-113f:, 213 
                 rotation arrow 
               
               
                 115, 415, 615, 815, 1015 
                 robot controller 
               
               
                 117, 617 
                 interface device 
               
               
                 119 
                 display 
               
               
                 121 
                 input device 
               
               
                 123 
                 direction of gravity 
               
               
                 225, 325i 
                 motor axle 
               
               
                 326 
                 spring connecting input side and output 
               
               
                   
                 side 
               
               
                 227, 327i 
                 output axle 
               
               
                 328 
                 damper connecting input side and 
               
               
                   
                 output side 
               
               
                 229, 329i 
                 robot joint transmission 
               
               
                 231 
                 output flange 
               
               
                 233, 433i; 433i + 1; 433n, 633 
                 motor control signal 
               
               
                 235, 635 
                 output encoder 
               
               
                 236, 436i; 436i + 1; 436n 
                 output encoder signal 
               
               
                 237, 637 
                 input encoder 
               
               
                 238, 438i; 438i + 1; 438n 
                 input encoder signal 
               
               
                 239 
                 encoder wheel 
               
               
                 241, 641 
                 motor torque sensor 
               
               
                 242, 442i; 442i + 1; 442n 
                 motor torque signal 
               
               
                 443 
                 Processor 
               
               
                 445, 645 
                 memory 
               
               
                 550 
                 Step of initializing 
               
               
                 552 
                 Step of obtaining the angular position 
               
               
                   
                 of motor axle 
               
               
                 554 
                 Step of obtaining the angular position 
               
               
                   
                 of output axle 
               
               
                 556 
                 Step of obtaining the actual motor 
               
               
                   
                 torque 
               
               
                 558 
                 Step of obtaining the friction torque of 
               
               
                   
                 joint transmission 
               
               
                 560, 760 
                 Step of obtaining the transmission 
               
               
                   
                 torque between the input side and the 
               
               
                   
                 output side of the joint transmissions 
               
               
                 562, 762, 962 
                 Step of generating motor control 
               
               
                   
                 signals indicative of a desired motor 
               
               
                   
                 torque 
               
               
                 963 
                 Step of determining a desired 
               
               
                   
                 transmission torque 
               
               
                 964 
                 Step of determining a desired feed- 
               
               
                   
                 forward motor torque 
               
               
                 965 
                 Step of determining a transmission 
               
               
                   
                 torque error correction motor torque 
               
               
                 966 
                 Step of determining an error correction 
               
               
                   
                 motor torque 
               
               
                 967 
                 Step of determining resulting motor 
               
               
                   
                 torque 
               
               
                 968 
                 Step of generating a motor control 
               
               
                   
                 signal indicating desired motor current 
               
               
                 670 
                 motion planner 
               
               
                 674, 1174 
                 adaptive friction module 
               
               
                 676, 876 
                 transmission torque module 
               
               
                 678 
                 motor torque module 
               
               
                 680, 880, 1080 
                 motor controller module 
               
               
                 1082  
                 Feed-forward controller module 
               
               
                 1084  
                 torque feed-back controller module 
               
               
                 1086  
                 current controller 
               
               
                 1088  
                 feed-back controller module 
               
               
                 1190  
                 joint transmission deformation module 
               
               
                 1191  
                 joint transmission deformation 
               
               
                   
                 differentiating module 
               
               
                 1192  
                 joint torque obtaining module 
               
               
                 1193  
                 motor axle inertia torque estimation 
               
               
                   
                 module 
               
               
                 1194  
                 motor axle angular acceleration 
               
               
                   
                 estimation module 
               
               
                 1195  
                 motor axle angular velocity estimation 
               
               
                   
                 module 
               
               
                 1196  
                 motor axle position differentiating 
               
               
                   
                 module 
               
               
                 1197  
                 motor axle angular velocity difference 
               
               
                   
                 module 
               
               
                 1198  
                 A gain and inertia module