Reducing Kinematic Error

20250065499 · 2025-02-27

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for reducing kinematic error in a joint includes providing an acceleration sensor; selecting a trajectory to be followed by the acceleration sensor; estimating expected acceleration values the sensor will experience along the trajectory; outputting 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 commands into a joint controller; recording acceleration values to which the sensor is subject while moving according to the corrected 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.

Claims

1. A method for reducing kinematic error in a 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 joint 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: 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 the 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 corrected commands into the joint controller; f. recording acceleration values to which the sensor 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. when the deviation is judged to exceed the threshold, modifying the kinematic error correction so as to reduce the deviation.

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

3. The method of claim 1, 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.

4. The method of claim 1, wherein the kinematic error correction is a weighted sum at least of circular functions of integer multiples of the rotation angle of the motor.

5. The method of claim 4, wherein the joint further comprises a harmonic drive gear, wherein the kinematic error correction is a weighted sum also of circular functions of integer multiples of the rotation angle multiplied by i.sub.f/i.sub.c, wherein i.sub.f is the number of teeth of a flex-spline of the harmonic drive gear, and i.sub.c is the number of teeth of a circular spline thereof.

6. The method of claim 1, wherein in step b) a speed for the trajectory is chosen so that the motor frequency or a harmonic thereof is a resonance frequency of the manipulator.

7. The method of claim 1, wherein the expected acceleration values of step c. and/or the recorded acceleration values of step f. are vector quantities, and the judgment of step g. involves combining all three components of each vector quantity into a single scalar quantity.

8. The method of claim 1, of the preceding claims, wherein the judgment of step g. is based on a spectral analysis of the recorded acceleration values.

9. The method of claim 1, wherein the judgment of step g. is based on a spectral component of the recorded acceleration values whose frequency is twice the motor frequency.

10. The method of claim 1, wherein steps d. to g. are repeated when the kinematic error correction has been modified in step h.

11. The method of claim 10, 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 of the kinematic error correction and adding the gradient, times a scalar factor, to a vector formed by the weighting coefficients of the kinematic error correction.

12. The method of claim 11, wherein the scalar factor is increased if the change of direction of the gradient between successive iterations 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 having a proximal portion, a distal portion, a joint connecting the 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 a rotation angle of the motor based on input position commands; a trajectory generator for outputting position commands; and an acceleration sensor removably mounted on a distal portion of the manipulator.

Description

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

[0006] FIG. 1 is a block diagram of a robotic system in accordance with the disclosure.

[0007] FIG. 2 is a perspective view of the manipulator of the system of FIG. 1.

[0008] FIG. 3 is a cross section of a harmonic drive gear in accordance with the disclosure.

[0009] FIG. 4 is a pose assumed by the manipulator while carrying out the method in accordance with the disclosure for one of its joints.

[0010] FIG. 5 is a pose assumed by the manipulator while carrying out the method in accordance with the disclosure for another of its joints.

DETAILED DESCRIPTION OF THE INVENTION

[0011] 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 4.sub.j, where j=1 . . . 6, rotatably connected to each other and to the base 3 by joints 5.sub.j. The joint 5.sub.5 connecting links 4.sub.4, 4.sub.5, is concealed behind link 4.sub.5. Each joint 5.sub.j enables a rotation of the link 4.sub.j on its distal side by an axis 6.sub.j. Axis 6.sub.1 is vertical, axes 6.sub.2 and 6.sub.3 are horizontal; the orientations of the other axes vary. Each joint 5.sub.j has a motor associated with 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 5.sub.1, 5.sub.2, 5.sub.3 have their motors in members on their proximal side, i.e. in base 3 and links 4.sub.1, 4.sub.5, respectively; joints 5.sub.3, 5.sub.4 and 5.sub.5 have the motors on their distal side, in links 4.sub.3, 4.sub.4 and 4.sub.5, respectively.

[0012] The most distal link 4.sub.6 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.

