Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
REDUCING KINEMATIC ERROR
Document Type and Number:
WIPO Patent Application WO/2023/222206
Kind Code:
A1
Abstract:
A method for reducing kinematic error in a joint (5j) between distal and proximal portions of a manipulator (1), the joint (5j) having associated to it a motor (9j) for driving rotation thereof, a measurement device (8j) for measuring a rotation angle of the motor (9j), a joint controller (12j) connected to the motor (9j) and to the measurement device (8j) for controlling at least the rotation angle of the motor based on input position commands (qmot, j),and a trajectory generator (11) for outputting position commands (qmot, j), comprises the steps of : a. providing an acceleration sensor (7) in the distal portion, b. selecting a trajectory to be followed by the acceleration sensor (7), c. estimating expected acceleration values to which the sensor (7) is expected to be subject along said trajectory, d. outputting, by said trajectory generator (11), initial commands (qmot, j, qmot, j) for moving the sensor (7) along the trajectory, e. obtaining corrected commands by adding to a parameter specified in an initial command (α) a kinematic error correction (β) and inputting the corrected commands ( γ) into the joint controller (12j), f. recording acceleration values (a) to which the sensor (7) is subject while moving according to the corrected commands (γ),, g. judging whether a deviation (Λ) between the expected acceleration values and the recorded acceleration values exceeds a predetermined threshold, and h. if the deviation (Λ) is judged to exceed the threshold, modifying the kinematic error correction (β) so as to reduce the deviation.

Inventors:
WAHRBURG ARNE (DE)
ENAYATI NIMA (DE)
ROBERTS RICHARD (DE)
MOBERG STIG (SE)
Application Number:
PCT/EP2022/063353
Publication Date:
November 23, 2023
Filing Date:
May 17, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ABB SCHWEIZ AG (CH)
WAHRBURG ARNE (DE)
ENAYATI NIMA (DE)
ROBERTS RICHARD (DE)
MOBERG STIG (SE)
International Classes:
B25J9/16
Domestic Patent References:
WO2022056765A12022-03-24
Foreign References:
JP2017209762A2017-11-30
EP1274546B12007-06-20
Other References:
STIG MOBERG: "Modeling and control of flexible manipulators", DISSERTATIONS. NO, 1 January 2010 (2010-01-01), Linköping, XP055183134, ISBN: 978-9-17-393289-9, Retrieved from the Internet [retrieved on 20190321]
Attorney, Agent or Firm:
MAIWALD GMBH (DE)
Download PDF:
Claims:
Claims

