A robot comprising: a base; an articulated arm extending distally of the base and including two arm members coupled by a joint; a motor; a gearbox having an input shaft coupled to an output of the motor and an output shaft configured to drive relative motion of the arm members about the joint; a position sensor configured to sense relative position of the arm members about the joint; and a control system coupled to the arm configured to drive the motor, the control system being arranged to perform a calibration operation to estimate torque loss in the gearbox by the steps of (i) estimating the inertia of the portion of the arm distal of the joint for motion about the joint; (ii) applying a determined drive power to the motor; (iii) receiving from the position sensor position data indicating the motion of the arm in response to the applied drive power; and (iv) estimating the torque loss in the gearbox in dependence on the estimated inertia, the determined drive power and the position data.
|
20. A method for estimating a torque on a robot comprising a base; an articulated arm extending distally of the base and including two arm members coupled by a joint; a motor; a gearbox mounted to one of the arm members having an input shaft coupled to an output of the motor and an output shaft configured to drive relative motion of the arm members about the joint; a torque sensor at the joint configured to sense a torque applied between the output shaft of the gearbox and the other of the arm members;
the method estimating a torque applied on the joint due to external forces on the arm by (i) estimating the torque applied by the motor; (ii) receiving, from the torque sensor, torque data indicating the torque applied between the output shaft of the gearbox and the other of the arm members; and (iii) estimating the torque applied on the joint due to external forces on the arm in dependence on a torque loss in the gearbox, the estimated torque applied by the motor and the torque data.
1. A robot comprising:
a base;
an articulated arm extending distally of the base and including two arm members coupled by a joint;
a motor;
a gearbox mounted to one of the arm members having an input shaft coupled to an output of the motor and an output shaft configured to drive relative motion of the arm members about the joint;
a torque sensor at the joint configured to sense a torque applied between the output shaft of the gearbox and the other of the arm members; and
a control system coupled to the arm configured to drive the motor, the control system being arranged to estimate a torque applied on the joint due to external forces on the arm by (i) estimating the torque applied by the motor; (ii) receiving, from the torque sensor, torque data indicating the torque applied between the output shaft of the gearbox and the other of the arm members; and (iii) estimating the torque applied on the joint due to external forces on the arm in dependence on a torque loss in the gearbox, the estimated torque applied by the motor and the torque data.
2. A robot as claimed in
3. A robot as claimed in
4. A robot as claimed in
5. A robot as claimed in
6. A robot as claimed in
7. A robot as claimed in
8. A robot as claimed in
9. A robot as claimed in
10. A robot as claimed in
11. A robot as claimed in
12. A robot as claimed in
13. A robot as claimed in
14. A robot as claimed in
15. A robot as claimed in
16. A robot as claimed in
17. A robot as claimed in
18. A robot as claimed in
|
This application is a continuation of U.S. application Ser. No. 15/373,650, filed Dec. 9, 2016, and which claims priority to United Kingdom Application No. 1521815.9, filed Dec. 10, 2015, both which are each hereby incorporated herein by reference in their entireties.
This invention relates to characterising the performance of a robot.
A typical robot arm comprises a number of rigid limbs, each of which is connected to the next by an articulation which may, for example, be a revolute joint. A motor or other drive mechanism is provided to drive relative motion of the limbs at each joint.
The control processor may be required to control the joint to move into a desired configuration at a particular time. To achieve this the control processor needs to apply an appropriate amount of power to the motor. The power required depends on the inertia of the portion of the arm distal of the joint 1, the distance to be moved and the time over which the movement is to take place. The control processor may be capable of determining these in a known way. Additionally, however, the power required depends on the efficiency of the mechanical linkage between the motor 5 and the drive gear, involving the gearbox 7 and the transmission from the worm 8 to the drive gear 9. This mechanical efficiency is dependent on the meshing adjustment of the gearbox, the level of wear of the gearbox, which will vary over time, and the performance of any lubricant in the drivetrain. If the efficiency of the gearbox is not known then the aim can still be driven to the desired configuration using closed-loop control based on the output of position encoder 11. However, the arm may overshoot the desired configuration and have to be brought back, or fail to reach the desired position by the required time. Failures of the first type are especially important when the arm is part of a surgical robot because they may result in tissue of a patient being unnecessarily disrupted.
Another form of difficulty arises when the torque sensor is being used to sense the torque being applied on the joint 1 by an external force, such as gravity, at the same time as the distal limb is being driven by the motor 5. A torque will be measured about the joint. Part of that torque will be due to the external force and part will be due to the torque applied by the motor. Without knowing the performance of the gearbox 7 it is difficult to estimate the external torque. This may be problematic if the control strategy of the arm is dependent on an estimate of the externally applied torque.
It would be possible to measure the efficiency of the gearbox by providing an additional torque sensor at the input to the gearbox. However, this adds weight, cost and complexity to the arm.
Another alternative would be to remove the gearbox from the aim and measure its losses, but that is time-consuming and can only be undertaken when the arm is not in use.
There is a need for an improved method for estimating the efficiency of a mechanical linkage in a robot drivetrain.
According to one aspect there is provided a robot as set out in accompanying claims 1 to 13. According to a second aspect there is provided a method for calibrating a robot as set out in accompanying claim 14.
The steps described above may be performed in other orders.
Once the loss in the gearbox has been estimated as described above, the control system may cause the arm to move at a desired rate by determining a power to be applied to the motor. That power may be determined in dependence on the estimated loss. The power may be determined so as to overcome that loss.
The present invention will now be described by way of example with reference to the accompanying drawings.
In the drawings:
In the arrangement of
The robot arm of
The arm has eight joints 30-37 by which the instrument can be moved, providing the arm with redundant freedom of motion. As a result of this redundancy the arm is able to adopt multiple different configurations whilst the instrument remains at a particular position.
The control unit 41 comprises a processor 42 and a memory 43. The memory 43 stores in a non-transient way program code that is executable by the processor 42 so as to cause the processor to perform the functions described herein. The processor is coupled to the arm by a cable 40 to (i) receive signals from the position and torque sensors 60, 59 (via cables 61, 62) and from corresponding sensors on the other joints of the arm; and (ii) transmit signals to drive motor 51 (via cable 50) and the motors associated with the other joints of the arm. The control unit 41 is also coupled to an operator station which has a display unit 44 for displaying data on the state of the arm and a user input device 45 whereby an operator can issue commands to control the operation of the arm. The processor receives the signals from the position and torque sensors and from the user input device. It executes code stored in memory 43 and, in dependence on the received signals, forms output signals to drive the operation of the motors of the arm. For example, if the user manipulates the user input device so as to signal that, the instrument 29 should move upwards, that may result in the control unit 41 driving motor 51 to cause arm member 25 to rotate upwards. The user input device may be capable of providing force feedback to an operator to indicate the amount of resistance being experienced by the arm to a motion being commanded by the operator.
The arm member 24, 25 are coupled together by bearings which define the axis of the joint.
The torque sensor 59 is mounted between drive gear 57 and the body of arm member 25. The torque sensor measures the torque being applied between the arm member and the gear about axis 58. Numerous designs of torque sensor are available and could be used for this application. The torque sensor could, for example, be constituted by a strain gauge mounted between drive gear 57 and arm member 25 and calibrated to provide an output representative of the torque between them. The torque sensor provides an electrical output signal at 61 indicative of the sensed torque.
A position sensor 60 is located to measure the relative position of the arm members 24, 25 about axis 58. Numerous designs of position sensor are available and could be used for this application. The position sensor could, for example, be constituted by a magnetic sensor attached to one of arm members 24, 25 which counts the passage of magnetic elements attached to the other of the arm members. The position sensor provides an electrical output signal at 62 indicative of the sensed position.
Various modes of operation of the arm will now be described.
When the arm is stationary, or is moving at a constant rate about joint 33, the torque (TS) sensed by the torque sensor 60 depends on the torque (TM) applied by the motor 51, the gear ratio (G) of the gearbox 53, the torque loss (TL) in the gearbox 53, the torque (TG) applied on the joint 33 as a result of the effect of gravity on the arm distal of the joint 33 and the torque (TF) due to other forces acting on the arm distal of the joint 33. The relationship between these can be modelled in advance, and may be of the form:
TS=(TM·G−TL)+TG+TF
The loss behaviour of the gearbox depends on its construction. The torque loss in the gearbox may be substantially constant with load and/or speed, or it may vary in dependence on those or other factors. With this in mind, TL may be taken to be constant or non-constant. TL may be modelled as a function of other variables, including TM, depending on the general performance of the gearbox that is being used.
In a first operational mode, the processor 42 estimates the torque TF due to external forces on the arm, and uses that for one or both of (a) generating force feedback to an operator in dependence on the estimated torque and (b) generating drive signals to the arm so that the arm can either resist or move in the same direction as the applied torque. Motion of the latter sense can give the arm the impression of being compliant in response to externally applied threes even though the joints of the arm might not be back-drivable.
To estimate TF when the arm is in use the processor 42 can take the following approach. The control unit 41 knows the power that it is supplying to motor 51, and can estimate TM from a model of the motor's performance stored in non-transient form in memory 43. The processor knows the configuration or pose of the arm from the data provided by the position sensors at each of the joints. The memory 43 stores data indicating the masses and centres of gravity of the various components of the arm and the instrument 29. The processor can estimate TG from the positional configuration information together with the stored mass and centre of gravity information. The processor is provided with TS from sensor 59. The value of G will be fixed for a constant-ratio gearbox and can be stored in the memory 43; or in the case of a variable-ratio gearbox, determined from a sensor that indicates the current gearbox state. If TL is known, or can be estimated, then the processor can estimate TF using the relationship given above.
In a second operational mode the processor can control the arm to estimate TL. Once estimated, the value of TL, or the function describing it, can be used to derive values of TF in real time, for the reasons described above.
A first method to estimate TL is for the processor 42 to apply a known drive power to the motor 51 when the part of the arm distal of joint 33 is not under an external load other than gravity, and to measure the resulting torque at sensor 59. In this situation TF is zero, and so TL can be derived from the relationship given above. In this calibration mode if the amount that the arm is moved during the calibration is small then TG can be read from the torque sensor when the arm is stationary prior to the estimation process. Alternatively, TG can be estimated from the pose of the arm and the mass distribution data stored in the memory 43.
In a second method for estimating TL, again the processor 42 applies a known drive power to the motor 51 when the part of the arm distal of joint 33 is not under external load other than gravity. In this method, the processor estimates the inertia about joint 33 of the part of the arm distal of joint 33. This can be done from the arm pose as sensed by the position sensors at the various joints, and knowledge of the mass distribution of the part of the arm distal of joint 33 as indicated by data stored in memory 43. The energy applied to the motor will cause motion about joint 33. The processor estimates the angular acceleration of the part of the arm distal of joint 33 about joint 33. That angular acceleration can be estimated by the processor 42 calculating the second differential of the output of the position sensor 60. This allows the processor to estimate the torque applied to the arm as the product of the inertia and angular acceleration. The applied torque can be taken to be equal to TM·G−TL. TM and G can be determined as described above, and hence TL can be estimated. This approach can be used even if there is no torque sensor at joint 33. Furthermore, even if there is a torque sensor at joint 33 this method avoids the need to correct for any static torque on the torque sensor prior to the estimation operation.
TL may in some circumstances vary whilst the robot is in operation. This may, for example, be due to an increase in the temperature of the gearbox reducing the viscosity of the gearbox lubricant as the robot is used. The estimation methods described above may be performed during an initialisation procedure, or during a pause in a procedure that is being performed by the robot. If the methods are performed during a procedure then it is possible that an instrument carried by the arm is in use: for example inserted in an incision in a patient. If the arm has sufficient degrees of freedom it is possible for the arm to be moved to a different pose whilst the instrument remains at the same location, by virtue of the distal part of the arm to which the instrument is attached remaining in the same location and in the same orientation.
In order to accurately estimate the inertia of, or the torque imposed by, the part of the arm distal of joint 33 it may be useful for the processor 42 to know the mass of the instrument 29 and its mass distribution with respect to its mounting point to the arm. The processor may know which instrument is attached to the arm by means of a communication interface built into the attachment mechanism between the arm and the instrument. The instrument may comprise an identifier which is detectable by the attachment, and the attachment may then signal the processor 42 with the type or identity of the tool. The processor may store a database of available tools and the masses and mass distributions of each. In this way the processor can calculate the inertia or gravitational torque from the distal part of the aim together with the instrument currently borne by the arm.
Another way to estimate the inertia of the portion of the arm distal of the joint 33, together with any instrument, is to supply known power to the motor to drive motion at the joint in opposite directions in succession. In one direction gravity will be opposing the motion as driven by the motor, and in the other direction gravity will be supporting the motion as driven by the motor. The effect of gravity can be compensated for by considering the difference between the acceleration of the arm about the joint in the two directions.
Depending on the constraints on the positioning of the arm, it may be possible to remove the effect of gravity on the torque at the joint by moving the arm to a position where the rotation axis of the joint is vertical. This position may be identified by moving the joint(s) of the arm proximal of the joint 33 to a particular position. The position may be identified from the position sensors of the joints proximal of the joint 33, or by the static torque measured by the torque sensor 59 at joint 33 reaching zero.
Although the process of estimating gearbox losses has been described above in relation to one joint of the arm, it may be applied to any joint of the arm. It may conveniently be applied to each joint in turn during a start-up routine, so as to characterise gearbox losses in each gearbox of the arm in turn.
In the example given above joint 33 is a revolute joint. The joint whose gearbox losses are estimated could offer motion of another sense, for example linear, cylindrical or spherical motion.
If the arm is a surgical arm the instrument provided at its distal end is conveniently a surgical instrument. The arm may be an arm intended for other purposes than surgery. For example, the arm may be intended for manufacturing or materials processing purposes.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that aspects of the present invention may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4989161, | Feb 27 1987 | Kabushiki Kaisha Toshiba | Control unit for a multi-degree-of freedom manipulator |
5828813, | Sep 07 1995 | California Institute of Technology | Six axis force feedback input device |
6646405, | Mar 10 2000 | IOWA STATE UNIVERSITY RESEARCH FOUNDATION, INC | System and method for using joint torque feedback to prevent oscillation in a flexible robotic manipulator |
20010045807, | |||
20050183532, | |||
20110283825, | |||
JP2013154433, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 05 2016 | HARES, LUKE DAVID RONALD | Cambridge Medical Robotics Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051046 | /0321 | |
Dec 05 2016 | HARES, LUKE DAVID RONALD | CMR Surgical Limited | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 052009 | /0142 | |
Dec 21 2018 | CMR Surgical Limited | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Dec 21 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jan 17 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jan 17 2019 | SMAL: Entity status set to Small. |
Apr 21 2023 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Apr 08 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 13 2023 | 4 years fee payment window open |
Apr 13 2024 | 6 months grace period start (w surcharge) |
Oct 13 2024 | patent expiry (for year 4) |
Oct 13 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 13 2027 | 8 years fee payment window open |
Apr 13 2028 | 6 months grace period start (w surcharge) |
Oct 13 2028 | patent expiry (for year 8) |
Oct 13 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 13 2031 | 12 years fee payment window open |
Apr 13 2032 | 6 months grace period start (w surcharge) |
Oct 13 2032 | patent expiry (for year 12) |
Oct 13 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |