Abstract: A method for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the method comprising: obtaining joint states for a first group of k joints of the arm, where k > 1; for each of the k joints: determining from the obtained joint state a permitted range of motion for that joint; deriving, using the permitted range of motion, a joint velocity limit for that joint; selecting the minimum joint velocity limit of the k joints to be a common joint velocity limit used to limit each of the k joints individually; and calculating drive signals for driving the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
ROBOTIC JOINT CONTROL
FIELD OF THE INVENTION
This invention relates to the control of joints in robotic systems such as robot arms, and in particular to limiting joint velocities of a plurality of joints by a common joint velocity limit determined from one of the joints.
BACKGROUND
A typical robotic manipulator comprises a series of rigid elements which are coupled together by joints. The elements may be joined in series to form an arm. The joints can be driven so as to cause relative motion of the rigid elements. The rigid elements may stem from a base and terminate in an attachment for an instrument or end effector. Thus motion at the joints can be used to position the end effector at a desired location. Each joint may provide rotational motion or linear motion. The joints may be driven by any suitable means, for example electric motors or hydraulic actuators.
During operation, the robot may be required to cause the end effector to move to a desired position. For example, the robot may be required to use the end effector to pick up an object. This requires the end effector to be moved to where the object is. To accomplish this, some combination of motions of the joints is required. A control system of the robot is used to calculate those motions.
Conventionally, a robot is provided with position sensors, each of which senses the configuration of a respective one of the joints. This position information is fed to the control system.
A known strategy for the control system is as follows:
1. Receive information indicating a desired position of the end effector.
2. Determine a set of target configurations of the joints of the robot that will result in the end effector being in that position. This is known as inverse kinematics.
3. Receive information indicating the current configuration of each joint in the robot, compare those current configurations to the target configurations and calculate a set of torques or forces required at each joint in order to reduce the error between the respective joint's current and target positions.
4. Send drive signals to the actuators in the robot in order to impose those torques or forces at the respective joints.
This series of steps is performed repetitively so that over time the motion of the robot conforms to the target configurations.
This approach is problematic because typically the inverse kinematics problem is considered hard to solve. One reason for this is that certain poses of the manipulator can become singular, meaning that it is impossible to make subsequent movements of the end effector in all directions with finite joint velocities.
There is a need for an improved control system for mechanical systems such as robot manipulators.
SUMMARY
This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
According to an aspect of the present invention there is provided a method for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the method comprising:
obtaining joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints:
determining from the obtained joint state a permitted range of motion for that joint; deriving, using the permitted range of motion, a joint velocity limit for that joint; selecting the minimum joint velocity limit of the k joints to be a common joint velocity limit used to limit each of the k joints individually; and
calculating drive signals for driving the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
According to another aspect of the present invention there is provided a method for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the method comprising:
obtaining joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints, determining from the obtained joint state a permitted range of motion for that joint;
deriving, using the minimum permitted range of motion of the k joints and the joint to which that minimum permitted range of motion pertains, a common joint velocity limit used to limit each of the k joints individually; and
calculating drive signals for driving the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
The following may relate to one or more of the aspects herein.
The first group of k joints may comprise k joints proximal to the base of the arm, and the common joint velocity limit may limit the positional velocity of the kth joint along orthogonal directions in Cartesian space. The first group of k joints may comprise k joints proximal to the base of the arm, and the k joints may enable a position of a (k + m)th joint to be uniquely determined, where m > 0. The common joint velocity limit may limit the positional velocity of a (k + m)th joint along orthogonal directions in Cartesian space. The velocity of each of the k joints individually may be limited to the common joint velocity limit.
The arm may comprise n joints, where n > k, and the method may comprises: obtaining joint states for a second group of (n - k) joints of the arm; for each of the (n - k) joints: determining from the obtained joint state a permitted range of motion for that joint; deriving, using the permitted range of motion, a joint velocity limit for that joint; selecting the minimum joint velocity limit of the (n - k) joints to be a further common joint velocity limit for each of the (n - k) joints individually; and calculating drive signals for driving the (n - k) joints wherein the velocity of each of the (n - k) joints is limited to the further common joint velocity limit.
Obtaining joint states for one or both of the first group of k joints and the second group of (n - k) joints may comprise obtaining joint angles. Determining the permitted range of motion of a joint may comprise determining a closest angular distance to a joint angular limit for that joint. Deriving the joint velocity limit may comprise using a maximum deceleration for the respective joint and the determined closest angular distance to the joint angular limit. The further common joint velocity limit may limit the angular velocity of a (k + m)th joint, where m > 0. The further common joint velocity limit may limit the angular velocity of the nth joint.
At least one of the joint angular limit for a joint and the maximum deceleration for a joint may comprise a predetermined value. At least one of the joint angular limit for a joint and the maximum deceleration for a joint may be determined from a physical characteristic of the joint. At least one of the joint angular limit for a joint and the maximum deceleration for a joint may be user-definable. Where the determined closest angular distance to the joint angular limit exceeds a threshold angular distance, the joint velocity limit for that joint may comprise a predetermined joint velocity limit value. The predetermined joint velocity limit value may be user-definable.
Deriving the joint velocity limit may comprise translating joint angular positions and/or velocities into positions and/or velocities, respectively, in Cartesian space. The translating may comprise determining a Jacobian matrix. The translating may comprise using the determined Jacobian matrix to derive an inverse matrix. The translating may comprise determining a Euclidean norm in respect of each row of the inverse matrix.
The method may comprise providing feedback to a user of the surgical robotic system based on a commanded joint velocity for a joint exceeding the common joint velocity limit or further common joint velocity limit for that joint. The surgical robotic system may comprise an input controller manipulatable by a user thereby to alter the configuration of the arm, and the method may comprise providing haptic feedback via the input controller. The haptic feedback may comprise applying a resistive force to movement of the input controller.
According to another aspect of the present invention there is provided a joint velocity limiting system for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the joint velocity limiting system being configured to:
obtain joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints:
determine from the obtained joint state a permitted range of motion for that joint; derive, using the permitted range of motion, a joint velocity limit for that joint; select the minimum joint velocity limit of the k joints to be a common joint velocity limit used to limit each of the k joints individually; and
calculate drive signals for driving the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
According to another aspect of the present invention there is provided a joint velocity limiting system for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the joint velocity limiting system being configured to:
obtain joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints determine from the obtained joint state a permitted range of motion for that joint;
derive, using the minimum permitted range of motion of the k joints and the joint to which that minimum permitted range of motion pertains, a common joint velocity limit used to limit each of the k joints individually; and
calculate drive signals for driving the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
According to another aspect of the present invention there is provided a joint velocity limiting system for a surgical robotic system configured to perform the method as described herein.
According to another aspect of the present invention there is provided a surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, and a joint velocity limiting system configured for limiting joint velocities by the method as described herein.
According to another aspect of the present invention there is provided a non-transitory computer readable storage medium having stored thereon computer readable instructions that, when executed at a computer system, cause the computer system to perform the method as described herein.
Any feature of any aspect described herein may be combined with any other feature of any aspect described herein. Any apparatus feature may be rewritten as a method feature, and vice versa. These are not written out in full merely for the sake of brevity.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described by way of example with reference to the accompanying drawings.
In the drawings:
Figure 1 illustrates a typical surgical robot;
Figure 2 illustrates a schematic of a system for controlling a robot arm ;
Figure 3 illustrates another surgical robot;
Figure 4 illustrates a method of limiting joint velocity of a plurality of joints of a robotic system; Figure 5 illustrates a method of determining permitted ranges of motion of joints;
Figure 6 illustrates a method of translating joint angle positions and/or joint velocities into Cartesian space;
Figure 7 illustrates a method of limiting joint angular velocity of a plurality of further joints of a robotic system;
Figure 8 illustrates another method of limiting joint velocity of a plurality of joints of a robotic system; and
Figure 9 illustrates another method of limiting joint angular velocity of a plurality of further joints of a robotic system.
DETAILED DESCRIPTION
The following description is presented by way of example to enable a person skilled in the art to make and use the invention. The present invention is not limited to the embodiments described herein and various modifications to the disclosed embodiments will be apparent to those skilled in the art. Embodiments are described by way of example only.
A robot arm such as a surgical robot arm can be controlled to move in response to one or more drive signals. The drive signals effect motion of one or more joints of the arm. The robot arm is moved in accordance with a commanded movement of the arm, for example in accordance with an input received at an input controller coupled to the robot arm. The velocity of motion of joints of the arm corresponds to the velocity of motion of the input controller. Generally, as the input controller is moved more quickly, joints of the arm are driven to move more quickly.
The joints of the arm have a limited maximum torque. Thus situations can arise in which the movement of the arm cannot keep up with the commanded movement. Rather than the robot arm control system attempting to drive joints at high speeds to keep up with the commanded movement, it is appropriate to apply a velocity limit to the joints. This can help ensure that the joints are not moving so fast that they cannot be controlled to stop smoothly by their respective joint angular limits. Suitably, a common velocity limit can be determined from a subset of joints of the arm, for example a single joint, and applied to or used to limit the velocity of more than one joint of the arm. In some cases the common joint velocity limit can be applied to joints individually. The common joint velocity can be applied to all of the joints of the arm.
Determining a suitable joint velocity limit for each joint dynamically and on the basis of the commanded movement can be computationally intensive, and requires knowledge of the commanded joint movements. A more efficient approach, as described herein, is to calculate a joint velocity limit as a function of the pose of the arm. The joint velocity limit is suitably calculated based on the joints of the arm, e.g. on characteristics of the joints such as angular rotational limits of the joints and/or maximum joint decelerations of the joints. The present approach enables the joint velocity limit to be calculated at lower processing power and/or potentially more quickly, which can improve the efficiency of the control system. The present approach permits limiting the velocity of
joints of the arm without needing to know the commanded movements, e.g. without needing access to an input received from the input controller. The present approach can recognise when a given pose would result, or would be likely to result, in rapid motion of one or more joints of the arm and can anticipate such rapid motion by limiting a plurality of joints of the arm in response.
As described in more detail below, the velocity of multiple joints of a robot arm, such as a surgical robot arm, can be limited by obtaining joint states (such as joint angles) for multiple joints of the arm. For each of these multiple joints, a permitted range of motion is determined. This can include calculating how far the joint can move or rotate in either direction from its current position. A joint velocity limit for each of the multiple joints is then derived. This derivation can be based on a maximum deceleration of the respective joint, to ensure that the joint can come to a stop at a rotational limit of the joint, e.g. the rotational limit closest to the current angular position. The lowest of the derived joint velocity limits is selected as a common joint velocity limit, which can be applied to each of the multiple joints individually. The common joint velocity limit can be used to limit each of the multiple joints individually. Drive signals for driving the multiple joints are calculated, and can limit the velocity of each of the multiple joints to the common joint velocity limit.
Setting the minimum joint velocity limit of the joints as the common joint velocity limit for all of the joints can ensure that none of the joints will exceed their respective joint velocity limits. Motion of a portion of the arm distal of the multiple joints will depend on motion of each of the joints individually. By setting the common joint velocity limit for each of these joints individually, the velocity of that distal portion of the arm can also be limited in a convenient manner. The common joint velocity limit can be applied to the portion of the arm distal of the multiple joints, for example a next joint from the multiple joints, or a more distal joint from the multiple joints. The common joint velocity limit can be applied so as to limit the velocity at which the position of that portion of the arm can move (e.g. positional velocity along the three orthogonal axes of Cartesian space). The velocity of that portion of the arm will depend on the velocity of the multiple joints, i.e. joints more proximal to the base of the arm than that portion of the arm. Thus applying the common joint velocity limit to that portion of the arm will have the effect of limiting the velocity of the multiple joints. The velocity of the multiple joints may, individually, be limited to the common joint velocity limit. Where more than one of the multiple joints move at once, it is likely that the maximum velocity of those joints will be less than the common joint velocity limit.
A robot arm may be kinematically redundant, or simply 'redundant', in that there are multiple configurations of joints of the arm which result in the same spatial relationship between a base of the arm and an attachment for an instrument at an end of the arm distal from the base of the arm. A redundant arm is able to perform a given task and move (including orient) an instrument or endoscope (attached to the arm) to a desired position with more than one possible arm configuration or "pose".
Such redundancy can give flexibility in the configuration of the arm, but can also lead to problems: some arm configurations may be less desirable than others. This can be because the arm is more likely to collide with another object or a person in the workspace in one configuration than in another configuration. A configuration may be undesirable because it limits subsequent movement, for example of a joint or of the end effector. For example, a particular position of the end effector may be achievable with a given joint well within its operating range, or close to a limit of its operating range. The latter configuration is less desirable in that the given joint may reach its operating limit in a subsequent movement, potentially restricting the movement of the end effector or leading to another cause of undesirable high joint speeds at other joints to compensate for the restricted movement. The joint limit acts as a constraint on joint movement, and hence on the arm.
In the present techniques, action can be taken, e.g. by a control system, to avoid undesirable high joint speeds, whether caused by a high commanded velocity and/or by constraints on the arm causing high joint velocities to occur, or in some other way. This action can be taken based on the current joint states, or angles. E.g. knowledge of the pose of the arm, or of at least a subset of joints of the arm, can be sufficient to enable the velocities of multiple joints of the arm to be limited. Knowledge of the commanded motion is not needed.
Figure 1 illustrates a typical surgical robot 100 for use in performing laparoscopic surgery which consists of a base 108, an arm 102, and an instrument 105. The base supports the robot, and is itself attached rigidly to, for example, the operating theatre floor, the operating theatre ceiling, a trolley or a patient bed. The arm extends between the base and the instrument. The arm is articulated by means of multiple flexible joints 103 along its length, which are used to locate the surgical instrument in a desired location (which can include orientation) relative to the patient. The surgical instrument is attached to the distal end 104 of the robot arm. The surgical instrument penetrates the body of the patient 101 at a port 107 so as to access the surgical site. At its distal end, the instrument comprises an end effector 106 for engaging in a medical procedure.
A typical robot arm will comprise a driver for each joint which is configured to drive the joint to move. A typical robot arm will comprise a joint sensor for each joint configured to sense a state of the joint.
The present approach will be described with reference to figure 2, illustrating a system for controlling a robot arm. The system comprises an input controller 202 coupled to a kinematics controller 204. The kinematics controller 204 is coupled to an arm controller 206 such as an arm base controller. The arm controller 206 outputs a signal 208 for driving joints of the robot arm. The arm controller is also coupled to a joint velocity limiter 210. The joint velocity limiter is coupled to the kinematics controller 204. The joint velocity limiter 210 suitably forms part of a joint velocity limiting system. The kinematics controller 204 may form part of the joint velocity limiting system. The arm controller 206 may form part of the joint velocity limiting system.
The input controller 202 is manipulatable for controlling the position of the robot arm. A user of the system, such as a surgeon, can manipulate the input controller so as to command a desired operation of the arm, including movement of the arm. An output of the input controller can be representative of a commanded pose for the robot arm. For example, the output of the input controller may comprise a desired movement of a distal joint of the robot arm. This output is received at the kinematics controller 204. The kinematics controller is configured to determine a desired pose of the robot arm in response to the commanded pose. Typically this will correspond to a desired movement of the arm towards that desired pose from the current pose. The kinematics controller outputs the desired pose to the arm controller 206 which is configured to calculate the drive signals 208 necessary for driving the joints of the arm so as to achieve the desired pose. The determination of the desired pose and/or the calculation of the drive signals necessary to achieve that desired pose can be carried out in any suitable way. For example, the desired pose of the arm, which can include desired joint angles of each of the driven joints, can be determined based on the current pose of the arm. Movements of each of the joints for causing the desired movement of the distal joint of the arm can be determined. The kinematics controller and/or the arm controller suitably have access to the current pose of the arm, for example by having access to the joint states of the arm and/or by maintaining a record, for example at a memory, of previous adjustments to the arm position, such as drive signals used to drive the arm. For example, the kinematics controller and/or the arm controller may be configured to receive signals from the joint sensors. The received signals can be indicative of the current rotational position of the respective joints.
The arm controller is configured to output joint states, for example joint angular positions, of at least a subset of the joints of the arm to the joint velocity limiter 210. The joint velocity limiter is configured to derive a common joint velocity limit for a plurality of joints of the arm in dependence on the received joint states. The common joint velocity limit is output by the joint velocity limiter to the kinematics controller. The kinematics controller can therefore determine the desired pose of the arm in dependence on the commanded pose and the common joint velocity limit for the plurality of joints of the arm. The movements of the arm controlled by the drive signals 208 can therefore take into account the current pose of the arm and a common joint velocity limit derived from that current pose.
Suitably the arm is controlled such that the position of a selected portion of the arm, for example a joint or location of the arm such as a wrist of the arm, will lie on a straight line joining a current position of that selected portion and a commanded position of that selected portion, or as close to that straight line as can be achieved whilst satisfying other control criteria. Thus, the position of the selected portion of the arm will follow a path expected by a user controlling the arm. Thus, where the velocity of a joint is restricted, the velocities of other joints are also likely to need to be modified such that the position of the selected portion of the arm follows the desired path.
The present techniques will now be described further with respect to a particular arrangement of a robot arm. Figure 3 illustrates a surgical robot having an arm 300 which extends from a base 301.
The arm comprises a number of rigid limbs 302. The limbs are coupled by revolute joints 303. The most proximal limb 302a is coupled to the base by a proximal joint 303a. It and the other limbs are coupled in series by further ones of the joints 303. Suitably, a wrist 304 is made up of four individual revolute joints. The position of the wrist can be defined as the location at which rotational axes of at least two of the revolute joints intersect. The wrist 304 couples one limb (302b) to the most distal limb (302c) of the arm. The most distal limb 302c carries an attachment 305 for a surgical instrument 306. Each joint 303 of the arm has one or more motors 307 which can be operated to cause rotational motion at the respective joint, and one or more position and/or torque sensors 308 which provide information regarding the current configuration and/or load at that joint. Suitably, the motors are arranged proximally of the joints whose motion they drive, so as to improve weight distribution. For clarity, only some of the motors and sensors are shown in figure 3. The arm may be generally as described in our co-pending patent application PCT/GB2014/053523.
Controllers for the motors, torque sensors and encoders are distributed within the robot arm. The controllers are connected via a communication bus to a control unit 309. The control unit 309 comprises a processor 310 and a memory 311. The memory 311 stores in a non-transient way software that is executable by the processor to control the operation of the motors 307 to cause the arm 300 to operate in the manner described herein. In particular, the software can control the processor 310 to cause the motors (for example via distributed controllers) to drive in dependence on inputs from the sensors 308 and from a surgeon command interface 312. The control unit 309 is coupled to the motors 307 for driving them in accordance with outputs generated by execution of the software. The control unit 309 is coupled to the sensors 308 for receiving sensed input from the sensors, and to the command interface 312 for receiving input from it. The respective couplings may, for example, each be electrical or optical cables, and/or may be provided by a wireless connection. The command interface 312 comprises one or more input devices whereby a user can request motion of the end effector in a desired way. The input devices could, for example, be manually operable mechanical input devices such as control handles or joysticks, or contactless input devices such as optical gesture sensors. The software stored in the memory 311 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 command interface 312 can control the instrument 306 to move in such a way as to perform a desired surgical procedure. The control unit 309 and/or the command interface 312 may be remote from the arm 300.
The illustrated surgical robot comprises a single robot arm. Other surgical robot systems may comprise a plurality of surgical robots and/or a plurality of robot arms. For example, other example surgical robot systems may comprise a surgical robot with a plurality of robot arms that can each receive and manipulate a surgical instrument, or they may comprise a plurality of surgical robots that each have a robot arm that can receive and manipulate a surgical instrument.
For ease of reference, the joints of the arm illustrated in figure 3 can be labelled as J1 (303a), J2 (303b), J3 (303c), J4 (303d), J5 (303e), J6 (303f), J7 (303g) and J8 (303h). Joint J4 can be considered as an "elbow" of the illustrated arm. The kinematics of this arm arrangement permit the elbow joint to move within a known and variable "nullspace" whilst keeping the wrist of the arm (the intersection of the axes of rotation of joints J6 and J7 in the illustrated example), which couples to the attachment for the instrument, at a desired position. The desired position is derived from the
commanded position, as commanded by the command interface, taking into account the common joint velocity limit applied to multiple joints of the arm. Constraints applied to adjust movement and/or position of the arm can help ensure that the elbow is in the optimum location within that nullspace in order to perform any given task within a user-specified operating mode. Where movement of a joint of the arm might otherwise cause the common joint velocity limit to be exceeded, the elbow joint can move to compensate for this, which in some instances can avoid the motion of the wrist being affected (e.g. slowed down) whilst still complying with the common joint velocity limit.
AMENDED CLAIMS
received by the International Bureau on 11 March 2021 (11.03.2021)
CLAIMS
1. A method for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the method comprising:
obtaining joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints:
determining from the obtained joint state a permitted range of motion for that joint; deriving, using the permitted range of motion, a joint velocity limit for that joint; selecting the minimum joint velocity limit of the k joints to be a common joint velocity limit used to limit each of the k joints individually; and
calculating drive signals for driving the k joints to actuate at least one of the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
2. A method for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the method comprising:
obtaining joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints, determining from the obtained joint state a permitted range of motion for that joint;
deriving, using the minimum permitted range of motion of the k joints and the joint to which that minimum permitted range of motion pertains, a common joint velocity limit used to limit each of the k joints individually; and
calculating drive signals for driving the k joints to actuate at least one of the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
3. A method according to claim 1 or claim 2, in which the first group of k joints comprises k joints proximal to the base of the arm, and the common joint velocity limit limits the positional velocity of the kth joint along orthogonal directions in Cartesian space.
4. A method according to any preceding claim, in which the first group of k joints comprises k joints proximal to the base of the arm, and the k joints enable a position of a (k + m)th joint to be uniquely determined, where m > 0.
5. A method according to any preceding claim, in which the common joint velocity limit limits the positional velocity of a (k + m)th joint along orthogonal directions in Cartesian space.
6. A method according to any preceding claim, in which the velocity of each of the k joints individually is limited to the common joint velocity limit.
7. A method according to any preceding claim, in which the arm comprises n joints, where n > k, and the method comprises:
obtaining joint states for a second group of (n - k) joints of the arm;
for each of the (n - k) joints:
determining from the obtained joint state a permitted range of motion for that joint; deriving, using the permitted range of motion, a joint velocity limit for that joint; selecting the minimum joint velocity limit of the (n - k) joints to be a further common joint velocity limit for each of the (n - k) joints individually; and
calculating drive signals for driving the (n - k) joints wherein the velocity of each of the (n - k) joints is limited to the further common joint velocity limit.
8. A method according to any preceding claim, in which obtaining joint states for one or both of the first group of k joints and the second group of (n - k) joints comprises obtaining joint angles.
9. A method according to any preceding claim, in which determining the permitted range of motion of a joint comprises determining a closest angular distance to a joint angular limit for that joint.
10. A method according to claim 9, in which deriving the joint velocity limit comprises using a maximum deceleration for the respective joint and the determined closest angular distance to the joint angular limit.
11. A method according to any of claims 7 to 10, in which the further common joint velocity limit limits the angular velocity of a (k + m)th joint, where m > 0.
12. A method according to any of claims 9 to 11, in which at least one of the joint angular limit for a joint and the maximum deceleration for a joint comprises a predetermined value and/or is determined from a physical characteristic of the joint, and/or is user-definable.
13. A method according to any of claims 9 to 12, in which where the determined closest angular distance to the joint angular limit exceeds a threshold angular distance, the joint velocity limit for that joint comprises a predetermined joint velocity limit value.
14. A method according to any preceding claim, in which deriving the joint velocity limit comprises translating joint angular positions and/or velocities into positions and/or velocities, respectively, in Cartesian space.
15. A method according to claim 14, in which the translating comprises determining a Jacobian matrix.
16. A method according to claim 15, in which the translating comprises using the determined Jacobian matrix to derive an inverse matrix.
17. A method according to claim 16, in which the translating comprises determining a Euclidean norm in respect of each row of the inverse matrix.
18. A method according to any preceding claim, comprising providing feedback to a user of the surgical robotic system based on a commanded joint velocity for a joint exceeding the common joint velocity limit or further common joint velocity limit for that joint.
19. A method according to claim 18, in which the surgical robotic system comprises an input controller manipulatable by a user thereby to alter the configuration of the arm, and the method comprises providing haptic feedback via the input controller.
20. A joint velocity limiting system for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the joint velocity limiting system being configured to:
obtain joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints:
determine from the obtained joint state a permitted range of motion for that joint; derive, using the permitted range of motion, a joint velocity limit for that joint; select the minimum joint velocity limit of the k joints to be a common joint velocity limit used to limit each of the k joints individually; and
calculate drive signals for driving the k joints to actuate at least one of the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
21. A joint velocity limiting system for limiting joint velocity of a plurality of joints of a surgical robotic system, the surgical robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising a plurality of joints whereby the configuration of the arm can be altered, the joint velocity limiting system being configured to:
obtain joint states for a first group of k joints of the arm, where k > 1;
for each of the k joints determine from the obtained joint state a permitted range of motion for that joint;
derive, using the minimum permitted range of motion of the k joints and the joint to which that minimum permitted range of motion pertains, a common joint velocity limit used to limit each of the k joints individually; and
calculate drive signals for driving the k joints to actuate at least one of the k joints wherein the velocity of each of the k joints is limited using the common joint velocity limit.
| # | Name | Date |
|---|---|---|
| 1 | 202217030003-FORM 3 [19-01-2024(online)].pdf | 2024-01-19 |
| 1 | 202217030003.pdf | 2022-05-25 |
| 2 | 202217030003-FORM 3 [24-07-2023(online)].pdf | 2023-07-24 |
| 2 | 202217030003-STATEMENT OF UNDERTAKING (FORM 3) [25-05-2022(online)].pdf | 2022-05-25 |
| 3 | 202217030003-REQUEST FOR EXAMINATION (FORM-18) [25-05-2022(online)].pdf | 2022-05-25 |
| 3 | 202217030003-CLAIMS [27-01-2023(online)].pdf | 2023-01-27 |
| 4 | 202217030003-PRIORITY DOCUMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 4 | 202217030003-DRAWING [27-01-2023(online)].pdf | 2023-01-27 |
| 5 | 202217030003-FORM 18 [25-05-2022(online)].pdf | 2022-05-25 |
| 5 | 202217030003-FER_SER_REPLY [27-01-2023(online)].pdf | 2023-01-27 |
| 6 | 202217030003-OTHERS [27-01-2023(online)].pdf | 2023-01-27 |
| 6 | 202217030003-FORM 1 [25-05-2022(online)].pdf | 2022-05-25 |
| 7 | 202217030003-FORM-26 [10-10-2022(online)].pdf | 2022-10-10 |
| 7 | 202217030003-DRAWINGS [25-05-2022(online)].pdf | 2022-05-25 |
| 8 | 202217030003-Proof of Right [10-10-2022(online)].pdf | 2022-10-10 |
| 8 | 202217030003-DECLARATION OF INVENTORSHIP (FORM 5) [25-05-2022(online)].pdf | 2022-05-25 |
| 9 | 202217030003-COMPLETE SPECIFICATION [25-05-2022(online)].pdf | 2022-05-25 |
| 9 | 202217030003-FER.pdf | 2022-09-15 |
| 10 | 202217030003-COMPLETE SPECIFICATION [25-05-2022(online)].pdf | 2022-05-25 |
| 10 | 202217030003-FER.pdf | 2022-09-15 |
| 11 | 202217030003-DECLARATION OF INVENTORSHIP (FORM 5) [25-05-2022(online)].pdf | 2022-05-25 |
| 11 | 202217030003-Proof of Right [10-10-2022(online)].pdf | 2022-10-10 |
| 12 | 202217030003-DRAWINGS [25-05-2022(online)].pdf | 2022-05-25 |
| 12 | 202217030003-FORM-26 [10-10-2022(online)].pdf | 2022-10-10 |
| 13 | 202217030003-FORM 1 [25-05-2022(online)].pdf | 2022-05-25 |
| 13 | 202217030003-OTHERS [27-01-2023(online)].pdf | 2023-01-27 |
| 14 | 202217030003-FER_SER_REPLY [27-01-2023(online)].pdf | 2023-01-27 |
| 14 | 202217030003-FORM 18 [25-05-2022(online)].pdf | 2022-05-25 |
| 15 | 202217030003-DRAWING [27-01-2023(online)].pdf | 2023-01-27 |
| 15 | 202217030003-PRIORITY DOCUMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 16 | 202217030003-CLAIMS [27-01-2023(online)].pdf | 2023-01-27 |
| 16 | 202217030003-REQUEST FOR EXAMINATION (FORM-18) [25-05-2022(online)].pdf | 2022-05-25 |
| 17 | 202217030003-FORM 3 [24-07-2023(online)].pdf | 2023-07-24 |
| 17 | 202217030003-STATEMENT OF UNDERTAKING (FORM 3) [25-05-2022(online)].pdf | 2022-05-25 |
| 18 | 202217030003.pdf | 2022-05-25 |
| 18 | 202217030003-FORM 3 [19-01-2024(online)].pdf | 2024-01-19 |
| 19 | 202217030003-US(14)-HearingNotice-(HearingDate-14-11-2025).pdf | 2025-11-04 |
| 20 | 202217030003-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [11-11-2025(online)].pdf | 2025-11-11 |
| 21 | 202217030003-US(14)-ExtendedHearingNotice-(HearingDate-15-12-2025)-1100.pdf | 2025-11-14 |
| 1 | SearchHistoryE_14-09-2022.pdf |