1. A method for reducing kinematic error in a joint (5j) between distal and proximal portions of a manipulator (1), the joint (5j) having associated to it a motor (9j) for driving rotation thereof, a measurement device (8j) for measuring a rotation angle of the motor (9j), a joint controller (12j) connected to the motor (9j) and to the measurement device (8j) for controlling at least the rotation angle of the motor based on input position commands (Qmotj). and a trajectory generator (11) for outputting position commands (qmoti7), the method comprising the steps of a. providing an acceleration sensor (7) in the distal portion, b. selecting a trajectory to be followed by the acceleration sensor (7), c. estimating expected acceleration values to which the sensor (7) is expected to be subject along said trajectory, d. outputting, by said trajectory generator (11), initial commands (qmot,j. cimotj) f°r moving the sensor (7) along the trajectory, e. obtaining corrected commands by adding to a parameter specified in an initial command (qmot,]> qmotj) a kinematic error correction (8qke, 8qke), and inputting the corrected commands (qmotJ + 8qke, qmotJ + 8qke) into the joint controller (12j), f. recording acceleration values (a) to which the sensor (7) is subject while moving according to the corrected commands (qmotj + 8qke, qmotj + 8qke), g. judging whether a deviation (A) between the expected acceleration values and the recorded acceleration values exceeds a predetermined threshold, and h. if the deviation (A) is judged to exceed the threshold, modifying the kinematic error correction (8qke, 8qke) so as to reduce the deviation. The method of claim 1 , wherein the commands are at least one of position commands in which the specified parameter is a position and speed commands, in which the specified parameter is a speed. The method of claim 1 or 2, wherein in step b) the trajectory is selected so that the expected acceleration values or magnitudes thereof are constant along at least part of the trajectory, and optionally, wherein the trajectory defines an oscillating movement. The method of one of the preceding claims, wherein the kinematic error correction (8qke) is a weighted sum at least of circular functions of integer multiples of the rotation angle (<7mOt,7) of the motor (9j). The method of claim 4, wherein the joint (5j) further comprises a harmonic drive gear (1 Oj), wherein the kinematic error correction (6qke) is a weighted sum also of circular functions of integer multiples of the rotation angle multiplied by , wherein if is the number of teeth of a flexspline (16) of the harmonic drive gear (1 Oj), and ic is the number of teeth of a circular spline (17) thereof. The method of any of the preceding claims, wherein in step b) a speed for the trajectory is chosen so that the motor frequency or a harmonic thereof is a resonance frequency, preferably the lowest resonance frequency, of the manipulator (1). The method of any of the preceding claims, wherein the expected acceleration values of step c. and/or the recorded acceleration values of step f. are vector quantities (ax, ay, az), and the judgment of step g. involves combining all three components of each vector quantity into a single scalar quantity (a). The method of any of the preceding claims, wherein the judgment of step g. is based on a spectral analysis of the recorded acceleration values. The method of any of the preceding claims, wherein the judgment of step g. is based on a spectral component of the recorded acceleration values whose frequency is twice the motor frequency. The method of any of the preceding claims, wherein steps d. to g. are repeated when the kinematic error correction has been modified in step h.. The method of any of the preceding claims, wherein modifying the kinematic error function in step h. comprises a sub-step of estimating a gradient of the deviation in terms of the weighting coefficients (Xji7) of the kinematic error correction (<5qfee) and adding said gradient times a scalar factor (AXj7, Ai9ji7) to a vector formed by the weighting coefficients of the kinematic error correction. The method of claim 10 and claim 11 , wherein the scalar factor (AXt 7 , Ai9ji7) is increased if the change of direction of the gradient between successive iterations of step I) is below a given lower threshold and is decreased when the change of direction is above a given upper threshold.

13. A robotic system comprising

- a manipulator (1) having a proximal portion, a distal portion, a joint connecting (5j) said proximal and distal portions and a motor (9j) for driving rotation of the joint (5j) ,

- a measurement device (8j) for measuring a rotation angle of the motor (9j),

- a controller (12j) connected to the motor (9j) and to the measurement device (8j) for controlling at least the rotation angle of the motor (9j) based on input position commands,

- a trajectory generator (11) for outputting position commands,

- an acceleration sensor (7), preferably removably mounted, in the distal portion of the manipulator (1). 14. A computer-readable storage medium having stored thereon a plurality of instructions which, when executed by a processor (13), causes the processor to carry out at least steps d. to h. of the method according to any of claims 1 to 12.

Description:
Reducing kinematic error

The present invention relates to methods and apparatus for reducing kinematic error when controlling the movement of a joint in a robot manipulator.

A robot manipulator comprises a plurality of links, which are coupled to each other, to a base or to an end effector by rotatable joints. Rotation of such a joint is driven by a motor, typically via a reduction gear. Play and inaccuracy in the manufacture of the motors and gears affects the accuracy with which the position and the speed of an end effector at the distal end of the robot arm can be controlled. Harmonic drive gears are widely used as reduction gears in robots, since they are practically play-free, but inevitable inaccuracies, such as eccentricity of a gearwheel or spline, would still cause the rotation speed of a joint to fluctuate even if its motor could be driven at a perfectly constant speed, so that the position of the joint can deviate from what one would expect based knowing the position of the motor and the transmission ratio of the reduction gear. This deviation is commonly referred to as kinematic error or transmission error.

The object of the present invention is to provide simple and cost-efficient way of reducing kinematic error in a robot joint.

