The present disclosure generally relates to systems and methods 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.
Systems and methods described through the embodiments presented herein provide simple and cost-efficient way of reducing kinematic error in a robot joint. According to an aspect of the present disclosure, 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 providing an acceleration sensor in the distal portion, selecting a trajectory to be followed by the acceleration sensor, estimating expected acceleration values to which the sensor is expected to be subject along said trajectory, outputting, by said trajectory generator, initial commands for moving the sensor along the trajectory, 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, recording acceleration values to which the sensor is subject while moving according to the corrected position commands, judging whether a deviation between the expected acceleration values and the recorded acceleration values exceeds a predetermined threshold, and when 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 cost efficient. 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 most distal link 46 has a tool releasably 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, and 94 associated to joints 52, 53, 54 and harmonic drive gears 102, 103, and 104 connecting these motors to links 42, 42 and 43, respectively, are shown in
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.
Since the flex-spline 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 2πi
In order to find the kinematic error of joints 51 or 54, the manipulator 1 is brought into a pose as shown in
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 102 and 103 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
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 {dot over (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 αx, αy, αz of the acceleration vector, it is convenient to record only its magnitude a=√{square root over (ax2+ay2+az2)} since then there is no need to bother about the orientation of the sensor 7 with respect to the distal link 46 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 qarm,J=Rqmot,J, 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 if/ic. I.e., if kinematic error calculator 13j applied corrections amounting to (equation 1):
the ideal relationship qarm,J=Rqmot,j would be satisfied.
Typically, the most important contributions to this sum are for
and k2=2, i.e. at frequencies
respectively. One might therefore approximate δqke 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 51 or joint 54 is rotating at constant speed starting from the pose of
As a measure A of the quality with which the manipulator is controlled, the amount or square of a difference between a magnitude a(t) or a(qmot,j) 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 {dot over (q)}mot,j:
wherein the expected acceleration αexp may be calculated based on the motor speed {dot over (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 α(qmot,j) or α(t) or obtaining some other form of moving average over an interval shorter than [qstart, qend] or [tstart, tend], respectively.
Alternatively, when a spectral analysis of the acceleration data α(qmot,j) 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, for example, on experimental evidence gained from a plurality of harmonic drive gears of identical design, that contributions at frequencies different from
are insignificant, the spectral analysis can be confined to a frequency range [k1−ε, k2+ε].
The quality Λ is a function of the adaptable parameters Ai,j, ϑi,j in eq. (1) above. In order to optimize it, its gradient is determined by making a small change δAi,j or δϑ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 δqke, δ{dot over (q)}ke that result from the changed parameter, re-measuring the accelerations and from the data thus obtained, calculating the quality Λ(Ai,j, ϑi,j+δAi,j) or resulting from the parameter change. Thus, the gradient in the direction of Ai,j is approximated as (equation 2):
When varying amplitude parameters Ai,j, 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 Ai,j, ϑi,j, their values are updated according to (equation 3):
where step sizes ΔAi,j, Δϑi,j may be different from those δAi,j used for determining the gradient.
Based on acceleration measurements obtained using the parameters Ai,j, ϑi,j, modified according to eq. (3), the quality Λ is re-calculated.
This process is repeated until either Λ has dropped below a predetermined threshold, a maximum number of iterations has been carried out or no notable changes of Λ 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 ki, i=1 . . . M are selected to be compensated, the set of components ki 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 ΔAi,j, Δϑi,j for a given spectral component ki. If the sign of the gradient sign
or sign
for a given parameter Ai,j, or ϑi,j 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 Ai,j, ϑi,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.
In the present disclosure, 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 a step 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 the step 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 qmot,j of the motor.
When the reduction gear is a harmonic drive gear having a circular spline with ic teeth and a flex-spline whose number of teeth if is slightly smaller than ic, the orientation of the wave generator driven by the motor and the flex-spline becomes identical after every if/ic rotations, causing contributions to the kinematic error at m if/ic 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 2nd 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 qmot,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 disclosure, a robotic system can include 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.
All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.
The use of the terms “a” and “an” and “the” and “at least one” and similar referents in the context of describing the invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The use of the term “at least one” followed by a list of one or more items (for example, “at least one of A and B”) is to be construed to mean one item selected from the listed items (A or B) or any combination of two or more of the listed items (A and B), unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate the invention and does not pose a limitation on the scope of the invention unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention.
Preferred embodiments of this invention are described herein, including the best mode known to the inventors for carrying out the invention. Variations of those preferred embodiments may become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventors expect skilled artisans to employ such variations as appropriate, and the inventors intend for the invention to be practiced otherwise than as specifically described herein. Accordingly, this invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.
The instant application claims priority to International Patent Application No. PCT/EP2022/063353, filed May 17, 2022, which is incorporated herein in its entirety by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP2022/063353 | May 2022 | WO |
Child | 18948695 | US |