Abstract: A robotic system comprising: a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising n joints, where n > 1, whereby the configuration of the arm can be altered, the arm having a plurality of configurations for a given relationship between the base and the attachment for the instrument, the robot comprising a driver for each joint configured to drive the joint to move and a joint sensor for each joint for sensing a state of the joint; and a control unit configured to: obtain a desired position of the attachment for the instrument; for each of k joints where k < n, obtain a sensed joint state; compare the obtained k sensed joint states to a set of constraint criteria, the set of constraint criteria being indicative of the arm moving from a first configuration towards a second configuration, where movement of the arm is more constrained in the second configuration than in the first configuration; where the obtained k sensed joint states match the set of constraint criteria, determine a magnitude of an adjustment signal configured to slow, halt or reverse movement of the arm towards the second configuration; using the desired position of the attachment for the instrument and the obtained k sensed joint states, determine a direction of the adjustment signal; for each of the n joints, obtain a sensed joint state; using the desired position of the attachment for the instrument, the obtained n sensed joint states and the adjustment signal, determine a set of control signals for controlling the drivers; and drive the joints using the set of control signals.
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 the control of redundant robot arms operating with one or more constraints.
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. Another reason is that, in moving from one position of the end effector to another, the manipulator may attempt to move through a configuration that is undesirable, for example because it would cause a collision with another manipulator or object within the manipulator's workspace.
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 robotic system comprising: a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising n joints, where n > 1, whereby the configuration of the arm can be altered, the arm having a plurality of configurations for a given relationship between the base and the attachment for the instrument, the robot comprising a driver for each joint configured to drive the joint to move and a joint sensor for each joint for sensing a state of the joint; and
a control unit configured to:
obtain a desired position of the attachment for the instrument;
for each of k joints where k < n, obtain a sensed joint state;
compare the obtained k sensed joint states to a set of constraint criteria, the set of constraint criteria being indicative of the arm moving from a first configuration towards a second configuration, where movement of the arm is more constrained in the second configuration than in the first configuration;
where the obtained k sensed joint states match the set of constraint criteria, determine a magnitude of an adjustment signal configured to slow, halt or reverse movement of the arm towards the second configuration;
using the desired position of the attachment for the instrument and the obtained k sensed joint states, determine a direction of the adjustment signal;
for each of the n joints, obtain a sensed joint state;
using the desired position of the attachment for the instrument, the obtained n sensed joint states and the adjustment signal, determine a set of control signals for controlling the drivers; and
drive the joints using the set of control signals.
The control unit may be configured to determine the adjustment signal in dependence on one or more of: an instrument to be attached to the arm, a procedure that the arm is configured to perform, usage data gathered from system telemetry, and one or more algorithms for data analytics. The set of constraint criteria may comprise a range of values bounded by upper and lower threshold values, and the control unit may be configured to determine that the k sensed joint states match the set of constraint criteria where the k sensed joint states comprise a value that equals one or other of the upper and lower threshold values or is between the upper and lower threshold values. The control unit may be configured to calculate a difference value from the difference between one of the k sensed joint state values and one or other of the upper and lower threshold values, and to determine the adjustment signal using the difference value. Determining the adjustment signal may comprise applying a gain factor to the difference value. The gain factor may be selected in dependence on one or more of the characteristics of the arm, an instrument to be attached to the arm, the environment of the arm, and the procedure that the arm is used to perform.
The set of constraint criteria may comprise a plurality of ranges of values, in respect of a plurality of joints, bounded by respective upper and lower threshold values, and the control unit may be configured to determine that the k sensed joint states match the set of constraint criteria where respective sensed joint states comprise values that equal one or other of the respective upper and lower threshold values or are between the respective upper and lower threshold values.
The adjustment signal may be configured to adjust a plurality of joints of the arm. The second configuration may be relatively more constrained due to one or more of: limiting a range of motion about a joint; approaching or causing a joint singularity; approaching a joint rotation limit of a joint; and proximity of the arm to a person and/or an object.
The control unit may be configured to gate the adjustment signal in dependence on movement of the attachment for the instrument. The adjustment signal may comprise a joint speed signal. The control unit may be configured to filter the adjustment signal and to determine the set of control signals using the filtered adjustment signal. The control unit may be configured to dynamically modify the set of constraint criteria and/or the gain factor.
The state of a joint may comprise one or more of an angle of that joint, a position of that joint, a speed or velocity of that joint, an acceleration of that joint, and a torque on or about that joint. The control unit may be configured to determine the adjustment signal such that the adjustment signal does not cause relative movement between the base and the attachment for the instrument. The control unit may be configured to determine the set of constraint criteria in dependence on an operating mode of the robotic system.
The control unit may be configured to use the desired position of the attachment for the instrument and the obtained k sensed joint states to determine a solution for the k joints, and to use the solution for the k joints to determine the direction of the adjustment signal. The control unit may be configured to determine the solution for the k joints by using a least-squares method or variation thereof and determining a minimum norm solution for the k joints that lies within the nullspace.
According to another aspect of the present invention there is provided a computer-implemented method of controlling a robotic system, the robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising n joints, where n > 1, whereby the configuration of the arm can be altered, the arm having a plurality of configurations for a given relationship between the base and the attachment for the instrument, the robot comprising a driver for each joint configured to drive the joint to move and a joint sensor for each joint for sensing a state of the joint; the method comprising:
obtaining a desired position of the attachment for the instrument;
for each of k joints where k < n, obtaining a sensed joint state;
comparing the obtained k sensed joint states to a set of constraint criteria, the set of constraint criteria being indicative of the arm moving from a first configuration towards a second configuration, where movement of the arm is more constrained in the second configuration than in the first configuration;
where the obtained k sensed joint states match the set of constraint criteria, determining a magnitude of an adjustment signal configured to slow, halt or reverse movement of the arm towards the second configuration;
using the desired position of the attachment for the instrument and the obtained k sensed joint states, determining a direction of the adjustment signal;
for each of the n joints, obtaining a sensed joint state;
using the desired position of the attachment for the instrument, the obtained n sensed joint states and the adjustment signal, determining a set of control signals for controlling the drivers; and driving the joints using the set of control signals.
The method may comprise determining the adjustment signal in dependence on one or more of: an instrument to be attached to the arm, a procedure that the arm is configured to perform, usage data gathered from system telemetry, and one or more algorithms for data analytics. The set of constraint criteria may comprise a range of values bounded by upper and lower threshold values, and the method may comprise determining that k sensed joint states match the set of constraint criteria where the k sensed joint states comprise a value that equals one or other of the upper and lower threshold values or is between the upper and lower threshold values. The method may comprise calculating a difference value from the difference between one of the k sensed joint state values and one or other of the upper and lower threshold values, and determining the adjustment signal using the difference value.
According to another aspect of the present invention there is provided a control unit for a robotic system configured to perform the method as described herein.
According to another aspect of the present invention there is provided a robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, and a control unit configured for controlling the arm 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 control system for a robot arm;
Figure 3 illustrates another surgical robot;
Figure 4 illustrates a schematic of a robot arm showing an elbow nullspace;
Figure 5 illustrates a state diagram of a method for implementing a control system relating to control of the elbow joint; and
Figure 6 illustrates a method of controlling 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 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 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. Another example of a constraint on arm movement is a contact force applied when a user manually engages with the arm (or a part of the arm) or when a part of the arm collides with its surroundings.
In the present techniques, rather than waiting for a robot arm to reach an undesirable configuration, action can be taken by a control system as the robot arm moves towards that undesirable configuration. Thus, action to avoid the arm ending up in the undesirable configuration can be taken gradually, and need not result in large movements or high accelerations of the arm which may otherwise occur.
One way of doing this, as will be further explained below, is to set a range to one or both sides of a joint angle. The particular joint angle and the size of the range can be selected as desired, for example based on one or more of the characteristics of the arm being used, an instrument to be attached to the arm, the environment of the arm, the procedure that the arm is used to perform, usage data gathered from system telemetry, and one or more algorithms for data analytics. If the joint angle is not within the specified range, then no action need be taken. The control of the arm can proceed in a conventional manner. Once the joint angle crosses the threshold, i.e. the joint angle moves into the specified range, towards a joint angle to be avoided or towards a limit on the rotation of that joint, action can start to be taken. For example, other parts of the arm can be moved so as to move the joint angle away from the joint angle to be avoided. The action taken suitably depends on where within that range the joint angle is. Greater corrective action can be taken where the joint angle is closer to the angle to be avoided. Note that action can be taken where the joint angle is within the specified range, i.e. where the joint angle is static. The present approach can be useful where a static joint angle is determined (such as might occur in a 'snapshot' of the state of the arm), and also where a change in joint angle is determined, for example by comparing a joint angle to a previous joint angle.
In some situations, a combination of joint angles rather than a single joint angle can lead to an undesirable arm configuration. For example, some combinations of joint angles will lead to arm
singularities, as will be discussed further below. A singularity can be said to occur where a robot's Jacobian matrix loses rank (i.e. the determinant is zero). This can happen when multiple joint axes become aligned.
The angles of one or more individual joints and the combinations of angles of one or more groups of joints can be considered to represent constraints on the arm configuration. That is, the arm control can be constrained to restrict movement of the arm towards such undesirable configurations. The angles and/or range about the angles, and combinations of angles and/or ranges about the combination of angles can represent constraint criteria constraining movement of the arm.
Techniques described herein can be used to optimise the pose or configuration of a robot arm based on one or more constraint on motion or positioning of the robot arm. Where multiple constraints are present, they may be competing. It may not be possible to completely satisfy all of the constraints at the same time. The relative importance of different constraints can be taken into account in balancing their effect on the arm control, as explained further below. Constraints can be added and/or modified, for example dynamically, i.e. whilst the robot is in operation.
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 arm must be able to operate whilst the instrument is inside a patient abdomen, as well as during insertion and retraction of the instrument. At these times, the arm is constrained to move in a way which keeps the instrument shaft positioned through a port providing access to the surgical site.
Such constraints can reduce the effective number of degrees of freedom of the arm. Constraints on the motion and/or configuration of the arm include avoiding configurations which approach or reach singularities (where the number of degrees of freedom of movement of the robot arm is reduced) or joint limits. Configurations in which the arm contacts or gets close to people or objects in its workspace, such as operating room staff and operating room equipment are also undesirable. Thus, due to these constraints on the movement and/or positioning of the arm, there are some preferred configurations of the arm. The preferred configurations at least partially satisfy a constraint on the arm configuration. A potential collision between multiple arms can also be considered as a constraint. Such a constraint might be 'shared', i.e. it might constrain movement of the multiple arms, or it might be an 'individual' constraint, i.e. it might constrain movement of one arm whilst not constraining movement of another arm. Thus in response to a constraint such as the potential collision between multiple arms, either one arm can be moved or multiple arms can be moved cooperatively.
A constraint can be characterised by a set of constraint criteria, which can comprise a range of values about a given value for a joint state. A joint state can comprise one or more of a joint angle, a joint position, a joint speed or velocity, a joint acceleration and a torque on or about the joint.
Taking the example of a joint with a rotation limit of + 90°, a range of 10° can be specified within which it can be determined that a constraint condition is met, and an adjustment should be made. In this example, since + 90° is a joint limit, the range of angles, a, for which the constraint condition is met is 80° < a < 90° (or 80° < a < 90°). At the other end of the operating range of a joint, where the joint limit is - 270°, the range would be - 270° < a < - 260° (or - 270° < a < - 260°).
The constraint can be represented in the control system by a feedback loop. The current state of the joint (here, the joint angle) can be determined and compared to the threshold of the range of joint angles which signify that the constraint condition is met. In the first example in the paragraph above, the threshold is 80°. A difference between the threshold and the current joint angle can be determined. This difference value will increase as the joint angle increases towards the joint limit. The difference value can be used to determine an adjustment to the arm configuration so as to reduce the angle of this joint. The sign of the difference value may indicate a desired direction in which a joint or part of the arm can move to reduce the angle of this joint. The adjustment to the arm configuration can be effected by controlling one or more other joints to move such that the end effector can be positioned or moved as desired whilst reducing (or at least not further increasing) the joint angle of this joint.
The joints of the arm can be controlled via a set of control signals which control the drivers for each of those joints.
Features of the control system will be described with reference to figure 2, which shows a schematic representation of a feedback loop for effecting control of a robot arm. The modules represented in figure 2 may be provided in a control unit for controlling a robot arm. The system 202 represents a system to be optimised, i.e. a robot arm. The system represents the physical state of the arm, e.g. the set of joint angles that defines the configuration of the arm. The set of joint angles may be as expressed through forward kinematics calculations.
A detector 204 is configured to receive an input 206 from the system 202. The input can comprise the state of the arm, including the state of each joint in the arm and/or parameters derived from the arm state. The detector also has access to a threshold value 208. The threshold value 208 represents a threshold to a range of values about a predetermined value for a given joint state value such as a joint angle. For example, the input can comprise a wrist bend angle for a particular joint or angles of a group of joints. The threshold value can be a threshold to one or other or both sides of a predetermined joint bend angle for that particular joint. The detector 204 is configured to determine whether the sensed joint angle (i.e. the joint state value received from the system module 202) is within the specified range. Where the sensed joint state value is within the specified range, the detector can determine that a constraint condition is met.
In the illustrated example, the detector 204 is configured to determine the difference between the sensed joint state value (from the current or any previous iteration) and the threshold value for that joint state. The difference value can be expressed as
difference_value = max ( 0 , ( joint_state_value - threshold_value ) )
Thus, where the joint angle is outside the specified range, the difference_value will return a O', meaning that adjustment of the arm control is not needed. Keeping with the above example, where the joint angle is 70° and the threshold joint angle is 80°, the difference_value will be calculated as difference_value = max ( 0 , ( 70 - 80 ) ) = 0
It is also possible to use matrices as inputs. In this case the maximum value of the matrix elements can be used for further calculations.
Where the joint angle is within the specified range, the difference_value will return a positive value, meaning that adjustment of the arm control should be made. Again, keeping with the above example, where the joint angle is 82°, the difference_value will be calculated as difference_value = max ( 0 ( 82 - 80 ) ) = 2
Other ways of determining the difference_value will be readily apparent, for example where the specified range is a range to either side of a predetermined value for a joint state, or the threshold value is a negative number.
The difference_value 210 is passed to an adjuster module 212. The adjuster 212 determines an adjustment to be made to the configuration of the arm so as to reduce the difference_value, i.e. to move the arm away from the undesirable configuration. The adjustment can take the form of a joint speed for the joint. The adjustment is a positive or negative scalar value, to cause the joint to move in one direction or the other about its axis of rotation. For example, the adjustment can be a signed scalar value representing a joint speed.
The difference_value 210 is a quantitative indication of how close the joint state gets to the predetermined joint state. More generally, the difference_value is a quantitative measure of how close the arm configuration gets to the undesirable configuration. As the difference_value increases, it indicates an increasingly undesirable system state. The adjuster can be configured to determine the adjustment proportional to the calculated difference_value. In this way, as the arm configuration gets closer to an undesirable state, the difference_value increases, and the adjustment increases correspondingly.
The determined adjustment need not be proportional to the difference_value, but could vary non-linearly with the difference_value. For example, the adjustment can increase at a faster rate than the difference_value as the undesirable predetermined joint state is approached. The adjuster can be configured to determine the adjustment algorithmically based on the difference_value. The way in which the adjuster determines the adjustment based on the difference_value may be selected in dependence on one or more of the characteristics of the arm being used, an instrument to be attached to the arm, the environment of the arm, the procedure that the arm is used to perform, usage data gathered from system telemetry, and one or more algorithms for data analytics. Thus, the determination of the adjustment can be suited to the use of the arm.
AMENDED CLAIMS
received by the International Bureau on 29 March 2021 (29.03.2021)
1. A robotic system comprising:
a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising n joints, where n > 1, whereby the configuration of the arm can be altered, the arm having a plurality of configurations for a given relationship between the base and the attachment for the instrument, the robot comprising a driver for each joint configured to drive the joint to move and a joint sensor for each joint for sensing a state of the joint; and
a control unit configured to:
obtain a desired position of the attachment for the instrument;
for each of k joints where k < n, obtain a sensed joint state;
compare the obtained k sensed joint states to a set of constraint criteria, the set of constraint criteria being indicative of the arm moving from a first configuration towards a second configuration, where movement of the arm is more constrained in the second configuration than in the first configuration;
where the obtained k sensed joint states match the set of constraint criteria, determine a magnitude of an adjustment signal configured to slow, halt or reverse movement of the arm towards the second configuration;
using the desired position of the attachment for the instrument and the obtained k sensed joint states, determine a direction of the adjustment signal;
for each of the n joints, obtain a sensed joint state;
using the desired position of the attachment for the instrument, the obtained n sensed joint states and the adjustment signal, determine a set of control signals for controlling the drivers; and
drive the joints using the set of control signals.
2. A robotic system according to claim 1, in which the control unit is configured to determine the adjustment signal in dependence on one or more of: an instrument to be attached to the arm, a procedure that the arm is configured to perform, usage data gathered from system telemetry, and one or more algorithms for data analytics.
3. A robotic system according to claim 1 or claim 2, in which the set of constraint criteria comprises a range of values bounded by upper and lower threshold values, and the control unit is configured to determine that the k sensed joint states match the set of constraint criteria where the k sensed joint states comprise a value that equals one or other of the upper and lower threshold values or is between the upper and lower threshold values.
4. A robotic system according to claim 3, in which the control unit is configured to calculate a difference value from the difference between one of the k sensed joint state values and one or other of the upper and lower threshold values, and to determine the adjustment signal using the difference value.
5. A robotic system according to claim 4, in which determining the adjustment signal comprises applying a gain factor to the difference value.
6. A robotic system according to claim 5, in which the gain factor is selected in dependence on one or more of the characteristics of the arm, an instrument to be attached to the arm, the environment of the arm, and the procedure that the arm is used to perform.
7. A robotic system according to any preceding claim, in which the set of constraint criteria comprises a plurality of ranges of values, in respect of a plurality of joints, bounded by respective upper and lower threshold values, and the control unit is configured to determine that the k sensed joint states match the set of constraint criteria where respective sensed joint states comprise values that equal one or other of the respective upper and lower threshold values or are between the respective upper and lower threshold values.
8. A robotic system according to any preceding claim, in which the adjustment signal is configured to adjust a plurality of joints of the arm, and/or in which the adjustment signal comprises a joint speed signal.
9. A robotic system according to any preceding claim, in which the second configuration is relatively more constrained due to one or more of:
limiting a range of motion about a joint;
approaching or causing a joint singularity;
approaching a joint rotation limit of a joint; and
proximity of the arm to a person and/or an object.
10. A robotic system according to any preceding claim, in which the control unit is configured to gate the adjustment signal in dependence on movement of the attachment for the instrument.
11. A robotic system according to claim 10, in which the adjustment signal is modified with a gating gain derived from the speed of the wrist of the arm, the wrist being coupled to the attachment for the instrument.
12. A robotic system according to claim 11, in which a gating gain of 0 is applied to the adjustment signal when the speed of the wrist is at or below a first wrist speed parameter, a gating gain of 1 is applied to the adjustment signal when the speed of the wrist is at or exceeding a second wrist speed parameter, and a gating gain between 0 and 1 is applied to the adjustment signal when the speed of the wrist is between the first and second wrist speed parameters.
13. A robotic system according to any preceding claim, in which the control unit is configured to filter the adjustment signal and to determine the set of control signals using the filtered adjustment signal.
14. A robotic system according to any preceding claim, in which the control unit is configured to dynamically modify the set of constraint criteria and/or the gain factor.
15. A robotic system according to any preceding claim, in which the state of a joint comprises one or more of an angle of that joint, a position of that joint, a speed or velocity of that joint, an acceleration of that joint, and a torque on or about that joint.
16. A robotic system according to any preceding claim, in which the control unit is configured to determine the adjustment signal such that the adjustment signal does not cause relative movement between the base and the attachment for the instrument, and/or in which the control unit is configured to determine the set of constraint criteria in dependence on an operating mode of the robotic system.
17. A robotic system according to any preceding claim, in which the control unit is configured to use the desired position of the attachment for the instrument and the obtained k sensed joint states to determine a solution for the k joints, and to use the solution for the k joints to determine the direction of the adjustment signal.
18. A robotic system according to claim 17, in which the control unit is configured to determine the solution for the k joints by using a least-squares method or variation thereof and determining a minimum norm solution for the k joints that lies within the nullspace.
19. A robotic system according to claim 17 or 18, wherein the solution is an approximate solution.
20. A robotic system according to claim 19, wherein the approximate solution for the k joints comprises a set of joint velocities and/or indicates a position in space towards which the kth joint is to move.
21. A computer-implemented method of controlling a robotic system, the robotic system comprising a robot having a base and an arm extending from the base to an attachment for an instrument, the arm comprising n joints, where n > 1, whereby the configuration of the arm can be altered, the arm having a plurality of configurations for a given relationship between the base and the attachment for the instrument, the robot comprising a driver for each joint configured to drive the joint to move and a joint sensor for each joint for sensing a state of the joint; the method comprising:
obtaining a desired position of the attachment for the instrument;
for each of k joints where k < n, obtaining a sensed joint state;
comparing the obtained k sensed joint states to a set of constraint criteria, the set of constraint criteria being indicative of the arm moving from a first configuration towards a second configuration, where movement of the arm is more constrained in the second configuration than in the first configuration;
where the obtained k sensed joint states match the set of constraint criteria, determining a magnitude of an adjustment signal configured to slow, halt or reverse movement of the arm towards the second configuration;
using the desired position of the attachment for the instrument and the obtained k sensed joint states, determining a direction of the adjustment signal;
for each of the n joints, obtaining a sensed joint state;
using the desired position of the attachment for the instrument, the obtained n sensed joint states and the adjustment signal, determining a set of control signals for controlling the drivers; and driving the joints using the set of control signals.
22. A method according to claim 21, in which the method comprises determining the adjustment signal in dependence on one or more of: an instrument to be attached to the arm, a procedure that the arm is configured to perform, usage data gathered from system telemetry, and one or more algorithms for data analytics.
23. A method according to claim 21 or claim 22, in which the set of constraint criteria comprises a range of values bounded by upper and lower threshold values, and the method comprises determining that k sensed joint states match the set of constraint criteria where the k sensed joint states comprise a value that equals one or other of the upper and lower threshold values or is between the upper and lower threshold values.
24. A method according to claim 23, in which the method comprises calculating a difference value from the difference between one of the k sensed joint state values and one or other of the upper and lower threshold values, and determining the adjustment signal using the difference value.
25. 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 claimed in any of claims 21 to 24.
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 202217029944-IntimationOfGrant10-10-2024.pdf | 2024-10-10 |
| 1 | 202217029944.pdf | 2022-05-25 |
| 2 | 202217029944-PatentCertificate10-10-2024.pdf | 2024-10-10 |
| 2 | 202217029944-STATEMENT OF UNDERTAKING (FORM 3) [25-05-2022(online)].pdf | 2022-05-25 |
| 3 | 202217029944-Written submissions and relevant documents [31-05-2024(online)].pdf | 2024-05-31 |
| 3 | 202217029944-REQUEST FOR EXAMINATION (FORM-18) [25-05-2022(online)].pdf | 2022-05-25 |
| 4 | 202217029944-PRIORITY DOCUMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 4 | 202217029944-Correspondence to notify the Controller [10-05-2024(online)].pdf | 2024-05-10 |
| 5 | 202217029944-US(14)-ExtendedHearingNotice-(HearingDate-16-05-2024).pdf | 2024-04-16 |
| 5 | 202217029944-FORM 18 [25-05-2022(online)].pdf | 2022-05-25 |
| 6 | 202217029944-FORM-26 [12-04-2024(online)].pdf | 2024-04-12 |
| 6 | 202217029944-FORM 1 [25-05-2022(online)].pdf | 2022-05-25 |
| 7 | 202217029944-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [12-04-2024(online)].pdf | 2024-04-12 |
| 7 | 202217029944-DRAWINGS [25-05-2022(online)].pdf | 2022-05-25 |
| 8 | 202217029944-Duplicate-US(14)-HearingNotice-(HearingDate-16-04-2024).pdf | 2024-04-02 |
| 8 | 202217029944-DECLARATION OF INVENTORSHIP (FORM 5) [25-05-2022(online)].pdf | 2022-05-25 |
| 9 | 202217029944-COMPLETE SPECIFICATION [25-05-2022(online)].pdf | 2022-05-25 |
| 9 | 202217029944-US(14)-HearingNotice-(HearingDate-16-04-2024).pdf | 2024-04-02 |
| 10 | 202217029944-FORM 3 [03-11-2023(online)].pdf | 2023-11-03 |
| 10 | 202217029944-FORM-26 [23-08-2022(online)].pdf | 2022-08-23 |
| 11 | 202217029944-ABSTRACT [24-03-2023(online)].pdf | 2023-03-24 |
| 11 | 202217029944-FER.pdf | 2022-09-30 |
| 12 | 202217029944-CLAIMS [24-03-2023(online)].pdf | 2023-03-24 |
| 12 | 202217029944-Proof of Right [22-11-2022(online)].pdf | 2022-11-22 |
| 13 | 202217029944-COMPLETE SPECIFICATION [24-03-2023(online)].pdf | 2023-03-24 |
| 13 | 202217029944-FORM 3 [22-11-2022(online)].pdf | 2022-11-22 |
| 14 | 202217029944-DRAWING [24-03-2023(online)].pdf | 2023-03-24 |
| 14 | 202217029944-Information under section 8(2) [31-01-2023(online)].pdf | 2023-01-31 |
| 15 | 202217029944-FER_SER_REPLY [24-03-2023(online)].pdf | 2023-03-24 |
| 15 | 202217029944-OTHERS [24-03-2023(online)].pdf | 2023-03-24 |
| 16 | 202217029944-FER_SER_REPLY [24-03-2023(online)].pdf | 2023-03-24 |
| 16 | 202217029944-OTHERS [24-03-2023(online)].pdf | 2023-03-24 |
| 17 | 202217029944-Information under section 8(2) [31-01-2023(online)].pdf | 2023-01-31 |
| 17 | 202217029944-DRAWING [24-03-2023(online)].pdf | 2023-03-24 |
| 18 | 202217029944-COMPLETE SPECIFICATION [24-03-2023(online)].pdf | 2023-03-24 |
| 18 | 202217029944-FORM 3 [22-11-2022(online)].pdf | 2022-11-22 |
| 19 | 202217029944-CLAIMS [24-03-2023(online)].pdf | 2023-03-24 |
| 19 | 202217029944-Proof of Right [22-11-2022(online)].pdf | 2022-11-22 |
| 20 | 202217029944-ABSTRACT [24-03-2023(online)].pdf | 2023-03-24 |
| 20 | 202217029944-FER.pdf | 2022-09-30 |
| 21 | 202217029944-FORM 3 [03-11-2023(online)].pdf | 2023-11-03 |
| 21 | 202217029944-FORM-26 [23-08-2022(online)].pdf | 2022-08-23 |
| 22 | 202217029944-COMPLETE SPECIFICATION [25-05-2022(online)].pdf | 2022-05-25 |
| 22 | 202217029944-US(14)-HearingNotice-(HearingDate-16-04-2024).pdf | 2024-04-02 |
| 23 | 202217029944-DECLARATION OF INVENTORSHIP (FORM 5) [25-05-2022(online)].pdf | 2022-05-25 |
| 23 | 202217029944-Duplicate-US(14)-HearingNotice-(HearingDate-16-04-2024).pdf | 2024-04-02 |
| 24 | 202217029944-REQUEST FOR ADJOURNMENT OF HEARING UNDER RULE 129A [12-04-2024(online)].pdf | 2024-04-12 |
| 24 | 202217029944-DRAWINGS [25-05-2022(online)].pdf | 2022-05-25 |
| 25 | 202217029944-FORM-26 [12-04-2024(online)].pdf | 2024-04-12 |
| 25 | 202217029944-FORM 1 [25-05-2022(online)].pdf | 2022-05-25 |
| 26 | 202217029944-US(14)-ExtendedHearingNotice-(HearingDate-16-05-2024).pdf | 2024-04-16 |
| 26 | 202217029944-FORM 18 [25-05-2022(online)].pdf | 2022-05-25 |
| 27 | 202217029944-PRIORITY DOCUMENTS [25-05-2022(online)].pdf | 2022-05-25 |
| 27 | 202217029944-Correspondence to notify the Controller [10-05-2024(online)].pdf | 2024-05-10 |
| 28 | 202217029944-Written submissions and relevant documents [31-05-2024(online)].pdf | 2024-05-31 |
| 28 | 202217029944-REQUEST FOR EXAMINATION (FORM-18) [25-05-2022(online)].pdf | 2022-05-25 |
| 29 | 202217029944-STATEMENT OF UNDERTAKING (FORM 3) [25-05-2022(online)].pdf | 2022-05-25 |
| 29 | 202217029944-PatentCertificate10-10-2024.pdf | 2024-10-10 |
| 30 | 202217029944.pdf | 2022-05-25 |
| 30 | 202217029944-IntimationOfGrant10-10-2024.pdf | 2024-10-10 |
| 1 | SearchHistory-202217029944E_19-09-2022.pdf |