According to an aspect of the present invention, this object is achieved by a method for reducing kinematic error in a j-th joint between distal and proximal portions of a manipulator, the joint having associated to it a motor for driving rotation thereof, a measurement device for measuring a rotation angle of the motor, a controller connected to the motor and to the measurement device for controlling at least the rotation angle of the motor based on input position commands, and a trajectory generator for outputting position commands, the method comprising the steps of a. providing an acceleration sensor in the distal portion, b. selecting a trajectory to be followed by the acceleration sensor, c. estimating expected acceleration values to which the sensor is expected to be subject along said trajectory, d. outputting, by said trajectory generator, initial commands for moving the sensor along the trajectory, e. obtaining corrected commands by adding to a parameter specified in an initial command a kinematic error correction, and inputting the corrected position commands into the controller, f. recording acceleration values to which the sensor is subject while moving according to the corrected position commands g. judging whether a deviation between the expected acceleration values and the recorded acceleration values exceeds a predetermined threshold, and h. if the deviation is judged to exceed the threshold, modifying the kinematic error correction so as to reduce the deviation.

Since the kinematic error reflects inaccuracies of a specific joint, its correction should be determined individually for each joint based on a characterization thereof. However, precisely since it is the kinematic error which reflects the individual characteristics of each joint, the trajectory generator and the controller can be identical for all joints of manipulators manufactured in a same series. A robotic system to which the method of the invention is applied can therefore conveniently be manufactured in series; inaccuracies that are specific to individual specimens of the series can be compensated by implementing, in each joint of each specimen robotic system, an appropriate kinematic error correction. Therefore, once the kinematic error correction is known, compensation is easy and costefficient. Determination and implementation of the kinematic error correction can be done after assembly of each specimen robotic system by the manufacturer, or whenever a joint has been repaired or serviced.

The acceleration sensor doesn’t have to be provided permanently; since it is needed only for determination of the kinematic error, it can be removed after this has been accomplished, and can be re-used on a different manipulator. The method is therefore very cost-efficient when applied to manipulators manufactured in series; it can also be applied when carrying out maintenance or repair work on legacy manipulators that have no such sensor.

When the acceleration sensor has been mounted, it can be used to find kinematic error corrections for all joints between it and a stationary base of the manipulator. It therefore best placed at a distal end of the manipulator. Where the distal end comprises a gripper, the gripper can be used for holding the acceleration sensor while the method is being carried out.

When step e. is carried out for the first time, and the kinematic error is still unknown, the position commands received by the controller will be those output by the trajectory generator, so that deviations of the measured acceleration from its expected value are representative of the entire kinematic error. When step e. is repeated with a nonzero correction applied, residual deviations allow to judge whether the quality of the correction is sufficient, and, if necessary, to improve it. The commands mentioned above can be position commands in which the specified parameter is a position and speed commands, in which the specified parameter is a speed.

There are no specific limitations on the trajectory selected in step b., however, finding the kinematic error correction for the j-th joint is facilitated if the trajectory does not involve movements of other joints #= j of the manipulator but the one to which the kinematic error correction will be associated.

Estimating the expected acceleration can be quite simple; in fact when the selected trajectory is a constant speed rotation around an axis, the expected acceleration can be constant, or will have a component proportional to a circular function of the joint angle, caused by gravity. It is preferred, therefore, that at least part of the trajectory should be a constant speed rotation; when the range of rotation of the joint is limited, several rotations in alternating directions may combined in a trajectory defining an oscillating movement. In fact, the expected acceleration doesn’t even have to be calculated in advance; when the motor of the joint is controlled to rotate at a constant speed, the acceleration to which the sensor is subject at any particular instant can be expected to be the average of accelerations experienced before and after; i.e. the expected acceleration can be determined while moving the sensor along the selected trajectory by calculating a moving average of measured accelerations.

It has been observed that the kinematic error of a motor and reduction gear assembly can be approximated precisely by a sum of a small number of circular functions of different frequencies. Contributions from the motor and from an input shaft of the reduction gear, rotating at the same frequency as the motor, can be described by circular functions (i.e. sine or cosine functions) of integer multiples n of a rotation angle q mot j of the motor. When the reduction gear is a harmonic drive gear having a circular spline with i c teeth and a flexspline whose number of teeth if is slightly smaller than i c , the orientation of the wave generator driven by the motor and the flexspline becomes identical after every ly 7> rotations, causing / L C contributions to the kinematic error at m times the rotation frequency of the motor, where m is a small integer.

