Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
OBTAINING THE GEAR STIFFNESS OF A ROBOT JOINT GEAR OF A ROBOT ARM
Document Type and Number:
WIPO Patent Application WO/2020/053195
Kind Code:
A1
Abstract:
A method of obtaining the gear stiffness of a robot joint gear of a robot joint of a robot arm, where the robot joint is connectable to at least another robot joint. The robot joint comprises a joint motor having a motor axle configured to rotate an output axle via the robot joint gear. The method comprises the steps of: - applying a motor torque to the motor axle using the joint motor; -obtaining the angular position of the motor axle; - obtaining the angular position of the output axle; - determining the gear stiffness based on at least the angular position of the motor axle, the angular position of the output axle and a dynamic model of the robot arm.

Inventors:
MADSEN EMIL (DK)
Application Number:
PCT/EP2019/074075
Publication Date:
March 19, 2020
Filing Date:
September 10, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIVERSAL ROBOTS AS (DK)
International Classes:
B25J9/16
Foreign References:
US20140379128A12014-12-25
US20150039128A12015-02-05
EP2361736A22011-08-31
US4110829A1978-08-29
Other References:
A. KLIMCHIK ET AL: "Robotic manipulators with double encoders: accuracy improvement based on advanced stiffness modeling and intelligent control", IFAC-PAPERSONLINE-8TH IFAC SYMPOSIUM ON ADVANCES IN AUTOMOTIVE CONTROL AAC 2016, NORRKÖPING, SWEDEN, 20-23 JUNE 2016, vol. 51, 11 June 2018 (2018-06-11), pages 740 - 745, XP055570706, ISSN: 2405-8963, DOI: 10.1016/j.ifacol.2018.08.407
T. W. NYE: "Harmonic Drives: Determining Wear Life Based on Stiffness Considerations", PROC. OF THE INTERNATIONAL POWER TRANSMISSION AND GEARING CONFERENCE, 25 April 1989 (1989-04-25)
M. R. JOHNSON ET AL.: "Life Test Failure of Harmonic Gears in a Two-Axis Gimbal for the Mars Reconnaissance Orbiter Spacecraft", PROCEEDINGS OF THE 38T AEROSPACE MECHANISMS SYMPOSIUM, 17 May 2006 (2006-05-17)
J. MOBLEYJ. PARKER: "Proceedings of the 41th Aerospace Mechanisms Symposium", 16 May 2012, JET PROPULSION LABORATORY, article "Harmonic Drive Gear Material Selection and Life Testing"
A. ALBU-SCHAFFERG. HIRZINGER: "Parameter identification and passivity based joint control for a 7DOF torque controlled light weight robot", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 21 May 2001 (2001-05-21), pages 2852 - 2858, XP010550575, doi:10.1109/ROBOT.2001.933054
M. T. PHAM ET AL.: "Identification of joint stiffness with bandpass filtering", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 21 May 2001 (2001-05-21), pages 2867 - 2872, XP010550577, doi:10.1109/ROBOT.2001.933056
M. OSTRING ET AL.: "Closed-loop identification of an industrial robot containing flexibilities", CONTROL ENGINEERING PRACTICE, vol. 11, 2003, pages 291 - 300
M. GAUTIER ET AL.: "Dynamic Identification of flexible joint manipulators with an efficient closed loop output error method based on motor torque output data", IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA, 6 May 2013 (2013-05-06), pages 2949 - 2955, XP032505954, doi:10.1109/ICRA.2013.6630986
C. DUMAS ET AL.: "Joint stiffness identification of six-revolute industrial serial robots", ROBOTICS AND COMPUTER-INTEGRATED MANUFACTURING, vol. 27, 2011, pages 881 - 888, XP055569105, doi:10.1016/j.rcim.2011.02.003
A. KLIMCHICKA. PASHKEVICH: "Robotic manipulators with double encoders: accuracy improvement based on advanced stiffness modeling and intelligent control", IFAC PAPERSONLINE, vol. 51, no. 11, 2018, pages 740 - 745
A. JUBIEN ET AL.: "Joint Stiffness Identification of a Heavy Kuka Robot with a Low-cost Clamped End-effector Procedure", PROC. OF INTERNATIONAL CONFERENCE ON INFORMATICS IN CONTROL, AUTOMATION AND ROBOTICS (ICINCO, 1 September 2014 (2014-09-01), pages 585 - 591, XP032740536, doi:10.5220/0005115805850591
A. JAFARI ET AL.: "AwAS-II: A new Actuator with Adjustable Stiffness based on the novel principle of adaptable pivot point and variable lever ratio", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 9 May 2011 (2011-05-09), pages 4638 - 4643, XP032033855, doi:10.1109/ICRA.2011.5979994
M. GREBENSTEIN ET AL.: "The DLR Hand Arm System", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 9 May 2011 (2011-05-09), pages 3175 - 3182, XP032034192, doi:10.1109/ICRA.2011.5980371
F. FLACCOA. DE LUCA: "Residual-based Stiffness Estimation in Robots with Flexible Transmissions", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 9 May 2011 (2011-05-09), pages 5541 - 5547
F. FLACCOA. DE LUCA: "Robust Estimation of Variable Stiffness in Flexible Joints", PROC. OF IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS, 25 September 2011 (2011-09-25), pages 4026 - 4033
F. FLACCOA. DE LUCA: "A Pure Signal-Based Stiffness Estimation for VSA Devices", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 31 May 2014 (2014-05-31), pages 2418 - 2423, XP032650363, doi:10.1109/ICRA.2014.6907195
T. MENARD ET AL.: "A real time robust observer for an Agonist-Antagonist Variable Stiffness Actuator", PROC. OF IEEE INTERNATIONAL CONFERENCE ON ROBOTICS & AUTOMATION (ICRA, 6 May 2013 (2013-05-06), pages 3988 - 3993, XP032506700, doi:10.1109/ICRA.2013.6631139
A. CIRILLO ET AL.: "A mechatronic approach for robust stiffness estimation of variable stiffness actuators", IEEE/ASME INTERNATIONAL CONFERENCE ON ADVANCED INTELLIGENT MECHATRONICS, 9 July 2013 (2013-07-09), pages 399 - 404
M. W. SPONG: "Modeling and Control of Elastic Joint Robots", JOURNAL OF DYNAMIC SYSTEMS, MEASUREMENT, AND CONTROL, vol. 109, no. 4, 1987, pages 310 - 319
V. LAMPAERT ET AL.: "A Generalized Maxwell-Slip Friction Model appropriate for Control Purposes", IEEE INTERNATIONAL CONFERENCE FOR PHYSICS AND CONTROL, ST. PETERSBURG, 2003, pages 1170 - 1177, XP010660802
S. BITTANTI ET AL.: "Recursive Least-Squares Identification Algorithms with Incomplete Excitation: Convergence Analysis and Application to Adaptive Control", IEEE TRANS. AUTOMATIC CONTROL, vol. 35, 1990, pages 1371 - 1373
S. BITTANTI ET AL.: "Convergence and Exponential Convergence of Identification Algorithms with Directional Forgetting Factor", AUTOMATICA, vol. 26, no. 5, 1990, pages 929 - 932
Attorney, Agent or Firm:
FRUELUND, Morten (DK)
Download PDF:
Claims:
CLAIMS

1. A method of obtaining the gear stiffness of a robot joint gear of a robot joint of a robot arm, where said robot joint is connectable to at least another robot joint, said robot joint comprises a joint motor having a motor axle, said motor axle is configured to rotate an output axle via said robot joint gear, said method comprises the steps of:

• applying a motor torque to said motor axle using said joint motor;

• obtaining the angular position of said motor axle;

• obtaining the angular position of said output axle;

• determining said gear stiffness based on at least said angular position of said motor axle, said angular position of said output axle and a dynamic model of said robot arm, where said dynamic model of said robot arm defines a relationship between forces acting on said robot arm and resulting accelerations of said robot arm.

2. The method according to claim 1 wherein said step of determining said gear stiffness is further based on said motor torque applied to said motor axle.

3. The method according to any one of claims 1-2, wherein said step of applying a motor torque to said motor axle using said joint motor results in movement of at least a part of said robot arm.

4. The method according to any one of claims 1-3 wherein said step of determining said gear stiffness comprises the steps of:

• obtaining the deflection of said robot joint gear based on said angular position of said motor axle and said angular position of said output axle; and

• obtaining a flexibility torque of said robot joint gear at said deflection of said robot joint gear based on at least said angular position of said motor axle, said angular position of said output axle and said dynamic model of said robot arm.

5. The method according to claim 4 wherein said step of obtaining said gear stiffness comprises a step of repeating a plurality of times said steps of:

• applying a motor torque to said motor axle using said joint motor;

• obtaining the angular position of said motor axle;

• obtaining the angular position of said output axle;

• obtaining the deflection of said robot joint gear based on said angular position of said motor axle and said angular position of said output axle; and

• obtaining a flexibility torque of said robot joint gear at said deflection of said robot joint gear based on at least said angular position of said motor axle, said angular position of said output axle and said dynamic model of said robot arm; and for each repetition store said deflection of said robot joint gear and said flexibility torque of said robot joint gear at said deflection of said robot joint gear.

6. The method according to claim 5 wherein said step of determining said gear stiffness of said robot joint gear comprises a step of fitting said obtained flexibility torques and said deflection of said robot joint gears with a mathematical function.

7. The method according to claim 6 wherein said mathematical function is a polynomial function obtained based on a recursive least squares estimation.

8. The method according to any one of claims 5-7 wherein said gear stiffness of said robot joint gear is obtained as the slope of said flexibility torque with respect to said deflection of said robot joint gear.

9. The method according to any one of claim 1-8 wherein said method comprises a step of comparing said obtained gear stiffness with prior knowledge of the robot gear stiffness and provide a status indication of the robot joint gears based on the obtained gear stiffness and said prior knowledge of the robot gear stiffness.

10. The method according to anyone of claims 1-9 wherein said dynamic model of said robot arm comprises information modeling a parallel spring and damper coupling between said motor axle of said robot joint and said output axle of said robot joint.

11. A method of controlling a robot arm, said robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, said method comprises the steps of controlling said robot joints based on a dynamic model, and the gear stiffness of a robot joint gear of at least one of said robot joints, where said at least one robot joint is connectable to at least another robot joint, said at least one robot joint comprises a joint motor having a motor axle, said motor axle is configured to rotate an output axle via said robot joint gear, where said dynamic model of said robot arm defines a relationship between forces acting on said robot arm and resulting accelerations of the robot arm characterized in that said method comprises a step of obtaining said gear stiffness comprising the method according to any one of claims 1-11.

12. The method according to claim 11 wherein said method comprises a step of modifying said dynamic model based on said obtained gear stiffness.

13. A robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, said robot arm comprises at least one controller configured to control said robot joints based on a dynamic model of said robot arm, where at least one of said robot joint comprises a joint motor having a motor axle, said motor axle is configured to rotate an output axle via said robot joint gear, where said dynamic model of said robot arm defines a relationship between forces acting on said robot arm and resulting accelerations of said robot arm characterized in that said controller is configured to obtain the gear stiffness of said robot joint gear by: • applying a motor torque to said motor axle using said joint motor;

• obtaining the angular position of said motor axle;

• obtaining the angular position of said output axle;

• determining said gear stiffness based on at least said angular position of said motor axle, said angular position of said output axle and said dynamic model of said robot arm, where said dynamic model of said robot arm defines a relationship between forces acting on said robot arm and resulting accelerations of said robot arm.

14. The robot arm according to claim 13 characterized in that said controller is configured to control said robot joints based on said obtained gear stiffness of said robot joint gear.

15. The robot arm according to any one of claims 13-14 characterized in that said motor torque applied to said motor axle causes movement of at least at part of said robot arm.

16. The robot arm according to any one of claims 13-15 characterized in that said robot arm comprises at least one of:

• an output encoder configured to indicate said angular position of said output axle;

• an input encoder configured to indicate said angular position of said motor axle.

17. The robot arm according to any one of claims 13-16 characterized in that said controller is configured to:

• compare said obtained gear stiffness with a threshold value of said gear stiffness;

• provide a status signal relating to said robot joint gear based on said comparison of said obtained gear stiffness with said threshold value of said gear stiffness.

18. The robot arm according to any one of claims 13-17 characterized in that said robot arm comprises a memory comprising instructions instructing said controller to obtain said gear stiffness by performing the method according to any one of claims 1-10.

Description:
OBTAINING THE GEAR STIFFNESS OF A ROBOT JOINT GEAR OF A ROBOT ARM

FIELD OF THE INVENTION

[0001] The present invention relates to robot joint gears for robot arms comprising a plurality of robot joints connecting a robot base and a robot tool flange.

BACKGROUND OF THE INVENTION

[0002] 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.

[0003] 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 velocity, acceleration or in order to hold the robot arm in a static posture.

[0004] 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.

[0005] In some robots the robot joint comprises a joint motor having a motor axle configured to rotate an output axle via a robot joint gear. Typically, the output axle is connected to and configured to rotate parts of the robot arm in relation to each other. The robot joint gear forms a transmission system configured to transmit 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 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 exist in the transmissions used for industrial robots due to the elasticity various type of transmissions. This flexibility may lead to an undesired dynamic time-varying displacement between the position of parts of the robot arm.

[0006] Taking into account the gear flexibility in the dynamic model makes the dynamic model more accurately resemble the dynamics of the real robot arm because the robot joint torque originating from the gear deformation can be known. 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.

[0007] Research have been devoted to accurately identify the dynamic characteristics of the robot gear systems. However, one practical issue when taking into account the joint stiffness in the robot controller design is that the joint stiffness changes with wear due to material being worn off at the gear meshing [1], [2], [3].

[0008] Estimating the joint stiffness on industrial robots have been accomplished through off-line identification procedures by several researchers. Off-line identification procedures are not well suited for solving the problem of time-varying joint stiffness. Such procedures would have to be re-run from time to time to keep the joint stiffness information up to date. While the off-line identification procedure is running the robot is unable to conduct any other task with clear negative consequences to the user. Despite the shortcomings of the off-line calibration procedures for joint stiffness estimation a number of references will be given to such off-line identification procedures applied to solve the robot joint stiffness estimation problem. For the off-line identification of joint stiffness, one method is to apply external excitation on one robot joint at a time resulting in a reduced dynamic model hence easier identification as in [4], [5], [6], [7] [0009] Another option is to evaluate joint stiffness values using an external laser-tracking sensor system to visually track the end effector displacements for a given applied wrench as in [8] and [9], where the applied wrench is equal to the applied forced and torques at the end effector. A third option is to incorporate two absolute position rotary encoders in the robot joint to enable direct measurement of the joint deflection and then manually impose a known force at the end-effector and using the kinematic model (the Jacobian) of the robot arm to calculate the joint torques as in [9]. Such procedure however requires external and known loading of the end-effector and the robot is not allowed to move during the procedure. A fourth option is to estimate the joint stiffness using a so-called locked-link joint procedure as in [10] where the end- effector is clamped to the environment and using either motor positions measurement and motor torques data or a force/torque sensor to measure the external wrench between the clamped end effector and the environment.

[0010] Very few works are available on the on-line estimation of time- varying nonlinear stiffness e.g. AwAs-II joint [11]. These works are focused towards Variable Stiffness Actuators (VSAs) as found in in the DLR Hand Arm System [12] by the DLR Institute of Robotics and Mechatronics, however most industrial robots do not comprise a VSA. In 2011, Flacco and De Luca [13] estimated the nonlinear stiffness of robot joints using only a motor position sensor by computing a dynamic residual based on the generalized momentum followed by a least squares algorithm to estimate the stiffness parameters.

[0011] Robustness issues were later addressed in [14] by introducing a kinematic Kalman filter to handle discretization and quantization errors and a modified recursive least squares algorithm was used to better handle poor excitation conditions. The stiffness parameters were however assumed time- invariant. Further refinements of their method were carried out in [15] modifying the stiffness estimation algorithm to deal with time-varying stiffness by using a Recursive Least Squares method based on a QR decomposition (QR- RLS) able to handle time-varying stiffness characteristics. A non-causal Savitzky-Golay (SG) filter was used to remove noise on the input/output signals. No experiments did however support their findings.

[0012] In May 2013, Menard et al. [16] developed an observer capable of on-line estimating the time-varying stiffness of a VSA. Experimental analysis on the VSA system revealed parameter uncertainties of up to 25 % of the true stiffness. Friction was assumed purely viscous with a single constant coefficient. Such friction model is not capable of accurately describing real frictional characteristics of most electromechanical systems, as well-known frictional characteristics such as Coulomb friction and the Stribeck effect is then neglected completely.

[0013] In July 2013, Cirillo et al. [17] demonstrated online stiffness estimation of a VSA by measuring the elastic energy using an optoelectronic sensor built into the robot joint.

SUMMARY OF THE INVENTION

[0014] 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 obtaining the gear stiffness of a robot joint gear as defined by the independent claim. 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. Further the objective of the present invention is addressed by a method of controlling a robot arm based on the obtained gear stiffness and a robot arm with a controller configured to control the robot arm based on the obtained gear stiffness.

[0015] A robot controller taking into account the joint flexibilities may perform well right after calibration but for a good performance over the lifetime of the robot, the joint stiffness must be estimated on-line. Further, estimating the joint stiffness on-line will allow for predictive maintenance in the case of gear unit failure. In most cases, no sensor is available for directly measuring the joint stiffness, so the stiffness information is collected by combining an accurate model of the flexibility torque with the measurements available, such as position and force/torque sensor measures, either implemented in the robot or by using external hardware.

[0016] The invention provides a simple method of obtaining the gear stiffness of a robot joint gear of a robot arm without the need to integrate expensive force/torque sensors, as the joint gear stiffness of the robot joint gear can be determined based on sensors commonly used in industrial robots, which also makes it possible to integrate such method into existing industrial robots having such sensors. Additionally, the gear stiffness can be obtained online during use of the robot and thus used as an input to the dynamic model controlling the robot whereby a more accurate controlling of the robot can be provided. Consequently, vibrations and inaccuracies of the robot's movements due to gear stiffness can be accounted for when controlling the robot. Additionally, the gear stiffness changes over time primarily due to wear of the robot joint gear and obtaining the gear stiffness online makes it possible to control the robots based on changes of gear stiffness whereby the accuracy of the robot over time is maintained/improved. Further obtaining the gear stiffness online over time makes it possible to predict failure of the robot joint gear as the gear stiffness can be used to indicate when the robot joint gear is about to fail. Consequently, the robot joint gear can be sent to service in order to exchange/repair the robot joint gear whereby unplanned downtime of the robot can be reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

Fig. 1 illustrates a robot arm configured to obtain the gear stiffness of the robot joint gears; fig. 2 illustrates a schematic cross-sectional view of a robot joint; fig. 3 illustrates a model of a robot joint gear; fig. 4 illustrates a simplified structural diagram of a robot arm; fig. 5 illustrates a flow chart of a method of obtaining the gear stiffness of a robot joint gear of a robot joint of a robot arm; fig. 6 illustrates a flow chart of another method of obtaining the gear stiffness of a robot joint gear of a robot joint of a robot arm; fig. 7 illustrates a robot arm in a pose used in an experimental analysis of the method according to the present invention; fig. 8 illustrates a friction torque/velocity map obtained by imposing different signals of constant velocity on the base joint of a robot arm, while measuring the joint motor current; fig. 9 illustrates a flexibility torque/transmission deformation map obtained by imposing a set of known torques to the tool flange of a robot arm using a force gage and measuring the deformation as the difference between absolute joint encoder readings at each side of the robot joint gear; fig. 10 illustrates angular position, angular velocity and angular acceleration of the base joint of the robot arm used in the experimental analysis; fig. 11 illustrates a schematic representation of the Generalized Maxwell-Slip friction model; fig. 12 illustrates a flexibility torque/transmission deformation map obtained by the method according to the present invention; fig. 13 illustrates gear stiffness of the robot joint gear obtained in the experimental analysis,

DETAILED DESCRIPTION OF THE INVENTION

[0017] 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.

[0018] 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 103a, 103b, 103c, 103d, 103e, 103f and robot links 104b, 104c, 104d connecting a robot base 105 and a robot tool flange 107. A base joint 103a is connected directly with a shoulder joint and is configured to rotate the robot arm around a base axis 111a (illustrated by a dashed dotted line) as illustrated by rotation arrow 113a. The shoulder joint 103b is connected to an elbow joint 103c via a robot link 104b and is configured to rotate the robot arm around a shoulder axis 111b (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113b. The elbow joint 103c connected to a first wrist joint 103d via a robot link 104c and is configured to rotate the robot arm around an elbow axis 111c (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113c. The first wrist joint 103d connected to a second wrist joint 103e via a robot link 104d and is configured to rotate the robot arm around a first wrist axis llld (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113d. The second wrist joint 103e is connected to a robot tool joint 103f and is configured to rotate the robot arm around a second wrist axis ll le (illustrated by a dashed dotted line) as illustrate by rotation arrow 113e. The robot tool joint 103f comprising the robot tool flange 107, which is rotatable around a tool axis 11 If (illustrated by a dashed dotted line) as illustrated by rotation arrow 113f. 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. It is to be understood that the robot joints can be identical and/or different and that the robot joint gear may be omitted in some of the robot joints. The direction of gravity 123 is also indicated in the figure.

[0019] 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.

[0020] Fig. 2 illustrates a schematic cross-sectional view of a robot joint 203. The schematic robot joint 203 can reflect any of the robot joints 103a-103f 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 gear 229. 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. Consequently, the neighbor part of the robot 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 or by any other way enabling rotation of the neighbor part of the robot by the output axle.

[0021] The joint motor 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, Tcontrol, motor, applied by said motor axle.

[0022] The robot joint gear 229 forms a transmission system 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 gear can for instance be provided as spur gears, planetary gears, bevel gears, worm gears, strain wave gears or other kind of transmission systems. 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, Q, 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. Similarly, 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. [0023] 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 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 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.

[0024] Fig. 3 illustrates a model of a robot joint 303 connecting robot link 304Ϊ-1 and robot link 304i, where the joint motor 309i is arranged on robot link 304Ϊ-1 and rotates robot link 304i in relation to robot link 304Ϊ-1. The motor axle 325i of the joint motor is connected to an output axle 327i via robot joint gear 329i (illustrated in schematic form) and the robot link 304i rotates together with the output axle 327i. The robot joint gear provides a gear ratio between the motor axle and the output axle and in an ideal gear the rotation of the motor axle is immediately transformed into rotation of the output axle according to the gear ratio of the robot joint gear. However as described in the background of the invention flexibility exist in the types of robot joint gears used in the field of robot arms. The flexibility of a robot joint gear can be indicated by the gear stiffness of the robot joint gear which defines a relationship between torque through the robot joint gear and the deformation between the input side (motor axle) and the output side (output axle) of the robot joint gear. The flexibility of a robot joint gear 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 gear. The spring constant Ki of the spring indicates the gear stiffness of the robot joint gear and the damping constant of the damper Di indicates the damping of the robot joint gear. As described in the background of the invention the gear stiffness and damping of the robot joint gear can vary; consequently, Ki and Di need not to be constants.

[0025] The non-infinite gear stiffness of the robot joint results in a deflection between the input side and the output side of the robot joint gear when a torque is applied to the robot joint gear. The deflection of the robot joint gear can be indicated by a deflection variable indicating the differences between the angular position Q of the motor axle and the angular position q of the of the output axle, thus the deflection variable is defined as:

[0026] The joint transmission torque T jo int> i defines the torque that is transferred from the motor axle to the output axle via the robot joint gear and can be modeled as a function of the deflection variable Ojomt and its time- derivative:

where ¾i is a flexibility torque depending on the gear stiffness K, and the deflection of the robot joint gear and ¾i is damping torque depending on the damping coefficient Di and the first time derivative of the deflection of the robot joint gear and the time derivative of the deflection of the robot joint gear.

The T D (0 join ) damping torque of the robot joint gear can for instance be obtained by following the steps:

• Fix the output axle of the robot joint gear;

• Apply a torque to the motor axle of the robot joint gear to yield a gear deflection;

• Keep the motor axle of the robot joint gear still and remove the applied torque from the motor axle of the robot joint gear;

• Observe the position of the motor axle of the robot joint gear over time as the motor axle of the robot joint gear 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 Di can be obtained as:

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 x 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.

[0027] The gear stiffness Ki of the robot joint gear can be characterized by how much the flexible torque T E causing the gear deflection changes as a function of the gear deflection. The gear stiffness can thus be expressed as:

[0028] Assuming that that no flexibility torque exists for the undeformed transmission and that the transmission has the same behavior in compression and extension, thus:

eq. 5 ¾( o) = 0 ^ joint

[0029] Fig. 4 illustrates a simplified structural diagram of a robot arm comprising a plurality of n number of robot joints 403i, 403i+1....403n. 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 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. l. The 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.

[0030] The 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 433i, 433i + 1....433n are indicative of the motor torque T control, motor, ! , Tcontrol,motor,i+ 1 , and Tcontrol, motor, n, that each joint motor shall provide by the motor axles. 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 which torque the joint motors shall provide to each of the joint motors 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.

[0031] As described in connection with fig. 2 the robot joints comprise an output encoder providing output encoder signals 436i, 436i+1...436n indicating the angular position q,i, q,i+i...q, n of the output axle in relation to the respective robot joint; an input encoder providing an input encoder signal 438i, 438i + 1...438n indicating the angular position of the motor axle Q,ί, Q,ί + i...Q, h in relation to the respective robot joint and a motor torque sensor providing a motor torque signal 442i,442i+1...442n indicating the torque Tactually, motor, ! , Tactually, motor, i+1·· -Tactually, motor, n, provided by the motor axle of the respective robot joint. The controller is configured to receive the output encoder signal 436i, 436i + 1...436n, the input encoder signal 438i, 438i + 1...438n and the motor torque signals 442i,442i + 1...442n.

[0032] The controller is further configured to obtain the gear stiffness of at least one of the robot joint gears of the robot joints of the robot arm by:

• applying a motor torque to the motor axle of the at least one robot joint using the joint motor; obtaining the angular position of the motor axle of the robot joint; • obtaining the angular position of the output axle of the robot joint; and determining the gear stiffness based on the motor torque applied to the motor axle, the angular position of the motor axle, the angular position of the output axle and the dynamic model of the robot arm.

[0033] The controller can for instance be configured to carry out the method of obtaining the gear stiffness of a robot joint gear obtained by the method illustrated in figs. 5-6 and described in following paragraphs [0034]- [0066].

[0034] Fig. 5 illustrates a flow chart of a method of obtaining the gear stiffness of a robot joint gear of a robot joint of a robot arm, where the robot joint is connectable to at least another robot joint and where the robot joint comprises a joint motor having a motor axle configured to rotate an output axle via the robot joint gear. The method can for instance be used to obtain the gear stiffness of the joint gears of the robot arm illustrated in figs. 1-4 and the method is described in view of the robot arm illustrated in figs. 1-4. It is noted that the method in the following is described in view of a method where the gear stiffness of all the robot joint gears of the robot arm are obtained, however it is to be understood that the method can be used to obtain the gear stiffness of a single robot joint gear or some of the robot joint gears.

[0035] The method comprises a step of initializing 550, a step 552 of applying a motor torque to the motor axles of the joint motors; a step 554 of obtaining the angular position of the motor axles of the joint motors; a step 556 of obtaining the angular position of the output axle of the robot joint gears and a step 560 of determining the gear stiffness of the robot joint gears based on the motor torques applied to the motor axles, the obtained angular positions of the motor axles, the obtained angular positions of the output axles and the dynamic model of the robot arm.

[0036] Step of initializing 550 comprises a step of obtaining the dynamic model Drobot 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.

[0037] 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 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.

[0038] 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. In this example the dynamic model is provided by making the following assumptions:

Al: The rotors of the joint motors are uniform bodies having their center of mass at the axis of rotation (motor axle);

A2: The joint motors are located on the robot links preceding the driven robot links; and

A3: The angular velocity of the rotors of the joint motors are due to their own spinning.

Assumption Al is a basic requirement for long life of a joint motor such as electric motors and also implies that the dynamics of the robot joint will be independent of the angular position of the motor axle. The kinematic arrangement of joint motors and robot links described in assumption A2 is illustrated in fig. 3. It is to be understood that the assumption A2 may not be physically true when comparing with an actual robot where joint motor driving the robot links can be arrange at other positions of the robot arm, however there exist always a theoretical equivalent to this assumption. Assumption A3 is reasonable in connection with robot joint gears having large reduction ratios [18] typical in the order of 50-200, or more specific in the order of 100-150. The assumptions are equivalent to neglecting energy contributions due to the inertial couplings between the joint motor and the robot links and also implies that Coriolis and centripetal terms become independent of the rotor's angular velocity. [0039] The configuration of robot arm can be characterized by the generalized coordinates ( q Q) e 2N where q is a vector comprising the angular position of the output axles of the robot joint gears and Q is a vector comprising the angular position of the motor axles as seen in "space" of the output side of the robot joint gear. Consequently:

where 0 reai is the real angular position of the motor axle (e.g . as measured by an encoder) and r the gear ratio of the robot joint gear. This is the notation used throughout this application.

[0040] Similar t motor is a vector comprising the torques of the motor axles 4 as seen in "space" of the output side of the robot joint gear. Consequently:

^motor 1 " ' " ^motor real

where T motor reai is the real torque of the motor axles (e.g . as measured by sensors) and r the gear ratio of the robot joint gear. This is the notation used throughout this application .

[0041] Following assumptions 1-3, firstly the dynamic model as seen from the output side of the robot joint gears of the robot arm becomes [18] :

eq. 7 T jo int = M(q ) q + C(q, q)q + G(q) + F q (q) + T ext

where T joint is a vector comprising the transmission torques h 0ίh i, ί ... h 0ίh i, of each of the robot joint gears; q is a vector comprising the angular position of the output axles of the robot joint gears; q is a vector comprising the first time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular velocity of the output axles; q is a vector comprising the second time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular acceleration of the output axles. Af(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 gears. C(q, q)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 gears. 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 gears.

[0042] a vector comprising the friction torques acting on the output axles of the robot joint gears. The friction torques acting on the output axle depends on angular velocity of the output axle (qr); however it is to be understood the friction torques acting on the output axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc. F q ( q) can for instance be provided as linear or nonlinear functions or lookup tables (LUTs) with interpolation, and F q ( q) can be defined based on for instance prior knowledge of the robot, experiments, and/or be adaptively updated during robot operation. For instance, the F q (q ) can be obtained during calibration of the robot joints for instance by measuring the total friction torques of the robot joint gear and assuming that the friction torques act on the motor axle only thus F q q) = 0. r ext is a vector indicating the external torques acting on the output axles of the robot joint gears. 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:

Q 8 Text J (¾ F ext

where f{ 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.

[0043] Secondly, the dynamic model as seen from the input side of the robot joint gears becomes [18] :

where T joint is a vector comprising transmission torque h 0ίhi,ί ... Tj 0mt,n of each of the robot joint gears; Q 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 motor's rotors. F 0 (0) is a vector comprising the friction torques acting on the motor axles and T motor is a vector indicating the torque generated by the joint motors.

[0044] F 0 (0) is a vector comprising the friction torques acting on the input axles of the robot joint gears. The friction torques acting on the input axle depends on angular velocity of the input axle (0) ; however, it is to be understood the friction torques acting on the input axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc.

[0045] F 0 (0) can for instance be provided as linear or nonlinear functions or lookup tables (LUTs) with interpolation, and F 0 (0) can be defined based on for instance prior knowledge of the robot, experiments, and/or be adaptively updated during robot operation. For instance, F 0 (0) can be obtained for each robot joint by running the robot joint gear at a constant angular velocity for at least one whole revolution of the output axle or any positive integer multiple of a revolution without the robot arm contacting external objects, while obtaining the motor torque of the robot joint motor. Under these conditions the inertia term of the robot arm M(q)q is zero due to the constant angular velocity, the Coriolis and centripetal term C(q, q)q cancels because only one robot joint is moved at the time, and the gravity term G(q) cancels out due to the full rotation of the output axle, and no external torques are provided to the robot arm. Consequently eq. 7 reduces to:

where T joint average indicates the average joint transmission torque during one revolution of the output axle and F q average (q) indicates the friction force acting on the output axle of the robot joint gear during one revolution of output axle. Further, under these conditions the inertia term of the joint motors B 0 is zero due to the constant velocity. Consequently eq. 9 reduces to: combining eq. 10 and eq. 11 makes it possible to obtain the friction torques acting on the motor axles as: [0046] The friction torque F e {o) can also be mechanically modeled for instance as a Generalized Maxwell-Slip (GMS) model [19] which is based on three frictional properties

1) a Stribeck curve for constant velocities,

2) a hysteresis function with nonlocal memory in the pre-sliding regime, and

3) a frictional lag in the sliding regime.

The GMS model captures the behavior of hysteresis which often are seen in robot joint gears for instance strain wave gears, where the GMS model can be obtained based on the measured E Q (Q) .

[0047] For single robot joint gear, the GMS model can be visualized as a parallel connection of M massless block-spring models (illustrated in fig. 11) subject to the same input velocity w = The total friction force is given as the summation of friction forces for each element i, i.e. The dynamics of each elementary model is represented by the equations (10) and (11). If the element is sticking : e

where ki is the spring stiffness of the i th element. The element remains sticking until Fi > Vis(a)) where the fractional parameter v t determines the maximum force Fi for each element during sticking. If the element is slipping

The attraction parameter c determines how fast the total friction force approaches s(a) ) in sliding.

The nonlinear static map

captures the Stribeck effect and nonlinear viscous friction, where Fc, Fs, vsand m are, respectively, the Coulomb friction, the stiction, the Stribeck velocity, and the Stribeck shape factor, and F Vl , F V2 , F V3 are viscous coefficients of friction.

[0048] Typically the robot controller is configured to control the movements/positions of the robot arm by determining the torques generated by the motor axles T motor of the robot joint gears based on eq. 7 and eq. 9 and desired angular positions q , angular velocity q and/or desired angular accelerations q of the output axles of the robot joint gears. The desired angular positions q, angular velocity q and/or desired accelerations q of the output axles of the robot joint gears can for instance be provided via a robot program stored in the memory or via user inputs received through the input device. The angular positions q, angular velocity q and/or desired accelerations q of the output axles can be provided directly or as other parameter from which the parameters can be obtained for instance in form of coordinates of the robot tool flange in relation to the robot base or the like. The controller is then configured to control the joint motors by regulating the current through the joint motors.

[0049] Step 552 of applying a motor torque to the motor axles of the joint motors can for instance be carried out by the controller instructing the joint motor to apply a motor torque to the motor axles of the robot joint gears. For instance, the controller can be configured to provide motor torques that maintain the robot arm in a static posture, where the motor torques are sufficient to overcome the gravity on the robot arm or by providing motor torques moving parts of the robot. Consequently, the joint motors are driven in order to generate motor torques Tmotor by the motor axles.

[0050] In one embodiment the step of applying a motor torque to the motor axle using the joint motor results in movement of at least a part of the robot arm. This can be achieved by driving the joint motors with current that results in rotation of the robot joints whereby at least a part of the robot arm moves. For instance, the robot controller may be configured to apply a motor torque to the joint motors that result in movement of a part of the robot arm upward in relation to gravity and in such situation the applied motor torque is larger than the motor torque needed to compensate for gravity. Also, the robot controller may be configured to apply a motor torque to the joint motors that result in movement of a part of the robot arm downward in relation to gravity and in such situation the applied motor torque is smaller than the motor torque needed to compensate for gravity. However, it is to be understood that any motor torque resulting in movement in any direction of at least a part of the robot arm can be applied. Consequently, both the input axle of the robot joint gears and the output axle of the robot joint gears rotates. The dynamic terms of the dynamic models according to eq. 7 and eq. 9, which depends on the angular velocity q of the output axle, the angular acceleration q of the output axle, the angular velocity Q of the motor axle, and/or the angular acceleration Q of the motor axle can be obtained during movement of the robot arm. For instance the angular velocity q of the output axle, the angular acceleration q of the output axle, the angular velocity Q of the motor axle, the angular acceleration Q of the motor axle can be obtained as described in paragraphs [0053]-[0054]. This makes it possible to obtain the gear stiffness of the robot joint gear during movement and operation of the robot arm.

[0051] The method can comprise an optional step 535 of obtaining the actual motor torque T actuaiiy provided by the motor axles. The actual motor torques can for instance be obtained by obtaining the current 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. If the joint motors are operated under their current saturation limit, the motor axle torque can be obtained by: eq. 17 actually , mot or = k t I motor

where T ac tuaii y , 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 t is the positive-definite diagonal matrix of torque constants and Imotor is a vector comprising the torque-generating (quadrature) current obtained from the phase currents of the joint motors using the Park Transform.

[0052] The actual torque of the motor axle can also be obtained by using force/torque sensors such as strain gauges indicating the actual torque of the motor axle. Obtaining the actual torque T actuaiiy generated by the motor axles provides a more accurate gear stiffness as eventual deviation between the desired motor signal and the actual torque can be eliminated.

[0053] Step 554 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 Q 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. The angular position of the motor axles can for instance be used to obtain the angular velocity and/or angular acceleration of the motor axles for instance by differentiation and double differentiation of the angular position with respect to time. The angular velocity of the motor axles and angular acceleration of the motor axles can then be used to obtain the robot joint gear stiffness using the dynamic terms of the dynamic model of the robot arm. Consequently, the gear stiffness of the robot joint gear can be obtained during movement and operation of the robot arm. It is to be understood that the angular velocity of the motor axles and/or angular acceleration other motor axles alternatively can be obtained using sensors/encoders measuring the actual parameters.

[0054] Step 556 of obtaining the angular position of the output axle of the robot joint gears 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 gears 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. The angular position of the output axle of the robot joint gears can for instance be used to obtain the angular velocity and/or angular acceleration of the output axle of the robot joint gears for instance by differentiation and double differentiation of the angular position with respect to time. The angular velocity of the output axles and angular acceleration of the output axles can then be used to obtain the robot joint gear stiffness using the dynamic terms of the dynamic model of the robot arm. Consequently, the gear stiffness of the robot joint gear can be obtained during movement and operation of the robot arm. It is to be understood that the angular velocity of the output axles and/or angular acceleration of motor axles alternatively can be obtained using sensors/encoders measuring the actual parameters.

[0055] Step 560 of determining the gear stiffness of the robot joint gears can be embodied by considering the model of the flexibility of the robot joint illustrated in fig. 3 and described in paragraphs [0024]-[0028]. The dynamic model of the robot arm can be further specified by replacing T joint of eq. 7 and eq. 9 with the right hand side of eq. 2 and thereafter isolating the nonlinear flexibility x E ( j0int ):

where i>j 0int is a vector comprising the deflection of each robot joint gear, 0 joint is a vector comprising the first-order time derivative of the deflection of each robot joint and t D (<i>j 0int ) is a vector comprising the damping torque for each robot joint gear as a function of the time derivative of the deflection of the robot joints and t E (F ίoίhΐ ) is a vector comprising the flexibility torque of each of the robot joint gears as a function of the deflection of the robot joint gears.

[0056] Step 560 of determining the gear stiffness of the robot joint gears comprise thus a step 562 of obtaining the deflection i>j 0int of the robot joint gears based on the angular position Q of the motor axles and the angular position q of the output axles, where the deflection j0int of the robot joint gears can be indicated as the difference between the angular position Q of the motor axle and the angular position q of the output axle as indicated by eq. 1. It is to be understood that the deflection alternatively also can be indicated as the difference between the angular position of the output axle and the angular position of the motor axle. Step 560 of determining the gear stiffness of the robot joint gears comprise a step 564 of obtaining a flexibility torque of the robot joint gear at the deflection of the robot joint gear based on at least the angular position of the motor axle, the angular position of the output axle and a dynamic model of said robot arm. The flexibility torque t E (F ίoίhΐ ) of the robot joint gear at the deflection of the robot joint gear can be obtained based on eq. 18, with the angular position of the motor axles Q and the angular position q of the output axles as input variables, as the remaining parts of eq. 18 have been obtained during the initialization and for instance stored the memory. It is noted that t ext is zero in situations where no external forces/torques are acting on the robot arm, however if for instance an external force is acting on the robot tool flange the external forces/torques can then be obtained based on eq. 8. Further the contribution from external forces can also be obtained by using force/torques sensors. Additionally, or alternatively x E ( j0int ) can be obtained based on eq. 19 with the angular position of the motor axles Q, the angular position q of the output axles and motor torques T motor by the motor axles as input variables. It is thus to be understood that the motor torques T motor by the motor axles can be provided as an additional/optional input to step 564. In the embodiment comprising step 553 the motor torques T motor C an be replaced by the actual motor torques T actuaiiy obtained in step 553 when obtaining the gear stiffness of the robot joint gear using eq. 19. The motor torques T motor and the actual motor torques T actuaiiy is indicated in brackets [] and () in fig 5 in order to illustrate that they can be provided as additional parameters to step 564.

[0057] In step 566 the gear stiffness of the robot joint gears can be obtained based on the deflection of the robot joint gear obtained in step 562 and the flexibility torque t E (F ίoίhΐ ) of the robot joint gear obtained in step 564. Considering the eq. 4, eq. 5 and eq. 6 makes it possible to obtain the gear stiffness as: S t E D t E

eq. 20 ( joint)

D F joint

where T E ( j0int ) can be obtained based on eq. 18 or eq. 19 as described in connection with step 564.

[0058] The gear stiffness ki(4>j 0 int) obtained by eq. 20 provides can be used to obtain the average gear stiffness between a certain deflection of the robot joint gear and the situation where deflection of the robot joint gear is zero, which is typically when no motor torque is provided to the robot joint gears. In such situation eq. 20 can be simplified to eq. 21

[0059] Additionally or alternatively the gear stiffness of the robot joint gears can be indicated as the flexibility torque t E (F ίoίhΐ ), where a high flexibility torque at a given deflection of the robot joint gear indicates a high gear stiffness, as a higher flexibility torque is needed to achieve the deflection of the robot joint gear; reversely a low flexibility torque at a given deflection of the robot joint gear indicates a low gear stiffness as a smaller flexibility torque is needed to achieve the deflection of the robot joint gear. The gear stiffness of the robot joint gears can thus be indicated based eq. 18 and/or eq. 19.

[0060] The method can comprise an optional step 570 of comparing the obtained gear stiffness ki(4>j 0 int) with prior knowledge of the robot joint gear stiffness ki,iimit(<i>joint) and provide a status Sjoint of the robot joint gears based on the obtained gear stiffness and said prior knowledge of the robot gear stiffness. For instance, the average gear stiffness can be obtained at different times during the life time of the robot and be compared a threshold value of the gear stiffness, where the threshold value has been determined based on knowledge about the evolution of the gear stiffness in relation to wear of the robot joint gear. The status of the robot joint gear can thus be used to indicate the wear of the robot joint gears. Typically, the gear stiffness of a robot joint gears tend to decrease before the robot joint gears breaks, as material is worn off at the gear meshing. Consequently, the controller can be adapted to provide a warning when the gear stiffness reaches a threshold value, whereby the robot joint gear can be sent for repair or replaced before the gear breaks. This makes it possible to avoided failure of the robot joint gear and thereby avoid downtime of the robot arm.

[0061] The method can comprise an optional step 580 of controlling the robot arm based on the obtained gear stiffness of the robot joint gears by providing a control signal Tcontrol indicative of a desired motor torque Tmotor of the motor axle. The desired motor torque T motor can for instance be obtained based on the gear stiffness of the robot joint gears by modifying the dynamic model of the robot to include the stiffness of the robot joint gears and then update the dynamic model of the robot based on the gear stiffness obtained in step 560.

[0062] Fig. 6 illustrates a flow chart of the method of obtaining the gear stiffness of a robot joint gear of a robot joint of a robot arm. The method is like the method illustrated in fig. 5 and similar steps have been given the same reference numbers as in fig. 5 and will not be described further.

[0063] In this embodiment the methods comprise a step 665 (illustrated as an arrow) of repeating the following steps:

• step 552 of applying a motor torque to the motor axle using the joint motor;

• step 554 of obtaining the angular position of the motor axle;

• step 556 of obtaining the angular position of the output axle;

• step 562 of obtaining the deflection of the robot joint gear based on the angular position of the motor axle and the angular position of the output axle; and

• step 564 of obtaining a flexibility torque of the robot joint gear at the deflection of the robot joint gear based on at least the angular position of the motor axle, the angular position of the output axle and a dynamic model the of robot arm.

The steps are repeated a plurality of times and the deflection joint of the robot gears obtained in step 562 and the flexibility torque of the robot joint gears obtained in step 564 are stored for each repetition. Consequently, a data set comprising a plurality of data points ( joint ; t E (F )0ίh O) can be obtained and the flexibility torque of the robot joint gears can be obtained for different deflections of the robot joint gears. During the repetitions motor torque applied to the motor axle of the robot joint gears can be varied in step 552 whereby it is possible to obtain the flexibility torque of the robot joint gears over a range of robot joint gear deflections. This makes it possible to map the flexibility torque of the robot joint gears as a function of the robot joint gear deflection and the gear stiffness of the robot joint gear can be obtained as function of the robot joint gear deflection.

[0064] Step 667 is a step of fitting the obtained data points comprising the flexibility torques of the robot joint gears and the corresponding robot joint gear deflection with a mathematical function. For instance, the obtained data points for a single robot joint can be fitted to polynomial function having a linearly parametrized polynomial basis: where '^( jomt ) is the linear polynomial basis of the deflection variable Ojom t , cq is a vector comprising the constants for polynomial basis functions of the i th robot joint. Based on the symmetry assumptions in eq. 5 and eq. 6 the regressor can be specified to contain only odd powers of 4>j 0 mt, thus:

In summation form the polynomial function can be written as: eq. 24

where a p i is a vector comprising the constants for the polynomial basis functions for the i th robot joint. In a robot arm comprising a plurality of robot joints a polynomial function and corresponding vector of constants can be provided for each robot joint. [0065] As described in paragraph [0027] and stated by eq. 4 the stiffness of the robot joint gear can then be determined as the change of flexibility torque of the robot joint gears with respect to the robot joint gear deflection. The method can comprise a step 668 of obtaining the gear stiffness of the robot joint robot by obtaining the slope of the flexibility torque with respect to the deflection of said robot joint gear. For instance, the slope can be determined between at least two of the data points indicated by eq. 20 and by eq. 21 for the situation where no flexibility torque exists at a deflection of zero. The slope can also be indicated by differentiation of the mathematical function fitted to the data points. In case of a polynomial function this corresponds to differentiation of eq. 24

eq. 25

[0066] The method of obtaining the gear stiffness of the robot joint gears of a robot joint have been demonstrated on a robot arm by obtaining the flexibility torque of a single robot joint gear as a function of robot joint gear deflection using both a method according to the present invention and an alternative method. The experiments have been performed using a UR5e robot arm provided by Universal Robots and the results are discussed in the following paragraphs.

[0067] Fig. 7 illustrates the robot arm 701 in configuration used in the experimental analysis. The robot arm is a six-axis robot comprising robot base 705 carrying the robot arm. A base joint 703a is directly connected to the shoulder joint 703b and is configured to rotate the robot arm around a base axis 711a (illustrated by a dashed dotted line) as illustrated by rotation arrow 713a. The shoulder joint 703b is connected an elbow joint 703c via a robot link 704b and is configured to rotate the robot arm around a shoulder axis 711b as illustrated by rotation arrow 713b. The elbow joint 703c connected to a first wrist joint 703d via a robot link 704c and is configured to rotate the robot arm around an elbow axis 711c as illustrated by rotation arrow 713c. The first wrist joint 703d connected to a second wrist joint 703e and is configured to rotate the robot arm around a first wrist axis 71 Id as illustrated by rotation arrow 713d. The second wrist joint 703e is connected to a robot tool joint 703f and is configured to rotate the robot arm around a second wrist axis 71 le as illustrate by rotation arrow 713e. The robot tool joint 703f comprising the robot tool flange 707, which is rotatable around a tool axis 711f as illustrated by rotation arrow 713f.

[0068] During the experiments the robot arm 701 is arranged in a pose where the base axis 711A is parallel with the direction of gravity 723 and the shoulder axis 711b, the elbow axis 711c, the first wrist axis 711d, the second wrist axis 711e and the tool axis 711b are perpendicular to the direction of gravity 723. The base joint 703a is the only joint which is rotated during the experiment and the shoulder joint 703b, the elbow joint 703c, the first wrist joint 703d, the second wrist joint 703e and the tool joint 703b are thus fixed during the experiments.

[0069] The gear stiffness of the robot joint gear of the base joint 703a is obtained in the experiments. Firstly, the friction and the stiffness characteristics for the base joint 703a of the UR5e Robot arm is obtained using an alternative method.

[0070] The steady-state friction torque is identified by imposing different signals of constant velocity on the base joint while measuring the robot joint current. For constant velocity eq. 7, eq. 9 and eq. 17 yield F e + F q = K t I. The steady-state friction torque is illustrated in fig. 8. Fig. 8 illustrates a graph of the measured friction torques at varying angular velocity of the motor axle, where the horizontal axis indicates the angular velocity 881 of the motor axle and the vertical axis indicates the friction torque 882. The experimental data points comprising an angular velocity and corresponding friction torque 883 are illustrated as triangles. The parameters in eq. 16 are fitted to the data points using a Quasi-Newton method with a cubic line search procedure and updating the Hessian matrix approximation by the Broyden-Fletcher-Goldfarb-Shanno (BFGS) method and the fit have been illustrated by solid line 884. The fit of to the data points is 98,6 % using a normalized Root Mean Squared Error (NRMSE) method.

[0071] The flexibility torque of the robot joint gear of the base joint is obtained in a static setting by locking the input axle (motor axle) of the robot joint gear and imposing a set of known torques on the output axle using a Sauter FH-S 500 digital force gage while measuring the deformation of the robot joint gear using the output and input encoders of the robot. Fig. 9 illustrates a graph where the vertical axis indicates flexibility torque of the robot joint gear 987 and the horizontal axis indicated the deflection of the robot joint gear 986. The experimental data points comprise a robot joint deflection and corresponding flexibility torque and are illustrated as triangles 988. The data points have been fitted to a linearly parametrized polynomial basis 989 (Static POLY fit) as described in eq. 24 with P=2 and is illustrated as a solid line. The fit of the polynomial bases to the data points is 96,9% using a normalized Root Mean Squared Error (NRMSE) method.

[0072] The flexibility torque of the robot joint gear of the base joint is obtained dynamically based on the method according to the present invention by rotating the base joint according to the bang-coast-bang joint space trajectory generated with randomly generated waiting times and angular positions, velocities, and accelerations in intervals ranging from 30 % to 100 % of the maximum allowed values. Fig. 10 illustrates graphs of the joint space trajectory used to drive the base joint of the robot, where the horizontal axis 1093 indicates time in seconds; graph 1093 illustrates the angular position of the base joint output axle; graph 1094 illustrates the angular velocity of the base joint output axle; graph 1095 illustrates the angular acceleration of the base joint output axle.

[0073] During the experiment the angular position of the output axle of the base joint, the angular position of motor axle of base joint, and the current trough the base joint motor are measured while the robot arm moves according the joint space trajectory illustrated in fig. 10. The flexible torque is the obtained based on the measured angular position of the output axle of the base joint, the angular position of motor axle of base joint and the current trough the base joint motor using eq. 19 and eq. 17.

[0074] Fig. 12 illustrates a graph where the vertical axis indicates flexibility torque of the robot joint gear 987 and the horizontal axis indicated the deflection of the robot joint gear 986. The experimental data points comprise a robot joint deflection and corresponding flexibility torque and are illustrated as triangles 1288. The experimental data points have been fitted to linearly parametrized polynomial basis (dynamic POLY fit 1290 illustrated in dashed line) with P=2 using a Recursive Lease Squares (RLS) approach [20] as described in the next paragraph. The fit of the polynomial bases to the data points is 96,7% using a normalized Root Mean Squared Error (NRMSE) method.

[0075] Estimating time-varying parameters with the Recursive Least Squares (RLS) approach is obtained by incorporating a forgetting factor discounting past data. In the present example, the incoming information (the transmission deformation) is nonuniformly distributed over the parameter space. Tracking can only happen in some direction if there is an excitation in that same direction, hence the estimation algorithm tracks time-varying parameters only within the excited subspace. In particular, inspired by the results in [21], by a suitable notion of excitation subspace, the parameter vector in eq. 22 is estimated by the procedure:

where d> o enforces an increment of the covariance matrix P improving the algorithm alertness. More alertness is achieved by decreasing m at the price of an increased sensitivity to disturbances. By setting m= l and d = o, eq. 31 reduces to the standard RLS algorithm.

[0076] The fit of the polynomial bases (static POLY fit 989) of the flexible torque obtained statically as descried in paragraph [0063] have also been included in the fig. 12. There is very good alignment between the flexibility torque obtained by the two methods. Thus, it is possible to obtain the flexibility torque and/or stiffness of the robot joint gear based on the method according to the present invention under dynamic conditions where the output axle of the robot joint gear rotates. For instance, by obtaining the angular position of the input axle, the angular position of the output axle and the motor torque applied to the input axle. Where the motor torque applied to the input axle for instance can be obtained based on the phase currents through the coils of the joint motors (provided as PMSM).

[0077] Fig. 13 illustrates the obtained joint stiffness obtained by differentiation of the static POLY fit 989 and dynamic POLY fit graphs 1290 in fig. 12. The vertical axis indicates gear stiffness of the robot joint gear 1397 and the horizontal axis indicated the deflection of the robot joint gear 986. The gear stiffness as obtained via the static measurements illustrated as solid line 1398 (static POLY stiffness) and is obtained by differentiation of the linearly parametrized polynomial basis 989 with respect the robot joint deflection. The gear stiffness as obtained via the dynamic measurements illustrated as dashed line line 1397 (dynamic POLY stiffness) and is obtained by differentiation of the linearly parametrized polynomial basis 1290 with respect the robot joint deflection. The variations of gear stiffness as function of the robot joint deflection obtained by the two methods are very good aligned.

[0078] The present invention makes it thus possible to obtain the flexibility torque and the gear stiffness of the robot joint gears of a robot arm online during ordinary usage of the robot arm, where the robot arm typically performs a number of movements for instance in connection with a production setup.

BRIEF DESCRIPTION OF FIGUR REFERENCES

REFERENCES

[1] T. W. Nye, "Harmonic Drives: Determining Wear Life Based on Stiffness Considerations," in Proc. of the International Power Transmission and Gearing Conference, Chicago, April 25-28, 1989.

[2] M. R. Johnson et al., "Life Test Failure of Harmonic Gears in a Two-Axis Gimbal for the Mars Reconnaissance Orbiter Spacecraft," Proceedings of the 38t h Aerospace Mechanisms Symposium, Langley Research Center, May 17-19, 2006.

[3] J. Mobley and J. Parker, "Harmonic Drive TM Gear Material Selection and Life Testing," Proceedings of the 41t h Aerospace Mechanisms Symposium, Jet

Propulsion Laboratory, May 16-18, 2012.

[4] A. Albu-Schaffer and G. Hirzinger, "Parameter identification and passivity based joint control for a 7DOF torque controlled light weight robot," in Proc. of IEEE International Conference on Robotics & Automation (ICRA), Seoul, Korea, May 21-26, 2001, pp. 2852-2858.

[5] M. T. Pham et al., "Identification of joint stiffness with bandpass filtering," in Proc. of IEEE International Conference on Robotics & Automation (ICRA), Seoul, Korea, May 21-26, 2001, pp. 2867-2872.

[6] M. Ostring et al., "Closed-loop identification of an industrial robot containing flexibilities," in Control Engineering Practice, vol. 11, 2003, pp. 291-300.

[7] M. Gautier et al., "Dynamic Identification of flexible joint manipulators with an efficient closed loop output error method based on motor torque output data," in IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, Germany, May 6-10, 2013, pp. 2949-2955. [8] C. Dumas et al., "Joint stiffness identification of six-revolute industrial serial robots," in Robotics and Computer-Integrated Manufacturing, vol. 27, 2011, pp. 881-888.

[9] A. Klimchick and A. Pashkevich, "Robotic manipulators with double encoders: accuracy improvement based on advanced stiffness modeling and intelligent control," in IFAC PapersOnLine, vol. 51, no. 11, 2018, pp. 740-745.

[10] A. Jubien et al., "Joint Stiffness Identification of a Heavy Kuka Robot with a Low-cost Clamped End-effector Procedure," in Proc. Of International Conference on Informatics in Control, Automation and Robotics (ICINCO), Vienna, Austria, Sept. 1-3, 2014, pp. 585-591.

[11] A. Jafari et al., "AwAS-II: A new Actuator with Adjustable Stiffness based on the novel principle of adaptable pivot point and variable lever ratio," in Proc. of IEEE International Conference on Robotics & Automation (ICRA), Shanghai, China, May 9-13, 2011, pp. 4638-4643.

[12] M. Grebenstein et al., 'The DLR Hand Arm System," in Proc. Of IEEE International Conference on Robotics & Automation (ICRA), Shanghai, China, May 9-13, 2011, pp. 3175-3182.

[13] F. Flacco and A. De Luca, "Residual-based Stiffness Estimation in Robots with Flexible Transmissions," in Proc. of IEEE International Conference on Robotics & Automation (ICRA), Shanghai, China, May 9 - 13, 2011, pp. 5541- 5547.

[14] F. Flacco and A. De Luca, "Robust Estimation of Variable Stiffness in Flexible Joints," in Proc. of IEEE/RSJ International Conference on Intelligent Robots and Systems, San Francisco, CA, USA, September 25-30, 2011, pp. 4026-4033.

[15] F. Flacco and A. De Luca, "A Pure Signal-Based Stiffness Estimation for VSA Devices," in Proc. of IEEE International Conference on Robotics & Automation (ICRA), Hong Kong, China, May 31 - June 7, 2014, pp. 2418-2423.

[16] T. Menard et al., "A real time robust observer for an Agonist-Antagonist Variable Stiffness Actuator," in Proc. of IEEE International Conference on Robotics & Automation (ICRA), Karlsruhe, Germany, May 6-10, 2013, pp. 3988- 3993. [17] A. Cirillo et al., "A mechatronic approach for robust stiffness estimation of variable stiffness actuators," in IEEE/ASME International Conference on Advanced Intelligent Mechatronics, Wollongong, Australia, July 9-12, 2013, pp. 399-404. [18] M. W. Spong, "Modeling and Control of Elastic Joint Robots," Journal of

Dynamic Systems, Measurement, and Control, vol. 109, no. 4, 1987, pp. 310- 319.

[19] V. Lampaert et al., A Generalized Maxwell-Slip Friction Model appropriate for Control Purposes," in IEEE International Conference for Physics and Control, St. Petersburg, Russia, Proceedings, pp. 1170-1177, 2003.

[20] S. Bittanti et al., "Recursive Least-Squares Identification Algorithms with Incomplete Excitation : Convergence Analysis and Application to Adaptive Control," IEEE Trans. Automatic Control, vol. 35, pp. 1371-1373, 1990.

[21] S. Bittanti et al., "Convergence and Exponential Convergence of Identification Algorithms with Directional Forgetting Factor," Automatica, Vol.

26, No. 5, pp. 929-932, 1990.