ALIGNMENT DIFFERENCE SAFETY IN A MASTER-SLAVE ROBOTIC SYSTEM
20220047340 · 2022-02-17
Inventors
- Joseph Kralicky (North Kingston, RI)
- Peter Cameron (Menlo Park, CA)
- Rene Robert (East Greenwich, RI, US)
Cpc classification
A61B90/03
HUMAN NECESSITIES
G05B2219/35419
PHYSICS
A61B2034/302
HUMAN NECESSITIES
B25J9/1674
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/39439
PHYSICS
G05B2219/36422
PHYSICS
A61B34/76
HUMAN NECESSITIES
A61B34/70
HUMAN NECESSITIES
International classification
A61B34/00
HUMAN NECESSITIES
A61B90/00
HUMAN NECESSITIES
B25J13/06
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method of operating a robotic control system comprising a master apparatus in communication with an input device having a handle and a slave system having a tool having an end effector whose position and orientation is determined in response to a position and orientation of the handle. The method involves producing a desired end effector position and a desired end effector orientation of the end effector, in response to a current position and a current orientation of the handle. The method further involves causing the input device to provide haptic feedback that impedes translational movement of the handle, while permitting rotational movement of the handle and preventing movement of the end effector, when a rotational alignment difference between the handle and the end effector meets a first criterion. The method further involves re-enabling translational movement of the handle when the rotational alignment difference meets a second criterion.
Claims
1. (canceled)
2. A robotic surgery control system comprising: an input configured to be moved in a first direction, wherein movement of the input in the first direction controls corresponding movement of an end effector of a surgical tool in the first direction; and a processor configured to: determine an alignment difference between the input and the end effector; in response to a determination that the alignment difference does not satisfy an alignment threshold, disable control of movement of the end effector in the first direction by the input; and in response to a determination that the alignment difference satisfies the alignment threshold, enable control of movement of the end effector in the first direction in response to corresponding movement of the input in the first direction.
3. The system of claim 2, wherein the input comprises a handle coupled to a control arm.
4. The system of claim 3, wherein the control arm is configured to provide movement of the input in the first direction and the handle is configured to provide movement of the input in a second direction, wherein the second direction is different than the first direction.
5. The system of claim 2, the input is further configured to be moved in a second direction, wherein movement of the input in the second direction controls corresponding movement of the end effector in the second direction.
6. The system of claim 5, wherein the processor is further configured to enable control of movement of the end effector in response to movement of the input.
7. The system of claim 6, wherein enabling control comprises enabling movement of the input in the second direction.
8. The system of claim 6, wherein enabling control comprises enabling movement of the input in the first direction.
9. The system of claim 6, wherein the processor is further configured to cause provision of an indication that control of movement in the first direction is disabled.
10. The system of claim 5, wherein the first direction is a translation direction and the second direction is rotational direction.
11. The system of claim 2, wherein the alignment difference comprises an alignment difference in a second direction in at least one degree of freedom in the second direction, and wherein the second direction is different than the first direction.
12. The system of claim 11, wherein the processor is further configured to determine the alignment difference based on a distance by which the end effector would have to be moved to become aligned with a current orientation of the input.
13. The system of claim 11, wherein the processor is further configured to: determine a target orientation of the end effector based on a current orientation of the input; and determine the alignment difference based on a difference between the current orientation of the input and the target orientation of the end effector.
14. The system of claim 2, wherein the processor is further configured to: in response to the determination that the alignment difference does not satisfy the alignment threshold, disable control of movement of the end effector in a second direction by the input.
15. The system of claim 2, wherein the processor is further configured to: in response to the determination that the alignment difference does not satisfy the alignment threshold, cause an end effector position and orientation to be determined based on a previous position and orientation of the input; and in response to the determination that the alignment difference satisfies the alignment threshold, cause the end effector position and orientation to be determined based on a current position and orientation of the input.
16. A non-transitory computer readable medium storing instructions that, when executed by a processor of a robotic surgery control system, cause the processor to: enable control of a handle in a first direction such that movement of the handle in the first direction controls corresponding movement of an end effector of a surgical tool in the first direction; determine an alignment difference between the handle and the end effector; in response to a determination that the alignment difference between the handle and the end effector does not satisfy an alignment threshold, disable control of movement of the end effector in a second direction by movement of the handle in the second direction; and in response to a determination that the alignment difference between the handle and the end effector satisfies the alignment threshold, enable control of the handle in the second direction such that movement of the handle in the second direction controls corresponding movement of the end effector in the second direction.
17. The medium of claim 16, wherein enabling control of the handle comprises enabling movement of the handle in the first direction.
18. The medium of claim 16, wherein enabling control of the handle in the second direction comprises enabling movement of the handle in the second direction.
19. The medium of claim 16, wherein the instructions, when executed by the processor, further cause the processor to: in response to the determination that the alignment difference between the handle and the end effector does not satisfy the alignment threshold, disable movement of the end effector in the first direction responsive to movement of the handle in the first direction.
20. The medium of claim 16, wherein the instructions, when executed by the processor, further cause the processor to: in response to the determination that the alignment difference between the handle and the end effector does not satisfy the alignment threshold, cause an end effector position and an end effector orientation to be determined based on a previous position and a previous orientation of the handle; and in response to the determination that the alignment difference between the handle and the end effector satisfies the alignment threshold, cause the end effector position and the end effector orientation to be determined based on a current position and a current orientation of the handle.
21. The medium of claim 16, wherein the first direction is a rotational direction and the second direction is a translation direction.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0051] In drawings which illustrate embodiments of the invention,
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
DETAILED DESCRIPTION
[0063] Referring to
[0064] In the embodiment shown, the master subsystem 52 comprises a workstation 56 having first and second input devices 58 and 60 and a viewer 62 in communication with a master apparatus 64 comprising at least one processor. The first and second input devices 58 and 60 are operable to be actuated by respective hands of a user such as a surgeon, for example, who will perform the laparoscopic surgery by manipulating the first and second input devices of the master subsystem 52 to control corresponding laparoscopic tools 66 and 67 on the slave subsystem 54.
[0065] The viewer 62 may include an LCD display 68, for example, for displaying images acquired by a camera 70 on the slave subsystem 54, to enable the user to see the laparoscopic tools 66 and 67 inside the patient while manipulating the first and second input devices 58 and 60 to cause the tools to move in desired ways to perform the surgery. The first and second input devices 58 and 60 produce position and rotation signals that are received by the master apparatus 64 and the master apparatus produces slave control signals that are transmitted by wires 72 or wirelessly, for example, from the master subsystem 52 to the slave subsystem 54.
[0066] The slave subsystem 54 includes a slave computer 74 that receives the slave control signals from the master subsystem 52 and produces motor control signals that control motors 76 on a drive mechanism of a tool controller 78 of the slave subsystem, to extend and retract wires (not shown) of respective tool positioning devices 79 and 81 to position and to rotate the tools 66 and 67. Exemplary tool positioning devices and tools for this purpose are described in PCT/CA2013/001076, which is incorporated herein by reference. The tool positing devices 79 and 81 extend through an insertion tube 61, a portion of which is inserted through a small opening 63 in the patient to position end effectors 71 and 73 of the tools 66 and 67 inside the patient, to facilitate the surgery.
[0067] In the embodiment shown, the workstation 56 has a support 80 having a first flat surface 82 for supporting the first and second input devices 58 and 60 in positions that are comfortable to the user whose hands are actuating the first and second input devices 58 and 60.
[0068] In the embodiment shown, the slave subsystem 54 includes a cart 84 in which the slave computer 74 is located. The cart 84 has an articulated arm 86 mechanically connected thereto, with a tool holder mount 88 disposed at a distal end of the articulated arm.
[0069] In the embodiment shown, the first and second input devices 58 and 60 are the same, but individually adapted for left and right hand use respectively. In this embodiment, each input device 58 and 60 is an Omega.7 haptic device available from Force Dimension, of Switzerland. For simplicity, only input device 60 will be described, it is being understood that input device 58 operates in the same way.
[0070] Referring to
[0071] The arms 94, 96, 98 facilitate translational movement of the handle 102 and hence the handle position 104, in space, and confine the movement of the handle position within a volume in space. This volume may be referred to as the handle translational workspace.
[0072] The handle 102 is mounted on a gimbal mount 106 having a pin 108. The base plate 90 has a calibration opening 110 for receiving the pin 108. When the pin 108 is received in the opening 110, the haptic device is in a calibration position that is defined relative to a fixed master Cartesian reference frame comprising orthogonal axes x.sub.r, y.sub.r, z.sub.r generally in the center of the handle translational workspace. In the embodiment shown, this master reference frame has an x.sub.r-z.sub.r plane parallel to the flat surface 82 and a y.sub.r axis perpendicular to the flat surface. In the embodiment shown, the z.sub.r axis is parallel to the flat surface 82 and is coincident with an axis 112 passing centrally through the control unit 92 so that pushing and pulling the handle 102 toward and away from the center of the control unit 92 along the axis 112 in a direction parallel to the flat surface 82 is movement in the z.sub.r direction.
[0073] The control unit 92 has sensors (not shown) that sense the positions of the arms 94, 96, 98 and the rotation of the handle 102 about each of the x.sub.1, y.sub.1 and z.sub.1 axes and produces signals representing the handle position 104 (i.e. the center of the handle 102) in the workspace and the rotational orientation of the handle 102 relative to the fixed master reference frame x.sub.r, y.sub.r, z.sub.r. In this embodiment, these position and orientation signals are transmitted on wires 111 of a USB bus to the master apparatus 64. More particularly, the control unit 92 produces current handle position signals and current handle orientation signals that represent the current position and orientation of the handle 102 by a current handle position vector .sub.MCURR and a current handle rotation matrix R.sub.MCURR, relative to the fixed master reference frame x.sub.r, y.sub.r, z.sub.r.
[0074] For example, the current handle position vector .sub.MCURR is a vector
where x.sub.1, y.sub.1, and z.sub.1 represent coordinates of the controller position within the handle workspace relative to the fixed master reference frame, x.sub.r, y.sub.r, z.sub.r.
[0075] The current handle rotation matrix R.sub.MCURR is a 3×3 matrix
where the columns of the matrix represent the axes of the handle reference frame x.sub.1, y.sub.1, z.sub.1 written in the fixed master reference frame x.sub.r, y.sub.r, z.sub.r. R.sub.MCURR thus defines the current rotational orientation of the handle 102 in the handle translational workspace, relative to the x.sub.r, y.sub.r, z.sub.r master reference frame.
[0076] The current handle position vector .sub.MCURR and current handle rotation matrix R.sub.MCURR are transmitted in the current handle position and orientation signals on wires 111 of the USB bus, for example to the master apparatus 64 in
[0077] In addition, in the embodiment shown, the master apparatus 64 is coupled to a footswitch 170 actuable by the user (surgeon) to provide a binary enablement signal to the master apparatus 64. When the footswitch 170 is not activated, i.e. not depressed, the enablement signal is in an active state and when the footswitch 170 is depressed the enablement signal is in an inactive state. The footswitch 170 thus controls the state of the enablement signal. As will be seen below, the enablement signal allows the user to cause the master apparatus 64 to selectively enable and disable movement of the end effectors in response to movement of the handles 102.
[0078] Referring now to
[0079] In the embodiment shown, end effector 73 includes a pair of gripper jaws. Orthogonal axes x.sub.2, y.sub.2 and z.sub.2 of an end effector Cartesian reference frame have an origin at the intersection at a mid-point between gripper jaws of the end effector 73. The origin of the end effector reference frame may be referred to as the slave end effector position 150 relative to the fixed slave reference frame x.sub.s, y.sub.s, z.sub.s.
[0080] New end effector positions and end effector orientations are calculated by the end effector position and orientation calculation block 116 shown in .sub.MCURR and current handle orientation signals R.sub.MCURR and are represented by a new end effector position vector
.sub.EENEW and an rotation matrix R.sub.EENEW, relative to the x.sub.s, y.sub.s, z.sub.s fixed slave reference frame.
[0081] For example, the new end effector position vector .sub.EENEW is a vector
where x.sub.2, y.sub.2, and z.sub.2 represent coordinates of the end effector position within the end effector workspace relative to the x.sub.s, y.sub.s, z.sub.s fixed slave reference frame.
[0082] The end effector rotation matrix R.sub.EENEW is a 3×3 matrix
where the columns of the R.sub.EENEW matrix represent the axes of the end effector reference frame x.sub.2. y.sub.2, z.sub.2 written in the fixed slave reference frame x.sub.s, y.sub.s, z.sub.s. R.sub.EENEW thus defines a new orientation of the end effector 73 in the workspace, relative to the x.sub.s, y.sub.s, z.sub.s reference frame.
[0083] Referring back to
[0084] Generally, the end effector position and orientation calculation block 116 includes codes that direct the master apparatus 64 to produce new end effector position and rotation signals, later referred to herein as .sub.EENEW and R.sub.EENEW, and includes codes that direct the master apparatus 64 to produce a translation lock signal for receipt by the feedback force control block 122.
[0085] The kinematics block 118 includes codes that direct the master apparatus 64 to produce configuration variables in response to the newly calculated end effector position and rotation signals.
[0086] The motion control block 120 includes codes that direct the master apparatus 64 to produce the slave control signals, in response to the configuration variables.
[0087] The feedback force control block 122 directs the master apparatus 64 to receive the translation lock signal from the end effector position and orientation calculation block 116 and to receive the configuration variables from the kinematics block 118 and to produce a haptic feedback control signal that is provided to the control unit 92 to cause the control unit to present a force to the user if the user tries to cause translational movement of the handle 102. This impedes translational movement of the handle 102 but allows the handle 102 to be rotated to allow it to be brought into rotational alignment with the end effector 73.
[0088] The base setting block 216 is executed asynchronously, whenever the enablement signal transitions from an inactive state to an active state, such as when the user releases the footswitch 170. The base setting block 216 directs the master apparatus 64 to set new reference positions and orientations for the handle 102 and end effector 73, respectively as will be described below.
[0089] Referring back to
[0090] Referring to
[0091] The kinematics block 118 receives newly calculated end effector position and orientation signals (.sub.EENEW and R.sub.EENEW) each time the end effector position and orientation calculation block 116 is executed. In response, the kinematics block 118 produces the configuration variables described below.
[0092] Referring to .sub.EENEW and R.sub.EENEW produced by the end effector position and orientation calculation block 116 and these calculated configuration values generally define a tool holder pose required to position end effector 73 at a desired location and at a desired orientation in its workspace.
[0093] Referring to
[0094] The s-segment 130 begins at a distance from the insertion tube 61, referred to as the insertion distance q.sub.ins, which is the distance between the fixed slave base position 128 defined as the origin of the slave fixed base reference frame x.sub.s, y.sub.s, z.sub.s and a first position 330 at the origin of a first position reference frame x.sub.3, y.sub.3, and z.sub.3. The insertion distance q.sub.ins represents an unbendable portion of the tool positioning device 81 that extends out of the end of the insertion tube 61. In the embodiment shown, the insertion distance q.sub.ins may be about 10-20 mm, for example. In other embodiments, the insertion distance q.sub.ins may be longer or shorter, varying from 0-100 mm, for example.
[0095] The s-segment 130 extends from the first position 330 to a third position 334 defined as an origin of a third reference frame having axes x.sub.5, y.sub.5, and z.sub.5 and is capable of assuming a smooth S-shape when control wires (not shown) inside the s-segment 130 are pushed and pulled. The s-segment 130 has a mid-point at a second position 332, defined as the origin of a second position reference frame having axes x.sub.4, y.sub.4, z.sub.4. The s-segment 130 has a length L.sub.1, which in the embodiment shown may be about 65 mm, for example.
[0096] The distal segment 132 extends from the third position 334 to a fourth position 336 defined as an origin of a fourth reference frame having axes x.sub.6, y.sub.6, z.sub.6. The distal segment 132 has a length L.sub.2, which in the embodiment shown may be about 23 mm, for example.
[0097] The tool 67 also has an end effector length, which in the embodiment shown is a gripper length L.sub.3 that extends from the fourth position 336 to the end effector position 150 defined as the origin of axes x.sub.2, y.sub.2, and z.sub.2. The gripper length L.sub.3, in this embodiment, may be about 25 mm, for example. The slave base position 128, first position 330, second position 332, third position 334, fourth position 336 and end effector position 150 may collectively be referred to as tool reference positions.
[0098] As explained in PCT/CA2013/001076, hereby incorporated herein by reference in its entirety, by pushing and pulling on certain control wires inside the tool positioning devices 79 and 81, the s-segment 130 can be bent into any of various degrees of an S-shape, from straight as shown in
[0099] In addition, the distal segment 132 lies in a second bend plane containing the third position 334 and the fourth position 336. The second bend plane is at an angle δ.sub.dist to the x.sub.s-z.sub.s plane of the fixed slave reference frame. The distal segment 132 is bent in the second bend plane at an angle θ.sub.dist. Thus, by pushing and pulling the control wires within the tool positioning device 81, the fourth position 336 can be placed within another volume in space. This volume may be referred to as the distal workspace. The combination of the s-segment workspace plus the distal workspace can be referred to as the tool positioning device workspace, as this represents the total possible movement of the tools 66 and 67 as effected by the respective tool positioning devices 79 and 81.
[0100] The distance between the fourth position 336 and the end effector position 150 is the distance between the movable portion of the distal segment 132 and the tip of the gripper end effector 73 in the embodiment shown, i.e. the length L.sub.3. Generally, the portion of the gripper between the fourth position 336 and the end effector position 150 (L.sub.3) will be unbendable.
[0101] In the embodiment shown, the end effector 73 is a gripper jaw tool that is rotatable about the z.sub.2 axis in the x.sub.2-y.sub.2 plane of the end effector reference frame, the angle of rotation being represented by an angle γ relative to the positive x.sub.2 axis. Finally, the gripper jaws may be at any of varying degrees of openness from fully closed to fully open (as limited by the hinge). The varying degrees of openness may be defined as the “gripper”.
[0102] In summary therefore, the configuration variables provided by the kinematic block 118 codes are as follows: [0103] q.sub.ins: represents a distance from the slave base position 128 defined by axes x.sub.s, y.sub.s, and z.sub.s to the first position 330 defined by axes x.sub.3, y.sub.3 and z.sub.3 where the s-segment 130 of the tool positioning device 81 begins; [0104] δ.sub.prox: represents a first bend plane in which the s-segment 130 is bent relative to the x.sub.s-y.sub.s plane of the fixed slave reference frame; [0105] θ.sub.prox: represents an angle at which the first and second sections 320 and 322 of the s-segment 130 is bent in the first bend plane; [0106] δ.sub.dist: represents a second bend plane in which the distal segment 132 is bent relative to the x.sub.s-y.sub.s plane of the fixed slave reference frame; [0107] δ.sub.dist: represents an angle through which the distal segment 132 is bent in the second bend; [0108] γ: represents a rotation of the end effector 73 about axis z.sub.2; and [0109] Gripper: represents a degree of openness of the gripper jaws of the end effector 73. (This is a value which is calculated in direct proportion to a signal produced by an actuator (not shown) on the handle 102 indicative of an amount of pressure the operator exerts by squeezing the handle).
[0110] To calculate the configuration variables, it will first be recalled that the end effector rotation matrix R.sub.EENEW is a 3×3 matrix:
[0111] Since the last column of R.sub.EENEW is the z-axis of the end effector reference frame written relative to the fixed slave reference frame x.sub.s, y.sub.s and z.sub.s, the values θ.sub.dist, δ.sub.dist, and γ associated with the distal segment 132 can be calculated according to the relations:
[0112] These values can then be used to compute the locations of the third position 334, the fourth position 336, and the end effector position 150 relative to the fixed slave base position 128. The locations may be expressed in terms of vectors .sub.EENEW as follows:
[0113] where: [0114] ī is a unit vector in the x direction; [0115]
[0117] Once the vector from the fixed slave base position 128 to the third position 334 (
[0118] The ratio of (8b) and (8a) gives
δ.sub.prox=a tan 2(−
[0119] where ī and
[0120] A closed form solution cannot be found for θ.sub.prox, thus θ.sub.prox must be found with a numerical equation solution to either of equations (8a) or (8b). A Newton-Raphson method, being a method for iteratively approximating successively better roots of a real-valued function, may be employed, for example. The Newton-Raphson method can be implemented using the following equations:
[0121] where ī is the unit vector in the x direction.
[0122] The equation (10) is equation (8a) rewritten in the form f(θ.sub.prox)=0. The Newton-Raphson method tends to converge very quickly because in the range 0<θ.sub.prox<π, the function has a large radius of curvature and has no local stationary points. Following the Newton-Raphson method, successive improved estimates of θ.sub.prox can be made iteratively to satisfy equation (10) using the following relationship:
[0123] Finally, upon determination of θ.sub.prox, the following equation can be used to find q.sub.ins,
[0124] where: [0125]
[0127] The codes in the kinematics block 118 shown in .sub.EENEW and R.sub.EENEW produced by the end effector position and orientation calculation block 116 and these calculated configuration variables generally define a tool positioning device pose required to position the end effector 73 at a desired location and at a desired orientation in the end effector workspace.
[0128] It will be appreciated that configuration variables are produced for each end effector 71 and 73 and therefore in the embodiment shown, two sets of configuration variables which will be referred to as left and right configuration variables respectively are produced and forwarded or otherwise made available to the motion control block 120 and the feedback force control block 122.
[0129] Referring to .sub.MCURR and handle rotation matrix R.sub.MCURR periodically, at a sample rate of about 1 kHz. These values are stored by the master apparatus 64 in a first “current” buffer 140 having a first store 142 storing the three values representing the currently acquired handle position vector
.sub.MCURR and a second store 144 storing the nine values representing the acquired handle rotation matrix R.sub.MCURR.
[0130] Referring to .sub.MBASE in a third store 146 and stores values representing a definable master base rotation matrix R.sub.MBASE in a fourth store 148. The master apparatus 64 initially causes the definable master base position vector
.sub.MBASE to be set equal to the current handle position vector
.sub.MCURR on startup of the system and causes the definable master base rotation matrix R.sub.MBASE to define an orientation that is the same as the current orientation defined by the handle rotation matrix R.sub.MCURR associated with the current handle rotation, on startup of the system.
[0131] Initially, therefore:
.sub.MBASE=
.sub.MCURR; and
R.sub.MBASE=R.sub.MCURR
Thereafter, the master base position .sub.MBASE and the master base rotation matrix R.sub.MBASE are maintained at the same values as on startup until the enablement signal is activated, such as by the footswitch (170 in
.sub.MBASE and master base rotation matrix R.sub.MBASE to the currently acquired master position
.sub.MCURR and currently acquired master orientation R.sub.MCURR respectively.
[0132] Referring to .sub.EEBASE in a fifth store 152 and stores values representing a definable slave base rotation R.sub.EEBASE in a sixth store 154. The master apparatus 64 initially causes the definable slave base position vector
.sub.EEBASE to be set equal to the new end effector position vector
.sub.EENEW and causes the definable slave base rotation matrix R.sub.EEBASE to define an orientation that is the same as the orientation defined by the new end effector rotation matrix R.sub.EENEW, on startup of the system.
[0133] Initially, therefore:
.sub.EEBASE=
.sub.EENEW; and
R.sub.EEBASE=R.sub.EENEW
[0134] In other words, the slave base reference frame and the end effector reference frame coincide at startup.
[0135] The slave base position .sub.EEBASE and slave base rotation matrix R.sub.EEBASE are maintained at the same values as on startup until the enablement signal is activated such as by the footswitch (170 in
.sub.EEBASE and slave rotation matrix R.sub.EEBASE to the newly calculated end effector position vector
.sub.EENEW and newly calculated end effector rotation matrix R.sub.EENEW.
[0136] Referring to .sub.MCURR and R.sub.MCURR are acquired from the control unit 92. The end effector position and orientation calculation block 116 directs the master apparatus 64 to produce and store, in a seventh store 162 in
.sub.EENEW and to produce and store, in an eighth store 164 in
[0137] After new values for .sub.MCURR and R.sub.MCURR are acquired from the control unit 92, block 160 in
.sub.EENEW and new end effector orientation signals R.sub.EENEW representing a desired end effector position 150 and desired end effector orientation, relative to the slave base position 128 and the slave base orientation.
[0138] The new end effector position signals .sub.EENEW and new end effector orientation signals R.sub.EENEW are calculated according to the following relations:
.sub.EENEW=A(
.sub.MCURR−
.sub.MBASE)+
.sub.EEBASE
and
R.sub.EENEW=R.sub.EEBASER.sub.MBASE.sub..sub.EENEW is the new end effector position vector that represents the new desired position of the end effector 73 in the end effector workspace, relative to the slave base reference frame; [0140] A is a scalar value representing a scaling factor in translational motion between the master and the slave; [0141]
.sub.MCURR is the current representation of the handle position vector stored in the first store 142, the handle position vector being relative to the master reference frame; [0142]
.sub.MBASE is the last-saved position vector
.sub.MCURR for the handle that was saved upon the last inactive to active state transition of the enablement signal such as by release of the footswitch 170 or on system initialization or by operation of a control interface by the user; [0143]
.sub.EEBASE is the last-saved position vector
.sub.EENEW for the end effector 73 that was saved upon the last inactive to active state transition of the enablement signal; [0144] R.sub.EENEW is the new end effector rotation matrix representing the current orientation of the end effector 73 relative to the slave reference frame; [0145] R.sub.EEBASE is the rotation matrix representing the last-saved rotation of the end effector 73 saved upon the last inactive to active state transition of the enablement signal; [0146] R.sub.MBASE.sub.
[0148] When the enablement signal is in the active state, as determined at block 161 in
[0149] A difference in alignment can comprise any single degree of freedom or combination of degrees of freedom of any representation of orientation. In the general case, the alignment error would be computed considering all three orientation degrees of freedom. This case would, therefore, require that to be aligned, the reference frames described by R.sub.EENEW and R.sub.MCURR be coincident.
[0150] In the general case, blocks 204 and 206 shown in
[0151] Block 204 directs the master apparatus 64 to compute a rotation matrix that carries the newly calculated end effector orientation into the current handle orientation (R.sub.EE_TO_MASTER) by the relation:
R.sub.EE_TO_MASTER=R.sub.EENEW.sub.
[0153] Then, block 206 directs the master apparatus 64 to compute an angle of rotation associated with R.sub.EE_TO_MASTER (φ.sub.EE_TO_MASTER) by the relation:
(φ.sub.EE_TO_MASTER=a cos(0.5 trace(R.sub.EE_TO_MASTER)−1)
[0154] This angle of rotation (φ.sub.EE_TO_MASTER) represents the alignment difference between the orientation of the handle 102 and the newly calculated end effector orientation.
[0155] In a special case, applicable to the embodiment described here, it is desirable that to be aligned, only the z-axes of the reference frames described by R.sub.EENEW and R.sub.MCURR be coincident. In this case the master handle and the slave end effector point in the same direction and the roll about their z-axis is not considered.
[0156] In this special case therefore, blocks 204 and 206 shown in
φ.sub.EE_TO_MASTER=a cos(R.sub.EENEW(1,3)*R.sub.MCURR(1,3)+R.sub.EENEW(2,3)*R.sub.MCURR(2,3)+R.sub.EENEW(3,3)*R.sub.MCURR(3,3))
[0157] This computation represents the angle obtained from the dot product of the z-axes of the master and slave reference frames.
[0158] After determining the angle of rotation φ.sub.EE_TO_MASTER, using either the generic method shown in blocks 204 and 206 or the method that assumes the z axes of the master and slave reference frames are aligned, block 208 directs the master apparatus 64 to determine whether the alignment difference meets a criterion. A first criterion may be that the alignment difference is not less than a threshold value, and a second criterion may be that the alignment difference is less than the threshold value, for example.
[0159] If the alignment difference meets the second criterion (i.e. is less than the threshold value), block 214 directs the master apparatus 64 to release any previously produced translation lock signal locking the master input device 60 by setting the translation lock signal inactive, thereby signaling the feedback force control block 122 of
[0160] Then block 215 directs the master apparatus 64 to signal the motion control block 120 of .sub.EENEW and R.sub.EENEW are to be sent to the slave computer 74. This causes the end effector 73 to assume a position and orientation determined by the current position and current orientation of the handle 102 when the alignment difference meets the second criterion.
[0161] Block 159 then directs the master apparatus 64 to copy the newly calculated end effector position vector .sub.EENEW ad end effector rotation matrix R.sub.EENEW into stores 147 and 149 of the previous buffer 141. The newly calculated end effector position vector
.sub.EENEW and newly calculated end effector rotation matrix R.sub.EENEW are thus renamed as “previously calculated end effector position vector”
.sub.EEPREV and “previously calculated end effector rotation matrix” R.sub.EEPREV. By storing the newly calculated end effector position vector
.sub.EENEW and newly calculated end effector rotation matrix R.sub.EENEW, as previously calculated end effector position vector
.sub.EEPREV and previously calculated end effector rotation matrix R.sub.EEPREV, a subsequently acquired new end effector position vector
.sub.EENEW and subsequently acquired new end effector rotation matrix R.sub.EENEW can be calculated from the next current handle position vector
.sub.MCURR and next current handle position matrix R.sub.MCURR.
[0162] If at block 208 the alignment difference meets the first criterion, i.e. alignment difference is not less than the threshold value but does not meet the second criterion, block 210 directs the master apparatus 64 to set the translation lock signal active to inform the feedback force control block (122 in
[0163] After executing block 210, the master apparatus 64 may be directed by an optional block, block 212, to start a program thread that directs the master apparatus 64 to produce annunciation signals for causing an annunciator to annunciate an indication of a relative alignment of the handle 102 and the end effector. The annunciator may include an audio producing device that changes a frequency of a signal in response to proximity of alignment and/or may include a display, possibly integrated into the viewer 62, for example, to provide a visual indication of the relative alignment between the end effector 73 and the handle 102. Such a visual presentation may be provided in the manner shown in
[0164] Referring back to .sub.EEPREV and R.sub.EEPREV. Thus, it will be appreciated that in the embodiment described, while the alignment difference remains equal to or greater than the alignment threshold, the master apparatus 64 executes blocks 210, 212, and 163 whereby, the user cannot effect translational movement of the handle 102 and can only rotate the handle until the handle is rotated into a position in which the alignment difference is less than the threshold value, at which point block 208 directs the master apparatus 64 to blocks 214, 215 and 159 which causes the master apparatus 64 to make the translation lock signal inactive, and to set the “new” signal active to indicate to the motion control block 120 that it should send the slave control signals based on
.sub.EENEW and R.sub.EENEW.
[0165] Referring back to .sub.EEPREV and R.sub.EEPREV in the eleventh and twelfth stores 147 and 149, respectively. The wire length signals produced by the motion control block 120 thus represent wire length values derived from the last saved values of
.sub.EEPREV and R.sub.EEPREV, causing the end effector 73 to remain stationary because the same motion control signals as were previously determined are sent to the slave computer 74. The end effector position and orientation calculation block 116 is then ended. As long as the enablement signal is inactive, motion control signals based only on the previously calculated end effector position and orientation signals are produced.
[0166] Accordingly, when the enablement signal is in the inactive state, the handle 102 can be moved and rotated and the calculations of .sub.EENEW and R.sub.EENEW will still be performed by block 160, but there will be no movement of the end effector 73, because the previous motion control signals are sent to the slave computer 74. This allows “clutching” or repositioning the handle 102 without corresponding movement of the end effector 73 and enables the end effector 73 to have increased range of movement when the end effector motion is constrained by the master controller workspace; for example, in the case where the scale factor “A” in the relation:
.sub.EENEW=A(
.sub.MCURR−
.sub.MBASE)+
.sub.EEBASE
[0167] is such that the full range of motion in the master translational workspace does not cause the end effector to cover the full translational workspace of the slave instrument.
[0168] Referring back to .sub.MCURR but produces a varying rotation matrix R.sub.MCURR dependent on the orientation of the handle 102.
[0169] When the translation lock signal is set inactive by block 214 of
[0170] The motion control block 120 uses the configuration values produced by the kinematics block 118 to produce wire length values by applying transfer functions to the calculated configuration variables to determine required wire lengths. Such transfer functions can be derived theoretically and/or empirically, for example, for the specific tools used. The motion control block 120 is responsive to the “new” signal controlled by blocks 215 and 163 of
[0171] Therefore, it can be seen that when the user releases the footswitch 170 such that the enablement signal transitions from inactive to active, the slave control signals produced in response to actuation of the handle represent
.sub.EENEW and R.sub.EENEW only if the alignment difference is less than the alignment threshold. Otherwise, if, when the enablement signal transitions from inactive to active, the alignment difference is not less than the alignment threshold, the previous wire length values are represented by the slave control signals.
[0172] In addition, when the alignment difference is not less than the alignment threshold, the handle is locked against translational movement and, optionally, the user is provided with a visual display of the relative alignment between the end effector 73 and the handle 102. In this state the user can only rotate the handle 102 until it is positioned into an orientation in which it is aligned with the end effector 73, within the bounds of the alignment threshold, at which time the newly calculated .sub.EENEW and R.sub.EENEW values are again represented in the control signals sent from the master apparatus 64 to the slave computer 74 to again provide for normal operation where the end effector 73 is positioned and rotated in response to positioning and rotation of the handle 102.
[0173] For example, referring to .sub.EEPREV and the previously calculated end effector rotation R.sub.EEPREV when the footswitch is actuated, the end effector 73 remains stationary.
[0174] Then, the user can release the footswitch 170 to set the enablement signal active and, in response to the enablement signal transitioning from the “not active” state to the “active” state, block 216 of values of the handle position
.sub.MCURR and handle orientation R.sub.MCURR signals as new values of the master base position signals
.sub.MBASE and new values of the master base orientation signals R.sub.MBASE respectively, and stores the newly calculated values of the end effector position signals
.sub.EENEW and newly calculated values of the end effector 73 rotation signals R.sub.EENEW as new values of the end effector base position signals
.sub.EEBASE and new values of the end effector base orientation signals R.sub.EEBASE respectively. Otherwise, upon release of the footswitch, the end effector 73 would “snap” to the absolute position directly determined by the position of the handle 102 and this could be dangerous if it were to occur inside a patient because the end effector 73 could tear into tissue or internal organs of the patient with possibly life-threatening effects. The user can then continue pushing the handle 102 in the z.sub.mb direction toward the control unit 92 while the end effector 73 is further moved in the z.sub.sb direction corresponding to the movement of the handle 102.
[0175] This provides a clutching effect which is achieved by causing movements of the handle 102 and movements of the end effector 73 to be made relative to the last-saved master base position (.sub.MBASE) and rotation (R.sub.MBASE) and the last saved end effector base position (
.sub.EEBASE) and rotation (R.sub.EEBASE) respectively.
[0176] While the above described clutching effect is desirable to match the range of translational movement of the end effector 73 with the range of movement of the handle 102 and for the user to reposition their hands to a comfortable position for operation, it is not desirable for clutching to occur in rotation because this would cause a misalignment in orientation between the master and the slave, making the teleoperated slave difficult to control. In the absence of a mechanical means to maintain the orientation of the handle 102 it would be difficult for the user to rotate the handle 102 to cause it to be exactly aligned with the end effector 73 on release of the footswitch 170 so that normal operation can be resumed.
[0177] By locking the handles against translational movement when the alignment difference is not less than the threshold and by representing the previously calculated .sub.EEPREV and R.sub.EEPREV in the slave control signals, a safety feature is provided whereby translational movement of the handle is prevented and all movement of the end effector 73 is prevented until the handle 102 is generally rotationally aligned with the end effector 73.
[0178] While specific embodiments of the invention have been described and illustrated, such embodiments should be considered illustrative of the invention only and not as limiting the invention as construed in accordance with the accompanying claims.