While in normal operation of the robot one would usually avoid trajectories that require the motor to operate at a resonance frequency of the robot arm, in order not to excite vibrations, in the method of the invention a speed for the trajectory is preferably chosen so that the motor frequency or a harmonic thereof is a resonance frequency, preferably the lowest resonance frequency, of the manipulator, since a vibration of the manipulator thus excited will yield a clearly detectable deviation between expected and actual acceleration values. Preferably, the speed is chosen so that the 2 nd harmonic of the motor frequency coincides with the resonance frequency.

An acceleration sensor will typically be sensitive to accelerations in all three directions of space. Since vibrations may occur in any direction, the amount of data to be processed can be reduced by combining the three components of a recorded or estimated acceleration vector into a single scalar quantity. This combining step can involve calculating the sum of squares of the three components of the vector, in order to obtain a scalar quantity that is invariant under rotation of the sensor.

The judgment step can be facilitated by performing a spectral analysis, e.g. a Fourier transform, (in terms of the motor rotation angle q mot j, preferably) of the recorded acceleration values. Here, the deviation can be regarded as excessive if any spectral component of the Fourier transform exceeds a predetermined threshold. Judgment can be based on just one such spectral component, preferably one whose frequency is twice the motor frequency, since this one is likely to be the strongest component in the Fourier transform.

When the kinematic error correction has been modified in step h., steps d. to g. should be repeated in order to find out whether the new kinematic error correction satisfies the threshold of step g. or whether, at least, the deviation of the new kinematic error correction is less than that of the old one.

Theoretically, the kinematic error function could be modified in step h. following a simple trial and error scheme, but in that case finding a satisfactory kinematic error function is likely to take a long time. Processing time can be shortened by estimating a gradient of the deviation in terms of the weighting coefficients of the kinematic error function and then adding said gradient times a scalar factor to a vector formed by the weighting coefficients of the kinematic error function.

When the vector formed by the weighting is close to optimum, the direction of gradients obtained in successive iterations of step I) can be expected to change more strongly from one iteration to the next than when the vector is still far from optimum. Therefore, the number of iterations needed to approach that optimum can be reduced by increasing the above-mentioned scalar factor when the change of direction is below a given lower threshold and by decreasing the scalar factor when the change of direction is above a given upper threshold.

The change of direction can be regarded as falling short of the lower threshold when there is no change of sign between components of successive gradients; it can be regarded as exceeding the upper threshold when at least one component changes its sign from one gradient to the next. According to an aspect of the present invention, the object is achieved by a robotic system comprising a manipulator having a proximal portion, a distal portion, a joint connecting said proximal and distal portions and a motor for driving rotation of the joint, a measurement device for measuring a rotation angle of the motor a controller connected to the motor and to the measurement device for controlling at least the rotation angle of the motor based on input position commands, a trajectory generator for outputting position commands, an acceleration sensor, preferably removably mounted, in the distal portion of the robot arm.

According to a further aspect, the object is achieved by a computer- readable storage medium having stored thereon a plurality of instructions which, when executed by a processor, cause the processor to carry out at least steps d. to h. of the method described above.

Further features and advantages of the invention will become apparent from the subsequent description of embodiments, referring to the appended drawings.

Fig.1 is a block diagram of a robotic system implementing the invention;

Fig. 2 is a perspective view of the manipulator of the system of Fig.

1 ;

Fig. 3 is a cross section of a harmonic drive gear; Fig. 4 is a pose assumed by the manipulator while carrying out the method for one of its joints; and

Fig. 5 is a pose assumed by the manipulator while carrying out the method for another of its joints.

Fig. 1 is a schematic view of a robot system comprising an articulated robot arm 1 and a controller 2, in which the method of the invention can be applied. The robot arm 1 , shown in more detail in Fig. 2, has a stationary base 3 fixed to a support, and a plurality of links 4j, j=1 , 6 rotatably connected to each other and to the base 3 by joints 5j. The joint 5s connecting links 44, 4s is concealed behind link 4s. Each joint 5j enables a rotation of the link 4j on its distal side by an axis 6j. Axis 61 is vertical, axes 62 and 63 are horizontal; the orientations of the other axes vary. Each joint 5j has a motor associated to it for driving its rotation; the motor can be provided in a member on the proximal side of the joint and be connected to a member on the distal side thereof, or vice versa. In the robot arm of Fig. 2, joints 5i , 62, 63 have their motors in members on their proximal side, i.e. in base 3 and links 4i , 4s, respectively; joints 63, 64 and 5s have the motors on their distal side, in links 4s, 44 and 4s, respectively.

