US11999062B2 - Robotic joint control - Google Patents
Robotic joint control Download PDFInfo
- Publication number
- US11999062B2 US11999062B2 US17/081,120 US202017081120A US11999062B2 US 11999062 B2 US11999062 B2 US 11999062B2 US 202017081120 A US202017081120 A US 202017081120A US 11999062 B2 US11999062 B2 US 11999062B2
- Authority
- US
- United States
- Prior art keywords
- joint
- joints
- arm
- velocity
- limit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1651—Programme controls characterised by the control loop acceleration, rate control
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/30—Surgical robots
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/70—Manipulators specially adapted for use in surgery
- A61B34/76—Manipulators having means for providing feel, e.g. force or tactile feedback
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B90/00—Instruments, implements or accessories specially adapted for surgery or diagnosis and not covered by any of the groups A61B1/00 - A61B50/00, e.g. for luxation treatment or for protecting wound edges
- A61B90/06—Measuring instruments not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/02—Hand grip control means
- B25J13/025—Hand grip control means comprising haptic means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1607—Calculation of inertia, jacobian matrixes and inverses
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/20—Surgical navigation systems; Devices for tracking or guiding surgical instruments, e.g. for frameless stereotaxis
- A61B2034/2046—Tracking techniques
- A61B2034/2059—Mechanical position encoders
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B90/00—Instruments, implements or accessories specially adapted for surgery or diagnosis and not covered by any of the groups A61B1/00 - A61B50/00, e.g. for luxation treatment or for protecting wound edges
- A61B90/06—Measuring instruments not otherwise provided for
- A61B2090/064—Measuring instruments not otherwise provided for for measuring force, pressure or mechanical tension
- A61B2090/066—Measuring instruments not otherwise provided for for measuring force, pressure or mechanical tension for measuring torque
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B90/00—Instruments, implements or accessories specially adapted for surgery or diagnosis and not covered by any of the groups A61B1/00 - A61B50/00, e.g. for luxation treatment or for protecting wound edges
- A61B90/06—Measuring instruments not otherwise provided for
- A61B2090/067—Measuring instruments not otherwise provided for for measuring angles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40353—Split robot into two virtual robot, origin of second equals tip of first
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40381—Control trajectory in case of joint limit, clamping of joint
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43201—Limit speed to allowable speed for all axis
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45118—Endoscopic, laparoscopic manipulator
Definitions
- 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.
- 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.
- the robot may be required to cause the end effector to move to a desired position.
- 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.
- 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.
- This series of steps is performed repetitively so that over time the motion of the robot conforms to the target configurations.
- a method for limiting joint velocity of a plurality of joints of a 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:
- a method for limiting joint velocity of a plurality of joints of a 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:
- 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.
- 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.
- 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:
- 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:
- a joint velocity limiting system for a surgical robotic system configured to perform the method as described herein.
- 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.
- 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.
- FIG. 1 illustrates a typical surgical robot
- FIG. 2 illustrates a schematic of a system for controlling a robot arm
- FIG. 3 illustrates another surgical robot
- FIG. 4 illustrates a method of limiting joint velocity of a plurality of joints of a robotic system
- FIG. 5 illustrates a method of determining permitted ranges of motion of joints
- FIG. 6 illustrates a method of translating joint angle positions and/or joint velocities into Cartesian space
- FIG. 7 illustrates a method of limiting joint angular velocity of a plurality of further joints of a robotic system
- FIG. 8 illustrates another method of limiting joint velocity of a plurality of joints of a robotic system
- FIG. 9 illustrates another method of limiting joint angular velocity of a plurality of further joints of a robotic system.
- 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.
- joints of the arm are driven to move more quickly.
- 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.
- 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.
- the velocity of multiple joints of a 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.
- 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.
- 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.
- 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.
- 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.
- FIG. 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.
- 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 FIG. 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.
- 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.
- 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.
- 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.
- 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.
- the position of the selected portion of the arm will follow a path expected by a user controlling the arm.
- 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.
- FIG. 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 302 a is coupled to the base by a proximal joint 303 a .
- It and the other limbs are coupled in series by further ones of the joints 303 .
- 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 ( 302 b ) to the most distal limb ( 302 c ) of the arm.
- the most distal limb 302 c 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.
- 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 FIG. 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.
- 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.
- 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
- 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.
- 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.
- joints of the arm illustrated in FIG. 3 can be labelled as J 1 ( 303 a ), J 2 ( 303 b ), J 3 ( 303 c ), J 4 ( 303 d ), J 5 ( 303 e ), J 6 ( 303 f ), J 7 ( 303 g ) and J 8 ( 303 h ).
- Joint J 4 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 J 6 and J 7 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.
- the robot arm comprises 8 joints.
- the first four joints from the base (J 1 to J 4 ), i.e. the four joints proximal to the base, enable a more distal portion of the arm to be positioned in 3D Cartesian space along the three orthogonal axes of that space.
- the joints may be the following type of joints: J 1 (roll joint); J 2 (pitch joint); J 3 (roll joint); J 4 (pitch joint).
- Subsequent joints, in this example the fifth to the eighth joints (J 5 to J 8 ) enable the portion of the arm distal of the fourth joint to be angularly rotated about that position.
- joints J 1 to J 4 are sufficient to define the position in Cartesian space of the distal portion of the arm.
- the distal portion of the arm can comprise joints J 5 to J 8 .
- Each of joints J 1 to J 4 has a respective minimum joint rotational position and a respective maximum joint rotational position. These minimum joint rotational positions and maximum joint rotational positions can be physical end points, i.e. angles past which the joint is not physically able to rotate, or they can be angles that are selected, for example in software control.
- Each of the joints is rotatable between its minimum joint rotational position and its maximum joint rotational position.
- J 1 is rotatable between ⁇ 720 degrees and 720 degrees.
- J 2 is rotatable between ⁇ 90 degrees and 135 degrees.
- J 3 is rotatable between ⁇ 720 degrees and 720 degrees.
- J 4 is rotatable between ⁇ 5 degrees and 180 degrees.
- the difference between the minimum joint rotational position and the maximum joint rotational position in respect of J 1 and/or J 3 is suitably greater than the difference between the minimum joint rotational position and the maximum joint rotational position in respect of J 2 and/or J 4 .
- This can be the case where, for example, J 1 and/or J 3 tend to move less than J 2 and/or J 4 during operation of the arm.
- Each of joints J 5 to J 8 has a respective minimum joint rotational position and a respective maximum joint rotational position. These minimum joint rotational positions and maximum joint rotational positions can be physical end points, i.e. angles past which the joint is not physically able to rotate, or they can be angles that are selected, for example in software control.
- Each of the joints is rotatable between its minimum joint rotational position and its maximum joint rotational position. In this example J 5 is rotatable between ⁇ 720 degrees and 720 degrees. J 6 is rotatable between ⁇ 20 degrees and 23 degrees. J 7 is rotatable between ⁇ 120 degrees and 120 degrees. J 8 is rotatable between ⁇ 360 degrees and 360 degrees.
- the joint states of each of the four joints J 1 to J 4 enables a permitted range of motion for each joint to be determined.
- the joint states can comprise or indicate a joint angle within the range of joint angles at which a particular joint is currently located.
- the state of joint J 2 may indicate that J 2 is at a current angular position of 125 degrees.
- the permitted range of motion of J 2 can be found by comparing the current angular position (125 degrees) with the minimum and maximum angular positions: ⁇ 90 degrees and 135 degrees, respectively.
- the permitted range of motion includes a range of ( ⁇ 90-125) degrees in one direction and (135-125) degrees in the other direction.
- the permitted range of motion of J 1 in this example is 215 degrees one way, and 10 degrees the other way.
- Each of joints J 1 to J 4 has a respective maximum velocity.
- These maximum velocities can be physical velocities, i.e. velocities which cannot physically be exceeded by the joints, or they can be velocities that are selected, for example in software control.
- J 1 is rotatable at up to 3 radians/second.
- J 2 is rotatable at up to 3 radians/second.
- J 3 is rotatable at up to 3 radians/second.
- J 4 is rotatable at up to 3 radians/second.
- the maximum velocities of these joints need not be the same.
- Each of joints J 1 to J 4 has a respective maximum acceleration (or deceleration). These maximum decelerations can be physical decelerations, i.e. decelerations which cannot physically be exceeded by the joints, or they can be decelerations that are selected, for example in software control. The change in velocity of each of the joints can be up to the maximum deceleration.
- J 2 has a maximum deceleration of 5 radians/second ⁇ circumflex over ( ) ⁇ 2.
- J 4 has a maximum deceleration of 5 radians/second ⁇ circumflex over ( ) ⁇ 2.
- the maximum decelerations of J 1 and/or J 3 can be set higher than the maximum decelerations of joints J 2 and/or J 4 , for example, where J 1 and/or J 3 tend to move less than J 2 and/or J 4 during operation of the arm. In some cases the maximum decelerations of J 1 and/or J 3 can be set high enough that these decelerations are unlikely to be reached in practice, for example decelerations over 1000 radians/second ⁇ circumflex over ( ) ⁇ 2. The maximum deceleration of J 1 need not be the same as the maximum deceleration of J 3 . The maximum decelerations of J 2 and J 4 need not be the same.
- the joint angles can be determined in radians, or converted to radians, or the velocities and decelerations can be determined in or converted to degrees.
- the unit used is not critical, but it will be understood that the same unit will be used in a consistent manner for the calculations.
- a joint velocity limit is derived from the determined permitted range of motion.
- the joint velocity limit for a given joint is suitably derived using the permitted range of motion for that joint and the maximum deceleration for that joint.
- the joint velocity limit can be the highest velocity at which the joint can rotate whilst still being able to slow down and stop (at the maximum deceleration) by the joint rotational limit (i.e. within the permitted range of motion). For example, from the standard equations of motion, it can be found that the joint velocity limit is (2*(permitted range of motion)*(maximum deceleration)) ⁇ circumflex over ( ) ⁇ (1 ⁇ 2).
- the velocity limit for that joint can be determined to be the maximum velocity. For example, where the joint angle for a given joint is at a mid-point of its range, there may be no need to limit the joint velocity to be lower than the maximum velocity. This is because, when the joint angle is in this mid-point, the joint velocity limit that would be derived from the permitted range of motion and the maximum deceleration may be greater than the maximum velocity for that joint.
- the permitted range of motion at which the joint velocity limit exceeds the maximum velocity can be determined.
- This permitted range of motion can be selected as a threshold value. It may only be necessary to calculate the joint velocity limit for that joint where the permitted range of motion for that joint falls below this threshold value. Where the permitted range of motion meets or exceeds this threshold value, the maximum velocity for that joint can be used as a limiting velocity for that joint. This approach can reduce the processing overhead in deriving the joint velocity limit.
- the threshold value is likely to differ between joints, due to differing joint characteristics, such as joint maximum decelerations and/or minimum and/or maximum joint rotational positions. The threshold values need not be different. Where the joint characteristics for given joints are the same, the threshold values for those joints can be the same.
- the minimum of the four joint velocity limits is selected to be a common joint velocity limit.
- the common joint velocity limit is a limit that can be applied to each of the four joints, J 1 to J 4 , individually.
- the common joint velocity limit can be applied to a joint more distal from joint J 4 , for example the wrist (i.e. J 6 /J 7 intersection). Applying the common joint velocity limit to this more distal joint can cause the velocity of joints J 1 to J 4 to be limited.
- the common joint velocity limit can be selected based on the angular joint velocity limits. In some cases the common joint velocity limit can be selected in dependence on a transformation into Cartesian space of the angular joint velocity limits.
- the common joint velocity limit can be applied to the more distal joint by transforming the common joint velocity limit into Cartesian space and using the common joint velocity limit, as transformed, to limit the positional velocity in Cartesian space of that more distal joint.
- a Jacobian matrix can be determined based on the joint angles of the joints of the arm. In this case, only the joint angles of joints J 1 to J 4 need be considered. Joint angles of the remaining joints (J 5 to J 8 ) need not be considered. Thus the joint angles of the joints distal of J 4 can be set to zero when calculating the Jacobian matrix.
- An inverse matrix can be calculated from the Jacobian matrix.
- the Euclidean norm for each row can be derived from the inverse matrix. This can provide unit vectors along each of the Cartesian x, y and z axes for each of joints J 1 to J 4 .
- the inverse matrix can translate joint angle positions and joint velocities into joint positions and joint velocities in Cartesian space.
- velocities in Cartesian coordinates can be calculated for each joint J 1 to J 4 .
- the minimum of these velocities in Cartesian coordinates can be selected to be the common joint velocity limit.
- the common velocity limit is used to limit the velocity of a plurality of joints of the arm.
- the common joint velocity limit is used to limit the velocity of more than one of the four joints J 1 to J 4 , for example each of joints J 1 to J 4 individually.
- separate joint velocity limits for each of the joints J 1 to J 4 may be calculated to be J 1 vel-limit , J 2 vel-limit , J 3 vel-limit and J 4 vel-limit .
- J 4 vel-limit is smaller than any of J 1 vel-limit , J 2 vel-limit , and J 3 vel-limit .
- J 4 vel-limit is selected to be the common joint velocity limit.
- each of J 1 , J 2 , J 3 and J 4 is limited to J 4 vel-limit .
- the common joint velocity limit can be applied to the multiple joints by limiting the positional velocity in Cartesian space of the wrist to J 4 vel-limit .
- This common joint velocity limit can be applied in any suitable way.
- the common joint velocity limit can be passed to the kinematics controller, which can take this common joint velocity limit into account when determining the desired pose of the arm in response to the commanded pose.
- the kinematics controller can use the common joint velocity limit to limit the velocity of each of joints J 1 to J 4 individually.
- the kinematics controller can use the common joint velocity limit, as applied to the position of the wrist (i.e. the position at which the axes of J 6 and J 7 intersect), when calculating the velocities of multiple joints of the arm. Limiting the positional velocity of the wrist can cause limits to be placed on the velocities of the individual joints J 1 to J 4 .
- the kinematics controller can calculate desired joint movements of joints proximal of the wrist such that the velocity of the wrist does not exceed the common joint velocity limit. In doing so, the kinematics controller can effectively limit the joint velocities of each of the joints proximal of the wrist using the common joint velocity limit.
- the kinematics controller can use the common joint velocity limit, as applied individually to joints J 1 to J 4 , when calculating the velocities of multiple joints of the arm. Where the common joint velocity limit is applied to J 1 to J 4 individually, the kinematics controller can take this into consideration when calculating joint movements, including joint velocities, of other joints of the arm. Thus, where the arm can move from a first configuration to a second configuration in more than one way, as is likely to be the case for a redundant arm, the kinematics controller can calculate joint movements that attempt to keep the velocities of the individual joints below the common joint velocity limit. Where this is not possible, the kinematics controller can ‘cap’ the velocity of the joints at the common joint velocity limit, so that this limit is not exceeded.
- the kinematics controller can calculate the desired movements of the joint in a way that permits the common joint velocity limit to be exceeded by the first joint whilst the velocity of the wrist is still limited to the common joint velocity limit.
- the velocity of the wrist or more generally, a portion of the arm distal of the multiple joints
- the velocity of the multiple joints individually need not also be directly limited to the common joint velocity limit.
- the velocity of the multiple joints individually can be limited by the common joint velocity limit such that the velocities of each of the multiple joints individually does not exceed the common joint velocity limit.
- the scaling factor can, in some instances, be derived from the common joint velocity limit and the commanded wrist velocity, for example a ratio:
- This ratio can be applied to the velocity limit of each of the joints J 1 to J 4 individually, e.g. the ratio can be applied to the common joint velocity limit. This approach can help ensure that the velocity of the wrist does not exceed the common joint velocity limit.
- Limiting the joint velocities in this way is likely to mean that there will be a difference between the commanded joint velocities and the actual joint velocities of the arm joints.
- This approach can help ensure that a user of the surgical robotic system is aware at all times of the extent of movement of the arm joints in response to commanded movement at the input controller. This approach helps ensure that there is no ‘overshoot’ of the joints of the arm beyond that expected by the user.
- the present techniques can assist with the safe execution of control of the robot arm.
- joint velocities for all four of joints J 1 to J 4 are calculated, and the minimum of these joint velocities selected as the common joint velocity.
- the minimum of these permitted ranges of motion can be selected and can be used, together with the maximum deceleration for the relevant joint (i.e. the joint at the angular position with the minimum permitted range of motion) to derive the common joint velocity.
- the joint velocity for any other joint There is no need in this case to calculate the joint velocity for any other joint.
- This approach can be useful where the ratings or characteristics of the joints are the same. For example, where each of the joints under consideration, for example joints J 1 to J 4 , have the same maximum deceleration. This approach may be useful where each of the joints has the same maximum velocity.
- the common joint velocity limit can usefully be obtained based on the measured joint angles. There is no need for additional data, for example commanded joint positions or a commanded pose to be considered when obtaining the common joint velocity limit.
- the joint angles of joints J 1 to J 4 are sufficient to define the position of joint J 4 , and can also be sufficient to define the position of a joint distal of J 4 .
- a wrist joint can be defined by the intersection of the axes of J 6 and J 7 .
- the position of the wrist joint can suitably be defined by the angles of J 1 to J 4 only.
- the positional velocity can be considered to be the velocity along the three orthogonal axes of Cartesian space.
- J 4 it is also possible to limit the angular velocity of a joint distal of J 4 , for example the wrist joint.
- One way that this can be achieved is to consider a second Jacobian matrix (and inverse matrix, as described above with reference to deriving the common joint velocity limit) based on the joint angles of joints distal of J 4 , for example J 5 to J 7 .
- the joint angle of J 8 may also be taken into account, as desired.
- a further common joint velocity limit (or a common joint angular velocity limit) can be the same as described herein with respect to calculating the common joint velocity limit, where joints J 5 to J 7 are considered in place of joints J 1 to J 4 .
- the scaling factor may be applied in a similar manner to that described elsewhere herein with reference to joints J 1 to J 4 .
- a single Jacobian matrix can be determined based on J 1 to J 7 .
- positional and angular mappings can be considered at once. It is noted that this ‘larger’ Jacobian matrix based on J 1 to J 7 can be determined in addition to determining the ‘smaller’ Jacobian matrix based on J 1 to J 4 . This may, however, lead to some duplication of processing effort.
- One or more of the minimum joint rotational position, the maximum joint rotational position, the joint maximum velocity and the joint maximum deceleration can be determined in dependence on at least one of the following:
- Joint states for a plurality of joints are obtained ( 402 ). For example, for a robot arm comprising n joints, joint states of k joints can be obtained, where k ⁇ n.
- a permitted range of motion is determined for each joint ( 404 ), i.e. for each of the k joints.
- a joint velocity limit is derived for each joint ( 406 ), i.e. for each of the k joints.
- the minimum joint velocity limit is selected as a common joint velocity limit ( 408 ).
- the common joint velocity limit can then be used to calculate drive signals ( 410 ) for driving joints of the arm, for example at least the k joints.
- the arm is then controlled to actuate at least one of the joints in response to the drive signals ( 412 ).
- FIG. 5 illustrates a method of determining permitted ranges of motion of joints.
- Joint angles for a plurality of joints are obtained ( 502 ).
- the plurality of joints is suitably the k joints discussed in the context of FIG. 4 .
- Joint angular limits are obtained for each of the joints ( 504 ).
- the joint angular limits can be obtained from any suitable source, for example a memory.
- closest angular distances are determined to the joint angular limit ( 506 ). This can be determined by calculating the angular distance between the current joint angle and both of the minimum and maximum joint angles, and taking the smaller of the resulting values. This closest angular distance can be used as the permitted range of motion of that joint.
- FIG. 6 illustrates a method of translating joint angle positions and/or joint velocities into Cartesian space.
- a Jacobian matrix is determined in respect of a plurality of joints. The Jacobian matrix can be determined in respect of a subset of arm joints (i.e. k joints) or all of the joints of the arm (i.e. n joints).
- an inverse matrix is derived from the Jacobian matrix.
- a Euclidean norm is obtained in respect of each row of the inverse matrix ( 606 ). It may be sufficient in some examples to obtain the Euclidean norm for a subset of the rows of the inverse matrix, but preferably the Euclidean norm is obtained for each row.
- joint angular positions and/or velocities are translated into Cartesian space. This translation suitably makes use of the inverse matrix derived at 604 and the Euclidean norms obtained at 606 .
- FIG. 7 illustrates a method of limiting joint angular velocity of a plurality of joints of a robotic system such as a surgical robotic system.
- Joint states for a plurality of further joints are obtained ( 702 ). For example, for a robot arm comprising n joints, joint states of (n ⁇ k) joints can be obtained, where k ⁇ n.
- a permitted range of motion is determined for each joint of the plurality of further joints ( 704 ), i.e. for each of the (n ⁇ k) joints.
- a joint velocity limit is derived for each of the plurality of further joints ( 706 ), i.e. for each of the (n ⁇ k) joints.
- the minimum joint velocity limit is selected as a further common joint velocity limit ( 708 ).
- the further common joint velocity limit can then be used to calculate drive signals ( 710 ) for driving joints of the arm, for example at least the (n ⁇ k) joints.
- FIG. 8 illustrates another method of limiting joint velocity of a plurality of joints of a robotic system such as a surgical robotic system.
- Joint states for a plurality of joints are obtained ( 802 ). For example, for a robot arm comprising n joints, joint states of k joints can be obtained, where k ⁇ n.
- a permitted range of motion is determined for each joint ( 804 ), i.e. for each of the k joints.
- a common joint velocity limit is derived from the minimum permitted range of motion for the k joints ( 806 ). The common joint velocity limit can then be used to calculate drive signals ( 808 ) for driving joints of the arm, for example at least the k joints.
- FIG. 9 illustrates another method of limiting joint angular velocity of a plurality of joints of a robotic system such as a surgical robotic system.
- Joint states for a plurality of further joints are obtained ( 902 ).
- joint states of (n ⁇ k) joints can be obtained, where k ⁇ n.
- a permitted range of motion is determined for each joint of the plurality of further joints ( 904 ), i.e. for each of the (n ⁇ k) joints.
- a further common joint velocity limit is derived from the minimum permitted range of motion for the (n ⁇ k) joints ( 906 ).
- the further common joint velocity limit can then be used to calculate drive signals ( 908 ) for driving joints of the arm, for example at least the (n ⁇ k) joints.
- the joint states can be obtained from a position of one or more joints of the arm, for example a distal arm joint.
- the joint states may be obtained in dependence on the position of the wrist joint.
- the joint states can be obtained from a position commanded by an input controller at a surgeon console. Where joint states are obtained at a known sampling rate, the velocity of the joints and/or of a portion of the arm, can be determined from sampled positions.
- the robot arm comprises n joints.
- Joint states of k joints can be obtained (where k ⁇ n).
- the k joints are the k most proximal joints of the arm, i.e. J 1 -Jk.
- the joint states suitably comprise joint angles.
- the robot arm can be controlled by a user-manipulatable input controller.
- feedback such as haptic feedback
- the feedback can be provided through the input controller.
- the input controller can vibrate when the common joint velocity limit and/or the further common joint velocity limit is reached. The nature of the feedback can differ between the common joint velocity limit being reached and the further common joint velocity limit being reached.
- the system may be configured to provide a resistive force to movement of the input controller that would cause motion of the arm to exceed the common joint velocity limit and/or the further common joint velocity limit. In this way, a user of the system can be made aware of the ‘lost’ movement, i.e. movement of the input controller that will not result in further or faster movement of one or more joints of the robot arm.
- the audio-visual signal may comprise a light.
- the audio-visual signal may comprise a sound.
- the audio-visual signal may comprise lights with differing colours, intensities, continuous and/or flashing patterns, and so on.
- the audio-visual signal may comprise a sound with differing tone, volume, message and so on.
- the system comprises one or more lights configured to output the visual element of the audio-visual signal.
- the system comprises one or more speakers configured to output the audible element of the audio-visual signal.
- the light and/or speaker can be provided at any convenient location on the system, for example on a user console, on the input controller, on the robot arm and so on.
- the audio-visual signal may be emitted together with or instead of the provision of the haptic feedback.
- the present techniques have been described in the context of surgical robotic systems, though the features described below are not limited to such systems, but may be applied to robotic systems more generally. In some examples, the present techniques may be applied to robotic systems that operate remotely. Some examples of situations in which the present techniques may be useful include those that make use of ‘snake-like’ robots for exploration, investigation or repair. In the case of a surgical robot the end effector could be a surgical tool such as a scalpel, surgical cutter, surgical pincer or cauteriser.
- 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 joints could be driven by electric motors, which could be rotary or linear, or by other means such as hydraulic or pneumatic actuators. These would be driven from the same control algorithms.
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Surgery (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Veterinary Medicine (AREA)
- Public Health (AREA)
- Biomedical Technology (AREA)
- Heart & Thoracic Surgery (AREA)
- Medical Informatics (AREA)
- Molecular Biology (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Pathology (AREA)
- Manipulator (AREA)
Abstract
Description
-
- 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.
-
- 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.
-
- 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.
-
- 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.
-
- 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.
(2*(permitted range of motion)*(maximum deceleration)){circumflex over ( )}(½).
-
- a characteristic of the arm;
- an instrument to be attached to the arm;
- an environment of the arm;
- a procedure that the arm is used (or is to be used) to perform; and
- usage data gathered from system telemetry.
q=[q 1 ,q 2 ,q 3 ,q 4]
q=[q 1 ,q 2 ,q 3 ,q 4,0,0,0,0]
q=[q 1 ,q 2 ,q 3 ,q 4,0,0,0]
Claims (20)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1915687.6A GB2588629B (en) | 2019-10-29 | 2019-10-29 | Robotic joint control |
| GB1915687.6 | 2019-10-29 | ||
| GB1915687 | 2019-10-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210122041A1 US20210122041A1 (en) | 2021-04-29 |
| US11999062B2 true US11999062B2 (en) | 2024-06-04 |
Family
ID=68768960
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/081,120 Active 2041-06-17 US11999062B2 (en) | 2019-10-29 | 2020-10-27 | Robotic joint control |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US11999062B2 (en) |
| EP (1) | EP4051465B1 (en) |
| JP (1) | JP7300508B2 (en) |
| CN (1) | CN114630737A (en) |
| AU (1) | AU2020375183B2 (en) |
| BR (1) | BR112022008017A2 (en) |
| GB (1) | GB2588629B (en) |
| PT (1) | PT4051465T (en) |
| WO (1) | WO2021084239A1 (en) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11229494B2 (en) * | 2019-10-24 | 2022-01-25 | Verb Surgical Inc. | Regulating joint space velocity of a surgical robotic arm |
| US11633853B2 (en) * | 2020-05-06 | 2023-04-25 | Eagle Technology, Llc | Dynamic manipulator strength augmentation |
| JP7716276B2 (en) | 2021-08-31 | 2025-07-31 | 川崎重工業株式会社 | Surgery support system and method for controlling the surgery support system |
| CN113787518B (en) * | 2021-09-06 | 2022-11-11 | 武汉库柏特科技有限公司 | Robot tail end attitude control method, device, equipment and storage medium |
| CN115847385B (en) * | 2022-11-17 | 2025-03-18 | 上海微创医疗机器人(集团)股份有限公司 | Adjustment arm control method, device, system, and computer equipment |
| CN116901080B (en) * | 2023-08-21 | 2025-09-19 | 中联重科股份有限公司 | Multi-degree-of-freedom arm support motion planning method, device, equipment and storage medium |
| US20250289129A1 (en) * | 2024-03-14 | 2025-09-18 | Fanuc America Corporation | Tcp acceleration limitation for joint interpolated motions |
| CN118617410B (en) * | 2024-06-06 | 2025-12-05 | 哈尔滨思哲睿智能医疗设备股份有限公司 | A robotic arm control method, electronic device and robot |
Citations (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4195495A (en) * | 1977-03-15 | 1980-04-01 | Gelenkwellenbau Gmbh | Universal joint |
| JPS6039204A (en) | 1983-08-11 | 1985-03-01 | Fujitsu Ltd | Speed control method of multi-joint robot |
| JPH05341834A (en) | 1992-06-09 | 1993-12-24 | Matsushita Electric Ind Co Ltd | Direct teaching device for articulated robot |
| WO1995023054A1 (en) | 1994-02-25 | 1995-08-31 | Uk Robotics Limited | Manipulator controller |
| US6192297B1 (en) * | 1996-09-18 | 2001-02-20 | Salvagnini Italia S.P.A. | Method for handling metal sheets in a working area comprising a machine tool and a robot |
| US6424885B1 (en) * | 1999-04-07 | 2002-07-23 | Intuitive Surgical, Inc. | Camera referenced control in a minimally invasive surgical apparatus |
| US6772053B2 (en) * | 1998-12-08 | 2004-08-03 | Visx, Incorporated | Aspects of a control system of a minimally invasive surgical apparatus |
| JP2005044230A (en) | 2003-07-24 | 2005-02-17 | Mitsubishi Electric Corp | Robot control device |
| US20070138992A1 (en) | 2005-12-20 | 2007-06-21 | Intuitive Surgical Inc. | Medical robotic system with sliding mode control |
| US20140039681A1 (en) | 2012-08-03 | 2014-02-06 | Stryker Corporation | Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes |
| JP2014161918A (en) | 2013-02-21 | 2014-09-08 | Seiko Epson Corp | Robot control system, robot, robot control method, and program |
| WO2014146095A1 (en) | 2013-03-15 | 2014-09-18 | Intuitive Surgical Operations, Inc. | System and methods for managing multiple null-space objectives and sli behaviors |
| US20140297030A1 (en) | 2013-03-28 | 2014-10-02 | Denso Wave Incorporated | Method of generating path of multiaxial robot and control apparatus for the multiaxial robot |
| US9517561B2 (en) * | 2014-08-25 | 2016-12-13 | Google Inc. | Natural pitch and roll |
| US9645565B2 (en) * | 2012-10-23 | 2017-05-09 | Cognibotics Ab | Method and system for determination of at least one property of a joint |
| US20170296277A1 (en) | 2012-06-01 | 2017-10-19 | Intuitive Surgical Operations, Inc. | Manipulator arm-to-patient collision avoidance using a null-space |
| US10019566B1 (en) * | 2016-04-14 | 2018-07-10 | X Development Llc | Authorizing robot use and/or adapting physical control parameters for a robot |
| US10029367B2 (en) * | 1999-09-17 | 2018-07-24 | Intuitive Surgical Operations, Inc. | System and method for managing multiple null-space objectives and constraints |
| WO2019115471A1 (en) | 2017-12-12 | 2019-06-20 | Pilz Gmbh & Co. Kg | Collision-free movement planning in a closed kinematic system |
| CN209285723U (en) | 2018-04-11 | 2019-08-23 | 重庆金创谷医疗科技有限公司 | Medical auxiliary mechanical arm control device and system |
| WO2020028356A1 (en) | 2018-07-30 | 2020-02-06 | Intuitive Surgical Operations, Inc. | Hard stop protection system and method |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2699392B1 (en) * | 2011-04-19 | 2015-10-21 | ABB Research Ltd. | An industrial robot having a kinematically redundant arm and a method for controlling the robot |
| CN105050529B (en) * | 2013-03-15 | 2018-08-28 | 直观外科手术操作公司 | Anisotropically enhance the system and method for manipulator joint movement for using kernel |
| JP6595206B2 (en) * | 2015-04-30 | 2019-10-23 | ライフロボティクス株式会社 | Multi-joint arm mechanism operation control apparatus and robot apparatus |
| CN108145713B (en) * | 2017-12-29 | 2020-10-16 | 微创(上海)医疗机器人有限公司 | Mechanical arm, control method thereof and surgical robot |
-
2019
- 2019-10-29 GB GB1915687.6A patent/GB2588629B/en active Active
-
2020
- 2020-10-27 JP JP2021532491A patent/JP7300508B2/en active Active
- 2020-10-27 US US17/081,120 patent/US11999062B2/en active Active
- 2020-10-27 BR BR112022008017A patent/BR112022008017A2/en not_active Application Discontinuation
- 2020-10-27 AU AU2020375183A patent/AU2020375183B2/en not_active Ceased
- 2020-10-27 PT PT208002832T patent/PT4051465T/en unknown
- 2020-10-27 EP EP20800283.2A patent/EP4051465B1/en active Active
- 2020-10-27 WO PCT/GB2020/052715 patent/WO2021084239A1/en not_active Ceased
- 2020-10-27 CN CN202080075754.7A patent/CN114630737A/en active Pending
Patent Citations (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4195495A (en) * | 1977-03-15 | 1980-04-01 | Gelenkwellenbau Gmbh | Universal joint |
| JPS6039204A (en) | 1983-08-11 | 1985-03-01 | Fujitsu Ltd | Speed control method of multi-joint robot |
| JPH05341834A (en) | 1992-06-09 | 1993-12-24 | Matsushita Electric Ind Co Ltd | Direct teaching device for articulated robot |
| WO1995023054A1 (en) | 1994-02-25 | 1995-08-31 | Uk Robotics Limited | Manipulator controller |
| US6192297B1 (en) * | 1996-09-18 | 2001-02-20 | Salvagnini Italia S.P.A. | Method for handling metal sheets in a working area comprising a machine tool and a robot |
| US6772053B2 (en) * | 1998-12-08 | 2004-08-03 | Visx, Incorporated | Aspects of a control system of a minimally invasive surgical apparatus |
| US6424885B1 (en) * | 1999-04-07 | 2002-07-23 | Intuitive Surgical, Inc. | Camera referenced control in a minimally invasive surgical apparatus |
| US10029367B2 (en) * | 1999-09-17 | 2018-07-24 | Intuitive Surgical Operations, Inc. | System and method for managing multiple null-space objectives and constraints |
| JP2005044230A (en) | 2003-07-24 | 2005-02-17 | Mitsubishi Electric Corp | Robot control device |
| US20070138992A1 (en) | 2005-12-20 | 2007-06-21 | Intuitive Surgical Inc. | Medical robotic system with sliding mode control |
| US20170296277A1 (en) | 2012-06-01 | 2017-10-19 | Intuitive Surgical Operations, Inc. | Manipulator arm-to-patient collision avoidance using a null-space |
| US20140039681A1 (en) | 2012-08-03 | 2014-02-06 | Stryker Corporation | Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes |
| US9645565B2 (en) * | 2012-10-23 | 2017-05-09 | Cognibotics Ab | Method and system for determination of at least one property of a joint |
| JP2014161918A (en) | 2013-02-21 | 2014-09-08 | Seiko Epson Corp | Robot control system, robot, robot control method, and program |
| WO2014146095A1 (en) | 2013-03-15 | 2014-09-18 | Intuitive Surgical Operations, Inc. | System and methods for managing multiple null-space objectives and sli behaviors |
| JP2019048084A (en) | 2013-03-15 | 2019-03-28 | インテュイティブ サージカル オペレーションズ, インコーポレイテッド | System and methods for managing multiple null-space objectives and sli behaviors |
| JP2014193519A (en) | 2013-03-28 | 2014-10-09 | Denso Wave Inc | Multi-axis robot trajectory forming method and multi-axis robot control device |
| US20140297030A1 (en) | 2013-03-28 | 2014-10-02 | Denso Wave Incorporated | Method of generating path of multiaxial robot and control apparatus for the multiaxial robot |
| US9517561B2 (en) * | 2014-08-25 | 2016-12-13 | Google Inc. | Natural pitch and roll |
| US10019566B1 (en) * | 2016-04-14 | 2018-07-10 | X Development Llc | Authorizing robot use and/or adapting physical control parameters for a robot |
| WO2019115471A1 (en) | 2017-12-12 | 2019-06-20 | Pilz Gmbh & Co. Kg | Collision-free movement planning in a closed kinematic system |
| CN209285723U (en) | 2018-04-11 | 2019-08-23 | 重庆金创谷医疗科技有限公司 | Medical auxiliary mechanical arm control device and system |
| WO2020028356A1 (en) | 2018-07-30 | 2020-02-06 | Intuitive Surgical Operations, Inc. | Hard stop protection system and method |
Non-Patent Citations (5)
| Title |
|---|
| Japanese Decision of Grant from corresponding Japanese Application No. 2021-532491 dated May 30, 2023. |
| Japanese Notification of Reasons for Refusal from corresponding Japanese Application No. 2021-532491 dated Aug. 2, 2022. |
| Japanese Notification of Reasons for Refusal from corresponding Japanese Application No. 2021-532491 dated Feb. 14, 2023. |
| Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority from corresponding PCT/GB2020/052715 dated Jan. 13, 2021. |
| United Kingdom Search Report from corresponding United Kingdom Application No. GB1915687.6 dated Apr. 15, 2020. |
Also Published As
| Publication number | Publication date |
|---|---|
| BR112022008017A2 (en) | 2022-07-12 |
| AU2020375183A1 (en) | 2022-06-09 |
| AU2020375183B2 (en) | 2024-02-29 |
| EP4051465B1 (en) | 2024-11-20 |
| US20210122041A1 (en) | 2021-04-29 |
| WO2021084239A1 (en) | 2021-05-06 |
| CN114630737A (en) | 2022-06-14 |
| EP4051465A1 (en) | 2022-09-07 |
| GB2588629B (en) | 2024-01-03 |
| GB2588629A (en) | 2021-05-05 |
| JP7300508B2 (en) | 2023-06-29 |
| PT4051465T (en) | 2025-02-25 |
| JP2022510478A (en) | 2022-01-26 |
| GB201915687D0 (en) | 2019-12-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11999062B2 (en) | Robotic joint control | |
| KR102871586B1 (en) | Control of joint space velocity of surgical robot arm | |
| KR20220054632A (en) | Surgical robot and its robot arm control method and control device | |
| EP3270813B1 (en) | System and method for providing feedback during manual joint positioning | |
| JP7079899B2 (en) | Robot joint control | |
| CA2973227A1 (en) | Autonomous correction of alignment error in a master-slave robotic system | |
| EP3903717B1 (en) | Surgical robotic system with adjustable angle of approach | |
| KR20230129615A (en) | System and method for instrument disturbance compensation | |
| US12295685B2 (en) | Controlling movement of a surgical robot arm | |
| WO2022013536A1 (en) | Calibrating an instrument interface | |
| CN110035707A (en) | Medical system and its control method | |
| US20220331025A1 (en) | Method and system for controlling instrument grip behavior | |
| US20250312115A1 (en) | Techniques for controlling a computer-assisted system | |
| JP7079881B2 (en) | Robot joint control | |
| EP4572696A1 (en) | Control system of a surgical robot | |
| GB2623464A (en) | Robotic joint control |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: CMR SURGICAL LIMITED, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEANE, GORDON THOMAS;REEL/FRAME:054179/0320 Effective date: 20201019 Owner name: CMR SURGICAL LIMITED, UNITED KINGDOM Free format text: EMPLOYMENT CONTRACT;ASSIGNOR:MOTTRAM, EDWARD JOHN;REEL/FRAME:054225/0113 Effective date: 20150222 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: EX PARTE QUAYLE ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO EX PARTE QUAYLE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: TRINITY CAPITAL INC., AS AGENT, ARIZONA Free format text: SECURITY INTEREST;ASSIGNOR:CMR SURGICAL LIMITED;REEL/FRAME:070629/0172 Effective date: 20250324 |