JOINT CONTROL IN A MECHANICAL SYSTEM
20230320798 · 2023-10-12
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
A61B34/70
HUMAN NECESSITIES
A61B2090/064
HUMAN NECESSITIES
International classification
Abstract
A controller for controlling the configuration of a joint in a surgical robot, the joint being driven by a drivetrain which transfers power from a drive source to the joint, wherein the controller is configured to: receive a first input indicating a configuration of the drive source; receive a second input from a first sensor, the second input indicating a measured configuration of the joint in the surgical robot; calculate a value of output torque about the joint using the first input and the second input; and calculate, using the value of output torque, a value of input torque to be applied to the joint in the surgical robot by the drive source.
Claims
1. A controller for controlling the configuration of a joint in a surgical robot, the joint being driven by a drivetrain which transfers power from a drive source to the joint, wherein the controller is configured to: receive a first input indicating a configuration of the drive source; receive a second input from a first sensor, the second input indicating a measured configuration of the joint in the surgical robot; calculate a value of output torque about the joint using the first input and the second input; and calculate, using the value of output torque, a value of input torque to be applied to the joint in the surgical robot by the drive source.
2. The controller as claimed in claim 1, wherein the first input is received from a second sensor and indicates a measured configuration of the drive source.
3. The controller as claimed in claim 2, wherein the measured configuration of the drive source is the measured physical position of the drive source, and the measured configuration of the joint is the measured physical position of the joint.
4. The controller as claimed in claim 1, wherein the controller is further configured to receive a third input indicating a desired configuration for the joint, wherein the desired configuration is the desired physical position of the joint.
5. (canceled)
6. The controller as claimed in claim 4, wherein the value of input torque is calculated using a comparison between the first input and the third input.
7. The controller as claimed in claim 4, wherein the value of input torque is calculated using a comparison between the second input and the third input.
8. The controller as claimed in claim 4, wherein the value of input torque is calculated using a comparison between a first derivative of the first input and a first derivative of the third input.
9. The controller as claimed in claim 4, wherein the value of input torque is calculated using a comparison between a first derivative of the second input and a first derivative of third input.
10. The controller as claimed in claim 1, wherein output torque is characterised by a relationship between an elongation value of the drive train and a stiffness value of the drivetrain.
11. The controller as claimed in claim 1, wherein the value of output torque is represented by the equation τ.sub.o=kφ(q.sub.i−q.sub.o), where q.sub.i is the first input, q.sub.o is the second input and kφ is a spring coefficient of the drivetrain, and wherein kφ is related to (q.sub.i−q.sub.o) by a continuous function.
12. (canceled)
13. The controller as claimed in claim 1, wherein the value of output torque is represented by the equation τ.sub.o=kφ(q.sub.i−q.sub.o), where q.sub.i is the first input, q.sub.o is the second input, and kφ is a spring coefficient of the drivetrain, and wherein kφ is selected from a discrete range of values, each value of kφ being associated with a range of elongation values that are defined by one or more predetermined threshold values.
14. The controller as claimed in claim 13, wherein the spring coefficient is selected from three distinct values in dependence on a measured elongation of the drivetrain, wherein: a first value is selected for the spring coefficient if the value of measured elongation is below a first predetermined threshold; a second value is selected for the spring coefficient if the value of measured elongation is above the first predetermined threshold and below a second predetermined threshold; and a third value is selected for the spring coefficient if the value of measured elongation is above the second predetermined threshold.
15. The controller as claimed in claim 14, wherein the range of elongation values that is above the first predetermined threshold and below a second predetermined threshold corresponds to a backlash region of the joint.
16. The controller as claimed in claim 1, wherein the value of input torque is represented by the following equation:
τ.sub.i=k.sub.po(q.sub.r−q.sub.o)+k.sub.pi(q.sub.r−q.sub.i)+k.sub.do({dot over (q)}.sub.r−{dot over (q)}.sub.o)+k.sub.di({dot over (q)}.sub.r−{dot over (q)}.sub.i)−k.sub.tkφ(q.sub.i−q.sub.o) Wherein: q.sub.i is the first input, q.sub.o is the second input, q.sub.r is the third input and k.sub.po, k.sub.pi, k.sub.do, k.sub.di and k.sub.t are gains associated with the first, second and third inputs.
17. The controller as claimed in claim 1, the controller being configured to repeatedly calculate the value of output torque.
18. The controller as claimed in claim 1, wherein the controller is implemented within a dynamic torque observer, the dynamic torque observer being configured to calculate a value of dynamic torque by applying a weighting to the value of output torque calculated by the controller.
19. The controller as claimed in claim 1, wherein calculating the value of input torque comprises subtracting a torque term which compensates for the action of gravity from the value of output torque.
20. (canceled)
21. The controller as claimed in claim 1, wherein the first sensor is located at, or at a position proximal to, a second end of the drive train at which the joint is located, and the second sensor is located at, or at a position proximal to, a first end of the drive train at which the drive source is located.
22. (canceled)
23. The controller as claimed in claim 1, wherein the drivetrain is a harmonic drive comprising one or more gears.
24. (canceled)
25. A method for controlling the configuration of a joint in a surgical robot, the joint being driven by a drivetrain which transfers power from a drive source to the joint, the method comprising: receiving a first input indicating a configuration of the drive source; receiving a second input from a first sensor, the second input indicating a measured configuration of the joint in the surgical robot; calculating a value of output torque for the joint using the first input and the second input; and calculating, using the value of output torque, a value of input torque to be applied to the joint in the surgical robot by the drive source.
Description
DETAILED DESCRIPTION
[0031] The present invention will now be described by way of example with reference to the accompanying drawings. In the drawings:
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040] The following description describes the present techniques within the context of robotic systems. Robotic systems can include manufacturing systems, such as vehicle manufacturing systems, parts handling systems, laboratory systems, and manipulators such as for hazardous materials or surgical manipulators. The robotic system illustrated in
[0041]
[0042] In one example, the drive sources 114 are motors. The drive sources 114 may alternatively be hydraulic actuators, or any other suitable means. Each joint 106a-e further comprises one or more configuration and/or force sensor 116 which provides information regarding the current configuration and/or force at that joint. Where the joint is a revolute joint, one or more of the sensors 116 may be a torque sensor. Where the joint is configured to provide linear motion, one of the one or more sensors 116 may be a strain gauge. In addition to configuration and/or force data, the one or more sensors 116 may additionally provide information regarding the temperature, current or pressure (such as hydraulic pressure). In one example, the one or more configuration sensors are position sensors. That is, the configuration sensors may measure the physical position of the joint. In such an example, one or more of the sensors 116 may be an encoder. An encoder is a position sensor which transforms a position measurement into an electronic signal. The encoder 116 may be a linear or a rotary encoder.
[0043] The drive sources 114 are arranged proximally of the joints whose motion they drive, so as to improve weight distribution. For clarity, only some of the drive sources and sensors are illustrated in
[0044] The instrument 112 of the surgical robot 100 comprises an end effector for performing an operation. The end effector may take any suitable form. For example, the end effector may be smooth jaws, serrated jaws, a gripper, a pair of shears, a needle for suturing, a camera, a laser, a knife, a stapler, a cauteriser or a suctioner. The instrument further comprises an instrument shaft and an articulation located between the instrument shaft and the end effector. The articulation comprises several joints which permit the end effector to move relative to the shaft of the instrument.
[0045] Configuration controllers for the drive sources 114 and sensors 116 are distributed within the robot arm 100. The controllers are connected via a communication bus to a control unit 118. The control unit 118 comprises a processor 120 and a memory 122. The memory 122 stores, in a non-transient way, software that is executable by the processor 120 to control the operation of the drive sources 114 to cause the arm 100 to operate. In particular, the software can control the processor 120 to cause the drive sources (for example via distributed controllers) to drive in dependence on inputs from the sensors 116 and from a surgeon command interface 124. The control unit 118 is coupled to the drive sources 114 for driving them in accordance with outputs generated by execution of the software. The control unit 118 is electrically connected to the sensors 116 for receiving sensed input from the sensors, and to the command interface 124 for receiving input from it. The electrical connections described with reference to
[0046] The command interface 124 comprises one or more input devices whereby a user can request motion of the end effector in a desired way. The input devices, or input controllers, could, for example, be manually operable mechanical input devices such as control handles or joysticks, touch-operable inputs such as touchscreens, or contactless input devices such as optical gesture sensors or voice sensors. The input devices might monitor eye movement to receive an input. The input devices could, for example, be some combination of these types of input devices. Commands input by the input devices can include movement commands, for example to move the instrument in a particular way, such as a lateral movement and/or a rotation. Such commands can include end effector commands, for example to control an end effector coupled to a distal end of the instrument 112 to operate the end effector, such as to open/close gripper jaws or to operate (turn on or off) an electrosurgical end effector.
[0047] The software stored in the memory 122 is configured to respond to those inputs and cause the joints of the arm and instrument to move accordingly, in compliance with a pre-determined control strategy. The control strategy may include safety features which moderate the motion of the arm and instrument in response to command inputs. Thus, in summary, a surgeon at the surgeon console which suitably comprises the command interface 124 can control the instrument 112 to move in such a way as to perform a desired surgical procedure. Thus, the robot arm 100 functions as a master-slave manipulator where the control unit 118 acts as a master controller. The control unit 118 and/or the command interface 124 may be remote from the arm 100.
[0048]
[0049] The controller 202 may be distributed within a robot arm, such as the arm illustrated in
[0050] The reference configuration q.sub.ref may otherwise be referred to as the desired or commanded configuration of the joint. The reference configuration q.sub.ref is calculated from an end effector pose that is commanded by the surgeon at the command interface 124. The reference configuration q.sub.ref may be calculated by applying one or more inverse kinematic calculations to the commanded end effector pose. In one example, the reference configuration q.sub.ref is the desired physical position of the joint.
[0051] The configuration controller 202 is configured to perform a calculation using the reference position value q.sub.ref received from control unit 118 and the feedback value from the sensor 208 to generate a reference torque value τ.sub.ref. The reference torque value τ.sub.ref indicates the demanded torque that is required to move the joint to the reference configuration q.sub.ref. The reference torque value τ.sub.ref is then transmitted to the torque controller 204.
[0052] The torque controller 204 is electrically connected to the configuration controller 202 and is configured to receive the reference torque value τ.sub.ref. From this value of τ.sub.ref, the joint torque controller is configured to calculate a value of desired current that is to be generated by the drive source. This desired current is used to generate an output torque τ.sub.o, which is the actual torque that is experienced by the joint when it is driven by the drive source. In an idealised system, the drivetrain that transfers torque from the drive source to the joint is “stiff” and so no torque is “lost” as it is transferred from the drive source to the joint. Thus, the output torque τ.sub.o that is experienced at the joint is equal to the reference torque τ.sub.ref that is received by the configuration controller 202.
[0053] A joint that is not stiff, when it is driven, experiences an inertia which opposes the output torque τ.sub.o provided by the drive source. The inertia may be caused by a number of factors that are either internal or external to the joint. An exemplary cause of inertia is the weight of the joint due to gravity. Another exemplary cause is the weight of an object being supported by or interfacing with the joint. Due to presence of inertia, the configuration of the joint at its output q.sub.o may differ from the reference configuration q.sub.ref. For a joint that is stiff, the inertia will not have an effect on the output configuration of the joint q.sub.ref. Thus, for a stiff joint, there will be no difference between the output configuration q.sub.o and the desired configuration q.sub.ref.
[0054] Sensor 208 is provided to measure the output configuration q.sub.o of the joint. The sensor 208 may correspond to one of the sensors 116 illustrated in
[0055] Generally, feedback terms are used within control systems to indicate a deviation between the desired configuration of a joint and its actual configuration, and to compensate for disturbances that may take the joint further from steady state. Thus, the value of reference torque τ.sub.ref that incorporates feedback from the sensor 208 may be continuously updated as continuous data measurements are obtained from the sensor 208. The feedback loop may further comprise one or more filters, integrators or differentiators for manipulating the raw output value that is obtained from the sensor 208 before it is provided to the configuration controller 202.
[0056] As mentioned above, the joint to be controlled by the loop illustrated in
[0057] The output torque measured about the joint can be characterised by the following equation:
τ.sub.o=K(q.sub.i−q.sub.o)
Where K is the spring constant, or stiffness, of the drivetrain, q.sub.i is the input configuration of the joint and q.sub.o is the output configuration of the joint. In one example, as illustrated in
[0058] The spring constant K referenced herein may otherwise be referred to as a spring coefficient. It is noted that the spring constant (or spring coefficient) does not necessarily have a constant value for all elongation values. Indeed, in some examples, the spring coefficient is a continuous function of the elongation value, and in some other examples the spring coefficient is selected from a set of discrete values, with each discrete value being associated with a respective range of elongation values.
[0059] As described above, mechanisms for driving joints within a robotic system comprise an associated element of elasticity, which results in a non-linear stiffness characteristic. This elasticity is especially characteristic of harmonic drives.
[0060] In
[0061] The graph illustrated in
[0062] Region 306 represents the phenomenon of backlash, where the gradient of line representing the stiffness of the drivetrain is near-zero. As described above, backlash refers to the lost motion in a mechanism that is experienced when it changes direction and is caused by gaps or clearance between interfacing components of the drivetrain. For a harmonic drive, backlash is the result of clearance between the circular spline and the flex spline, and/or elastic deformation of the flex spline under torque. This phenomenon typically occurs within a region of elongation values. In the example illustrated in
[0063] Regions 304 and 308 are transition zones. In these zones the drivetrain is transitioning between the backlash region and its regions of intended performance. During these regions, there is a non-linear relationship between elongation and sensor torque.
[0064] The representative stiffness of the drivetrain throughout the range of elongation values recorded in
[0065] The performance of joints demonstrating non-linear characteristics as illustrated in
[0066] The differential equations for a single elastic joint may be expressed as follows:
M{umlaut over (q)}.sub.o+D({dot over (q)}.sub.o−{dot over (q)}.sub.i)+K(q.sub.o−q.sub.i)+F.sub.o=0
B{umlaut over (q)}.sub.l+D({dot over (q)}.sub.l−{dot over (q)}.sub.o)+K(q.sub.i−q.sub.o)+F.sub.i=τ.sub.o
[0067] In the above equations, M, B, K, D, F.sub.i and F.sub.o are control variables. M is the inertia at the output of the drivetrain, B.sub.o is the inertia at its input (i.e. at the output of the drive source), K is the spring constant for the drivetrain, and D is a damping term. D, therefore, represents the energy lost due to the elasticity in the drivetrain. F.sub.i is the input torque disturbance. Input torque disturbance may be due to static friction, for example. F.sub.o is the output torque disturbance. In one example, output torque disturbance is caused by the other joints in the robot arm.
[0068] In addition to the abovementioned control variables, the differential equations observe four state variables for an elastic joint: position, velocity, acceleration and torque. These variables may be defined at either the input or output of the drivetrain. In the above equations the output configuration of the joint q.sub.o is an output position of the joint. Thus, {dot over (q)}.sub.o and {umlaut over (q)}.sub.o are the first and second derivatives of the output position, respectively, with respect to time. That is, {dot over (q)}.sub.o and {umlaut over (q)}.sub.o are the velocity and acceleration, respectively, at the second end of the drivetrain. Correspondingly, q.sub.i, {dot over (q)}.sub.l and {umlaut over (q)}.sub.l are the position, velocity and acceleration at the first end of the drivetrain. The differential equations above can be parameterised by measuring the state variables described above using position and torque sensors located the first and second ends of the drivetrain. Velocity and acceleration are derivatives of position with respect to time, and so can be calculated from position measurements measured from position sensors. Torque data values are traditionally obtained from torque sensor measurements.
[0069]
[0070] The torque controller 402 is configured to calculate a value of input torque τ.sub.i to be generated by the drive source and transmitted by the drivetrain to the joint 406. The control loop 404 is configured to receive a sensor data from the joint 406 and to calculate a reference torque value τ.sub.ref using this sensor data as feedback.
[0071] The torque controller 402 comprises a drive source 408 and a drive source controller 410. The drive source 408 is connected to both the joint 406 of the robot arm and to the drive source controller 410. The drive source 408 is configured to supply an input torque τ.sub.i to the drivetrain that drives the joint 406 of the robot arm. In one example, the drive source 408 is a motor. In other examples the drive source 408 may be a hydraulic or pneumatic actuator, or any alternative power source. The drive source controller 410 is configured to control the performance of the drive source, and therefore the input torque about the joint 406.
[0072] The drive source 408 and the drive source controller 410 are electrically connected to each other by means of a feedforward loop passing from the controller to the drive source, and a feedback loop passing from the drive source to the controller. In an example where the drive source is a motor, the feed forward loop enables the controller to provide a three-phase voltage supply to the motor. In this example, the feedback loop enables the motor to supply a three-phase current feedback to the controller. The feedback loop is used to modify the voltage, and therefore the current, that is supplied to the motor. Thus, the feedback loop ensures that the intended torque is being generated by the motor.
[0073] The torque controller 402 further comprises a plurality of sensors for measuring the one or more parameters indicating the performance of the joint 406. The sensors are further configured to generate electrical signals associated with their measurements, such that these electrical signals can be transmitted to the control loop 404. In one example, the sensors are comprised within the joint 406. In another embodiment the sensors are external, but coupled, to the joint 406. The plurality of sensors may correspond to the sensors 116 illustrated in
[0074] The first sensor 412 and the second sensor 114 are configured to measure the configuration about the joint 406. As mentioned above, the configuration of the joint may be the position of the joint. In this example, the sensors may be encoders. The encoders may be either linear encoders or rotary encoders, depending on the motion of the joint to which they are coupled. The first sensor 412 is configured to measure the input configuration of the joint 406. The input position is measured at the output of the drive source that is configured to drive that joint. Thus, the first sensor 412 may be located at, or at a position proximal to, a first end of the drivetrain, at which the drive source 408 is located. The second sensor 414 is configured to measure the output configuration at the joint 406. The output configuration is measured at the input to the joint. Thus, the second sensor is located at, or at a position proximal to, a second end of the drivetrain, at which the joint 406 is located. The third sensor 416 is configured to measure the output torque about the joint 406. Thus, the third sensor is also located at the second end of the drivetrain. The sensors 412, 414, 416 may be configured to continuously sense data indicating the performance of the joint. This continuous sensing of data may be performed at regular intervals. That is, the sensing of data from the joint may be performed by the sensors at a predefined sampling rate. This sampling rate may be configurable, such as at the command interface 124 illustrated in
[0075] In addition to the one or more sensors, the torque controller 402 comprises one or more sensor filters for filtering electrical signals received from a respective sensor. Filters are provided to combine information from multiple data values to efficiently monitor the performance of the joint. In one example, the filters are temporal filters, which are used to incrementally update their information for each new data value. The first filter 418 is configured to filter electrical signals received from the first sensor 412. Where the first sensor 412 is an input position sensor, the first filter 418 is configured to filter input position values.
[0076] Correspondingly, a second filter 422 is electrically connected to the second sensor 414 and is configured to filter electrical signals received from that sensor. Thus, where the second sensor 414 is an output position sensor, the second filter 422 is configured to filter output position values. A third filter 426 is electrically connected to the third sensor 416. The third filter 426 is therefore configured to filter output torque values.
[0077] The torque controller 402 further comprises fourth and fifth filters 420, 424 for deriving filtered derivative values from the first and second sensors 412, 414 respectively. As mentioned above, the sensing of data by the sensors 412, 414, 416 may be performed at a predefined sampling rate. The fourth and fifth filters 420, 422 are configured to maintain a record of the sampling rate at which sensor data is measured. Velocity is the first derivative of position with respect to time. Thus, where the first and second sensors 412, 414 are input and output position sensors, the fourth and fifth filters 420, 422 are configured to calculate input and output velocity values for the joint, respectively, using the predefined sampling rate and the continuously sampled data values.
[0078] As well as being electrically connected to the one or more sensors, the one or more sensor filters are electrically connected to incoming interconnect circuitry 428. The incoming interconnect circuitry 428 is further connected to the control loop 404. The interconnect circuitry 428 is therefore configured to transmit sensor data from the torque controller 402 to the control loop 404. Thus, the sensor data may be provided as feedback to the control loop 404. In one example, the interconnect circuitry is a communication bus, such as an Ethercat Bus.
[0079] The control loop 404 is configured to calculate a reference torque τ.sub.ref to be provided to the drive source 408. The reference torque τ.sub.ref can be calculated using a reference configuration q.sub.ref and a plurality of feedback loops derived from measured sensor data. The control loop 404 comprises a sixth filter 430, a configuration controller 432, a dynamic torque observer 434 and a gravity compensator 436.
[0080] The sixth filter 430 is connected to the configuration controller 432 and is configured to receive one or more incoming reference configuration value q.sub.ref (such as from control unit 118). The sixth filter 430 is further configured to filter these values to provide as an input to configuration controller 432. The filter 430 is also configured to calculate a value for the first derivative of this reference configuration q.sub.ref. Where the reference configuration is a reference position for the joint 406, the first derivative of this reference configuration (with respect to time) is reference velocity. The sixth filter 430 may correspond to the filters 418, 420, 422, 424, 426 of the torque controller 402. That is, the position filter may be configured to combine information from multiple data values to efficiently monitor the input position values, and to calculate a reference velocity value using a stored predefined sampling rate and the continuously sampled reference position values.
[0081] The control loop further comprises a gravity compensator 436, which is electrically connected to both the output of the sixth filter 430 and the incoming interconnect circuitry 428. The gravity compensator 436 is configured to receive reference configuration data from the sixth filter 430 and output torque values from the third sensor 416 by means of the interconnect circuitry 428. The gravity compensator 436 is further configured to calculate an expected torque value using the data obtained from sixth filter 430. A value gravity-compensated measured torque can then be calculated by the gravity compensator 436 by subtracting expected torque from output torque τ.sub.o. This gravity-compensated measured torque is provided to dynamic torque observer 434.
[0082] In addition to the gravity-compensated measured torque, the dynamic torque observer 434 is configured to receive values of input configuration, output configuration and the first derivative of output configuration from the interconnect circuitry 428. The dynamic torque observer 434 is further configured to calculate a dynamic torque value τ.sub.dynamic from its received inputs. The dynamic toque value τ.sub.dynamic is transmitted by the dynamic torque observer 434 to the configuration controller 432. The configuration controller 432 is also electrically connected to the sixth filter 430 and interconnect circuitry 428. The configuration controller 432 is therefore configured to receive, in addition to τ.sub.dynamic, the input and output configurations, and the first derivatives of these configurations, from the incoming interconnect circuitry 428. The position controller is further configured to receive the reference configuration and first derivative of this value from the sixth filter 430. From these received values, the configuration controller 432 calculates a value for reference torque τ.sub.ref to be provided to the torque controller 402. The reference torque τ.sub.ref is transmitted from the command loop 404 to the torque controller 402 by outgoing interconnect circuitry 434. As with incoming interconnect circuitry 428, outgoing interconnect circuitry 434 may be a communication bus, such as an Ethercat bus.
[0083]
[0084] The control algorithm 500 further comprises a second transfer function 506 which comprises a gain G(s) that is associated with the drive source. In an example where the drive source is a motor, the gain G(s) is the motor gain. The value of motor gain G(s) is dependent on the physics of the joint. A value of physical torque τ.sub.p and input torque τ.sub.i are provided as inputs to the second transfer function 506. The physical torque τ.sub.p that is applied to the second transfer function 506 represents the real-life disturbance to the joint system. This torque does not exist electronically. The outputs of the second transfer function 506 are output position q.sub.o, input position q.sub.i and output torque τ.sub.o. These outputs are measured parameters that are obtained from sensors located at the joint and its respective drivetrain. The sensors may, for example, correspond to sensors 412, 414, 416 illustrated in
[0085] The three outputs q.sub.o, q.sub.i, τ.sub.o from transfer function 506 that are measured at the joint are provided as feedback terms that are used to calculate the input torque τ.sub.i. Each measured parameter is provided with an associated feedback loop. Each feedback loop comprises a transfer function that corresponds to the output value with which it is associated. For example, the feedback loop for measured output configuration q.sub.o comprises a third transfer function 508. In the example illustrated in
[0086] The feedback loop provided for measured input configuration q.sub.i comprises a fourth transfer function 512. Similarly to the third transfer function 508, in the example illustrated in
[0087] The fourth transfer function 512 is configured to calculate manipulated values of both the input configuration and the first derivative of input configuration {dot over (q)}.sub.l to provide to summing point 514. The feedback loop provided for output torque τ.sub.o comprises a fifth transfer function 516 with an associated gain K.sub.τ. A manipulated value of output torque τ.sub.o is thus provided to summing point 514. The gains K.sub.o, K.sub.i, K.sub.τ may be predefined continuous or constant values that may be obtained from predetermined theoretical or experimental data. The gains may be stored in a non-transient form within the control system for the robot arm. The gains may be applied to the physical measurement data and are used to affect the performance of the control algorithm.
[0088] The feedback loops are summed together at summing points 510, 514, and are used to calculate the input torque τ.sub.i at summing point 504. That is, summing point 504 receives manipulated reference configuration q.sub.ref and the manipulated sensor data feedback as inputs, and outputs input torque τ.sub.i. Knowing the configuration of the joint at the input and at the output of the drivetrain allows the control system to determine the elongation drivetrain. Thus, the joint can be controlled in dependence on that elongation.
[0089] Using the control algorithm illustrated in
τ.sub.i=k.sub.po(q.sub.ref−q.sub.o)+k.sub.pi(q.sub.ref−q.sub.i)+k.sub.do({dot over (q)}.sub.ref−{dot over (q)}.sub.o)+k.sub.di({dot over (d)}.sub.ref−{dot over (q)}.sub.i)−K.sub.tτ.sub.o
[0090] In the above equation, q.sub.ref is a reference configuration that is computed for each joint of the arm. The configuration may be angular or linear, depending on the motion of each joint. k.sub.po, k.sub.pi, k.sub.do and k.sub.di are gains for the first and second inputs. k.sub.po and k.sub.pi are proportional gains for the input and output configurations respectively. k.sub.do and k.sub.di are derivative gains for the input and output configurations respectively. The first derivative of reference and measured configurations {dot over (q)}.sub.ref, {dot over (q)}.sub.i and {dot over (q)}.sub.o are synonymous with the respective velocities ω.sub.ref, ω.sub.i and ω.sub.o
[0091] The control system illustrated in
[0092] As introduced above, the output torque for a robotic joint can be characterised by the following equation:
τ.sub.o=K(q.sub.i−q.sub.o)
[0093] Where K is the spring constant of the joint, q.sub.i is the input configuration about the joint and q.sub.o is the output configuration about the joint. As previously mentioned, q.sub.i−q.sub.o represents the elongation of the drivetrain. q.sub.i and q.sub.o can both be measured using sensors coupled to the joint and its associated drivetrain. Thus, the output torque for the joint can be calculated using measured sensor data for the input and output joint configurations. This calculation of output torque can be used to replace a measured value of output torque obtained from a torque sensor.
[0094]
[0095] The control algorithm comprises three transfer functions: first transfer function 602, second transfer function 606 and third transfer function 610. The algorithm further comprises a first summing point 604 and a second summing point 608. As with the algorithm illustrated in
[0096] The reference configuration q.sub.ref is received from a control unit, such as the unit 118 in
[0097] In one example, as illustrated in
[0098] A method for controlling a robotic joint using a controller implementing the control algorithm of
[0099] At step 704, the controller receives a second input from a second sensor. The second input indicates the output configuration of the joint q.sub.o. The output configuration is received from a second sensor, which may correspond to second sensor 414 in
[0100] At step 706, the controller is configured to calculate a value of output torque τ.sub.o about the joint using the first and second inputs. At step 708, the controller calculates a value of input torque to be applied to the joint using the calculated value of output torque. In one example, calculating the input torque comprises subtracting a torque term which compensates for the action of gravity from the calculated value of output torque τ.sub.o. The use of a torque term which compensates for the action of gravity to calculate input torque prevents the drifting of the joint due to gravity during its operation.
[0101] In
[0102] The summing point 604 is to calculate a value of input torque τ.sub.i using the calculated value of output torque, together with the output of the first transfer function 602. This calculation is performed at step 708 in
[0103] The control algorithm described in
[0104] Using the control algorithm illustrated in
τ.sub.i=k.sub.po(q.sub.ref−q.sub.o)+k.sub.pi(q.sub.ref−q.sub.i)+k.sub.do({dot over (q)}.sub.ref−{dot over (q)}.sub.o)+k.sub.di({dot over (q)}.sub.ref−{dot over (q)}.sub.i)−k.sub.tkφ(q.sub.i−q.sub.o)
[0105] In the above equation, q.sub.ref is a reference configuration that is computed for each joint of the arm. The configuration may be angular or linear, depending on the motion of each joint. k.sub.po, k.sub.pi, k.sub.do and k.sub.di are gains for the first and second inputs. k.sub.po and k.sub.pi are proportional gains for the input and output configurations respectively. k.sub.do and k.sub.di are derivative gains for the input and output configurations respectively. The first derivative of reference and measured configurations {dot over (q)}.sub.ref, {dot over (q)}.sub.i and {dot over (q)}.sub.o are synonymous with the respective velocities ω.sub.ref, ω.sub.i and ω.sub.o.
[0106] The first term of the above equation, q.sub.ref−q.sub.o represents comparison of the reference configuration to the measured output configuration of the joint. The second term, q.sub.ref−q.sub.i is calculated by comparison of the reference configuration to the measured input configuration of the joint. The third term {dot over (q)}.sub.ref−{dot over (q)}.sub.o is calculated by comparison of the first derivative of the reference configuration to the first derivative of the measured output configuration of the joint. The fourth term, {dot over (q)}.sub.ref−{dot over (q)}.sub.i calculated by comparison of the first derivative of the reference configuration to the first derivative of the measured input configuration of the joint. Thus, the first four terms of the equation above are derived by comparing the desired configuration of the joint with the input and output configurations obtained from measured sensor data. That is, in dependence on the difference between the joint's desired configuration and its measured configuration, an input torque can be calculated which will tend to drive the joint towards the desired configuration. The first four terms of the equation above, together with their associated gains, are provided as outputs from the first transfer function 602.
[0107] In one example, the configuration of the joint to be controlled by the control algorithm 600 is the position of the joint. In this example, the reference configuration is the reference, or desired, physical position of the joint. The input and output configurations are the input and output positions of the joint respectively.
[0108] The spring constant kφ that is comprised within the third transfer function 610 may be synonymous with K, as referenced above. The spring constant kφ is a theoretically calculated value that is a function of drivetrain elongation q.sub.o−q.sub.i. That is, kφ is a predefined value or range of values obtained from historic theoretical or experimental data and stored in a non-transient form within the control system for the robot arm. With reference to
[0109] In one example, the spring constant kφ is related to drivetrain elongation by a continuous function. That is, kφ may vary continuously as drivetrain elongation varies. In another example, the spring constant kφ may have a constant value. That is, kφ have the same value as drivetrain elongation varies. Alternatively, the spring constant may be selected from a discrete range of values. In this example, each discrete value of kφ may be associated with a range of elongation values, and each range of elongation values may be defined by one or more predetermined threshold values. An example where the spring constant is selected from a range of three distinct values is demonstrated below:
e<−0.1 degrees.fwdarw.kφ=K1
−0.1<e<0 degrees.fwdarw.kφ=K2
0 degrees<e.fwdarw.kφ=K3
[0110] In the above example, a first spring constant value K1 is used when the measured elongation is less than −0.1 degrees. That is, the first stiffness value K1 is associated with a range of elongation values that is characterised by an upper threshold value of −0.1 degrees. This range of elongation values corresponds to region 302 of the graph illustrated in
[0111] In a further example, the spring constant may be selected from a range of five distinct values. These five distinct values include the first, second and third stiffness values K1, K2 and K3 indicated above. In addition to this a fourth stiffness value K4 may be selected when the measured elongation is equal or close to −0.1 degrees. This corresponds to the transition zone demonstrated by region 304 of the graph illustrated in
[0112] As described above with reference to
[0113] A robotic control system may comprise both a controller as illustrated in
[0114] The controllers illustrated in
[0115] The dynamic torque observer 800 comprises a differentiating low-pass filter 802, an inertia scaler 804, a joint stiffness scaler 806, a first weighting unit 808, a second weighting unit 810 and a high-pass filter 812. If further comprises summing points 814, 816 and 818.
[0116] The differentiating low-pass filter 802 is configured to receive an output velocity value {dot over (q)}.sub.o (or ω.sub.o) as an input. This velocity value is obtained from differentiation of measured output configuration q.sub.o that is performed by the control algorithm 600. Output velocity ω.sub.o is used to calculate an inertial term which indicates the force required to accelerate the joint. This value is useful at low frequencies but produces excessive noise at high frequencies. Thus, low-pass filter 802 is configured to receive incoming output velocity values and to filter out the high frequency values from those received values. The values that are output from the low-pass filter 802 are provided as an input to an inertia scaler 804. The inertia scaler 804 is configured to apply a fixed inertia to the filtered output velocity values and to calculate a value of inertial torque.
[0117] The dynamic torque observer is further configured to calculate an updated value of output torque τ.sub.o using inputs from both a controller as illustrated in
[0118] The weighting units 808, 810 are provided to modify the proportion of each feedback term that is provided to summing point 816. The first weighting unit 808 comprises a first value 1−α. The second weighting unit comprises a second value α. α is a predetermined parameter, where 1≥α≥0. In one example, α is a function of drivetrain elongation. That is, α may be related to drivetrain elongation by a continuous function, or may have a constant value, or may be selected from a discrete range of values, as described above with respect to kφ. The manipulated values of calculated/measured output torque that are output from weighting units 808, 810 are provided to summing point 816.
[0119] Output torque is assumed to comprise two components: dynamic torque (which is caused by acceleration, actuator torque and friction) and externally applied torque. In order to observe dynamic torque, the externally applied torque component of output torque must be removed. This is achieved by the addition of high-pass filter 812. High-pass filter 812 receives the new value of output torque calculated from the output of summing point 816 and filters this signal to eliminate the external torque component. The manipulated output of high-pass filter 812 can then be provided to summing point 818. The summing point 818 is further configured to receive inertial torque values from the inertia scaler 804 and provide a modified value of dynamic torque τ.sub.dynamic as an output.
[0120] In the examples described above, the input configuration q.sub.i that is used to calculated output torque is a measured configuration obtained from a sensor located at, or at a position proximal to, a first end of the drivetrain. In another example, input configuration may be calculated using a value of reference joint configuration that has been requested at a time prior to the time at which output joint configuration is measured. Ideally, for a “stiff” joint, a prior reference configuration will be the same as the input configuration of the joint. Thus, in this example, a sensor to measure input joint configuration is not required, increasing joint compactness.
[0121]
[0122] The control algorithm illustrated in
[0123] In addition to the above, the control algorithm illustrated in
[0124] 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.