[0013] Motors 9.sub.2, 9.sub.3, and 9.sub.4 associated to joints 5.sub.2, 5.sub.3, 5.sub.4 and harmonic drive gears 10.sub.2, 10.sub.3, and 10.sub.4 connecting these motors to links 4.sub.2, 4.sub.2 and 4.sub.3, respectively, are shown in FIG. 1. Each motor 9.sub.j has a resolver 8.sub.j associated to it as a measurement device for measuring the rotation angle q*.sub.arm,j of its output shaft.

[0014] Controller 2 comprises a trajectory generator 11 for outputting, with an appropriate timing, position and speed commands to joint controllers 12.sub.j associated to a specific joint 5.sub.j 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 12.sub.j further has a kinematic error calculator 13.sub.j associated to it for superimposing a correction onto the commands output by the trajectory generator 11, as will be explained in detail below.

[0015] FIG. 3 is a schematic cross section of a harmonic drive gear 10.sub.j. A wave generator 14 is rigidly coupled to an output shaft 15 of motor 9.sub.j; so as to rotate inside flex-spline 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.sub.c and that of the flex-spline 16 is i.sub.f, the transmission ratio of the gear 10.sub.i is

[00001] R = i f - i c i f .

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.sup.i.sup.f/i.sub.c.

[0016] In order to find the kinematic error of joints 5.sub.1 or 5.sub.4, the manipulator 1 is brought into a pose as shown in FIG. 4, where the axis 6.sub.1 or 6.sub.4 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 exemplary method described herein, 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 5.sub.1 or 5.sub.4 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 9.sub.1 or 9.sub.4 and its respective reduction gear 10.sub.1 or 10.sub.4.

[0017] Axes 6.sub.2 and 6.sub.3 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 10.sub.2 and 10.sub.3 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 6.sub.2 or 6.sub.3 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.

[0018] In order to determine the kinematic error of, e.g., joint 5.sub.j, trajectory generator 11 outputs a trajectory, in at least a section of which the motor 9.sub.j is controlled to rotate at a constant speed {dot over (q)}.sub.mot,j, while all other motors are standing still. The rotation frequency of the motor 9.sub.j 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 9.sub.j or of the harmonic drive gear 10.sub.j driven by it, these can be expected to excite the vibration and thus produce an acceleration fluctuation that is clearly and easily detectable.

[0019] 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 .sub.x, .sub.y, .sub.z of the acceleration vector, it is convenient to record only its magnitude a={square root over (a.sub.x.sup.2+a.sub.y.sup.2+a.sub.z.sup.2)} since then there is no need to bother about the orientation of the sensor 7 with respect to the distal link 4.sub.6 to which it is mounted.

[0020] When the trajectory is executed for the first time, and eventual imperfections of joint 5.sub.j are unknown, output of the kinematic error calculator 13.sub.j can be constantly zero, so that commands output by the trajectory generator 11 reach controller 12.sub.j unmodified, and the joint angle will not be exactly q.sub.arm,J=R.sub.qmot,J, as would be expected when imperfections of motor 9.sub.j and gear 10.sub.j are left unconsidered, but can rather be written as

[00002] q arm , j = Rq mot , j - .Math. i = 1 M A i , j sin ( k i , j q mot , j + i , j )

k being an integer or an integer multiple of i.sub.f/i.sub.c. I.e., if kinematic error calculator 13.sub.j applied corrections amounting to (equation 1):

[00003] q ke = .Math. i = 1 M A i , j sin ( k i q mot , j + i , j ) q ke = .Math. i = 1 M k i A i , j cos ( k i q mot , j + i , j )

the ideal relationship q.sub.arm,J=R.sub.qmot,j would be satisfied.

[0021] Typically, the most important contributions to this sum are for

[00004] k 1 = 2 i f i c

and k.sub.2=2, i.e. at frequencies

[00005] 2 i f i c q . mot , j 2 and q . mot , j 2

respectively. One might therefore approximate q.sub.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.

[0022] In the absence of a kinematic error, the acceleration measured by the sensor 7 should be constant while the joint 5.sub.1 or joint 5.sub.4 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 q.sub.arm, j, i.e. at a practically negligible rate when one of joints 5.sub.2 and 5.sub.3 is oscillating as shown in FIG. 5.

[0023] 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(q.sub.mot,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)}.sub.mot,j:

[00006] = q start q end .Math. "\[LeftBracketingBar]" a ( q mot , j ) - a exp .Math. "\[RightBracketingBar]" dq mot , j , = q start q end ( a ( q mot , j ) - a exp ) 2 dq mot , j , = t start t end .Math. "\[LeftBracketingBar]" a ( t ) - a exp .Math. "\[RightBracketingBar]" dt , or = t start q end ( a ( t ) - a exp ) 2 dt ,

wherein the expected acceleration .sub.exp may be calculated based on the motor speed {dot over (q)}.sub.mot,j, the transmission ratio and the radius of sensor 7 relative to axis 6.sub.j, or may be derived by low-pass filtering one of (q.sub.mot,j) or (t) or obtaining some other form of moving average over an interval shorter than [q.sub.start, q.sub.end] or [t.sub.start, t.sub.end], respectively.

[0024] Alternatively, when a spectral analysis of the acceleration data (q.sub.mot,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

[00007] k 1 = i f i c q . mot , j and k 2 = q . mot , j

are insignificant, the spectral analysis can be confined to a frequency range [k.sub.1, k.sub.2+].

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

[00008] A i , j = ( A i , j , i , j + A i , j ) - ( A i , j , i , j ) A i , j i , j = ( A i , j , i , j + i , j ) - ( A i , j , i , j ) i , j

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

[0027] When the gradient has been determined for all parameters A.sub.i,j, .sub.i,j, their values are updated according to (equation 3):

[00009] A i , j : = A i , j - sign ( A i , j ) A i , j i , j : = i , j - sign ( i , j ) i , j

where step sizes A.sub.i,j, .sub.i,j may be different from those A.sub.i,j used for determining the gradient.

[0028] Based on acceleration measurements obtained using the parameters A.sub.i,j, .sub.i,j, modified according to eq. (3), the quality is re-calculated.

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

[0030] 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.sub.i, i=1 . . . M are selected to be compensated, the set of components k.sub.i 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.

[0031] The speed of convergence of the process can be increased by adapting the step widths A.sub.i,j, .sub.i,j for a given spectral component k.sub.i. If the sign of the gradient sign

[00010] ( A i , j )

or sign

[00011] ( i , j )

for a given parameter A.sub.i,j, or .sub.i,j component is the same in two successive iterations, the step width is increased according to

[00012] A i , j : = + A i , j i , j : = + i , j , + > 1.

else it is decreased according to

[00013] A i , j : = - A i , j i , j : = - i , j

[0032] When one of the above-mentioned conditions for terminating the process are fulfilled, the kinematic error calculator 13.sub.j is loaded with the values of A.sub.i,j, .sub.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 12.sub.j.

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

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

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

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

[0037] Where the distal end comprises a gripper, the gripper can be used for holding the acceleration sensor while the method is being carried out.

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

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

[0040] 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 jointsj of the manipulator but the one to which the kinematic error correction will be associated.

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

[0042] It has been observed that the kinematic error of a motor and reduction gear

[0043] 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.sub.mot,j of the motor.

[0044] When the reduction gear is a harmonic drive gear having a circular spline with i.sub.c teeth and a flex-spline whose number of teeth i.sub.f is slightly smaller than i.sub.c, the orientation of the wave generator driven by the motor and the flex-spline becomes identical after every i.sub.f/i.sub.c rotations, causing contributions to the kinematic error at m i.sub.f/i.sub.c times the rotation frequency of the motor, where m is a small integer.

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

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

[0047] The judgment step can be facilitated by performing a spectral analysis, e.g., a Fourier transform, (in terms of the motor rotation angle q.sub.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.

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

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

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

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

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

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

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

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

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

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

REFERENCE NUMERALS

[0058] 1 manipulator [0059] 2 controller [0060] 3 base [0061] 4 link [0062] 5 joint [0063] 6 axis [0064] 7 acceleration sensor [0065] 8 resolver [0066] 9 motor [0067] 10 harmonic drive gear [0068] 11 trajectory generator [0069] 12 joint controller [0070] 13 kinematic error calculator [0071] 14 wave generator [0072] 15 output shaft [0073] 16 flex-spline [0074] 17 circular spline