The most distal link 4e has a tool replaceably mounted to it. The tool can be a three-dimensional acceleration sensor 7, or it can be a gripper holding such a sensor 7.

Motors 92, 93, 94 associated to joints 62, 63, 64 and harmonic drive gears IO2, IO3, IO4 connecting these motors to links 42, 42 and 4s, respectively, are shown in Fig. 1 . Each motor 9j has a resolver 8j associated to it as a measurement device for measuring the rotation angle q a * rm j of its output shaft. Controller 2 comprises a trajectory generator 11 for outputting, with an appropriate timing, position and speed commands to joint controllers 12j associated to a specific joint 5j as would be required for having the sensor 7 follow a predetermined trajectory assuming that the joints are free from kinematic error. Each joint controller 12j further has a kinematic error calculator 13j associated to it for superimposing a correction onto the commands output by the trajectory generator 11 , as will be explained in detail below.

Fig. 3 is a schematic cross section of a harmonic drive gear 10j. A wave generator 14 is rigidly coupled to an output shaft 15 of motor 9,; so as to rotate inside flexspline 16 and pressing its teeth into engagement with a circular spline 17 surrounding it. When the number of teeth of the circular spline 17 is i c and that of the flexspline 16 is if, the transmission ratio of the gear 10; is Since the flexspline 16 is rotating in a direction opposite to that of the wave generator 14, points of the two currently in contact will meet again after the wave generator 14 has rotated by 2n

In order to find the kinematic error of joints 5i or 54, the manipulator 1 is brought into a pose as shown in Fig. 4, where the axis 61 or 64 associated to the joint in question is vertical, and the gravity acceleration detected by sensor 7 does not vary while rotating around the axis at constant speed. Therefore, in step b. of the method of the invention, such a rotation is chosen as a trajectory in which to measure the acceleration of sensor 7. In the pose of Fig. 4, the joint 5i or 54 may carry out several revolutions without stopping while recording the acceleration detected by sensor 7. In laboratory coordinates, the direction of the centrifugal acceleration to which the sensor is subject should vary, but since the sensor 7 itself rotates, too, the acceleration is invariant in the sensor’s frame of reference. Thus, any fluctuations in the acceleration detected by sensor 7 can be attributed to imperfections of the motor 9i or 94 and its respective reduction gear 10i or 10 4 .

Axes 62 and 63 are always horizontal, so that while the sensor 7 is rotating around one of these axes, the direction of gravity acceleration will inevitably vary in the reference frame of the sensor 7. Since the harmonic drive gears IO2 and IO3 will have a reduction much smaller than 1, fluctuations of the acceleration whose frequency is only a small integer multiple of the motor rotation frequency or of R times the motor rotation frequency can be expected to originate from imperfections of the motors and the reduction gears. For measuring these, the manipulator can be brought into a pose as shown in Fig. 5, and swing back and forth around axis 62 or 63 at constant motor speed as far as possible while avoiding a collision of links of the manipulator 1 with each other or with a support, as shown by double- pointed arrows in Fig. 5.

In order to determine the kinematic error of e.g. joint 5j, trajectory generator 11 outputs a trajectory, in at least a section of which the motor 9j is controlled to rotate at a constant speed q mot j, while all other motors are standing still. The rotation frequency of the motor 9j in this section chosen equal to a resonance frequency of the manipulator 1, so that if there are fluctuations in the speed of the motor 9j or of the harmonic drive gear 10j driven by it, these can be expected to excite the vibration and thus produce an acceleration fluctuation that is clearly and easily detectable.

