The present disclosure generally 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 present disclosure generally describes a 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 mounted in one of said portions and coupled to the other one of said portions for driving rotation of the distal portion relative to the proximal portion by a reduction gear, the method comprising the steps of providing a kinematic correction generator which is programmable using a parameter vector and outputting, based on said parameter vector and a position input, a kinematic correction which is a sum of at least one sinusoid having a frequency which is a frequency of rotation of the motor or of a periodic event in the reduction gear occurring at a higher frequency than the rotation of the distal portion, or an integer multiple thereof, and an amplitude and a phase defined by said parameter vector; outputting to the motor a first drive control signal specifying a motor speed which is a sum of a standard speed and a first kinematic correction output by the kinematic correction generator based on the first parameter vector; extracting, from an evaluation signal received from the joint in response to the first drive control signal, at least one frequency component having the frequency of the at least one sinusoid, and determining a first feedback vector defining a first feedback amplitude and a first feedback phase of said frequency component; outputting to the motor a second drive control signal specifying a motor speed which is a sum of the standard speed and a second kinematic correction output by the kinematic correction generator based on the second parameter vector; extracting, from an evaluation signal received from the joint in response to the second drive control signal, a frequency component having the frequency of the at least one sinusoid, and determining a second feedback vector defining a second feedback amplitude and a second feedback phase of said frequency component; subtracting said first feedback vector from said second feedback vector to obtain a feedback difference vector; finding a transformation which transforms said feedback difference vector into a difference between second and first parameter vectors; applying the transformation to the first feedback vector to obtain a third parameter vector; and programming the kinematic correction generator using the third parameter vector.
Motors 92, 93, 94 associated to joints 52, 53, 54 and reduction gears 102, 103, 104 connecting these motors to links 42, 42 and 43, respectively, are shown in
The reduction gear 10j is a harmonic gear, shown in cross section in
Since the flexspline is 18 rotating in a direction opposite to that of the wave generator 16, points of the two currently in contact will meet again after the wave generator 16 has rotated by 2πif/ic, slightly less than a complete turn.
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 a reference point of link 46 or of the tool mounted to it follow a predetermined trajectory assuming that the joints are free from kinematic error. Each joint controller 12j further has associated to it a kinematic error calculator 13j for calculating a kinematic error correction δqke, δ{dot over (q)}ke and adders 14j, 15j for superimposing the kinematic error correction onto the commands qmot,j, {dot over (q)}mot,j output by the trajectory generator 11, and providing corrected commands {circumflex over (q)}mot,j=qmot,j+δqke, {circumflex over ({dot over (q)})}mot,j={dot over (q)}mot,j+δ{dot over (q)}ke as will be explained in detail below.
The method of the invention can be carried out for each joint 5j at a time.
In a first step of the method of the invention (S1, see
A rotation speed {dot over (q)}mot,j for motor 9j is set (S2), and trajectory generator 11 controls a rotation around axis 6j at nominally constant speed by outputting angle commands qmot,j to motor 9j that have a constant rate of change {dot over (q)}mot,j.
In step 3, while the joint 5j is being rotated at the speed set in step S2, imperfections of the motor 9j and the reduction gear 10j cause the current detected by sensor 7j to fluctuate. A measure Fi of this fluctuation, e.g., a standard deviation of currents measured while carrying out the rotation, is recorded (S4).
If in step S5, Fi-Fi-1 is found to be positive, and |Δ{dot over (q)}mot,j| is above a pre-determined threshold, i is incremented and {dot over (q)}mot,j is incremented by Δ{dot over (q)} in step S6, and the method returns to step S3. If Fi-Fi-1 is found to be negative, Δ{dot over (q)} is multiplied by a factor ε between 0 and −1 (S7) before proceeding to step S6. When successive multiplications by ε have caused Δ{dot over (q)} to drop below the threshold, the amount F of fluctuation has reached a maximum, and it can be assumed that {dot over (q)}mot,j is the critical speed of joint 5j.
Each time step S3 is executed, a series of motor positions and associated torque data Imot from sensor 7j are recorded. The last one of these series, comprising N pairs of measurement values τmot1, τmot2, . . . , τmotN and motor or arm positions at which these were obtained is retained for evaluation. The positions may be taken from commands qmot,j1, qmot,j2, . . . , qmot,jN of the trajectory generator, preferably they are derived from readings qarm,j* from resolver 8j taken simultaneously with the torque measurement values.
Optionally, a spectral analysis of this series may be carried out in order to find out the frequency components that provide the largest contribution to the fluctuation of the torque data. Else it may simply be assumed that components which have been found to provide an important contribution in other manipulators will do so here, too.
In step S9, a sum of sinusoids Σi=1MAi,j sin (kiqmot,j+ϑi,j) of M harmonics is fitted to the N collected data points with solving b=Θp for the parameter vector p with
wherein ki, i=1, . . . , M refers to the important frequency components mentioned above. If it is known that the most important frequency components are e.g. at twice the rotation frequency of the motor 9j and at 2*if/ic times the rotation frequency of the motor 9j, we may set M=2, k2=2 for the second harmonic of the motor rotation and k1=2if/ic for a nearby contribution of the harmonic gear. The parameter vector p, referred to below as the feedback parameter vector, contains a sine and cosine value AS,i, AC,i for each frequency component (which is equivalent to characterizing the component by an amplitude and a phase) and a constant offset C to handle a constant bias.
If the joint is subject to position-dependent gravity load (as is the case for joint 52 in
In step S10, a second parameter vector
is arbitrarily defined, and is
transmitted to kinematic error calculator 13j, thereby enabling it to output a kinematic error compensation
wherein A′i,j=√{square root over (A′S,i2+A′C,i2 )}and ϑ′i,j=tan−1(A′C,i/A′S,i), when qmot,j is the motor angle output by trajectory generator 11. In step S11, another rotation around axis 6j is carried out, in which the motor receives commands qmot,j, {dot over (q)}mot,j to which compensations δqke(qmot,j), δ{dot over (q)}ke(qmot,j) have been added in adders 14j, 15j. Torque data b′=(τ′mot1, τ′mot2, . . . , τ′motN)T resulting therefrom are collected, and are evaluated (S12) as described above in steps S8, S9 for torque data b, whereby a second feedback parameter vector {tilde over (p)}=[{tilde over (C)} ÃS,1 ÃC,1 . . . ÃC,;]T is obtained.
Processing of these data (S12) is described referring to
where ĀS,i=ÃS,i−AS,i and ĀC,i=ÃC,i−AC,i. I.e. βi and gi are parameters of a transformation that would transform components p′i of
This parameter vector p″ is transmitted to kinematic error calculator 13j in step S13, so as to cause it, in the future, to calculate the kinematic error correction by inserting components of p″ in eq. (2).
This process is carried out for one joint after the other. When afterwards (S14) the controller 2 enters production mode with all kinematic error calculator 13j, applying the correction of eq. 2, speed fluctuations of the reference point due to imperfections of the reduction gears 10j are substantially cancelled.
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 mounted in one of said portions and coupled to the other one of said portions for driving rotation of the distal portion relative to the proximal portion by a reduction gear, the method comprising the steps of:
In a preferred embodiment, the above processing is simplified by choosing the first parameter vector to define an amplitude of the at least one sinusoid to be zero. The sinusoid can be defined as a weighted sum of sine and cosine functions; in that case weighting coefficients of both would have to be zero. Alternatively it can be defined as a sine or cosine function having an amplitude and a phase; when the amplitude is zero here, the phase has no physical significance and can be assigned any value.
In order to facilitate processing of the evaluation signal, the standard speed should be constant or, at least, substantially constant.
The standard speed can be regarded as substantially constant if effects of external forces acting on the distal portion on the evaluation signal, due e.g. to the weight of the distal portion driving or opposing the movement of the distal portion, can be suppressed by high-pass filtering the evaluation signal. Due to the reduction gear, the speed of rotation of the motor will be much higher than that of the joint. Since the external forces are usually proportional to a sinusoid of the joint angle, these can be suppressed by setting a cutoff frequency lower than the motor frequency and higher than the motor frequency multiplied with the reduction ratio of the reduction gear.
The standard speed or a harmonic thereof should correspond to a resonance frequency of the manipulator, i.e. the motor frequency needed to drive the distal portion at the standard speed or a harmonic thereof, preferably the second harmonic, should equal the resonance frequency.
This speed doesn't have no be known in advance; rather, finding it can be a preparatory step of the method of the invention. Specifically, in a preparatory stage of the method, the distal portion can be controlled to rotate at various speeds, and the speed where vibration of the manipulator is strongest can be chosen as the standard speed.
It can be assumed that a robot controller is trying to find the critical speed when a same movement of the distal portion is carried out repeatedly at different speeds, the speed changing from one iteration to the next, and the speed difference between successive iterations occasionally changing its sign, and/or the amount of the speed difference decreasing on each change of sign.
Since the moment of inertia of the manipulator or of parts of it is variable depending on configuration, and for the method of the invention it is desirable to have a low critical speed, the distal portion can be controlled to assume a configuration in which its moment of inertia is maximized, and which should be maintained while the method is carried out.
The evaluation signal can represent any measurable quantity that is susceptible to fluctuate due to an imperfection of the motor or the reduction gear. It could be the speed of rotation of the distal member itself, as measured e.g. by a dedicated angle sensor built into the manipulator for measuring rotation of the joint on a downstream side of the reduction gear, a laser scanner or other optical sensing means for observing the manipulator from outside, or the like. According to a preferred embodiment, the evaluation signal is representative of motor torque, since suitable sensing circuitry exists in many legacy manipulators, so that when the method of the invention makes use of this circuitry, it can be implemented in such manipulators by a control software update.
When a harmonic drive gear is used as a reduction gear, its wave generator will usually be connected to the motor output shaft, whereas its flex-spline is connected to the output shaft of the reduction gear, and the circular spline is fixed. When the number of teeth of the circular spline is ic, and that of the flexspline is if, the orientation of the wave generator relative to the flexspline becomes identical after every if/ic rotations of the wave generator ant the motor output shaft, causing contributions to the kinematic error at m if/ic times the rotation frequency of the motor, where m is a small integer. Since is if is slightly smaller than ic, contributions of the flex-spline and the circular spline to the kinematic error tend to have frequencies that differ slightly from those of the motor and the wave generator.
Experiments have shown that for most harmonic drive gears the most important contribution of the flex-spline and the circular spline is at is 2if/ic times the rotation frequency.
In order to take account of various sources contributing to the kinematic error, in most practical cases the kinematic correction will be a sum of two or more sinusoids.
The kinematic correction generator can best be provided by programming a processor to operate as such, in particular by updating a control processor of a legacy manipulator to enable it to operate as the kinematic correction generator, or by updating the third parameter vector whenever maintenance or repair work has been carried out at the corresponding joint.
According to another 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, and a controller connected to the motor and adapted to carry out at least steps b. to i. of the method described above.
According to a further aspect, the object is achieved by a computer software product comprising a plurality of instructions which, when executed by a processor, cause the processor to carry out at least steps b. to i. of the method described above.
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/063355, filed May 17, 2022, which is incorporated herein in its entirety by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP2022/063355 | May 2022 | WO |
Child | 18948884 | US |