At least in the constant speed section of the trajectory, accelerations detected by sensor 7 are recorded. Although recording might be done separately for all three components y of the acceleration vector, it is convenient to record only its magnitude since then there is no need to bother about the orientation of the sensor 7 with respect to the distal link 4e to which it is mounted. When the trajectory is executed for the first time, and eventual imperfections of joint 5j are unknown, output of the kinematic error calculator 13j can be constantly zero, so that commands output by the trajectory generator 11 reach controller 12j unmodified, and the joint angle will not be exactly q arm j = Rq m otj > as would be expected when imperfections of motor 9j and gear 10j are left unconsidered, but can rather be written as k being an integer or an integer multiple of l e. if kinematic error calculator 13j applied corrections amounting to ("0 the ideal relationship q arm j = Rc lmotj would be satisfied.

Typically, the most important contributions to this sum are for and respectively. One might therefore approximate 8q ke assuming that its only two summands are these two. Alternatively, a spectrum analysis of the collected acceleration data can be carried out in order to identify the frequencies that make the most important contributions.

In the absence of a kinematic error, the acceleration measured by the sensor 7 should be constant while the joint 5i or joint 54 is rotating at constant speed starting from the pose of Fig. 4, or should vary in proportion to the sine or cosine of the arm angle i ©- at a practically negligible rate, when one of joints 52 and 5s is oscillating as shown in Fig. 5.

As a measure A of the quality with which the manipulator is controlled, the amount or square of a difference between a magnitude of the acceleration measured while moving and the magnitude expected at that time or position can be averaged or integrated over a trajectory portion in which the sensor is moved at a constant motor speed q mot j: wherein the expected acceleration a exp may be calculated based on the motor speed q mot j, the transmission ratio and the radius of sensor 7 relative to axis 6j, or may be derived by low-pass filtering one of a(q motJ ) o a(t) or obtaining some other form of moving average over an interval shorter than [qstart' Qendl or [t start ' tend!, respectively.

Alternatively, when a spectral analysis of the acceleration data a(q motJ ) has been carried out, a sum of amplitudes of the most important spectral components of the acceleration might be used for the same purpose. This analysis can be confined to a spectral range where such components can be expected to exist. When there is reasonable certainty, based e.g. on experimental evidence gained from a plurality of harmonic drive gears of identical design, that contributions at frequencies different from and are insignificant, the spectral analysis can be confined to a frequency range

The quality A is a function of the adaptable parameters A t j, in eq. (1) above. In order to optimize it, its gradient is determined by making a small change 5Aj i7 or 8-8 i} j to each one of these parameters in turn, having the trajectory generator 11 output the trajectory again while having kinematic error calculator 13j apply to it the corrections 8q ke , 8q ke that result from the changed parameter, re-measuring the accelerations and from the data thus obtained, calculating the quality or resulting from the parameter change. Thus, the gradient in the direction of A ifj is approximated as ( 2)

When varying amplitude parameters A ifj , care must be taken that these should be positive but small enough not to cause potentially harmful vibrations of the manipulator 1.

When the gradient has been determined for all parameters their values are updated according to (3) where step sizes AA i} j, may be different from those 8A if j used for determining the gradient.

Based on acceleration measurements obtained using the parameters A ifj , tit ] modified according to eq. (3), the quality A is re-calculated.

This process is repeated until either A has dropped below a predetermined threshold, a maximum number of iterations has been carried out or no notable changes of A have been observed over a certain number of iterations.

In the course of such iterations, the spectral composition of the acceleration measurements is likely to vary. If for each iteration the spectral composition of the acceleration measurements is determined and the most significant components k b i = 1, ...,M are selected to be compensated, the set of components k L may change from one iteration to the next, and compensation will proceed from more important components to less important ones in the course of the iterations, allowing to compensate a large number of parameters with limited effort.

The speed of convergence of the process can be increased by adapting the step widths j 7 , j 7 for a given spectral component If the sign of the

,. . . \ , . gradient sign for a given parameter A t i, or component is the same in two successive iterations, the step width is increased according to

Else it is decreased according to

When one of the above-mentioned conditions for terminating the process are fulfilled, the kinematic error calculator 13j is loaded with the values of At j, j obtained in the process, and will furthermore apply the kinematic error correction of eq. (1) applying these values to any position command output by trajectory generator 11 to its associated joint controller 12j.

The entire manipulator 1 is compensated by applying the above procedure successively to each of its joints 5j.

When all joints have been compensated, the sensor 7 is removed in order to be used on another manipulator. Reference numerals

1 manipulator

2 controller

3 base

4 link

5 joint

6 axis

7 acceleration sensor

8 resolver

9 motor

10 harmonic drive gear

11 trajectory generator

12 joint controller

13 kinematic error calculator

14 wave generator

15 output shaft

16 flexspline

17 circular spline