Systems and methods for robotic surgery
By designing surgical manipulators that can switch in manual and semi-automatic modes, using multi-force and torque signals to adjust the instrument's posture and path, the problem of mode switching and positioning stability in existing systems in complex surgical procedures has been solved, achieving higher levels of stability surgical accuracy and safety.
Patent Information
- Application Number
- CN202411205661.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2013-03-15
- Filing Date
- 2013-08-02
- Publication Date
- 2024-12-10
AI Technical Summary
The existing robotic surgical system is difficult to switch between manual and semi-automatic operating modes, resulting in the difficulty of fine positioning and removal of large-mass tissue in complex surgical procedures, and there is an undesirable collision between the instrument and the tissue.
A surgical manipulator is designed to use multiple force and torque signals to determine the controlled attitude and simulate the instrument and energy applicator as virtual rigid bodies, using sensors to monitor the force and rotation of the practitioner through manual or semi-automatic mode operation. Moment input, adjust the position and motion path of the instrument in real time to ensure that the instrument operates within a defined boundary.
Flexible mode switching in surgical procedures is achieved, the fine positioning and operation stability of the instrument is improved, undesired collisions are reduced, and the accuracy and safety of the operation are improved.
Smart Images

Figure CN119097419A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese invention patent application (direct parent case) with national application number 202110148675.0, application date August 2, 2013, and name “System and method for robotic surgery”. The Chinese invention patent application (direct parent case) is a divisional application of the Chinese invention patent application with international application number PCT / US2013 / 053451, national application number 201380052236.3, application date August 2, 2013, and name “System and method for robotic surgery”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims priority to U.S. Provisional Patent Application No. 61 / 679,258 filed on August 3, 2012 and U.S. Provisional Patent Application No. 61 / 792,251 filed on March 15, 2013, the benefits and disclosures of both applications are incorporated by reference in their entirety. Technical Field
[0004] The present invention generally relates to surgical manipulators. More particularly, the present invention relates to surgical manipulators that can be operated in manual or semi-automatic modes. Background Art
[0005] Recently, medical practitioners have found that it is useful to use a robotic device to assist in surgical operations. The robotic device generally includes a movable arm including one or more coupling mechanisms. The arm has a free distal end that can be placed with very high precision. A surgical instrument designed to be applied to a surgical site is attached to the free end of the arm. The medical practitioner can accurately position the arm so that the surgical instrument is accurately positioned on the patient's body by extrapolation where the instrument is to be used for medical treatment or surgery. One advantage of using a robotic system to hold an instrument is that, unlike the surgeon's hands and arms, the arm of the system is not subject to muscle tension or neurological movements such as twitching. Thus, the use of a medical robotic system can stably hold the instrument, or move the instrument along a predetermined path with higher precision, compared to the situation where the instrument is handheld and therefore positioned by hand.
[0006] Some other robotic surgical systems are designed to be used with a surgical navigation system. A surgical navigation system is a system that is capable of generating data that provides a relatively accurate indication of the position of a surgical instrument relative to the patient to which the instrument is applied. When the surgical robotic system is provided with data indicating the position of the instrument relative to the patient, the robotic system is able to position the instrument to ensure that it is applied to the tissue of the patient to which the instrument is intended to be applied. This substantially eliminates the possibility that the instrument will be applied to tissue to which it should not be applied.
[0007] Certain medical robotic systems are designed to operate in a mode known as a "semi-automatic" mode. In this operating mode, the robotic system actuates an arm so that the instrument moves relative to the patient's tissue along a pre-programmed path. This is useful, for example, where the instrument is a certain type of cutting device and the purpose of the particular surgery is to remove a predetermined portion of the patient's tissue. By way of reference, if the robotic system is operating in an "automatic" operating mode, then once actuated, the robot performs the surgery with essentially no input from the surgeon. In the "semi-automatic" operating mode, a practitioner is able to issue commands to control the operation of the robot. For example, some semi-automatic robots are configured such that, in order for the robot to be able to move the instrument, the practitioner must initiate the command by continuously depressing a control button or switch associated with the robot. In the event that the practitioner refuses to initiate the command, the robot at least temporarily stops the advancement of the instrument.
[0008] Certain robotic systems are not conventional robots in that, once activated, they do not automatically move an attached instrument along a pre-programmed path of travel. These systems include a control system through which a practitioner inputs commands indicating where the attached instrument is to be positioned. Based on the commands input by the practitioner, this type of system actuates the arm / arms of the system to cause substantially simultaneous, real-time movement of the instrument. These robotic systems are considered to operate in a manual mode.
[0009] Heretofore, it has been difficult to provide a robotic system that can switch between a semi-automatic mode of operation and a manual mode of operation during a single surgery. For example, it is believed that many times a surgeon may desire to initially manually operate an instrument to remove a large mass of tissue. This portion of the surgery is sometimes referred to as debulking. Then, in order to remove tissue to define the surface of the remaining tissue, the surgeon may desire the robotic system to semi-automatically perform fine positioning of the instrument. This portion of the surgery is sometimes referred to as fine cutting.
[0010] In addition, sometimes it may be desirable to switch back from semi-automatic positioning of an instrument to manual positioning. For example, in orthopedic joint replacement, the practitioner may desire the instrument (cutting tool) to move along a programmed path in order to precisely shape the bone to which the instrument is to be applied. This precise bone shaping facilitates the precise fitting of the implant to the surface of the bone exposed by the cutting tool. However, there may be a situation in which, after the operation begins, it is apparent that the instrument may collide with a target at the surgical site, and such contact is undesirable. The target may be tissue that has been moved into the surgical site or a second instrument positioned at the site. In this situation, the practitioner should be able to immediately interrupt the programmed movement of the tool, manually control the tool to reposition the instrument, and then return the tool to the programmed movement. Summary of the invention
[0011] The present invention provides a surgical manipulator for manipulating a surgical instrument and an energy applicator extending from the surgical instrument. The surgical manipulator also includes at least one controller configured to advance the energy applicator.
[0012] In one embodiment, at least one controller is configured to determine a commanded pose to which the energy applicator is advanced, wherein the commanded pose is determined based on a sum of a plurality of force and torque signals.
[0013] In another embodiment, at least one controller is configured to simulate the surgical instrument and energy applicator as a virtual rigid body.
[0014] In another embodiment, at least one controller is configured to operate the surgical manipulator in a manual mode or a semi-automatic mode.
[0015] In another embodiment, at least one controller includes a feed rate calculator configured to calculate an instrument feed rate.
[0016] In another embodiment, at least one controller includes a material registration module configured to collect data related to locations where energy applicators have applied to the volume of material.
[0017] Other embodiments of the invention are also contemplated herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The present invention is particularly pointed out in the claims. The above and other features and advantages of the present invention can be understood from the following detailed description in conjunction with the accompanying drawings, in which:
[0019] Figure 1 A schematic diagram of how the manipulator of the present invention is used to position and advance a surgical instrument on a patient;
[0020] Figure 2 is a perspective view of a manipulator of the present invention with a surgical instrument and a navigation tracker attached to the manipulator;
[0021] Figure 2A and 2B are respectively a top view and a side view of a pendant used to adjust the operation of the manipulator;
[0022] Figure 3 is the front view of the manipulator;
[0023] Figure 4 is a perspective view of the arm of the manipulator;
[0024] Figure 5 An alternative perspective view of the arm of the manipulator;
[0025] Figure 6 is a side view of the arm of the manipulator, wherein the lower arm is seen in close view;
[0026] Figure 7 is a top view of the manipulator arm;
[0027] Figure 8 is a side view of an end effector and a surgical instrument, where a powered drill is attached to the end effector;
[0028] Fig. 9 is a front view of an end effector and an attached surgical instrument;
[0029] Fig.10 is a perspective view of an end effector and an attached surgical instrument;
[0030] Fig.11 is a block diagram of a plurality of processors that cooperate together to control actuation of a manipulator and an attached surgical instrument;
[0031] Fig.12 Schematic diagram of different coordinate systems related to the patient and the actuated elements of the adjustment manipulator;
[0032] Figures 13A to 13E forming a block diagram of software modules that operate to regulate actuation of a manipulator;
[0033] Fig.14 is a block diagram of components forming one of the joint actuators;
[0034] Fig.15A is a side view of a bone showing how a tool path is formed to define the bone segment to which the surgical instrument is applied;
[0035] Fig. 15B is a top view of the skeleton, showing the arrangement of the tool drawing;
[0036] Fig. 15C shows how a single tool path can include a set of path segments of different lengths and orientations;
[0037] Figures 16A-16D shows submodules within a tool path force calculator;
[0038] Fig.17 schematically shows how tool path segments are averaged by a rolling average filter;
[0039] Figures 18A to 18D is a set of schematic diagrams showing how the points and boundaries used by the orientation regulator are generated;
[0040] Fig.19 is a graph showing a relationship between a deviation of the instrument relative to a target orientation and a force determined by the orientation adjuster to be applied to the virtual rigid body to compensate for the deviation;
[0041] Fig. 20A , 20B and 20C schematically illustrates repositioning of the energy applicator performed by a cutting guide;
[0042] Fig.21A , 21B and 21C forming a flow chart of the processing steps performed by the cutting guide;
[0043] Fig. 22 shows how the boundary defining the patch closest to an energy applicator may not be the patch that the applicator is most likely to intersect,
[0044] Fig.23A and 23B is a schematic diagram showing the velocity changes experienced by the instrument and energy applicator due to the cutting guide preventing the energy applicator from moving beyond a defined boundary;
[0045] Fig.23C is a schematic diagram showing the position changes experienced by the instrument and energy applicator as a result of the cutting guide preventing the energy applicator from moving beyond defined boundaries;
[0046] Fig.24 A flow chart of the process that may produce joint limiting restraints;
[0047] Fig.25 A flow chart of the process that may generate interference angle constraints;
[0048] Fig.26 A flowchart of the process that may generate workspace constraints;
[0049] Fig. 27A block diagram of the input and output of the device manager;
[0050] Figures 28A-28G together forming a flow chart of process steps performed by the manipulator when the instrument is advanced semi-automatically;
[0051] Fig.29A and 29B are top and side views, respectively, schematically illustrating the initial orientation of the instrument when in semi-automatic mode;
[0052] Fig. 30A and 30B are top and side views, respectively, schematically illustrating how the manipulator orients the instrument and energy applicator such that a common axis extends through a center point based on force and torque commands output by a total orientation force regulator;
[0053] Fig.31 schematically illustrates how the orientation of the common axis is relatively maintained close to a center point based on force and torque commands output by a total orientation force regulator as the energy applicator advances along a tool path;
[0054] Fig.32A , 32B 32C are top, side, and cross-sectional views, respectively, showing how the manipulator can adjust the orientation of the instrument to keep the energy applicator on the tool path while maintaining the common axis in the reference surface aperture even when there is an obstacle 828 above the tool path;
[0055] Fig.33A and 33B are top and side views, respectively, showing how the manipulator adjusts the orientation of the instrument to keep the energy applicator on the tool path while maintaining the common axis in the reference surface aperture;
[0056] Fig.33C Schematically illustrates how the orientation of the common axis moves to maintain the axis within the reference surface aperture based on force and torque commands output by the overall orientation force regulator as the energy applicator advances along the tool path.
[0057] Fig.34A , 34B 34C is a second set of cross-sectional views showing how the position and orientation reference surface and the orifices defined therein are repositioned during operation of the manipulator.
[0058] Fig.35A , 35B and 35C is a second set of cross-sectional views showing how the position and orientation of the reference surface and the orifice defined therein are reset during operation of the manipulator; and
[0059] Fig.36A , 36B and 36C show a sequence of graphs defining how the boundaries to which the energy applicator is to be applied change during a surgical procedure. DETAILED DESCRIPTION
[0060] I. Overview
[0061] The present invention generally relates to a new and useful surgical manipulator that positions a surgical instrument or tool within or on a patient. The surgical manipulator positions the surgical instrument so that the end of the instrument that is to be applied to tissue is applied only to the tissue to which the instrument should be applied.
[0062] The manipulator can be operated in a manual mode or a semi-automatic mode. When the manipulator is operated in a manual mode, the manipulator monitors the forces and torques applied by the practitioner to the instrument to position the instrument. These forces and torques are measured by sensors that are part of the manipulator. The manipulator moves the instrument substantially in real time in response to the forces and torques applied by the practitioner. Thus, the movement of the instrument by the manipulator can be considered to simulate the movement of the instrument to position the instrument as desired by the practitioner.
[0063] When the manipulator is operated in manual mode, the manipulator determines the relative position of the instrument with respect to a boundary. The boundary defines the limits of the tissue beyond which the instrument should not be placed. In situations where the practitioner may wish to position the instrument beyond the boundary, the manipulator does not allow such movement of the instrument. For example, if the manipulator determines that the practitioner's repositioning of the instrument causes the instrument to approach a boundary beyond which the instrument should not be crossed, the manipulator prevents the instrument from moving beyond the boundary.
[0064] The practitioner may continue to attempt to reposition the instrument to a position where the tip should not be exceeded. The manipulator will not move the tip so that the tip is repositioned beyond the boundary. However, the manipulator reorients the instrument based on the force detected from the practitioner. This reorientation of the instrument without allowing the tip to reposition indicates to the practitioner that the tip of the instrument has reached a boundary that should not be crossed. The manipulator still will not respond to move the tip along the boundary.
[0065] When the manipulator is operated in a semi-automatic mode, the manipulator calculates the forces and torques required to move the instrument along a predetermined path of travel. Based on these forces and torques, the manipulator moves the instrument along the predetermined path of travel.
[0066] A further feature is that the practitioner can make certain manual adjustments to the position of the instrument as the manipulator moves the instrument during semi-automatic operation. One such adjustment is that the practitioner can adjust the orientation of the instrument as it moves along a programmed path of travel.
[0067] In some forms, when the manipulator advances the instrument, it does so based on a determination of the forces and torques that must be applied to a virtual rigid body. The virtual rigid body is a model of the instrument and the energy applicator. Based on these forces and torques, the manipulator advances the instrument. When the manipulator is operated in manual mode, the components of these forces and torques are such forces and torques that, because they are applied to the virtual rigid body, the manipulator positions the instrument so that the instrument does not cross the boundary. When the manipulator is operated in semi-automatic mode, the forces and torques applied to the virtual rigid body include additional components. In response to the presence of these additional force and torque components, the manipulator advances the instrument so that the energy applicator moves along a predetermined tool path.
[0068] In some forms, the manipulator includes a plurality of interconnected links. These links can be connected together in series and / or in parallel. In one embodiment of the invention, these links form two parallel four-bar linkages. The instrument is connected to the distal ends of the links. In general, each pair of adjacent links is connected by a joint. The position of the links is set by an actuator associated with the joint.
[0069] Figure 1 and 2 An exemplary manipulator 50 is shown for applying a surgical instrument 160 to a patient 600. The manipulator 50 includes an end effector 110, which is a portion of the manipulator to which the surgical instrument 160 is attached. The manipulator 50 positions the end effector 110 to position and orient the surgical instrument 160 so that the instrument performs a desired medical / surgical procedure on the patient. The manipulator 50 is used in conjunction with a surgical navigation system 210. The surgical navigation system 210 monitors the position of the end effector 110 and the patient 600. Based on this monitoring, the surgical navigation system 210 determines the position of the surgical instrument 160 relative to the site on the patient to which the instrument is to be applied.
[0070] Handheld pendant 190 ( Figure 2A ) is also attached to the manipulator 50. The pendant 190 is used to adjust the operation of the manipulator and instrument 160 in certain operating modes.
[0071] The manipulator 50 of the present invention can be operated in manual mode. When the manipulator is operated in manual mode, the manipulator positions the instrument in response to the forces and torques applied by the practitioner on the instrument 160. In response to these forces and torques, the manipulator mechanically moves the instrument, thereby simulating the movement that will occur based on the forces and torques applied by the practitioner. When the instrument 160 moves, the surgical manipulator 50 and the surgical navigation system 210 cooperate to determine whether the instrument is within the defined boundaries. Usually, but not always, the boundary is within the patient, and the instrument should not be applied beyond the boundary. Based on these data, the manipulator 50 selectively limits the range of movement of the instrument 160. Specifically, the manipulator constrains itself not to perform movements that would otherwise cause the instrument to be applied outside the defined boundaries. Thus, if the forces and torques applied by the practitioner will cause the instrument to advance beyond the boundary, the manipulator does not simulate this expected positioning of the instrument.
[0072] The manipulator 50 can also be operated in a semi-automatic mode. To operate the manipulator 50 in this mode, a path of travel is generated along which the instrument 160 should be applied. Before the operation is started, at least the basic form of the path is generated. Based on these forces and torques, as well as other data, the manipulator generates data describing the controlled posture to which the instrument should be advanced. ("Posture" should be understood as the position and orientation of the system components under discussion). Once the controlled posture is generated, the manipulator advances the instrument to that posture. As in manual mode, when the instrument is operated in semi-automatic mode, the manipulator will not advance the instrument 160 beyond the boundary.
[0073] ii. Hardware
[0074] like Figure 2 and 3 As shown, the manipulator 50 includes a trolley 52. The trolley 52 includes a frame (frame not shown) mounted on wheels. A housing 56 is disposed on the frame.
[0075] The manipulator 50 includes lower and upper arms 68 and 70, respectively. The arms 68 and 70 extend upward from shoulders 67 and 69, respectively. The shoulders 67 and 69 are located above the trolley housing 56. Each shoulder 67 and 69 and the associated arm 68 and 70 have three degrees of freedom, respectively and collectively, relative to the horizontal reference plane of the trolley 52. The shoulder 69 (the shoulder to which the upper arm 70 is mounted) is located above the shoulder 67 (the shoulder to which the lower arm 68 is mounted). Both shoulders 67 and 69 are rotatably attached to the trolley frame. Each shoulder 67 and 69 rotates around an axis extending perpendicularly to the horizontal reference plane of the trolley 52. The rotation of each shoulder 67 and 69 causes the associated arm 68 or 70 to perform a similar displacement, respectively. It will be apparent from the following that the shoulders do not need to always move in unison or have the same end position. The angular position of each shoulder 67 and 69 relative to the reference position on the trolley 52 is referred to as the joint angle of the shoulder.
[0076] like Figure 4 and 5 As shown, each arm 68 and 70 comprises a four-bar linkage. In these figures, the arms are in their nominal starting positions. Each arm 68 and 70 includes an upper link 74 that is pivotally mounted to the shoulder 67 or 69. Although the upper link 74 is capable of pivoting, Figure 4 and 5 In the embodiment of the present invention, they are shown extending above the shoulder and extending approximately perpendicular to the ground. The drive link 76 can also be pivotally mounted to the shoulder 67 or 69. The drive link 76 is mounted to the shoulder 67 or 69 so as to pivot about the same axial axis as the upper link 74 pivots about. Each drive link extends backward from the associated shoulder 67 or 69. (Here, "backward" is the direction away from the patient. "Forward" is the direction toward the patient). In the illustrated form of the present invention, unlike other links, the drive link 76 is generally not in the form of a straight beam. Instead, each drive link 76 is formed with a bend (the bend is not shown). The curved shape of the drive link 76 facilitates the separation of the link from the shoulders 67 and 69.
[0077] A four-bar link 78 is pivotally mounted to the rear free end of each drive link 76. The four-bar link 78 extends upwardly from the associated drive link 76 and is generally parallel to the upper link 74. The driven link 80 is the remaining rigid link of each arm 68 and 70. Each driven link 80 has an upper section, not indicated by a reference numeral, which is pivotally attached to the free end of the associated proximal four-bar link 78. Each driven link 80 is also pivotally attached to the free end of the associated upper link 74. Each driven link 80 has a front section, not indicated by a reference numeral, which extends outwardly beyond the upper link 74. Due to the different heights of the shoulders 67 and 69 above the ground, the drive link 80 integral with the upper arm 70 is located above the drive link integral with the lower arm 68.
[0078] Like each shoulder 67 and 69, each link 74, 76, 78 and 80 rotates. The connection between two links is called a joint. The angle between two links is the joint angle of the joint connecting the links.
[0079] A rigid coupler 88 (also part of the manipulator 50) extends between the distal ends of the driven link 80. Figure 6 and 7As shown, wrist 82 connects coupler 88 to lower arm follower link 80. Wrist 82 is connected to lower arm follower link 80. Wrist 82 is a three-degree-of-freedom wrist. Wrist 84 connects coupler 88 to the distal end of upper arm follower link 80. Wrist 84 is a two-degree-of-freedom wrist. A description of certain features of this type of manipulator, as well as a description of alternative coupling arrangements that can be used to position end effector 110, can be found in U.S. Patent No. 7,950,306, entitled MANIPULATOR, issued on May 31, 2011, which is expressly incorporated herein by reference.
[0080] Three actuators 92, 94 and 96 are associated with each arm 68 and 70, Fig.13D One of each type of actuator is schematically shown in . Each actuator 92 is mounted to the cart frame adjacent to a shoulder 72 integral with the associated arm 68 or 70 .
[0081] Actuators 94 and 96 are mounted in shoulders 67 or 69 integral with the associated arm 68 or 70. Actuator 94 is connected to the upper link 74 so that the upper link is selectively pivoted. Actuator 96 is connected to the drive link 76 so that the drive link 76 is pivoted. The pivoting of the drive link 76 causes the attached four-bar link 78 to be displaced. The movement of the four-bar link 78 causes the attached driven link 80 to pivot. Specifically, the driven link 80 pivots around the axis around which the driven link 80 is attached to the associated upper link 74. These particular gear assemblies are substantially "zero backlash" gear assemblies. There is substantially no looseness between the interlocking gears. This feature of the gears facilitates precise positioning of the shoulder 72 and the links 74, 76, 78 and 80.
[0082] The arms 68 and 70 and the coupler 88 together form an overactuated mechanism. This means that the actuation of one link must be achieved by a corresponding movement of one or more of the other actuated links.
[0083] A number of components are associated with each actuator 92 , 94 , and 96 . Fig.14 Components associated with the actuator 94 are shown arbitrarily. Specifically, the actuator includes a permanent magnet synchronous motor 101 that is attached to the structural frame 87 within the shoulder 67 or 69. The motor 101 is not directly attached to the frame 87. Instead, the torque sensor 89 is located between the frame 87 and the motor 101.
[0084] Associated with the motor 101 is a rotary encoder 114 described below. When no power is supplied to the motor, the brake 103 locks the rotation of the motor shaft. The locked / unlocked state of the brake 103 is controlled by the manipulator controller 124. When the manipulator 50 is powered off, the manipulator controller 124 sets the brake 103 from the unlocked state to the locked state. Thus, the brake 103 is a component integral with the shoulders 67 and 69 and the arms 68 and 70 that prevents the arms from moving when the manipulator 50 is powered off.
[0085] The reduction gear 105 converts the rotational motion of the output shaft of the motor rotor (not shown) into a rotational torque to drive the shoulder 67 or 69 or the coupling 74 or 76 attached to the motor. In some forms of the invention, the reduction gear is a harmonic gear drive mechanism. The output shaft 107 of the reduction gear assembly 105 is shown connected to the upper coupling 74. In some forms of the invention, the motor, rotary encoder, brake and reduction gear assembly are a single unit.
[0086] Although not shown, integral to each actuator is a transfer gear assembly. The transfer gear assembly integral to actuator 92 includes a gear that rotates the associated shoulder 67 or 69. The transfer gear assembly integral to actuator 94 includes a gear that pivots the upper link 74. The transfer gear assembly integral to actuator 96 includes a gear that pivots the drive link 76. The transfer gear assembly is a substantially "zero backlash" gear assembly. This means that there is essentially no looseness between the interlocking gears. This feature of the gear assembly facilitates precise positioning of shoulders 67 and 69 and arms 68 and 70.
[0087] Associated with each arm 68 and 70 are three of the above-mentioned rotary encoders 112 , 114 and 116 . Fig.13D One of each type of encoder is shown in . Each rotary encoder 112, 114 and 116 is a sensor that monitors the angular position of one of the three motor-driven components of the arm 68 or 70 with which the encoder is associated. Rotary encoder 112 monitors the rotation of the shoulder 67 or 69 of the arm. Rotary encoder 114 monitors the rotation of the upper link 74 of the arm. Rotary encoder 116 monitors the rotation of the drive link 76 of the arm.
[0088] In the described form of the invention, each rotary encoder 112, 114 and 116 monitors the rotation of a shaft integral to the motor 101 within the associated actuator 92, 94 and 96, respectively. (The motor shaft is not shown). The rotation of each actuator motor shaft is directly proportional to the rotation of the shoulder or arm coupling driven by the motor. Each rotary encoder 112, 114 and 116 monitors the degree of rotation of the rotor of the associated motor shaft and the direction of rotation (clockwise or counterclockwise).
[0089] In other forms of the invention, each encoder 112, 114 and 116 monitors the degree and direction of rotation of one of the gears of the transfer gear assembly connecting the motor shaft to the shoulder or arm coupling displaced by the motor. There is a first order linear relationship between the degree of rotation of the gear and the joint angle of the joint set by the associated motor. Alternatively, each encoder 112, 114 and 116 is a sensor that directly measures the joint angle of the joint associated with the sensor.
[0090] In certain preferred forms of the invention, encoders 112, 114, and 116 are absolute encoders. When manipulator 50 is activated, the absolute encoder generates a signal that immediately indicates the position of the component (motor rotor shaft or gear shaft) monitored by the encoder. In other forms of the invention, the encoder is an incremental encoder. When manipulator 50 is activated, the incremental encoder is set to a zero state. Once set to a zero state, the incremental encoder provides data indicating the degree of displacement of the component monitored by the encoder. For this type of encoder, arms 68 and 70 can be moved to a starting or zero state position before using the manipulator. Once the arm moves in this way, the incremental count maintained by the encoder is reset to zero. After the zeroing process, the incremental count output by the motor is used to provide an inferred indication of the position of arms 68 and 70.
[0091] In certain preferred forms of the invention, rotary encoders 112, 114, and 116 are multi-turn absolute encoders. After measuring a full rotation of 360°, this type of absolute encoder outputs a signal indicating that further rotation angles exist beyond the first or additional 360° rotation. For example, when the encoder measures a 10° rotation during the third rotation of the monitored shaft, the encoder outputs a signal indicating that the shaft has undergone 730° rotation.
[0092] The manipulator 50 includes two additional encoders, encoders 117 and 118. Encoders 117 and 118 are associated with a driven link 80 that is integral with the upper arm 70. Fig.13D , encoders 117 and 118 are shown as being within the upper arm driven link 80. Encoders 117 and 118 generate signals representing the angular position of the wrist 84 relative to the upper arm driven link 80. As described above, the wrist 84 rotates with two degrees of freedom relative to the adjacent driven link. Each encoder 117 and 118 generates a signal representing the angular position of the wrist about an axis about which the wrist rotates.
[0093] The end effector 110 is rigidly attached to the coupling 88. In some forms of the invention, the end effector is removably attached to the coupling 88. Although not shown or described in detail, it should be understood that the end effector 110 includes a coupling assembly 111 that is connected to the coupling assembly 111. Fig.10 1, surgical instrument 160 is securely and releasably held to coupling 88. Coupling assembly 111 is designed to ensure that when the instrument is subjected to significant forces, these forces do not cause surgical instrument 160 to slide relative to end effector 110. The end effector is capable of moving in one or more degrees of freedom. Such an end effector may include a surgical instrument disclosed in U.S. Patent Application No. 13 / 600,888, entitled Surgical Instrument Including Housing, a Cutting Accessory that Extends from the Housing and Actuators that Establish the Position of the Cutting Accessory Relative to the Housing, which is incorporated herein by reference.
[0094] The coupling 88 is also equipped with a sensor 108, such as Fig.13D 108 is symbolically shown in FIG. The sensor 108 is configured to output a variable signal that varies with the force and torque applied to the end effector 110. Although the exact structure of the sensor 108 is not described here, it should be understood that the sensor is a six-degree-of-freedom sensor. Thus, the sensor 108 outputs signals representing three mutually perpendicular forces applied to the instrument or energy applicator and three torques about the axis of force.
[0095] In addition, the carriage 52 is equipped with a manipulator controller 124 and a joint motor controller 126, which are Fig.11. The manipulator controller 124 can be a high-speed general-purpose digital computer. One such computer is the iHawk computer available from Concurrent Computer, which has an x8 ultra-micro motherboard. The computer has a dual quad-core processor. In some forms of the invention, the manipulator controller has fewer or more processing cores. In other forms of the invention, the manipulator controller 124 has 16 or more processing cores. The manipulator controller 124 also typically has a multi-graphics processing unit. In one embodiment, the manipulator controller 124 determines the position to which the surgical instrument 160 should move based on data from the force / torque sensor 108, encoders 112, 114, 116, 117 and 118, surgical navigation system 210 and other information. Based on this determination, the manipulator controller 124 determines the extent to which the coupling formed by each arm needs to move in order to reposition the surgical instrument 160. Data about the position at which the coupling will be positioned is transmitted to the joint motor controller 126.
[0096] Each joint motor controller 126 regulates the application of an excitation signal to a single joint motor in the joint motor 101. The main function of the joint motor controller 126 is to apply an excitation signal to the associated motor 101 so that the motor drives the associated joint to an angle close to the controlled joint angle discussed below. The signal from the rotary encoder 114 is used as a feedback signal, which represents the actual joint angle used to perform this type of motor regulation. Some controllers 126 calculate the excitation signal using cascaded position, speed and current control loops. Each control loop is typically implemented using proportional-integral-differential control. A signal representing the forward feed torque is typically added to the input of the current control loop to enhance the responsiveness of the controller 126.
[0097] There is a drive circuit (not shown) within the joint motor controller 126. A power signal from a power supply (power supply not shown) integral to the manipulator is applied to the drive circuit. The drive circuit converts the power signal into a suitable excitation signal applied to the motor 101 in response to the final control loop output signal. In many forms of the manipulator 50, the excitation signal is in the form of a three-phase pulse width modulated (PWM) voltage signal. The signal typically has an amplitude of between 10 and 200 watts and a PWM frequency of between 20 and 200 kHz. The drive circuit supplies a signal back to the current control loop representing the current absorbed by the motor 101. This signal is output to other software modules running on the manipulator controller 124 as a measured motor current signal.
[0098] When the motor 101 is a permanent magnet synchronous motor, the controller 124 also regulates the application of the excitation signal so that the driven current is in the correct phase relative to the rotor position. This is called motor commutation. Some controllers perform commutation control based on field oriented control techniques. To perform this current signal regulation, the joint motor controller 126 relies on a signal representing the position of the motor rotor. The signals from the rotary encoders 112, 114 and 116 are used as feedback signals. In one form of the invention, a REL-230-36 motor controller from Harmonic Drive LLC of Peabody, Massachusetts is used as the joint motor controller 126.
[0099] A touch screen display 128 or other user input / output unit is also mounted to the cart 52. The display 128 is attached to a user interface 130, which is also attached to the cart. One such user interface 130 is the C6320 touch screen from Beckhoff Automation of Weil, Germany. The user interface 130 controls the display of information on the display 128 and initially processes user generated commands entered on the display. Most of these commands are applied to the manipulator controller 124.
[0100] The user interface 130 is a manipulator processor to which the signals output by the pendant 190 are transmitted.
[0101] The cart 52 includes a tool controller 132. The tool controller 132 supplies an excitation signal to the surgical instrument 160. The tool controller 132 typically includes: a power supply; a power control circuit; a user interface; a dedicated data processing unit (these components are not shown). The power supply converts the line voltage into a power signal that can be applied to the surgical instrument 160. The power controller circuit selectively applies the power signal to a power generation unit that is integral to the instrument 160. The user interface 130 allows the practitioner to enter instructions about how he / she expects the instrument to function. The tool controller 132 receives the instructions entered on the user interface and other data required to operate the instrument. Based on this data, the tool controller 132 outputs an excitation signal that causes the instrument to operate in the manner instructed by the practitioner. A more detailed discussion of the tool controller can be found in U.S. Patent No. 7,422,582, entitled CONTROL CONSOLE TO WHICH POWERED SURGICAL HANDPIECES ARE CONNECTED, THE CONSOLE CONFIGURED TO SIMULTANEOUSLY ENERGIZE MORE THAN ONE AND LESS THAN ALL OF THE HANDPIECES, the contents of which are incorporated herein by reference.
[0102] In some forms of the invention, manipulator display 128 serves as both a user interface and an output display for tool controller 132. Commands to set and adjust operating settings of tool controller 132 and instrument 160 are communicated from user interface 130 to tool controller 132.
[0103] like Figure 8-10 As shown, surgical instrument 160 includes a housing 162, which is the outer body of the instrument. A power generation unit 163 is provided within the housing 162. Fig. 9 160 is represented by a dashed rectangle. The power generation unit 163 converts the electrical energy received from the tool controller 132 into a suitable power form. If, for example, the instrument 160 is a motorized surgical instrument, then the power generation unit 163 is the motor of the instrument. If the instrument vibrates, then the power generation unit 163 is a component that converts the electrical energy to cause the desired mechanical vibration. If the instrument 160 outputs light (photon) energy, then the power generation unit is a unit that converts the electrical energy into light energy.
[0104] Six control buttons are mounted to the instrument housing 160. Two buttons, buttons 164 and 174, are mounted on opposite sides of the housing 160. Buttons 164 and 174 are normally open momentary contact switches connected in parallel. When the practitioner desires to actuate the instrument 160, the practitioner presses either button 164 or 174. The on / off state of the circuit regulated by buttons 164 and 174 is monitored by the user interface 130, the relationship of which is not shown. The interface 130 communicates these state data to the manipulator controller 124. The manipulator controller 124 sends commands to the tool controller 132 based in part on the states of these control members. Based on these commands, the tool controller 132 selectively applies an excitation signal to the power generation unit 163 inside the instrument 160. The two buttons 164 and 174 are arranged so that the practitioner can actuate the instrument 160 by pressing a button located on either side of the instrument.
[0105] Buttons 166, 168, and 170 are located on the front surface of the instrument housing 162. The buttons 166, 168, and 170 are provided to facilitate operation of the surgical navigation system 210. This specific operation of the surgical navigation system is not a part of the present invention.
[0106] A sixth button, button 172, is mounted to the top of the instrument. Button 172 is a momentary contact push button switch. As described below, when the practitioner desires to change the orientation of the instrument in the semi-automatic mode, button 172 is pressed. As will become apparent below, a change in the orientation of the instrument means that the instrument and energy applicator 184 are repositioned so that both devices pivot about the distal end tip of the energy applicator while the distal end tip of the energy applicator 184 continues to advance along the path planned when in the semi-automatic mode.
[0107] like Figure 8 As shown, switch 176 is pivotally mounted to instrument housing 162. Switch 176 is mounted to the proximally directed side of housing 162. Switch 176 is a normally open momentary contact switch. Switch 176 is a control member that the practitioner depresses when he / she desires to manually set the attitude of the instrument. It should be understood that the "attitude" of a component is the position and orientation of the component. The on / off state of button 172 and switch 176 is monitored by manipulator controller 124 and user interface 130, the relationship of which is not shown.
[0108] Extending forward from the instrument housing 162 is an energy applicator 184. The energy applicator 184 is a component that applies the energy output by the instrument power generation unit 163 to the area on the patient where surgery is to be performed. If the power generation unit 163 is a motor, then the energy applicator 184 can be a drill bit, saw blade, or drill awl. If the power generation unit is an ultrasonic vibrator, then the energy applicator 184 is the tip. If the power generation unit outputs photon energy, then the energy applicator 184 is some type of component that is transparent to the wavelength of light generated by the power generator. In general, the distal end of the energy applicator 184 (commonly referred to as the distal end tip) is the portion of the instrument's energy applicator 184 that is applied to the tissue where surgery is to be performed.
[0109] Many instruments 160 include a coupling assembly that is Fig. 9 162. The coupling assembly releasably holds the energy applicator 184 to the housing 162 and releasably connects the energy applicator 184 to the power generation unit 163.
[0110] A motorized surgical instrument that may be used as instrument 10 and a complementary energy applicator 184 is disclosed in U.S. Pat. No. 6,562,055, entitled CUTTING ATTACHMENT FOR SURGICAL HANDPIECE DESIGNED TO BE SELECTIVELY COUPLED TO THE HANDPIECE, the contents of which are expressly incorporated herein by reference.
[0111] In order for the manipulator 50 to simulate instrument positioning by a medical practitioner, it should be understood that the instrument and energy applicator 184 are simulated as a virtual rigid body. The virtual rigid body is considered to have a virtual mass. The virtual mass of the virtual rigid body is generally about the same size as the actual mass of the instrument 160 and energy applicator 184. Due to mechanical and electrical limitations, the virtual mass is generally greater than the actual mass. By extension, it should be understood that the virtual rigid body has its own center of mass. Figure 8 , the center of mass is represented by point 165, which is a point inside the handpiece housing 162. This is the point that would be considered the center of mass of the actual instrument. Typically, but not always, this point is on or within the instrument. Here, "center of mass" is understood to be a point about which the instrument and energy applicator 184 would rotate if a force were applied to another point on the instrument. The center of mass of the virtual rigid body is close to, but typically not the actual center of mass of the instrument 160 with the energy applicator 184 attached.
[0112] The center of mass of the virtual rigid body can be determined empirically.Once the instrument and energy applicator 184 are attached to the manipulator, the position of the center of mass can be reset to suit the preferences of individual practitioners.
[0113] Reference now Figure 2A and 2B The described pendant 190 is also used to adjust the operation of the manipulator 50. Figure 2A As shown, pendant 190 includes a housing 191 shaped to be held by one hand. Three normally open control members are mounted to the housing. These control members are used to adjust the semi-automatic operation of manipulator 50. One control member, trigger 194, is located on the underside of the housing. Trigger 194 is pressed to place the manipulator in a mode in which the manipulator performs semi-automatic advancement of instrument 160. Two additional control members, buttons 193 and 195, are located on the top surface of housing 191. Buttons 193 and 195 adjust the rate at which manipulator 50 advances the instrument when in semi-automatic mode. One button (button 193) is pressed to slow the rate at which the semi-automatic instrument advances. Button 195 is pressed to increase the rate at which the semi-automatic advancement of the instrument is performed. The speed at which the instrument advances semi-automatically is referred to as the feed rate of the instrument. Ergonomically, pendant 190 is designed so that the practitioner can press trigger 194 with the thumb and finger of one hand while pressing button 193 or button 195.
[0114] The pendant 190 includes additional control components (not shown). These components allow the practitioner to input commands and data into the surgical navigation system 210. A cable 197 connects the pendant 190 to the cart 52.
[0115] Reference now Figure 1 , 11 13D depicts a surgical navigation system 210 for use with the manipulator 50 of the present invention. The surgical navigation system 210 includes a tracker, tracker 212, which is securely attached to the patient 600. Typically, the tracker 212 is securely attached to a bone segment adjacent to the location of tissue to which the instrument energy applicator 184 is to be applied.
[0116] like Figure 1 As shown, a second tracker, tracker 214, is securely attached to end effector 110. Because the instrument positioned by manipulator 50 is securely attached to the end effector, tracker 214 is sometimes referred to as a tool tracker.
[0117] The localizer 216 receives signals from the trackers 212 and 214, or transmits signals to the trackers 212 and 214. If the localizer 216 receives light signals from the trackers 212 and 214, the localizer can be referred to as a camera. The surgical navigation system also includes a navigation processor 218. If the localizer 216 receives signals from the trackers 212 and 214, the localizer outputs signals to the processor 218 based on the position and orientation of the tracker relative to the localizer (the relationship between the localizer and the processor 218 is not shown). If the trackers 212 and 214 receive signals from the localizer 216, the tracker outputs signals to the processor 218 based on the position and orientation of the tracker relative to the localizer. Based on the received signals, the navigation processor 218 generates data representing the relative position and orientation of the trackers 212 and 214 relative to the localizer 216. In certain forms of the invention, the surgical navigation system 210 may include a tracker, sensor system, locator and / or computer system as disclosed in U.S. Patent No. 7,725,162 to Malackowski et al., entitled “Surgery System,” issued on May 25, 2010, which is incorporated herein by reference.
[0118] As described below, prior to commencing the procedure, additional data is loaded into the navigation processor 218. Based on the position and orientation of the trackers 212 and 214 and the previously loaded data, the navigation processor 218 determines the position of the distal end of the instrument energy applicator 184 relative to the tissue to which the energy applicator 184 is applied and the orientation of the instrument relative to the tissue to which the energy applicator 184 is applied. The navigation processor 218 communicates this data to the manipulator controller 124.
[0119] The navigation processor 218 also generates image signals that indicate the relative position of the instrument energy applicator 184 relative to the surgical site. These image signals are applied to an interface 220 that is also part of the surgical navigation system 210. Based on these signals, the interface 220 generates images that allow the practitioner to observe the relative position of the instrument energy applicator 184 relative to the surgical site. The interface 220 includes a touch screen or other input / output device that allows commands to be entered.
[0120] The manipulator controller 124 and the navigation processor 218 cooperate to position the end effector 110 so that the energy applicator 184 is properly positioned at the site where surgery is to be performed on the patient 600. As part of this positioning, the manipulator controller 124 does not position the energy applicator 184 outside of defined boundaries. To perform this process, the controller 124 and the processor 218 work together to record the poses of multiple different system components and the patient 600. The pose of each component can be considered to be tracked relative to a world coordinate system. The world coordinate system has an origin and an orientation (i.e., a set of X-axis, Y-axis, and Z-axis), and the origin and orientation are static for the surgery being performed. The coordinate system of the manipulator 50 is the world coordinate system, MNPL, as shown in FIG. Fig.12 In one form of the invention, the origin of the manipulator coordinate system MNPL is a point along an axis passing through the shoulder 69 associated with the upper arm 70. This point is the intersection of the axis about which the shoulder 69 rotates and the axis about which the arm links 74 and 76 rotate. Fig.12 In order to distinguish between the structure of the manipulator upper arm 70 and the manipulator coordinate system MNPL, the coordinate system is shown with a dotted line.
[0121] A second static coordinate system relevant to the present invention is the coordinate system of the locator 216, LCLZ.
[0122] Each tracked component has its own coordinate system, which is separate from the coordinate system MNPL and the coordinate system LCLZ. Each of these coordinate systems has an origin, which can be identified as a point relative to the origin of the manipulator coordinate system MNPL. A vector defines the position of the origin of each of these coordinate systems relative to another coordinate system in the other coordinate systems. Thus, the position of a coordinate system should be understood as the position of the origin of the coordinate system. Each of these coordinate systems has an orientation, which is generally different from the orientation of the manipulator coordinate system MNPL. The orientation of a coordinate system can be considered to be the angular position of the X-axis, Y-axis and Z-axis of the coordinate system relative to the corresponding axes of the manipulator coordinate system MNPL. The rotation matrix describes the orientation of one coordinate system relative to another. The rotation matrix consists of the unit vectors of the axes of one coordinate system expressed in another coordinate system. The position vector and the rotation matrix that define the relationship of one coordinate system relative to another coordinate system together form a homogeneous transformation matrix. Symbols is the notation for the homogeneous transformation matrix that identifies the position and orientation of coordinate system i relative to coordinate system i-1.
[0123] The two components of the system that have their own coordinate systems are the bone tracker 212 and the tool tracker 214. Fig.12In , these coordinate systems are represented as the skeleton tracker coordinate system BTRK and the tool tracker coordinate system TLTR respectively.
[0124] The navigation system 210 monitors the position of the patient 600 by monitoring the position of the skeletal tracker 212, which is securely attached to the bones of the patient 600. The patient's coordinate system is considered to be the skeletal coordinate system BONE, the coordinate system of the bones to which the skeletal tracker 212 is securely attached. Before the operation is started, pre-operative images of the location of the site where the operation is to be performed on the patient are generated. These images can be based on an MRI scan, a radiological scan, or a computed tomography (CT) scan of the surgical site. These images are mapped into the skeletal coordinate system BONE using methods that do not form part of the present invention. These images are fixed in the skeletal coordinate system BONE.
[0125] During the initial stages of the operation, the bone tracker 212 is securely attached to the patient's bone. Using processing steps that are not part of the present invention, the pose of the coordinate system BONE is mapped into the coordinate system BTRK. Given the fixed relationship between the bone and the bone tracker 212, the pose of the coordinate system BONE remains fixed relative to the coordinate system BTRK throughout the operation. The pose description data is stored in a memory integral to the manipulator controller 124 and the navigation processor 218.
[0126] In addition to coordinate system MNPL, there are additional coordinate systems associated with manipulator 50. End effector 110 has its own coordinate system, coordinate system EFCT. There is also a coordinate system associated with the virtual model of instrument 160. The origin of this coordinate system is at the center of mass of the virtual rigid body. Given the origin of this coordinate system, the coordinate system is referred to as coordinate system CMVB. The center of the Z axis of the instrument coordinate system CMVB is on the longitudinal axis extending through the instrument 160 and energy applicator 184. The energy applicator 184 has its own coordinate system, system EAPP. The origin of coordinate system EAPP is the distal end tip of the energy applicator 184. The Z axis of coordinate system EAPP of the energy applicator 184 is aligned with the longitudinal axis of the energy applicator 184. The Z axis extends outward away from the distal end tip of the energy applicator 184. This is why in Fig.12 The Z axis of the central coordinate system EAPP is shown as being oriented generally along the negative direction of the Z axes of the other coordinate systems.An additional coordinate system associated with the manipulator 50 is the coordinate system of the tool tracker 214 described previously, system TLTR.
[0127] exist Fig.12 Some minor coordinate systems are not shown in FIG. As described below, these coordinate systems are only occasionally referenced during operation of the manipulator. Fig.12It is not shown in order to reduce the complexity of the figure.
[0128] It should be understood that when the components of the present invention are assembled for use, the postures of the coordinate system EFCT, the virtual rigid body coordinate system CMVB, the energy applicator coordinate system EAPP, and the tool tracker coordinate system TLTR are fixed relative to each other. Therefore, when the components of the present invention are assembled, the postures of these coordinate systems relative to each other are determined. These coordinate system and posture data are stored in a memory that is integral to the end effector 110, the coupling assembly 111, the instrument 160, or the energy applicator 184. In some forms of the present invention, these data are stored in a memory that is integrated into the manipulator controller 124.
[0129] III. Software
[0130] Figures 13A to 13E The basic software modules executed by the manipulator controller 124 and the navigation processor 218 are shown. Figures 13A to 13E Also shown is how the software modules interact with the hardware to actuate the manipulators to displace the surgical instrument 160 .
[0131] Fig.13A Certain software modules running on the navigation processor 218 are shown. One of these modules is a boundary generator (BDNRYGNRTR) 232. The boundary generator 232 is a software module that generates a mapping that defines one or more boundaries between tissue to which the instrument energy applicator 184 should be applied and tissue to which the energy applicator 184 should not be applied. This boundary is typically generated when the energy applicator 184 is used to remove a volume of tissue. These types of energy applicators include, but are not limited to: a burr; a drill bit; a saw blade; an ultrasonic vibrating tip; an electrode tip; an RF electrode; a cauterizing and ablating tip; and a light emitting tip.
[0132] The inputs into the boundary generator 232 include pre-operative images (PRE-OPIMGS) of the site where the surgery is to be performed. If the manipulator is used to selectively remove tissue so that the patient can be fitted with an implant, then the second input into the boundary generator 232 is a drawing of the shape of the implant. The initial form of this drawing can come from an implant database (IMPNTDB). This is because the shape of the implant defines the boundaries of the tissue that should be removed to accommodate the implant. This relationship is particularly accurate in the case where the implant is an orthopedic implant that is to be fitted to the patient's bone.
[0133] The third input into the boundary generator 232 is the surgeon's settings (SRGNSTNGS). These settings include settings by the practitioner indicating to which tissue the energy applicator 184 should be applied. If the energy applicator 184 is used to remove tissue, then the settings indicate the boundary between the tissue to be removed and the tissue that remains after the energy applicator 184 is applied. If the manipulator 50 is used to assist in the assembly of a plastic surgery implant, then these settings define where the implant should be positioned on the tissue. These settings can be entered prior to surgery using a data processing unit. Alternatively, these settings can be entered via an input / output unit that is associated with a component of the system, such as the navigation interface 220.
[0134] Based on the above input data and instructions, the boundary generator 232 generates a drawing that defines the boundary of the instrument energy applicator 184.
[0135] In implementation, before starting the operation, the initial form of the drawing can be set by a practitioner at the surgical site. At the start of the operation, the data that more accurately defines the actual assembly of the implant into the patient's body is loaded into the boundary generator 232. These data can come from a storage device associated with the implant, such as a memory stick or an RFID tag. For ease of understanding the present invention, these data can be considered as a component of the implant database data supplied to the boundary generator 232. These data are based on the measured values after the manufacture of the specific implant. These data provide the shape definition of the specific implant, which may be slightly different from the inventory definition of the implant shape that can be obtained before due to manufacturing changes. Based on the implant specific data, the boundary generator 232 generates the final definition of the boundary between the cutting guide, the tissue to be removed and the tissue that should be retained in place. Implants that can be implanted into a patient include those disclosed in U.S. Patent Application No. 13 / 530,927, filed on June 22, 2012, entitled "Prosthetic Implant and Method of Implantation," which is incorporated herein by reference. Thus, the implant disclosed in that patent application can be used to define a cutting guide and then implanted into a patient after an appropriate amount of material (e.g., bone) has been removed. Other implants are also contemplated.
[0136] In one form of the invention, the boundary generator 232 generates the boundary between the tissue to be cut away and the tissue to be left in place as a set of continuously defined surface areas. In a more specific form of the invention, these surface areas are polygonal. More specifically, these surface areas are triangular. The corners of each polygon are defined by points in the bone coordinate system BONE. In Fig.15AIn the present invention, surface 242 is the boundary between the location of the tissue to be removed and the location of the tissue to be retained in place. Sometimes, this boundary is called a mesh. A separate area segment that defines a portion of a boundary or mesh is called a patch.
[0137] Tool path generator (Tool Path GNRTR) 234 is a second software module that runs on navigation processor 218. Tool path generator 234 receives the same general inputs as applied to boundary generator 232. Based on these inputs, tool path generator 234 generates tool path 248, such as Fig.15A and 15B shown. Fig.15A A bone 202 is shown, a portion of which will be removed to receive an implant. Surface 242 is a boundary beyond which energy applicator 184 should not be applied. Thus, surface 242 is also the outline of the bone 202 that remains after the removal procedure, to which the implant will be mounted. Dashed line 244 represents the perimeter of the bone that will be removed using manipulator 50. Fig.15A , the tool path is represented by back and forth lines 248. The smoothness and quality of the final surface depends in part on the relative positioning of the back and forth lines 248. More specifically, the closer each back and forth passing line is, the more accurate and smooth the final surface will be.
[0138] In addition, the configuration of the tool path 248 also contributes to the quality of the final surface. For example, in one path configuration, the perimeter of the surface boundary is cut first, with the tool path moving inward toward the center. In this configuration, the removed material is not allowed to flow out. In another configuration, the tool path begins at the center of the bone segment to be removed and proceeds in an outward direction. In this manner, the removed material has a path to flow out and does not interfere with the removal process.
[0139] exist Fig.15A , the tool path 248 is shown as being only within the perimeter of the removed tissue. The location of the tool path 248 varies with the geometry of the distal end of the energy applicator 184. For example, the center of the distal end of the energy applicator 184 can be the origin of the coordinate system EAPP. In this embodiment of the invention, when generating the tool path, the tool path generator 232 takes into account the fact that the energy applicator 184 actually extends beyond the origin of the coordinate system EAPP. If the energy applicator 184 is a spherical drilling cone, this means that the tool path segment closest to the boundary 242 is typically spaced apart from the boundary by a distance at least equal to the radius of the drilling cone head.
[0140] The tool path 248 is not drawn in a single plane. Fig. 15B, tool path 248 is shown as including multiple layers, with a top-most segment shown as a set of solid lines and dashed lines representing segments located below the top segment.
[0141] like Fig. 15C As shown, the tool path 248 includes multiple path segments. Each segment includes a set of points along which the origin of the coordinate system EAPP should travel. As shown in the figure, the individual segments 256, 262 and 266 can be straight or curved. Each segment 256, 262 and 266 has an origin and an end point. Point 258 is the origin of the tool path 248 and the origin of segment 256. The end point of one segment will be the origin of the adjacent segment. Thus, point 260 is the end point of segment 256 and the origin of segment 262. Point 264 is the end point of segment 262 and the origin of segment 266. Point 268 is the end point of segment 266. Point 268 can also be the end point of the tool path 248 and the origin of another tool path not shown. In Fig. 15C , segments 266 are shown as a sequence of dashed lines that decrease in size from the origin to the end point. The path is schematically shown to have an X component and a Y component as well as an inlet and outlet. Fig. 15C The Z component of the page.
[0142] The tool path generator 234 receives input of a tissue image, data defining the shape of the boundary, and the surgeon's settings regarding the location of the boundary. For plastic surgery, the boundary is typically the shape of the implant; the surgeon's settings are typically the location of the implant. Based on these data, the tool path generator 234 defines a tool path 248. Each tool path segment 256, 262, and 266 is defined as a vector or curve extending between points present in the bone coordinate system BONE. It should be understood that the path segments are defined in a three-dimensional manner. This is because the instrument energy applicator 184 is not only applied to the tissue in a single plane. The energy applicator 184 also moves up or down to contact tissue in a plane above or below the plane in which it is currently located.
[0143] Once the operation begins, the tool path generator 234 receives additional data. These data are data from the material removal recorder 275 described below, which identifies the section of tissue to which the energy applicator 184 has been applied. Based on these data, the tool path generator 234 modifies the path segment of the tool path. These modifications are performed to avoid generating path segments that cause the energy applicator 184 to pass through the void space left due to previous tissue removal. Modifications or modifications to the cutting path can include high-speed jumps, in which the energy applicator 184 jumps over known gaps in the removed tissue volume (also referred to as a sub-volume) at high speed. Modifications to the cutting path can also include a circuitous path extending around an area where bone has been previously removed. In addition, modifications to the cutting path can also include a sub-volume area that is marked as completed, and if the pattern is used to complete any portion of the remaining bone removal, the sub-volume area will not be part of any autonomous cutting path.
[0144] The positioning actuator 270 is a third software module and can be considered as part of the surgical navigation system 210. In some forms of the invention, the positioning actuator 270 runs on the manipulator controller 124. Components of the positioning actuator 270 can also run on the navigation processor 218. The positioning actuator 270 receives as input the output of the signal localizer 216, which varies with the signals received from the trackers 212 and 214. Based on these signals received from the bone tracker 212, the positioning actuator 270 determines the pose of the bone coordinate system BONE relative to the localizer coordinate system LCLZ. Based on the signals received from the tool tracker 214, the positioning actuator 270 determines the pose of the tool tracker coordinate system TLTR relative to the localizer coordinate system LCLZ.
[0145] The positioning actuator 270 transmits a signal representing the pose of the trackers 212 and 214 to a coordinate transformer 272. The coordinate transformer 272 is a navigation system software module that runs on the navigation processor 218. The coordinate transformer 272 is a software module that references data that defines the relationship between the pre-operative image of the patient and the patient tracker 212. The coordinate transformer 272 also stores data indicating the pose of the instrument energy applicator 184 relative to the tool tracker 214.
[0146] The navigation processor 218 includes a removed material register 275. The removed material register 275 includes a plot of the volume of tissue to which the energy applicator 184 will be applied. Typically, this is a plot of the volume of tissue to be removed. Fig.13A, the drawing is shown based on pre-operative images of the patient. Other data that goes into maintaining the drawing may come from data describing the shape of the implant and the surgeon's personal settings, the relationship of which is not shown. Other data sources for defining the volume, including mapping data, are obtained at the beginning of the operation. These data can be obtained by applying indicators to landmarks on the tissue to which the energy applicator 184 is to be applied.
[0147] The recorder 275 also collects data indicating the location on the patient to which the energy applicator 184 is applied. In one embodiment of the invention, these data are data describing the location to which the end effector and, associated with the energy applicator 184, has advanced. These data can be based on data from the manipulator's tracking arms 68 and 70 described below. These data can be based on controlled or measured posture data. Alternatively, these data can be generated based on data describing the movement of a tool tracker. The recorder 275 transforms these data about the movement of the end effector and tool tracker into data defining where the energy applicator 184 has moved relative to the bone 202. The recorder 275 stores these data.
[0148] Based on these data, the recorder 275 generates image data suitable for presentation on a display indicating the extent to which the energy applicator 184 has been applied to the tissue. These image data can be presented on the navigation interface 220. The images presented by the recorder can indicate the surface segments of the tissue to which the energy applicator 184 has not been applied and the surface segments of the tissue to which the energy applicator 184 has been applied. The images presented by the recorder also indicate the tissue segments to which the energy applicator 184 does not have to be applied; the tissue outside the boundary area. The tissue includes tissue beyond the boundary exposed by tissue removal.
[0149] The recorder 275 provides data indicating which tissue segments the energy applicator 184 has and has not been applied to the tool path generator 234 .
[0150] As described above, the pose of coordinate system EAPP is generally fixed relative to coordinate system TLTR. The position of patient tissue and the representation of tissue is generally fixed relative to the skeleton tracker coordinate system BTRK.
[0151] During surgery, the coordinate transformer 272 receives data indicating the relative posture of the trackers 212 and 214 relative to the locator 216. Based on this data and previously loaded data, the coordinate transformer 272 generates data indicating the relative position and orientation of the origin of the coordinate system EAPP and the bone tracker coordinate system BTRK relative to the manipulator coordinate system MNPL. Based on this data, the coordinate transformer 272 generates data indicating the position and orientation of the distal end of the energy applicator 184 relative to the tissue to which the instrument is applied. Image signals representing this data are transmitted to the interface 220 so that the surgeon can observe this information.
[0152] Two additional groups of software modules run on the manipulator controller 124. One group of software modules performs behavioral control. Behavior control is the process of generating instructions that indicate the next controlled pose for the energy applicator 184.
[0153] The second group of software modules performs so-called motion control. One aspect of motion control is the control of the manipulator 50. In the motion control process discussed below, the motion control process receives data defining the next controlled posture of the energy applicator 184 from the behavior control process. Based on these data, the motion control process determines the next position of the joint angle of the manipulator 50. The second aspect of motion control is to provide feedback to the behavior control module based on the constraints of the manipulator. These constraints include the joint angle limits of the manipulator and the goal of ensuring that multiple joints will not move closer to each other than the minimum distance. Another component of this feedback control is to ensure that the energy applicator 184 remains within the defined workspace boundaries. The movement of the energy applicator 184 is limited to the area within the workspace boundaries to ensure that the dexterity of the instrument 160 is not impaired. The motion control module also monitors the state of the manipulator 50 to detect whether an external force / torque is applied to the manipulator 50 or the instrument 160 or whether an object contacts the manipulator 50 or the instrument 160.
[0154] The feedback data generated by the motion control process is applied to the behavior control process. Based on this data, the behavior control process adjusts the manipulator motion of the instrument and the energy applicator 184. The behavior control processor performs this adjustment by using this data as a variable to establish the next controlled posture for the energy applicator 184. Once this next controlled posture is established, the motion control process causes the manipulator 50 to advance the energy applicator 184 toward that position.
[0155] Fig. 13BThe software modules that form the behavioral control process are shown. One of these modules is a tool path force calculator (Tool Path FRCCLCLTR) 278. The tool path force calculator 278 calculates two variables. The first of these variables is the force and torque that, when applied to the virtual rigid body, causes the distal end of the energy applicator 184 to advance. The second of these variables is the force and torque that is applied to the virtual rigid body to maintain the orientation of the instrument 160 within an acceptable orientation range. The tool path force calculator 278 includes multiple sub-modules.
[0156] One of the modules forming the tool path force calculator 278 is a feed rate calculator 284, such as Fig.16A As shown. The feed rate calculator 284 determines the speed, called the instrument feed rate, at which the distal end of the energy applicator 184 should move when traveling along a separate path segment. The primary input into the feed rate calculator 284 is a defined feed rate (DEFINEDF.R.). In its most basic form, the defined feed rate is a scalar value. In practice, the manipulator controller 124 is typically provided with a plurality of defined feed rates. A specific defined feed rate is assigned to each path segment. This feed rate assignment can be performed before surgery. The feed rate can then be adjusted at the beginning of surgery or during surgery. Two or more adjacent path segments can be assigned the same defined feed rate. These feed rates are generated based on variables such as: the shape of the void space; the type of energy applicator 184; the health of the patient; the characteristics of the tissue to which the energy applicator 184 is applied; and the geometry of the path segment. In practice, the defined feed rate is typically between 5 and 400 mm / second.
[0157] In implementation, the defined feed rate is generated by the tool path generator 234, the relationship of which is not shown.
[0158] The feed rate calculator 284 adjusts the defined feed rate to produce the instrument feed rate. In one form of the invention, this adjustment is performed by multiplying the defined feed rate by a plurality of coefficients. Each coefficient is approximately between 0 and 1.0. The value of the coefficient may exceed 1.0. Each of these coefficients varies with variables also applied to the feed rate calculator 284. The first of these variables is the user adjustment (USERADJUST) of the feed rate. This is a feed rate adjustment that the practitioner performs in real time while the surgery is ongoing. The practitioner adjusts the feed rate by pressing the pendant buttons 193 and 195. The feed rate calculator 284 outputs a coefficient that is a function of the command entered by the practitioner to increase or decrease the instrument feed rate.
[0159] The second variable used to selectively plot a defined feed rate is the force and torque (SNSDF / T) exposed to the energy applicator 184. The energy applicator 184 is rigidly attached to the instrument 160, and the instrument is rigidly attached to the end effector 110. Therefore, the signal output by the force / torque sensor 108 of the end effector is a signal representing the force and torque exposed to the energy applicator 184. The feed rate calculator 284 sets the instrument rate based on the following principle: there is a relationship between the magnitude of the force / torque applied by the manipulator to the instrument and the energy applicator 184 and the instrument advancement rate. In general, a goal of modern medical practice is to minimize the heating of tissue that is not removed. One reason for this goal is to minimize the accompanying damage that may be caused to the tissue by such unnecessary heating. Therefore, the manipulator 50 is configured to slow the advancement of the instrument along the path segment when it is determined that a considerable force and / or torque is applied to the instrument or energy applicator 184.
[0160] One example where this adjustment of the instrument feed rate is useful is when the energy applicator 184 is traveling through compact bone and cancellous bone across a path segment. Compact bone (external bone) is harder. Cancellous bone (internal bone) is more porous and less resistant to removal than compact bone. Therefore, if the energy applicator 184 is moving across both types of bone at a constant speed, a greater force / torque will need to be applied to move the applicator across the compact bone than the cancellous bone. This means that, without adjusting the instrument speed, the compact bone will sustain potentially more damage causing heating than the adjacent cancellous bone segments. This feature of the manipulator minimizes the potential for undesired heating by slowing down when the force / torque sensor 108 provides a signal indicating an increase in the amount of force / torque required to advance the instrument.
[0161] Once the energy applicator 184 moves from cutting compact bone to cutting cancellous bone, the force / torque required to advance the instrument is reduced. In this case, the rate at which the instrument advances can be accelerated without significantly increasing the degree to which the bone to which the energy applicator 184 is applied is heated. Therefore, the feed rate calculator 284 increases the calculated rate at which the instrument advances. This reduces the amount of time it takes to perform surgery on a patient. This is desirable because another goal of modern medical practice is to minimize the time it takes to perform surgery on a patient. One reason for minimizing time is that it reduces the amount of time that tissue in the patient's body is exposed and subject to infection. In addition, performing surgery as quickly as possible reduces the possibility of surgeon fatigue and reduces the amount of time a patient must remain under anesthesia.
[0162] Feed rate calculator 284 determines the force / torque adjustment factor based on one, two, or three of the following magnitudes: (1) the magnitude of a six component vector including individual force and torque components; (2) the magnitude of a three component vector including individual force components; and (3) the magnitude of a vector including any combination of individual force and / or torque components. Alternatively, the factor is based on one or more of the maximum force or torque components. Based on one or more of these variables, feed rate calculator 284 determines the force / torque adjustment factor with reference to data in an associated lookup table 286.
[0163] In addition to adjusting the instrument feed rate, the speed of the energy applicator 184 can also be varied. More specifically, where the energy applicator 184 is a burr, the speed of the cutting teeth of the burr can be adjusted and optimized to improve the accuracy of tissue removal and minimize heating at the tissue. The optimized speed of the burr cutting teeth is a factor of the cutting rotation speed and cutting diameter that are optimized based on the tooth geometry and the type of material being removed.
[0164] The third variable is the curvature of the path segment (PATHCRVTR), and the instrument feed rate is adjusted based on the third variable. This adjustment is performed to ensure that when the instrument moves along a curved path of travel, the instrument does not move at a high speed so that the momentum causes the energy applicator 184 to move away from the path of travel. In general, when the path of travel is linear or has a small curvature, the defined feed rate is not adjusted based on the curvature. When the feed rate calculator 284 receives an indication that the instrument energy applicator 184 is traveling along a path segment with a large curvature or a small radius, the calculator adjusts the defined feed rate downward based on this variable to produce the instrument feed rate.
[0165] The feed rate calculator 284 is derived from the curvature calculator 291 ( Fig. 16B) receives an indication of the curvature of the path (PATHCRVTR variable) along which the energy applicator 184 travels. As described below, the curvature calculator 291 is another submodule component of the tool path force calculator 278. Based on this input variable, the feed rate calculator 284 references one of the lookup tables 286 to determine a coefficient reflecting the degree to which the defined feed rate should be adjusted. In general, when the path of travel is linear or has a curvature close to zero, the defined feed rate is not adjusted based on the curvature. The coefficient is 1.0 or close to 1.0. When the feed rate calculator 284 receives an indication that the instrument energy applicator 184 is traveling along a path segment with a larger curvature, the calculator adjusts the defined feed rate downward based on this variable to produce the instrument feed rate. The compensation coefficient decreases from 1. In certain forms of the invention, if the curvature is 0.05 mm-1 or less, the feed rate calculator 284 does not reduce the instrument feed rate based on the curvature of the segment along which the energy applicator 184 advances.
[0166] The fourth variable is the instrument power (INSTPOWER), at which the feed rate is adjusted to produce the instrument feed rate. This variable is the amount of power that the instrument applies to the patient via the energy applicator 184. The instrument power is used as an input variable for adjusting the instrument feed rate because, generally, as the power applied by the instrument to the tissue increases, the degree to which the tissue is heated by the power also increases. As described above, it is desirable to minimize the degree to which the tissue is subjected to heating that could cause harm. There may also be situations where a high power output of the instrument indicates that the manipulator has entered a state where the performance of the energy applicator 184 would have been reduced if the instrument feed rate had not been reduced. For example, if a large amount of power needs to be applied to the burr, then such an increase in power may indicate that the burr may have entered a state where it is difficult to remove the material that should be removed. In order to ensure that the burr performs as desired, it is then desirable to reduce the rate of advancement of the burr. This can help to increase the accuracy with which material is removed. Improving the accuracy of material removal enhances the surface finish and clarity of the tissue that remains after the burr is applied.
[0167] Thus, when there is an indication of an increase in power being applied by the instrument 160, the feed rate calculator 284 outputs a decreased instrument feed rate.
[0168] In configurations where the instrument 160 of the present invention is a motorized tool, the power variable may be the amount of torque output by the tool's motor.
[0169] In general, there is a proportional relationship between the current applied to the tool and the torque output by the tool. Therefore, the measurement of the current absorbed by the tool is used as the instrument power variable. An instrument power signal representing this variable is generated by the tool controller 132 and applied to the manipulator controller 124. More specifically, the circuitry within the instrument controller 132 that monitors the current absorbed by the instrument outputs a signal representing the current absorbed by the instrument. This signal is the root signal at which the analog or digital INSTPOWER signal applied to the feed rate calculator 284 is generated.
[0170] Based on the INSTPOWER signal and with reference to one of the lookup tables 286 , the feed rate calculator 284 determines a coefficient indicating the extent to which the defined feed rate should be plotted against the instrument power to determine the instrument feed rate.
[0171] The fifth variable is tissue temperature (TISSUETEMP), which is used as a factor for adjusting the defined feed rate to produce the instrument feed rate. This is due to the aforementioned goal of modern medical practice, namely to minimize the extent to which the patient's unresected tissue is heated. Temperature sensor 97 provides an indication of tissue temperature (TISSUETEMP). In the figure, temperature sensor 97 is only Fig.16A 184 . Typically, a sensor 97 is mounted to the instrument 160. Again, the signal output by the sensor 97 may represent the temperature of the tissue or the temperature of the energy applicator 184. Typically, the signal output by the temperature sensor 97 is transmitted to the manipulator controller 124 via the tool controller 132. In addition to the temperature of the uncut tissue, another factor for adjusting the defined feed rate may include the temperature of the debris removed by the energy applicator 184. The removed debris and material are generally referred to as "slurry". The temperature of the slurry may be measured in any suitable manner, including with the temperature sensor 97.
[0172] The feed rate calculator 284 determines an appropriate tissue temperature feed rate adjustment factor based on the temperature represented by the TISSUETEMP signal and with reference to one of the lookup tables 286. If the TISSUETEMP signal indicates that the tissue temperature is within an acceptable range, then the factor may be 1.0 or close to 1.0. Alternatively, if the TISSUETEMP signal indicates that the temperature of the tissue or the energy applicator 184 is approaching or exceeding a level that may cause significant damage to the tissue, then the compensation factor may be decreased from 1.
[0173] The sixth variable is the calculated force (CMPTDFORCE) that the feed rate calculator 284 employs to generate the instrument feed rate. As described below, the calculated force is the force applied to the virtual rigid body. In response to the force, the motion control process advances the energy applicator 184 along the tool path. The calculated force is calculated by another module in the behavior control process software module. The calculated force (which may include a torque component) is used as an input variable from which the controlled position of the end effector is determined.
[0174] The feed rate calculator 284 generates the instrument feed rate such that there is an inverse relationship between the calculated force and the instrument feed rate. In the event that the calculated force is increased to achieve the desired advancement of the energy applicator 184, the feed rate calculator 284 reduces the instrument feed rate. This reduction in the instrument feed rate reduces the likelihood that the manipulator will advance the energy applicator 184 at a speed above that which adversely affects the accuracy with which the energy applicator 184 is applied to tissue.
[0175] In some forms of the invention, the feed rate calculator determines a coefficient based on the calculated force magnitude and reference to one of the lookup tables 286. The coefficient represents the degree to which the defined feed rate should be plotted as a function of the calculated force magnitude.
[0176] The feed rate calculator 284 multiplies the defined feed rate by the six coefficients described above. The product of this process is the instrument feed rate. This is the rate at which the energy applicator 184 should advance along the current path segment.
[0177] An additional input into the feed rate calculator 284 is a signal asserted from a force overrider 375 described below, which is also part of the tool path force calculator 278. In response to asserting the signal from the force overrider 375, the feed rate calculator 284 outputs a zero speed instrument feed rate. Typically, the feed rate calculator 284 ramps the instrument down to a zero speed feed rate. Once the force overrider 375 stops asserting signals to the feed rate calculator 284, the feed rate calculator 284 returns to outputting a non-zero speed instrument feed rate based on other command inputs from the practitioner.
[0178] like Fig. 16BAs shown, the path inserter (PATHINTRPLTR) 288 is another submodule component of the tool path force calculator 278. The path inserter 288 determines the target positions of the coordinate system EAPP. The posture of the distal end of the instrument energy applicator 184 should be understood to be fixed relative to the coordinate system EAPP. These target positions are some points along which the distal end of the energy applicator 184 should move to perform the desired task. The inputs into the path inserter include: data defining the origin and end points of the path segment; data indicating whether the segment is straight or curved, and if it is curved, the characteristics of the curvature. Another input into the path inserter 288 is the instrument feed rate from the feed rate calculator 284. This is the rate at which the instrument should move along the path segment as determined by the feed rate calculator 284.
[0179] Based on the above input variables, the path inserter 288 determines the target position of the distal end of the energy applicator 184 according to the following steps:
[0180] 1) Assume that the origin of the coordinate system EAPP is at the initial position. The initial position is the position along the path segment that the energy applicator 184 should travel. If the energy applicator 184 is at the starting point of the segment, then this point is the initial position of the coordinate system EAPP. Both the initial position and the target position are points in the bone coordinate system BONE.
[0181] 2) Based on the instrument feed rate, calculate the distance the energy applicator 184 should travel along the segment in a single time frame. In some forms of the invention, this time frame is 0.1 to 2 milliseconds.
[0182] 3) Based on the initial position, the length of the calculated distance, and the position of the segment endpoint, the path inserter 288 generates data defining the target position. Another variable used to determine the target position is data from the tool path generator describing the characteristics of the path segment: straight or curved; and, if curved, the radius of curvature.
[0183] 4) Repeat steps 1 to 3 until it is determined that the coordinate system EAPP has reached the end of the path segment. After calculation of the first target position spaced from the segment origin, the target position calculated in each frame is used as the initial position as the basis for calculating the target position of the next frame.
[0184] 5) Once the target position is identical to the end position of the path segment, the interpolator 288 repeats steps 1 to 4 to generate a set of target positions located along the new segment.
[0185] During a single frame time period, the distance that the energy applicator 184 can travel may be greater than the distance to the end position of the current segment. If the path interpolator 288 determines that the energy applicator 184 will be in this state, the interpolator generates data indicating where the energy applicator 184 should be located along the next path segment at the end of the frame for a time point starting when it is determined that the energy applicator 184 will be at the end of the current path segment.
[0186] The target position is the output from the path inserter 288 to a series of cascaded running average filters 290 (RNINGAVGFILTER), which are also part of the tool path force calculator 278. The running average filter 290 averages the individual target positions to produce a filtered target position. The specific running average filter used in the present invention is a finite impulse response filter. The running average filter generates a filtered target position that varies with time, the length of the filter. This time period is typically between 5 and 50 milliseconds. Therefore, the resulting filtered distance is a function of the filter time period and the instrument feed rate.
[0187] Cascaded running average filters are used in this process to ensure that the higher order derivatives of the target position are continuous. In some forms of the invention, three cascaded filters are used. This allows the resulting filtered path to have continuous derivatives all the way to the jerk. This filtering essentially ensures that the actuator is not driven beyond its ability to advance the energy applicator 184 along the tool path 248.
[0188] refer to Fig.17 Filtering performed by these filters is shown. Here, points 294 and 302 represent the initial and final target positions of the energy applicator 184 as it moves along path segment 297, respectively. Point 302 is also the initial position from which the energy applicator 184 moves as it travels along path segment 310. Path segment 297 is completely linear. During the running average process, the filter averages the positions of multiple points to be averaged along the path portion to determine the average position. Points 296 and 298 are two spaced apart target positions along path segment 297. If the target positions between points 296 and 298 form a straight line, and the distance between the points is greater than the distance traveled by the energy applicator 184 during the length of the filter, then the result of this running average forms a straight line. As with any filter, there is a time delay between the input at these positions and the output at the equivalent filtered output position.
[0189] During this running averaging process, it should be understood that in order to produce a filtered target position equivalent to point 296, data regarding the unfiltered target position after point 296 is the input variable into the filter.
[0190] Target position 302 is the origin of path segment 310. Path segment 310 is linear and angled away from path segment 297. Running average filter 290 ultimately produces a filtered target position from target position 299, a point on path segment 297, and target position 303, a point on path segment 310. The resulting average target position is represented by segment 314. These filtered target positions are based on the assumption that the distance between target positions 299 and 303 is greater than the distance traveled by energy applicator 184 during the length of the filter. Here, point 312 is positionally equivalent to point 299. Point 316 is positionally equivalent to point 303. Point 318 is equivalent to point 305. Filtered Target Positions This set of filtered target positions between points 312 and 316 defines a curve. The curve represents the average transition from target position defining segment 297 to target position defining segment 310. The set of target positions is linear from filtered target position 316 to filtered target position 318. This is because, during this portion of the averaging process, no points other than those along path segment 310 are inputs into the averaging formula.
[0191] Target location 320 is the end point of straight segment 310 and the origin of curved segment 330. Based on the positions of the points bounded by and including target location 320 and target location 332, and the points in the middle of curved segment 330, filter 290 generates another set of averaged target locations. These averaged target locations are represented by segments 340. Segment 340 extends between filtered target location 338 and filtered target location 342. Considering that target location 320 is the end point of linear path segment 310, the corresponding filtered target location, point 338, is slightly shifted from the actual position. In locations where the target location to be filtered defines a curve, the filtered form of these target locations generally defines a curve with a radius larger than the radius of the filtered points.
[0192] For certain surgeries, it is desirable to substantially minimize the difference between the filtered and unfiltered target positions. One such surgery is to form a hole in a bone. Another surgery is to precisely shape the bone to facilitate the precise seating of an implant. For these surgeries, the manipulator is set to reduce the defined rate applied to the feed calculator 284 (process not shown). This results in the generated filtered target positions defining a path segment that is substantially equivalent to the path segment defined by the unfiltered set of target positions.
[0193] The filtered target positions are applied to a curvature calculator 291. The curvature calculator 291 determines the curvature of the current filtered path based on data representing a plurality of spaced apart filtered target positions. The data representing the curvature is passed to the feed rate calculator 284 as the PATHCRVTR variable.
[0194] The filtered target positions are also passed to a target position coordinate transformer 354, which is also a submodule component of the tool path force calculator 278. The coordinate transformer 354 maps each filtered target position in the coordinate system BONE into the coordinate system MNPL. This filtered target position of the origin of the coordinate system EAPP is applied to the energy applicator force calculator 358, which is also a part of the tool path force calculator 278.
[0195] The second input into the calculator 358 represents the actual position of the coordinate system EAPP. In many embodiments of the present invention, the controlled position is used to represent the actual position. The controlled position is the position component of the controlled attitude. An advantage of using the controlled position to represent the actual position is that it is a leading indicator of the actual position. This feed transfer effect facilitates responsive control of the instrument movement. This promotes the movement of the energy applicator 184 to only minimally deviate from the tool path.
[0196] When the manipulator 50 is first activated, the initial controlled pose is determined by solving the forward dynamics of the end effector 110. This process should be understood to refer to determining the pose of the coordinate system CMVB as a function of the joint angles of the shoulders 67 and 69 and the arms 68 and 70. This pose is relative to the coordinate system MNPL. Because the origin of the coordinate system EAPP is fixed relative to the coordinate system CMVB, the forward dynamics solution of the virtual rigid body results in the first initial pose of the coordinate system EAPP also being determined in the coordinate system MNPL.
[0197] The energy applicator force calculator 358 determines a set of forces and torques to be applied to the virtual rigid body. In response to these forces and torques being applied to the virtual rigid body, the motion control process causes the manipulator 50 to advance the coordinate system EAPP along the tool path 248. The forces and torques applied to the virtual rigid body that result in setting the orientation of the instrument are not material for the calculations performed by the calculator 358.
[0198] After first determining the initial pose of the origin of the energy applicator coordinate system EAPP, the manipulator controller 124 assumes that at the end of each frame, the origin of the coordinate system EAPP moves to the controlled pose calculated at the beginning of the frame. This controlled pose is generated by the cutting guide 390 described below. The controlled position component of the controlled pose is provided by the cutting guide 390 to the energy applicator force calculator 358.
[0199] Thus, the two inputs into the energy applicator force calculator 358 are the controlled position of the coordinate system EAPP and the next target position of the target system. The latter position is the input from the target position coordinate system converter 354. These two positions are points in the coordinate system MNPL. The third input into the tool end force generator is the velocity of the coordinate system CMVB at the beginning of the frame, the velocity V 0 The following discussion calculates the speed V 0 The fourth input into the energy applicator force calculator 358 is the speed at which the energy applicator 184 should move as it advances along the path, speed V 1 . Speed V 1 is a vector based on the target position in the previous frame and the current target position. 1 is the velocity relative to the manipulator coordinate system MNPL. Therefore, the velocity V 1 Includes the effect of the motion of the bone coordinate system BONE relative to the manipulator coordinate system MNPL. 0 and V 1 It should be understood to include both linear and rotational components.
[0200] Energy applicator force calculator 358 calculates the force to move the origin of coordinate system EAPP from its current position to the filtered target position. In one form of the invention, calculator 358 determines the force by determining the impulse that needs to be applied to the virtual rigid body at the origin of coordinate system EAPP. The impulse I is the change in momentum applied to the object. Therefore, the most general form of impulse / momentum change I is calculated according to the following formula,
[0201] I= =m(v FNL -v INTL )(1)
[0202] Here, F is the force; m is the mass of the object to which the pulse is applied; vINTL is the initial velocity; and v FNL The purpose is to calculate the force that needs to be applied to the distal end tip of the energy applicator 184 (which is the origin of the coordinate system EAPP) in order for the applicator to advance to a velocity V 1 Formula (1) assumes that the velocity is the velocity at the center of mass of the object, the force is applied to the center of mass, and the velocity is the velocity at that point. Although the initial velocity V 0 is the initial velocity of the coordinate system CMVB and is known, but the final velocity V 1 is the speed of the energy applicator 184.
[0203] The force F is applied to the virtual rigid body. As mentioned above, the force F is not applied to the origin of the coordinate system CMVB; the force is applied to the origin of the coordinate system EAPP. Taking these factors into account, the impulse formula is rewritten as follows:
[0204] (2)
[0205] here, is the direction in which the pulse will be applied. Direction consists of two unit vectors. One of these unit vectors defines the direction along which the force acts. The second unit vector defines the direction about which the torque acts. Usually, only the force component needs to be calculated. To perform this calculation, the vector The torque component of is set to zero vector. It is along the direction The scalar force of . Jacobian It is along the direction The Jacobian matrix from the origin of coordinate system CMVB expressed in coordinate system CMVB to the origin of energy applicator coordinate system EAPP. Since the Jacobian determinant is Only mapped to the direction The amount, so is the non-square Jacobian. The matrix M is the mass / inertia of the virtual machine. Direction Calculated by the energy applicator force calculator 358. Direction The variables based on are the controlled position of the energy applicator 184 and the filtered target position. vector, formula (2) is reduced from six formulas and six unknowns to one formula with one unknown.
[0206] There are two additional factors that need to be considered. One factor is that the instrument and energy applicator 184 are modeled as rigid bodies, and the velocities are specified in a non-inertial coordinate system. Therefore, the body is subject to inertial forces. The effects of these inertial forces (including torque) must be simulated. These inertial forces are calculated according to the following formula:
[0207] (3)
[0208] here, It is the vector of inertia force and torque. is the speed of the coordinate system CMVB. Rotation speed is the rotation speed of the coordinate system CMVB. Inertia I is the virtual inertia tensor in the coordinate system CMVB. The two speeds and Expressed in coordinate system CMVB
[0209] The second additional factor is the environmental forces discussed below, the combined force , acting on the virtual rigid body. The components of environmental forces include joint limiting forces, interference limiting forces, workspace boundary forces, and damping forces. An additional component of environmental forces is the external force applied to the manipulator 50, the instrument 160, and the energy applicator 184. This external force includes the resistance of the tissue to which the energy applicator 184 is applied. Another component of the external force is the force applied by the practitioner on the instrument. The components of environmental forces are discussed in detail below .
[0210] Therefore, the force is calculated according to the following formula :
[0211] (4)
[0212] here, is the inertial force acting on the instrument and energy applicator 184. Force Received from the environmental force adder 379 discussed below and expressed in coordinate system CMVB. is equal to the integration period employed by integrator 386 discussed below.
[0213] In practice, if the energy applicator 184 is simply repositioned based on the calculation of the velocity vector, the position of the energy applicator 184 tends to drift away from the path segment along which the applicator should be advancing. This drift is due to factors such as rounding errors, machining precision, and inherent limitations associated with discrete time modeling. Drift can also occur due to microenvironmental disturbances near the instrument. To compensate for this drift, correction forces are added to the calculation of the forces applied to the virtual rigid body. The overall description of these forces is:
[0214]
[0215] distance is defined as the negative of the distance the energy applicator 184 has drifted from the path segment. In one embodiment of the invention, the distance is calculated by determining the negative of the distance between the actual position and the target position. In one embodiment of the present invention, the controlled position is used to represent the actual position of the energy applicator 184. The coefficient and C is the scaling factor. When the above conditions are added to equation (4), the final form of the formula for solving the force applied to the virtual rigid body at the origin of the coordinate system EAPP is:
[0216]
[0217] (5)
[0218] matrix is the identity matrix.
[0219] Therefore, the energy applicator force calculator 358 solves for the force , the force is in the direction Applied to the virtual rigid body at the origin of the coordinate system EAPP. In response to the force The presence of , the motion control process enables the manipulator 50 to advance the energy applicator 184 along the path segment at an appropriate speed. The force conversion module 362 converts the scalar into a force .force is the vector of forces and torques applied to the virtual rigid body at the origin of coordinate system CMVB to advance the energy applicator 184 at the desired velocity. These forces and torques are calculated according to the following formulas:
[0220] (6)
[0221] force is a vector consisting of three separate forces and three separate torques applied to the virtual rigid body at the origin of the coordinate system CMVB. It is expressed in coordinate system CMVB.
[0222] include The forces and torques are applied from the force transformation module 362 to the force adder 380. The force adder 380 is another behavior control module running on the manipulator controller 124, as described below.
[0223] The tool path force calculator 278 also includes an instrument orientation adjuster 368, such as Fig. 16CAs shown. The orientation regulator 368 determines the forces and torques that need to be applied to the virtual rigid body to ensure that when the manipulator 50 moves the instrument 160, the instrument maintains an acceptable orientation relative to the tissue to which the energy applicator 184 is applied. Instrument orientation regulation is desirable because, as described above, the energy applicator force calculator 358 generates data that defines the forces and torques applied to the virtual rigid body, which forces and torques cause the energy applicator 184 to advance when in semi-automatic mode. External forces and torques are also applied to the manipulator 50, the instrument, and the energy applicator 184. In response to these external forces, the manipulator 50 calculates additional forces and torques applied to the virtual rigid body. Any of these sets of forces and torques applied to the virtual rigid body can cause the manipulator 50 to position the instrument so that the instrument drifts significantly from an acceptable orientation range. If the instrument drifts from this orientation range, the efficiency of the energy applicator 184 may decrease. Additionally, due to this orientation drift, the instrument may move to a position where it may potentially abut other tissue or other instruments adjacent to the tissue to which the energy applicator 184 is applied. This contact may prevent the energy applicator 184 from being advanced further.
[0224] The orientation regulator 368 determines the restoring forces and torques that need to be applied to the virtual rigid body to prevent such drift.
[0225] In most forms of the invention, the orientation adjuster 368 is configured to operate when the manipulator advances the instrument in a semi-automatic mode. When a command is first input to begin semi-automatic advancement of the instrument, the orientation adjuster 368 defines a reference surface 369 located above the distal end of the energy applicator 184, such as Fig.18A As shown. In order to perform this process, the orientation regulator 368 needs to know the actual posture of the instrument. In some forms of the invention, the controlled posture is used to represent the actual posture. In the figure, the surface 369 is shown as being planar, but it is not so limited during implementation. The reference surface 369 is typically located approximately 5 to 20 cm above the distal end of the energy applicator 184. In some forms of the invention, the reference surface is positioned to intersect the origin of the coordinate system CMVB. If the reference surface is a plane, then when the manipulator is initialized, the regulator 368 typically defines a plane perpendicular to the longitudinal axis of the instrument 160. Then, the orientation regulator 368 defines an orifice 370 in the reference surface 369, as Fig.18BAs shown. The orifice 370 is typically, but not limited to, circular. The orifice 370 is centered around the point where the longitudinal axis of the instrument or energy applicator 184 intersects with the reference surface 369. In the described form of the invention, these axes are presented as being linear and are collectively referred to as "common axes". In the figure, the intersection point is referred to as the centering point 371. If the orifice 370 is in the form of a circle, the radius of the orifice can be between 2 and 5 cm. The surface 369 and the orifice 370 are typically fixed relative to the coordinate system BONE. This ensures that the representation of these geometric landmarks moves with the patient. The surface 369 and the orifice 370 are typically defined in the manipulator coordinate system MNPL or the bone coordinate system BONE.
[0226] At the beginning of the frame, the orientation controller 368 has data describing the commanded pose of the instrument 160. As the instrument 160 is repositioned by the manipulator 50, the common axis may move from the centering point 371, such as Fig.18D This movement occurs because neither the orifice 370 nor the centering point 371 moves with the movement of the instrument and energy applicator 184. If the instrument 160 is moved in this way, the orientation adjuster 368 determines an orientation restoring force that is applied to the virtual rigid body, causing the manipulator 50 to move the instrument so that the common axis moves toward the centering point 371.
[0227] The process of determining the orientation restoring forces and torques by the orientation regulator 368 begins with the orientation regulator determining the point along the common axis that intersects the reference surface 369. The orientation regulator 368 determines the current position of the common axis based on the commanded posture that represents the actual posture. The orientation regulator 368 then determines the distance from this point to the centering point 371. Based on this data, the orientation regulator 368 determines the restoring forces and torques that will cause the instrument 160 to pivot toward the centering point 371. In one form of the invention, these forces and torques are determined according to the following formulas:
[0228] = (7)
[0229] In some cases:
[0230] =K ORNT DIST INST-CP (7A)
[0231] =D ORNT V INST-CP (7B)
[0232] here, is the magnitude of the restoring force applied to the virtual rigid body along the reference surface 369 to cause the instrument to pivot toward the centering point. The force is applied along the vector from the point where the instrument axis intersects the reference surface 369 to the centering point 371. In equation (7), the force It has a distance component and a velocity component. INST-CP It is the distance between the point where the common axis intersects the reference surface 369 and the centering point 371. Distance DIST INST-CP is a positive scalar. The velocity V INST-CP is the distance DIST INST-CP The time derivative of .
[0233] Coefficient K ORNT is the spring constant. This constant may be variable. One reason is that when the common axis is very close to the centering point 371, it may not be necessary to apply a significant restoring force to the instrument. This is because, although it is desirable that the common axis is located on the centering point 371, this is not necessary for the operation of the manipulator. Therefore, when the common axis is relatively close to the centering point 371, the spring constant K ORNT It may be lower or even zero. If the common axis is further separated from the centering point 371, it may be desirable to increase the application of these restoring forces and torques.
[0234] Coefficient D ORNT is the damping coefficient. The damping coefficient may be variable. In some forms of the invention, the coefficient is the distance DIST INST-CP and / or speed V INST-CP Function of changing coefficient D ORNT It may be desirable to enhance the stability of the machine movement.
[0235] exist Fig.19 , the magnitude of the distance component of the force in formula (7) is shown. In this figure, there is a sharp increase in the application of force from the inflection point 377 to the peak value 378. The inflection point 377 is located at the periphery of the orifice 370. Therefore, if the common axis continues to exceed this position, the orientation regulator 368 generates data indicating that a significant restoring force needs to be applied to the virtual rigid body to keep the instrument in the orifice. The magnitude of this restoring force increases significantly as the instrument moves incrementally beyond the orifice 371.
[0236] The orientation regulator 368 can determine that the instrument has moved a very large distance beyond the orifice 370. This is the distance at which the peak 378 is located. If the orientation regulator 368 determines that such a condition exists, the regulator 368 no longer generates data indicating that a large restoring force should be applied. This is because there may be such a situation that when the instrument moves in a semi-automatic mode, it is desired to move the instrument outside the normal orientation range. For example, there may be an obstacle that blocks the advancement of the energy applicator 184 along the programmed path segment. The obstacle may be a protruding tissue or a surgical instrument. In order to prevent the obstacle from blocking the advancement of the energy applicator 184, the instrument may need to present an orientation outside the normal orientation range. Alternatively, the practitioner can try to force the instrument 160 to reorient without first pressing the button 172. If this situation occurs, the fact that the orientation regulator 368 allows the instrument to move outside the normal orientation range allows the practitioner to perform such reorientation of the instrument.
[0237] Thus, when the instrument moves beyond the orifice by more than 0.5 to 2.0 cm, the magnitude of the distance component ramps down to a nominal level. This level may be equal to zero. In addition to allowing the force to drop to zero, the manipulator may display a message on the user interface requesting confirmation by the practitioner that the orientation adjuster 368 has at least temporarily suspended the instrument orientation rules. While awaiting this confirmation, the manipulator may pause the advancement of the energy applicator 184 along the path segment.
[0238] Once the orientation regulator 368 begins generating a signal indicating only the nominal / zero orientation restoring force If data is not applied to the virtual rigid body, the practitioner can manually reorient the instrument so that the axis is at or near the orifice 370. If this situation occurs, the orientation adjuster 368 can return to outputting data indicating that more than the nominal restoring force should be applied. In certain configurations of the manipulator 50, in order for the orientation adjuster 368 to return to outputting more than the nominal orientation restoring force, the practitioner needs to press and release the button 172. When the button 172 is released, the orientation adjuster 368 redefines the reference surface 369, the orifice 370, and the centering point 371 based on the instrument orientation. Once these landmarks are redefined, the orientation adjuster 368 returns to outputting more than the nominal orientation restoring force.
[0239] In implementation, orientation adjuster 368 does not actually execute equation (7) to determine the orientation restoring force Instead, the orientation regulator 368 maintains a lookup table of restoring forces (lookup table not shown). The input for determining the appropriate restoring force represents the distance DIST. INST-CP and speed V INST-CP .
[0240] Once the recovery force Once determined, the orientation regulator 368 converts the force into a vector. This conversion is performed by multiplying the unit direction vector from the point where the instrument axis intersects the reference plane 368 to the centering point 371. The unit direction vector is expressed in the coordinate system MNPL. This multiplication produces a force vector also in the coordinate system MNPL. This vector defines the restoring force applied to the virtual rigid body at the location where the longitudinal axis of the body instrument intersects the reference surface 369. This point is not the origin of the coordinate system CMVB.
[0241] Therefore, the orientation adjuster 368 will force into equivalent forces and torques that should be applied to the virtual rigid body at the origin of the coordinate system CMVB. This conversion is performed according to the following formula:
[0242] = (8)
[0243] force is the force and torque vector applied to the origin of coordinate system CMVB to reposition the instrument axis toward the centering point. The force is expressed in coordinate system CMVB. The Jacobian is the Jacobian from the location where the tool axis expressed in coordinate system MNPL intersects reference surface 369 to the origin of coordinate system CMVB expressed in coordinate system CMVB. These forces and torques in coordinate system CMVB are also applied to total force adder 380 by tool path force calculator 278.
[0244] The orientation adjuster 368 receives other signals as inputs and outputs. These signals include signals from the instrument button 172 and the force overrider 375 discussed below. The orientation adjuster 368's response to the assertion and negation of these signals is discussed below.
[0245] Fig.16D Another module integral to the tool path force calculator 278 is shown, a force overrider 375. One input into the force overrider 375 is a signal representing the force and torque applied to the force torque sensor 108. A second input into the force overrider 375 is a signal representing the force applied to the virtual rigid body to cause the energy applicator 184 to advance on the tool path. These signals come from the energy applicator force calculator 358. These signals are shown as coming from the force transducer 362. The third input into the force overrider 375 is the force , together with the force and torque determined by the tool orientation force regulator 368 to maintain the instrument axis within the orifice 370. The fourth input into the force overrider is a signal representing the power applied by the energy applicator 184. For instruments with a motor as the power generating unit, the torque produced can be used as a marker for the instrument power. The current drawn by the instrument can be used to represent the power applied by the energy applicator 184. Fig.16D This is why signal ENGRYAPPPWR is shown as coming from tool controller 132 .
[0246] Thus, each of these signals represents a force or torque applied to or output by the instrument 160 and / or energy applicator 184. The force overrider 375 compares each of these forces / torques to one or more limit values. If a set of these forces / torques exceeds the lower limit value, the force overrider deactivates the instrument and stops the advancement of the instrument. Depending on which set of forces / torques exceeds the limit values, the force overrider may not deactivate the instrument and stop advancement until the limit values are continuously exceeded for a set time period. Such a delay may be programmed into the force overrider 375 to minimize situations where momentary spikes in applied or output force / torques interrupt the operation of the manipulator. The delay period is typically between 10 and 500 milliseconds. By passing the signal to the instrument manager 702 ( Fig. 27 ), to indicate the deactivation of the instrument. In response to receiving the signal, the instrument manager 702 sends a command to the tool controller 132. The command causes the controller 132 to cancel the application of the excitation signal to the instrument power generation unit 163. The stop of the movement along the tool path is indicated by judging the signal to the feed rate calculator 284. In response to the signal, the feed rate calculator 284 causes the instrument feed rate to ramp down to zero.
[0247] If a set of these forces / torques exceed the higher limit level, the force overrider 375 causes the manipulator to transition from semi-automatic operation to manual mode operation. As with the lower limit level, the force overrider 375 may not cause such a transition of the manipulator 50 until a specific force / torque limit is exceeded within a continuous time period. This time period is typically shorter than the time period associated with the corresponding force / torque lower limit. The time limit is lower because sensing a higher applied or output force / torque means there is a greater possibility that the manipulator may be in an undesirable state. Reducing the time period after the force overrider 375 responds to the force / torque information essentially ensures that when the higher limit level is exceeded, the overrider takes a corrective action associated with the condition, rather than responding to a smaller corrective action associated with the lower limit force / torque level that was exceeded.
[0248] To reset the operation of the manipulator to manual mode, the force overrider 375 sends a signal to the energy applicator force calculator 358 and the tool orientation regulator 368. When the energy applicator force calculator 358 receives the command signal from the overrider 375, the calculator resets the force The tilt drops to zero. When the tool orientation regulator receives this command signal from the overrider 375, the regulator The tilt drops to zero.
[0249] It should now be understood from the above description that the tool path force calculator 278 generates information regarding the forces and torques applied to the center of mass of the virtual rigid body to: (1) move the energy applicator 184 along the path segment; and (2) maintain the tool within an acceptable orientation range. Data describing these forces and torques are applied to the total force adder 380. The forces and torques used to advance the energy applicator 184 and maintain the tool orientation are calculated separately. Therefore, in Fig. 13B , these two sets of forces and torques are shown as two separate addends entering the force adder 380.
[0250] The force adder 380 is a separate behavior control software module running on the manipulator controller 124. Additional addends entering the force adder 380 are the ambient forces output from the ambient force adder 379. The force adder 380 generates two sums based on these three inputs: force ; and torque These sums are respectively the sum of the force and torque that the manipulator will apply to the center of mass of the virtual rigid body. and torque This is expressed in coordinate system CMVB. In manual or semi-automatic mode of operation, manipulator 50 advances instrument 160 according to these total forces and torques.
[0251] The acceleration calculator 384, another behavior control software module running on the manipulator controller 124, in turn receives the total force and torque vector from the force adder 380, and .exist Fig. 13B , a single connection from adder 380 to calculator 384 is shown. Acceleration calculator 384 is based on force and torque The application of determines the degree to which the origin of the coordinate system CMVB is accelerated. The acceleration is translational and rotational. As described above, the instrument and energy applicator 184 are simulated as a virtual rigid body. For this body, the motion formula is:
[0252] (9)
[0253] (10)
[0254] here: is the virtual mass of the virtual rigid body; is the linear velocity of coordinate system CMVB; is the linear acceleration of coordinate system CMVB; is the rotation speed of the coordinate system CMVB; are the rotational accelerations of the coordinate system CMVB. These velocities and accelerations are expressed in the coordinate system CMVB. The tensor I is the virtual inertia tensor of the virtual rigid body expressed in the coordinate system CMVB.
[0255] Therefore, the acceleration calculator 384 is also loaded with the virtual mass and virtual inertia of the virtual rigid body. This value is usually constant. The acceleration calculator 384 assumes that the linear velocity V and the angular rotation is an intermediate calculated value for these variables. Therefore, considering the above known variables, the acceleration calculator 384 is able to solve for both linear acceleration and rotational acceleration accordingly, and It should be understood that and is a vector.
[0256] Vector and All are applied to integrator 386, another behavior control software module running on manipulator controller 124. Integrator 386 also receives the controlled posture and controlled velocity of coordinate system CMVB expressed in coordinate system MNPL from cutting guide 390 described below. These controlled posture and controlled velocity data are used by integrator 386 as initial conditions for integration for the current frame. Integrator 386 converts the velocity from coordinate system MNPL to coordinate system CMVB. This conversion is necessary for using the velocity as an initial condition in integration.
[0257] For the first frame integration with manipulator initialization, as described above, the commanded pose is based on data from the forward dynamics module 562 discussed below. The commanded velocity is set to zero.
[0258] Integrator 386 performs a first integration to determine the linear velocity and rotational velocity of coordinate system CMVB, and The integrator 386 then rotates the linear velocity V into an equivalent form in the manipulator coordinate system MNPL. The integrator 386 can then limit the magnitude of these velocities to ensure that the motion of the manipulator is within the operating limits of the manipulator. The velocity limiting can also be performed to ensure that the rate at which the manipulator advances the instrument does not exceed the desired rate for the procedure. The integrator can independently limit the magnitude of the linear velocity and the rotational velocity.
[0259] These velocities are then integrated to determine the new position of the origin of coordinate system CMVB in coordinate system MNPL.
[0260] Integrator 386 also converts the rotational speed into quaternion rates. These quaternion rates are expressed in coordinate system MNPL. The quaternion rates are integrated to obtain quaternions. Then, the quaternions are used to form a rotation matrix of the new orientation of coordinate system CMVB in manipulator coordinate system MNPL. The rotation matrix and the vector defining the position of coordinate system CMVB in manipulator coordinate system MNPL jointly form a homogeneous transformation matrix of coordinate system CMVB relative to manipulator coordinate system MNPL. This transformation matrix specifies the posture of the virtual rigid body. The posture is applied to the cutting guide described below.
[0261] Integrator 386 also monitors the state of switch 176. When integrator 386 determines that switch 176 has transitioned from the judgment state to the non-judgment state, the integrator temporarily enables the speed meter. and The signal of 176 is ramped down to zero. This ramping down is performed before the linear and rotational speeds are integrated a second time. Integrator 386 does not hold the speed at zero. This allows other forces, such as the backdrive force and joint restraint force described below, to continue to affect the movement of the manipulator after the switch 176 is no longer asserted.
[0262] In some forms of the invention, the integrator 386 does not directly ramp the velocity down to zero. Instead, the velocity is indirectly driven to zero by temporarily increasing the damping force applied to the force adder 379 described below when the switch 176 is no longer asserted.
[0263] The result of the velocity and position integration is applied to the cutting guide 390. The cutting guide 390 is a behavior controller software module running on the manipulator controller 124. The cutting guide 390 is a software module that prevents the manipulator from positioning the energy applicator 184 beyond the boundaries of the volume to which the applicator is to be applied when the manipulator is operating in the manual mode. Thus, the cutting guide 390 is a software module that ensures that the manual mode positioning of the energy applicator 184 is subject to boundary constraints.
[0264] When the manipulator 50 is operated in the semi-automatic mode, the path segments along which the energy applicator 184 is advanced are inherently within the boundaries of the volume to which the energy applicator 184 should be applied. The cutting guide 390 retains the initial pose reception generated by the integrator 386. Thus, when the manipulator 50 is operated in the semi-automatic mode, the cutting guide 390 acts as a safety device to prevent the energy applicator 184 from being unexpectedly moved beyond the defined boundaries.
[0265] One input into the cutting guide 390 is the pose generated by the integrator 386. The pose generated by the integrator is the pose of the origin of the coordinate system CMVB relative to the coordinate system MNPL. The second input is the velocity generated by the integrator 386, both linear velocity and rotational velocity. The third input into the cutting guide 390 is the data from the boundary generator 232 defining the boundary between the volume to which the energy applicator 184 is applied and the volume to which it is not applied. Fig. 20A , 20B and 20C , these boundaries are defined by line segments 452 , 454 , and 456 . Figures 20A-20C It is to be understood as a two-dimensional cross-section through a three-dimensional surface.
[0266] The cutting guide 390 also receives a fourth input from the coordinate system transformer 272. These are data defining the transformations of the coordinate systems relative to each other. These include transformations relating to the coordinate systems CMVB, EAPP, BONE and MNPL.
[0267] The above-mentioned posture and velocity inputs are initially expressed in the coordinate system MNPL. The cutting guide 390 transforms each of these inputs into the coordinate system BONE, step 482. This transformation is performed because the boundaries beyond which the energy applicator 184 should not be applied are usually fixed in the coordinate system BONE. Therefore, for ease of processing, it is more convenient to perform the following analysis in the skeletal coordinate system BONE.
[0268] refer to Figures 21A-21C , initially explaining the operation of the cutting guide 390. Although not shown as a step, the cutting guide 390 calculates the previously controlled position of the origin of the coordinate system EAPP based on the previously controlled pose. Based on the integrator-generated pose, the cutting guide 390 calculates the integrator-generated position of the origin of the coordinate system EAPP.
[0269] In step 484, the cut guide 390 identifies any bounded tiles that the energy applicator 184 may have crossed during the frame. This step is generally described as a broad phase search. Step 484 is performed by identifying a set of tiles that are within a defined distance range of the previous controlled position of the energy applicator 184. Fig. 20A, this is point 458. This distance is a function of the size of the energy applicator 184; the speed of the energy applicator 184 relative to the patch (speed of advancement during past frames is acceptable); the time period of the frame; a scalar defining the characteristic size of the boundary defining segment; and a rounding factor.
[0270] Since the broad phase search was performed at step 484, the cut guide 390 can determine that, in the frame in which the analysis was performed, all of the tiles were outside the defined distance, step 486. This means that, at the end of the frame in which the analysis was performed, the energy applicator 184 had not advanced to a position beyond the boundary. This is accomplished by Fig. 20A It is shown where the integrator defined location of the energy applicator 184, point 460, is well spaced from the nearest boundary.
[0271] Because the energy applicator 184 continues to advance within the boundaries of the volume to which the energy applicator 184 is to be applied, the cutting guide 390 does not change the attitude or velocity of the coordinate system CMVB generated by the integrator 386. In step 488, the cutting guide 390 outputs the controlled attitude and the controlled velocity. If this form of step 488 is performed and it is determined that all boundary patches are outside the defined distance, then the attitude and velocity generated by the integrator 386 are output by the cutting guide 390 as the controlled attitude and the controlled velocity.
[0272] As part of performing step 488 in the above form and other forms described below, cut guide 390 transforms the commanded pose and velocity from coordinate system CMVB so that the pose and velocity are expressed in coordinate system MNPL. It is understood that the controlled velocity of the vector includes both linear and rotational components.
[0273] Alternatively, as a result of executing step 484, the cutting guide 390 can identify a wide set of boundary-defining patches that are within a defined distance range of the energy applicator 184. Next, in step 490, the cutting guide 390 identifies a narrow set of boundary-defining patches that are within a wide set of patches that the energy applicator 184 can cross. This step is generally referred to as a narrow phase search. The narrow phase search can be performed by initially defining a boundary volume. The boundary volume extends between the initial position and the final position of the energy applicator 184. If this is the first time step 490 is performed, the initial position is set to the previously controlled position; the final position is set to the position generated by the integrator.
[0274] In its most basic form, the boundary volume is a line segment between the initial and final positions of the energy applicator 184. The cross-sectional area geometry of the boundary volume can be constant along the length of the boundary volume. The cross-sectional segment of the boundary volume can include one or more boundaries that are straight and / or curved in shape. The shape of the boundary volume can be a function of the shape of the energy applicator 184 and the initial and final orientations of the energy applicator 184.
[0275] Once the bounding volume is defined, the cut guide 390 determines which, if any, of the wide set of tiles intersect the bounding volume as part of the narrow phase search of step 490. The tiles that intersect the bounding volume are the narrow set of tiles.
[0276] As a result of the evaluation of step 490, it can be determined that no tiles in the wide set of tiles intersect the bounding volume; the narrow set is an empty set. This is the evaluation of step 492. If this evaluation tests true, then the cutting guide 390 interprets this condition as indicating that the final position of the energy applicator 184 is within the volume defined by the boundary. If the energy applicator 184 is so positioned, then the cutting guide 390 proceeds to step 488 described above. If this is the first time step 490 is performed, then in this form of step 488, the posture and velocity generated by the integrator 386 are output by the cutting guide 390 as the controlled posture and controlled velocity.
[0277] Alternatively, it can be determined that the boundary volume crosses one or more tiles as a result of the evaluation of step 492; a narrow set of tiles includes one or more tiles. If this is the determination of the evaluation of step 492, then the cutting guide 390 interprets this condition as indicating that the final position of the energy applicator 184 exceeds the boundary. Fig. 20B This situation is shown. Here, point 462 is the initial position of the energy applicator 184. Point 469 is the final position.
[0278] If exists Fig. 20B If the bounding volume is a line, then step 493 is performed to determine which patch of the narrow set of patches the energy applicator 184 will traverse first. If the bounding volume is a line, then for each patch, the cutting guide 390 determines the percentage of the distance that the energy applicator 184 will advance during the frame before the applicator traverses the patch. The patch traversed with the lowest percentage of distance is understood to be the patch traversed first. If the bounding volume has a non-zero cross-sectional area, then a process that is not part of the present invention is used to determine the traversal distance.
[0279] join Fig. 22, it can be seen that the boundary defining patch closest to the energy applicator 184 may not be a patch that the energy applicator 184 may traverse. Here, due to the process of step 484, the patches 506-522 are initially determined to be within a distance d, the volume represented by the dashed circle 501, the distance that the energy applicator 184 may potentially move within the time frame.
[0280] The patch closest to the energy applicator 184 is patch 518. However, the energy applicator 184 moves along a trajectory that, for purposes of illustration, is not shown in FIG. Fig. 22 The trajectory is shown as being straight and downward, towards point 469. Thus, in the evaluation of step 493, the cut guide determines that patch 512 is a patch that will intersect the bounding volume.
[0281] Once the cutting guide 390 has roughly determined which boundary defining patch will be traversed by the energy applicator 184, then in step 494, the cutting guide 390 determines the time and Point .time is the time period relative to the start of the frame when the energy applicator 184 will cross the boundary. This time is determined based on the percentage of distance the energy applicator 184 will travel during the frame before contacting the boundary. This determination is made based on the assumption that the speed of the energy applicator 184 is constant during any given frame. Point is the point in coordinate system BONE at which the energy applicator 184 will cross the patch. This point is determined by calculating where the path of advance of the energy applicator 184 crosses the patch. Two calculated values are used as input variables, the initial and final positions of the energy applicator 184 and the data defining the perimeter of the boundary patch. These position-specifying data are in coordinate system BONE.
[0282] Additionally, as part of step 494, the cutting guide 390 determines that at time The initial posture of the coordinate system CMVB, the initial speed of the coordinate system and the time to calculate the pose. If this is the first time step 494 is performed, the cutting guide 390 assigns the last commanded pose of the coordinate system CMVB as the initial pose. If this is the first time step 494 is performed, the cutting guide 390 assigns the last commanded velocity of the coordinate system CMVB as the initial velocity. The linear velocity and rotational velocity of the coordinate system CMVB are assumed to be constant throughout the frame. Therefore, both the linear velocity and the rotational velocity are assumed to be constant over time. The above determination is made with reference to the coordinate system BONE.
[0283] Additionally, as part of step 494, at time The linear and rotational velocities of coordinate system EAPP are determined below. These velocities are based on the velocity of coordinate system CMVB and the fixed attitude of coordinate system EAPP relative to coordinate system CMVB. The linear and rotational velocities of coordinate system EAPP are calculated with reference to coordinate system BONE.
[0284] The cutting guide 390 also defines a boundary contact coordinate system, step 496. The coordinate system is defined to have a Z axis that is perpendicular to the surface segment of the boundary that will be traversed by the energy applicator 184. As part of the process of defining the boundary contact coordinate system, the position and orientation of the coordinate system relative to the coordinate system BONE is determined. The origin of the coordinate system is point .
[0285] The cutting guide 390 then determines the force F applied to the virtual rigid body at the origin of the coordinate system EAPP BNDR , to prevent the energy applicator 184 from undesirably advancing beyond the boundary. Initial Reference Fig.23A Explanation of the determination F BNDR The figure shows the velocity of the coordinate system CMVB and the energy applicator 184 as the applicator moves toward the boundary. For ease of illustration, only the velocity along the X-axis and Z-axis of the boundary contact coordinate system is shown. Fig.23A As shown, the energy applicator 184 moves at a high speed along the X-axis to the right and downward along the Z-axis. At the same time, the virtual rigid body (more specifically, the origin of the coordinate system CMVB) moves at a lower speed along the X-axis to the left and upward along the Z-axis. Due to the orientation and relative magnitude of these velocities, what occurs in this motion is that the energy applicator 184 rotates counterclockwise relative to the coordinate system CMVB, while there is a certain slight displacement of the virtual rigid body.
[0286] The cut guide 390 determines a boundary constraining force applied to the origin of the coordinate system EAPP that prevents the energy applicator 184 from advancing along the Z-axis of the boundary contact coordinate system.
[0287] Therefore, in step 530, the cutting guide 390 transforms the position and velocity of the coordinate system EAPP and the pose and velocity of the coordinate system CMVB into the boundary contact coordinate system. In step 532, the cutting guide determines the scalar force F BNDR , if at time If the scalar force is applied to the origin of the coordinate system EAPP, then the scalar force will prevent the applicator from moving in a direction perpendicular to and toward the boundary. Fig. 23B As shown by arrow 457 in FIG. BNDRThe force F acts along the Z axis in the boundary contact coordinate system. The cutting guide 390 can determine the force F using one of a number of different methods. BNDR size.
[0288] For example, the force F can be calculated using the impulse method BNDR In one such approach, F is determined using the form of Equation (5) with components expressed in the boundary contact coordinate system. BNDR In this application of formula (5), F BNDR Alternative In this case, the speed is the energy applicator 184 at time Therefore, the speed The Z component of is zero. This is because the purpose of this application of the formula is to determine the force that, if applied to the origin of the coordinate system EAPP, will cause the Z axis velocity to drop to zero relative to the boundary. The other components of are irrelevant. This is because the direction vector discussed below Choice of Speed is the velocity of the coordinate system CMVB at the beginning of the frame. Time Use as . Direction vector The linear component of is a unit vector, defining the The normal direction of the boundary surface at . Therefore, this vector is [0, 0, 1]. The rotation component of is set to the zero vector. In this application of equation (5), replace . Jacobian Along the direction vector Jacobian from the origin of coordinate system CMVB to the origin of the boundary coordinate system.
[0289] In this application of Equation (5), the mass matrix M is expressed in the boundary contact coordinate system. is the output of force adder 380. For the force to be used and , they must first be expressed in the boundary contact coordinate system. Components C and Usually set to zero. This does not need to be determined .
[0290] There may be a situation where the energy applicator 184 contacts multiple boundary-defining patches simultaneously. When the energy applicator 184 is so positioned, multiple patches simultaneously apply multiple forces to the energy applicator 184. Together, these forces must move the energy applicator 184 along a path that does not cross any patch. The calculation to determine the forces that need to be applied to the origin of the coordinate system EAPP to ensure this motion is a linear complementarity problem. The problem is of the form in which for each force and velocity pair, the force must be equal to or greater than zero and the velocity must also be equal to or greater than zero. Therefore, in order to solve this problem, it is necessary that the Jacobian matrix of this form of formula (5) includes additional rows.
[0291] It should also be understood that the pulse is applied to a point on the virtual rigid body, the origin of the energy applicator 184 in the coordinate system EAPP, spaced from the origin of the coordinate system CMVB. , the scalar force is converted into an equivalent set of boundary constraint forces and torques, , they will need to be applied to the virtual rigid body at the origin of the coordinate system CMVB, step 534. This transformation can be based on the following formula:
[0292] (11)
[0293] force Expressed in the boundary contact coordinate system.
[0294] Then, force Plus Using the method described with reference to equations (9) and (10), the cutting guide 390 determines a new acceleration of the coordinate system CMVB, step 536. The above sums of forces and torques are substituted in these equations for and .
[0295] Based on these acceleration values, the method used by integrator 386 is used to calculate the acceleration value using the method ending at time The cutting guide 390 determines the coordinate system CMVB at time The speed is set to 538. If this is the first time this step is performed, the start of the frame is the start of the integration interval. If this is a subsequent execution of this step, the integration interval starts at the time after the start of the frame.
[0296] Next, the method employed by the second execution integrator 386 is executed to determine the velocity and attitude of the coordinate system CMVB at the end of the frame. The second execution utilizes the time Integration interval extending to the end of the frame.
[0297] The above-mentioned integration processes performed by the cutting guide 390 are performed in the boundary contact coordinate system. During a single iteration of the boundary restraining force generation process, the posture of the boundary contact coordinate system is fixed relative to the coordinate system BONE. Therefore, by performing these processes in the boundary contact coordinate system, the movement of the patient's anatomical structure is taken into account when calculating the boundary restraining force. It is generally assumed that the boundary contact coordinate system is an inertial coordinate system with a constant velocity and no acceleration relative to the coordinate system MNPL during the integration interval. The output of these integration processes is then converted from the boundary contact coordinate system to the coordinate system BONE.
[0298] At this time, during the boundary constraint process, the coordinate system CMVB is at time The posture at the bottom becomes the new initial posture of the coordinate system. From this posture, the new initial position of the coordinate system EAPP is determined. This position is the position of the energy applicator 184, adjacent to the boundary but not crossing the boundary. Fig. 20B In , this is point 464. At the end of the frame the pose of coordinate system CMVB becomes the new final pose of the coordinate system, step 540. From this pose, the new final position of coordinate system EAPP is determined, step 542. Fig. 20B In FIG. 4 , this position is represented by point 468. It should be understood that due to Applied to the virtual rigid body, the position of the coordinate system EAPP moves along the boundary but does not cross it. Fig. 20B , this is represented by the energy applicator 184 advancing from point 464 to point 468.
[0299] It should also be understood that due to The position of coordinate system CMVB will change significantly if the value of CMVB is applied. This difference is caused by the position of point 165 changing from Figures 23B to 23C Compare Fig. 23B , Fig.23C , the coordinate system CMVB moves downward and to the left more than it would if it were not subject to boundary constraints. This is represented by the dashed line representation of the instrument 160 and the energy applicator 184.
[0300] exist Fig. 20B , the energy applicator 184 is shown advancing on a path that is generally parallel to and adjacent to the boundary 454. The energy applicator 184 of the virtual rigid body advances along this path until the end of the frame.
[0301] After advancement of the energy applicator 184 is constrained to prevent the applicator from traversing one boundary, the energy applicator 184 may be able to traverse a second boundary within the same time frame. Fig. 20C. Here, point 470 is the previously controlled position of the energy applicator 184, the first initial position. In the case where the advancement of the energy applicator 184 is not constrained by the boundary, point 472 represents the position generated by the integrator, the first final position. It can be seen that point 472 exceeds the boundary. Therefore, the cutting guide 390 determines the boundary constraint force that needs to be applied to the virtual rigid body to prevent the energy applicator 184 from crossing the boundary 454.
[0302] Point 471 is a point adjacent to boundary 454 at which the cut guide 390, by applying a first boundary constraining force, prevents the energy applicator 184 from traversing boundary 454. Thus, point 471 is a second initial position of the energy applicator 184 within the frame.
[0303] Point 476 represents a second final position of the energy applicator 184, where the virtual rigid body is subject to only a single boundary constraint force. Fig. 20C , it can be seen that the path of travel between points 471 and 476 crosses boundary 456. Thus, the cut guide 390 is further configured to prevent one boundary-constrained transfer of the energy applicator 184 from causing the applicator to cross another boundary.
[0304] After executing step 542, the cut guide 390 prevents such intrusion by performing a subsequent narrow phase search of the patch, re-performing step 490. Before performing this subsequent narrow phase search, step 490, the cut guide 390 performs step 543. In step 543, the cut guide 390 evaluates whether the cut guide 390 has performed a boundary constraint that can be applied to the origin of the coordinate system EAPP. The purpose of executing step 543 is discussed below. If the cut guide has not performed the maximum number of recalculations of the boundary constraints, then the cut guide proceeds to the subsequent step 490 to re-execute the narrow phase search.
[0305] During this subsequent narrow phase search process, the newly defined initial and final positions of the energy applicator 184 are used in step 490 to define a new boundary volume. Additionally, again in step 490, a determination is made as to whether the boundary volume intersects any boundaries. During a subsequent execution of step 492, this evaluation may indicate that the group of tiles traversed by the boundary volume is an empty group. As with the first execution of step 492, if this evaluation test is true, then the cutting guide 390 interprets the result as indicating that if the energy applicator 184 is advanced to the final position, the applicator will not cross the boundary. This is the determination that the cutting guide will make as to the energy applicator 184 being moved to the final position. Fig. 20B The evaluation results of the progress from point 464 to 468 are shown in FIG.
[0306] Since this subsequent evaluation test of step 492 is true, cutting guide 390 executes a form of step 488. It should be understood that step 488 is executed after a second or later execution of step 492. Therefore, in this form of step 488, cutting guide 390 outputs the last determined frame end pose and the last determined frame end velocity of coordinate system CMVB, which are the commanded pose and the commanded velocity of the coordinate system, respectively.
[0307] exist Fig. 20C In the second narrow phase search in which the energy applicator 184 advances, the boundary volume is between points 471 and 476. The boundary volume crosses boundary 456. A subsequent evaluation of step 492 will test as false. Therefore, steps 493, 494, 496, 530, 532, 534, 536, 538, 540, 542 and 543 are re-executed. As a result of re-execution of these steps, the cutting guide 390 determines the characteristics of subsequent boundary constraints that need to be applied to the virtual rigid body. The cutting guide 390 then determines a subsequent final position to which the energy applicator 184 will advance with the subsequent boundary constraints applied.
[0308] exist Fig. 20C 4, it can be seen that a subsequent boundary constraint force needs to be applied to the virtual rigid body to prevent the energy applicator 184 from crossing the boundary at point 474. As a result of the application of the subsequent boundary constraint force, the energy applicator 184 advances to point 478. When the energy applicator 184 is at this point 478, the final pose of the coordinate system CMVB is the frame end controlled pose output by the cutting guide 390.
[0309] Thus, for a single time frame of advancement of the energy applicator 184, the cutting guide 390 can perform multiple analyses to determine the position of the energy applicator 184 relative to the boundary. If necessary, the cutting guide 390 applies multiple boundary constraining forces to the virtual rigid body to prevent the energy applicator 184 from crossing the boundary.
[0310] In some forms of the invention, the cutting guide is limited to the number of times, within a single frame, it can generate data about the boundary constraint forces that should be applied to the virtual rigid body. This is due to the limitations of the processing power of the manipulator controller 124. In some forms of the invention, the cutting guide is limited to 4 to 16 iterations per frame, more generally 6 to 12 iterations per frame. This is why the cutting guide performs the evaluation of step 543. If the cutting guide determines that it has performed the maximum number of boundary constraint force generation, then the cutting guide performs a form of step 488. In this form of step 488 execution, the last initial posture and velocity are output as the controlled posture and controlled velocity of the coordinate system CMVB, respectively. This is because the posture and velocity are the last posture and velocity stored by the cutting guide 390 for the state where the energy applicator 184 is within the boundary.
[0311] The controlled posture and controlled velocity of coordinate system CMVB relative to coordinate system MNPL are the final outputs of the behavior control process.
[0312] The controlled attitude of the coordinate system CMVB is applied to Fig. 13C The inverse kinematics module 542 shown. The inverse kinematics module 542 is one of the motion control modules executed by the manipulator controller 124. Based on the controlled posture and pre-loaded data, the inverse kinematics module 542 determines the desired joint angles of the joints of the manipulator 50. The pre-loaded data is data that defines the geometry of the couplings and joints. In some forms of the invention, these data are in the form of Denavit-Hartenberg parameters.
[0313] In the construction of the present invention, a closed form solution for inverse kinematics is not known. This is typically the case with an overactuated parallel mechanism, such as the mechanism described in this application. In such a case, numerical calculation methods are used to solve the inverse kinematics, such as the NewtonRaphson iterative method. The inverse kinematics model calculates the joint angles for the active and passive joints of the manipulator. An active joint is a joint whose angle is driven by a joint actuator. A passive joint is a joint whose angle is set due to the positioning of the active joint. The passive joints are: the joint between the upper link 74 and the driven link 80; the joint between the four-bar link 78 and the driven link 80; and the joint between the driven link 80 and the connector 88.
[0314] Each desired joint angle of an active joint is applied to the associated joint motor controller 126. The joint motor controller 126 regulates the positioning of the joint. These joint angles applied to the controller 126 are called controlled joint angles.
[0315] Although not shown, it will be appreciated that some manipulators include modules that perform load balancing and / or arm compensation. This is true for manipulators that include parallel arms. These modules are almost always provided where the manipulator includes overactuated parallel arms. Load balancing is performed to ensure that the arms share the load associated with advancing the instrument to a controlled posture. Load balancing is performed to minimize the extent to which each arm resists the motion of the other arms. Load balancing is also performed to redistribute torque between the actuators. Torque is redistributed to minimize the situation where any single actuator is required to apply a large percentage of the total torque output by the manipulator.
[0316] Arm compensation is performed because one arm is typically positioned to adjust the positioning of the other arm. For example, typically at least a portion of the controlled joint angles of the lower arm 68 are typically finely adjusted to ensure accurate positioning of the passive joint angles associated with the upper arm 70. The design of the load balancing and arm compensation modules is specific to the characteristics of the linkage that is integral to the manipulator. This may be a practice where the linkage assembly is different from the linkage assembly described.
[0317] The desired joint angles generated by the inverse kinematics module are applied to the control dynamics module 544, also known as the motion control module. The control dynamics module distinguishes the sequence of joint angles for each joint. These distinctions are performed so that data indicating the angular velocity and acceleration of each joint is generated. The control dynamics module also has data describing the mass and inertia characteristics of each joint.
[0318] Based on the above data, the control dynamics module 544 performs inverse dynamics calculations for the motion of the coupling and the joint. This inverse dynamics calculation generates a torque that should be applied to the joint for each active joint so that the joint moves to the controlled joint angle. This torque is referred to as the forward feed torque. In some forms of the present invention, this torque is calculated based on the Newton-Euler iterative method. Alternatively, these torques can be calculated using the Lagrangian method.
[0319] Although in Fig.13D Not shown, but signals representing the forces and torques sensed by sensors 108 are sometimes applied to control dynamics module 544. By employing these signals as additional input variables in the dynamics calculations, module 544 produces a more accurate calculation of the forward feed torque.
[0320] There are such time periods during which the manipulator 50 holds the apparatus 160 in a static posture. During these time periods, the velocity and acceleration of the joints drop to zero. Even during these time periods, the control dynamics module 544 outputs data indicating that the joint motors should still produce non-zero torque. This is because the joint motors need to output at least some torque to prevent the arm joints from sliding from their static positions. This is because even when the arm joints are not exposed to direct mechanical forces, the arm is still subject to gravity.
[0321] Each joint motor controller 126 receives three inputs. One input is the controlled joint angle for the associated joint from the inverse kinematics module. The second input is the forward feed torque for the joint from the control dynamics module 544. The third input is the input signal from the rotary encoder 112, 114 or 116 associated with the joint. Each motor controller 126 also stores as a constant the gear ratio of the reduction gear 105 of the actuator 92, 94 or 96 associated with the controller. Based on these rotor angle data and gear ratio data, the controller 126 generates data representing the actual joint angle of the joint. This is called the measured joint angle.
[0322] Based on the above inputs, the joint motor controller 126 determines an excitation signal that should be applied to the relevant motor 101 so that the motor drives the joint toward the controlled joint angle. It should be understood that the measured joint angle is used to represent the actual joint angle. The forward feed torque from the control dynamics module is the forward feed torque signal, which is added to the input of the current control loop of the controller 126. Before this indication of the forward feed torque is added to the current control loop, the controller 124 adjusts the torque from the joint torque to the motor torque based on the gear ratio. Then, the torque is adjusted from the motor torque to the motor current based on the stored motor torque constant.
[0323] The active joints are driven to their controlled joint angles due to the application of the excitation signal applied to the motor 101. The resulting movement of the shoulder and the link causes the passive joints to be driven to their desired joint angles.
[0324] The measured joint angles of the six active joints generated by the joint motor controller 126 are transmitted to the forward kinematics module 562. In addition, applied to the forward kinematics module 562 are signals from encoders 117 and 118. These signals are for the measured joint angles of the passive joints that are integral to these encoders. Based on the measured joint angles and pre-loaded data, the forward kinematics module 562 determines a representation of the actual posture of the end effector 110 in the coordinate system EFCT relative to the coordinate system MNPL. The pre-loaded data is data that defines the geometry of the joints and joints. In certain forms of the invention, these data are in the form of Denavit-Hartenberg parameters.
[0325] The forward kinematics module 562 also calculates the joint angles of the passive joints that are not attached to the encoders. These calculated joint angles are used to represent the actual joint angles of the passive joints that are not attached to the encoders. The forward kinematics module 562 calculates these joint angles as part of the process of determining the actual pose of the end effector 110.
[0326] Based on the measured pose of the end effector, the forward kinematics module 562 generates data describing the measured poses of coordinate system CMVB and coordinate system EAPP relative to coordinate system MNPL. This is because coordinate systems EFCT, CMVB, and EAPP have fixed poses relative to each other.
[0327] The measured pose of coordinate system CMVB is applied to Jacobian calculator 564. Jacobian calculator 564 calculates a Jacobian matrix based on the measured pose, which relates motion in various coordinate spaces to the motion of the origin of coordinate system CMVB expressed in coordinate system CMVB. One such coordinate space is joint space. Joint space is a vector consisting of all joint angles of the manipulator. One calculated matrix is the Jacobian matrix between joint space and coordinate system CMVB, the Jacobian determinant is . The second coordinate space is the interference space. The interference space is a vector of minimum distances between pairs of potentially colliding links discussed below. In some cases, these minimum distances are distances along common normals between pairs of potentially colliding links. The second matrix calculated is the Jacobian matrix between the interference space and the coordinate system CMVB. The Jacobian determinant is The coordinate system EAPP is the third coordinate space. The calculator 564 calculates the Jacobian matrix between the origin of the coordinate system EAPP expressed in the coordinate system MNPL and the origin of the coordinate system CMVB. The Jacobian determinant is .
[0328] Typically, the calculator 564 initially calculates the inverse Jacobian of the desired Jacobian using numerical calculation methods. Once the inverse Jacobian is calculated, the calculator 564 determines the desired Jacobian by calculating the inverse of the inverse Jacobian. In the case of a non-square Jacobian matrix, a pseudo-inverse method must be used to calculate the inverse.
[0329] The measured joint angles from encoders 112-118 and the calculated joint angles from the forward kinematics module 562 are applied to the joint limit comparator 582. The joint limit comparator 582 and related modules generate signals that prevent each joint (active joints and passive joints) from moving beyond a specific range of motion. For each joint, the minimum and maximum joint limit angles are defined. In order for the manipulator to operate correctly, each joint angle should be between the relevant joint limit angles. The joint limit comparator 582 uses the measured or calculated joint angles of each joint to represent the actual joint angle of the joint.
[0330] Associated with each joint limiting angle is a joint boundary angle. A joint boundary angle is an angle within the range of motion of a joint that is closer to the joint limit angle. For example, if the minimum joint limit angle associated with a joint is 10º, then the minimum boundary angle may be between 12 and 20º. If the maximum joint angle of a joint is 115º, then the maximum boundary angle may be between 105º and 113º. The joint limit comparator 582 determines the difference between the representation of the actual joint angle and the minimum and maximum boundary joint angles, Fig.24 Step 591. This difference is called the boundary out-of-bounds angle, angle ANGLE B_E .
[0331] If the representation of the actual joint angle is greater than the minimum boundary joint angle and less than the maximum joint boundary angle, the joint is considered to be acceptably spaced apart from the joint limit angle of the joint. It is not necessary to apply force and torque to the virtual rigid body to prevent the joint from moving toward the nearest joint limit. Therefore, in step 591, if the above condition test is true, the joint limit comparator outputs a boundary exceedance angle of 0° (step not shown). If the above condition test is false, the joint limit comparator 582 outputs a boundary exceedance angle, which is the signed difference between the actual joint angle representation and the boundary angle crossed (step not shown). Typically, the sign is negative when the minimum joint boundary angle is crossed, and the sign is positive when the maximum joint boundary angle is crossed.
[0332] Step 592 represents an evaluation of the boundary exceedance angle. If, for a particular joint angle, the angle is equal to zero, then the manipulator controller 124 interprets this information as indicating that the manipulator 50 is free to continue to move the joint toward the closest boundary joint angle. Fig.24In step 594, this is indicated by the motion control software not outputting the joint limit torque.
[0333] If the boundary exceedance angle is not zero, then the angle is applied to the joint limit torque generator 584, step not shown. Based on the input series of boundary exceedance angles, the generator 584 calculates the time derivative of these angles. The time derivative is the angular velocity V B_E The joint limit torque generator 584 outputs a torque that will be applied to the joint to prevent the manipulator from moving the joint further beyond the boundary angle toward the adjacent joint limit angle, step 596. This torque, torque , determined according to the following formula:
[0334] = (13)
[0335] In some cases:
[0336] =K B_E ANGLE B-E (13A)
[0337] =D B_E V B_E (13B)
[0338] Coefficient K B_E is the spring constant. This constant can be variable. This is because, as the joint angle approaches the adjacent joint limit angle, a greatly increased torque will be required to limit the joint movement toward that angle. Therefore, there is usually a first order relationship between the magnitude of this torque and the absolute difference between the representation of the boundary angle being crossed and the actual joint angle.
[0339] Coefficient D B_E is the damping coefficient. The damping coefficient may be variable. In some forms of the invention, the coefficient is the boundary beyond the angle ANGLE B-E and / or speed V B_E Function of changing coefficient D B_E It may be desirable to enhance the stability of the machine's motion.
[0340] In implementation, the joint limit torque generator 584 does not actually execute equation (13) to determine the joint limit torque. Instead, the generator 584 maintains a lookup table of limit torques (lookup table not shown). The input for determining the appropriate limit torque represents the boundary exceeding angle ANGLE B-E and angular velocity V B_E If the boundary exceeds the angle of 0°, then the torque Inherently there is zero torque.
[0341] The joint limit torque generator 584 converts multiple torques (one torque per joint) is applied to the CMVB force transducer 586, step not shown. The second input into the force transducer 586 is the previously generated Jacobian from the Jacobian calculator 564 The force converter 584 converts each torque Set up as a column vector, The force converter converts this torque Converted into equivalent force and torque, force , which should be applied to the virtual rigid body at the origin of the coordinate system CMVB, step 597. This transformation is performed according to the following formula:
[0342] = (14)
[0343] force Expressed in coordinate system CMVB. Force is one of the inputs applied to force adder 379, (step not shown).
[0344] Another software module to which the measured and calculated joint angles are applied is an interference limit comparator 622. Comparator 622 uses these angles to represent actual joint angles. In short, if the motion of the arm may potentially cause the coupling to collide, the data of the force that should be applied to the virtual rigid body are described by the joint limit comparator 622 and the associated module output. Here, "coupling" is not just the coupling 72, 74, 76 and 80 that form each arm 68 and 70. For the purpose of the processing performed by comparator 622, "coupling" is any structural member, moving or rigid, which may collide with another part of the manipulator due to the motion of a joint. For example, if manipulator 50 is constructed so that an arm coupling may potentially collide with the outer surface of trolley 52, then comparator 622 regards the trolley surface as a coupling. The housing where the actuator is located is also considered to be a coupling when they may potentially collide with the coupling.
[0345] One reason for preventing these collisions is to prevent movement of the links relative to each other that could result in pinch points being formed between the links. Preventing these collisions also avoids injuries caused by such collisions.
[0346] It should be understood that every link of the manipulator is not potentially capable of colliding with every other link of the manipulator. For example, the four-bar link 78 and the driven link 80 of each arm 68 and 70 are not likely to collide with each other due to the inherent construction of the manipulator 50. However, the driven link 80 of arm 68 may collide with the driven link 80 of arm 70. Most pairs of links that may collide include a link integral with arm 68 and a link integral with the other arm (arm 70).
[0347] Based on the representation of the actual joint angles, the interference limit comparator 622 determines the minimum distance between each pair of possible colliding links. Fig.25 Step 632 in. In some embodiments of the present invention, the minimum distance is the distance along the common normal between the links. To make this determination, comparator 622 uses similar data and processes as those used by forward kinematics module 562 to determine the posture of each joint. Based on the posture data, module 622 models each link as one or more line segments between each joint. Based on the line segment model, module 622 determines the common normal distance between each pair of links that may collide, the minimum distance.
[0348] In step 634, the interference limit comparator 622 calculates the difference between the minimum distance for each pair of possible collision links and the boundary distance for the paired links. The boundary distance is such a distance at which the movement of the links toward each other is undesirable. It should be understood that this movement includes the movement of only one link toward another link. The boundary distance is larger than the distance that can be considered as the collision avoidance distance. Here, the collision avoidance distance is the minimum gap distance between the links. The collision avoidance distance is the distance for a pair of possible collision paired links, which is larger than the minimum distance between the links that will be considered to form a pinch point between the links.
[0349] The boundary distance for each pair of possible couplings that may collide is usually determined before the operation is started.By simulating that each coupling including the longitudinal axis is surrounded by a three-dimensional volume, the boundary distance can be determined.The volume can have a cylindrical or capsule-shaped shape.Alternatively, the shape can be in the form of parallel straws.The volume can have a more complex shape.The outer surface of the volume is usually located at a position that exceeds the actual outer surface of the coupling of the simulation by at least 3cm.In some forms of the present invention, the outer diameter of the volume is at least 5cm or at least 10cm that exceeds the actual surface of the coupling.If the volume is capsule-shaped or cylindrical, the boundary distance for each pair of couplings that may collide includes the sum of the radius of the capsule or cylinder for each coupling.
[0350] The difference between the minimum distance for a pair of potentially colliding links and the boundary distance is the interference boundary exceedance distance. .
[0351] If the minimum distance for a pair of links is greater than the associated boundary distance, then the manipulator 50 is considered to be in a condition in which the links are sufficiently spaced apart from each other so that movement of the links toward each other will not result in a pinch point or collision. For each pair of links that may collide in this condition, the comparator returns the interference boundary exceedance distance to zero (step not shown).
[0352] If the minimum distance for a pair of links is less than the associated boundary distance, the interference limit comparator 622 outputs the absolute value of the difference as the distance , steps not shown.
[0353] In step 635, for pairs of potentially colliding links, the interference boundary exceedance distance is evaluated, the distance If the distance is zero, then the motion control process does not output a force that would prevent the links from continuing to move together, step 636 .
[0354] If the interference boundary exceeds the distance, the distance is not zero, then the distance is applied to the interference limiting force generator 624, step not shown. Generator 624 calculates the time derivative of these distances based on the input series of interference boundary exceeding distances, step 637. The time derivative is the linear velocity V I_B_E The interference limiting force generator 624 outputs a force that will be applied along the line of minimum distance between the links to prevent the manipulator from moving closer to the distance between the links that could result in a collision, step 638. For some configurations of the invention, the line is along the common normal between the links. The force, force , determined according to the following formula:
[0355] = (15)
[0356] In some cases:
[0357] =K C_A DIST I_B_E (15A)
[0358] =D C_A V I_B_E (15B)
[0359] Coefficient K C_Ais the spring coefficient. This coefficient can be variable. This is because, as the minimum distance approaches the collision stop distance, the force required to restrict the movement of the links toward each other needs to be significantly increased. Therefore, it is usually greater than the first order relationship between the magnitude of this force and the interference boundary exceedance distance.
[0360] Coefficient D C_A is the damping coefficient. The damping coefficient may be variable. In some forms of the invention, the coefficient is the distance DIST I_B_E and / or speed V I_B_E Function of changing coefficient D C_A It may be desirable to enhance the stability of the machine movement.
[0361] In implementation, the interference limiting force generator 624 does not actually execute formula (15) to determine the collision prevention force. Instead, the generator 624 maintains a lookup table of collision prevention forces (the lookup table is not shown). The input for determining the collision prevention force represents the interference boundary beyond the distance DIST I_B_E and speed V I_B_E If the interference boundary is beyond the distance zero, then the force The interference limiting force generator 624 generates multiple forces , one force for each pair of links that may collide.
[0362] The multiple forces generated by the generator 624 is applied to the CMVB force transducer 626, step not shown. The second input into the force transducer 626 is the previously generated Jacobian from the Jacobian calculator 564 The force converter 626 converts each force Set up as a column vector, The force converter converts these forces Converted into equivalent force and torque, force , which should be applied to the virtual rigid body at the origin of the coordinate system CMVB, step 639. This transformation is performed according to the following formula:
[0363] = (16)
[0364] force Expressed in coordinate system CMVB. Force is one of the inputs applied to force adder 379, a step not shown.
[0365] Another module is the workspace limit comparator 652, which is part of the motion control process performed by the manipulator controller 124. The workspace limit comparator 652 determines whether the energy applicator 184 has reached the boundaries of a defined workspace. The limits of the workspace are spaced from the origin of the coordinate system MNPL and are defined with reference to the coordinate system. The workspace is within a volume within which the energy applicator 184 can move if the shoulders 67 and 69 and the couplings 72 and 74 can move to the full extension of their range of motion. This workspace is sometimes referred to as a "sensitive workspace" and is smaller than the volume of space within the full range of motion of the manipulator 50. This is because the ability to adjust the orientation of the instrument and the energy applicator 184 decreases as the energy applicator 184 moves toward the limits of its inherent boundaries. By way of example, at the extreme, in order to position the energy applicator 184 at a position spaced at a maximum distance from the origin of the manipulator reference frame, the arm can only be in one position, the fully extended position. Because the arm can only be in a single position, and thus extended, the instrument and energy applicator 184 can only be aligned in one direction. To ensure that the practitioner has at least some ability to reorient the energy applicator 184, the manipulator 50 does not allow the energy applicator 184 to be advanced outside of the workspace.
[0366] It should be understood that due to the physical construction of the manipulator 50, the workspace is generally not in the form of a simple geometric structure (such as a sphere or a cube). The workspace is generally defined by a set of continuous volumes, each volume having a different shape and / or size. Thus, when the distance to the top of the workspace above and away from the origin of the manipulator can be a distance of 1.5m from the origin of the manipulator coordinate system, the distance to the base of the workspace below the origin of the manipulator coordinate system can be 0.2m. In these and other forms of the invention, the proximal end of the workspace can be positioned away from the origin of the coordinate system MNPL. Therefore, in certain forms of the invention, the arm is capable of moving the instrument in the workspace, which can extend from a position 0.5m away from the origin of the coordinate system MNPL to a position 2.0m away from the same point.
[0367] The virtual surfaces around the manipulator that define the workspace are collectively referred to as the workspace limits. Within the workspace limits there is a workspace boundary. The workspace boundary is typically located 1 to 5 cm inward from the workspace limits. Similar to the workspace limits, the workspace boundary is defined in the coordinate system MNPL.
[0368] The workspace limit comparator 652 receives as input an actual position representation of the energy applicator 184, the origin of the coordinate system EAPP. In one form of the invention, the actual position representation of the origin of the coordinate system EAPP at this position is calculated by the forward kinematics module 562. Based on the position representation of the energy applicator 184, the comparator 652 determines the position of the energy applicator 184 relative to the workspace boundary, the origin of the coordinate system EAPP, step 639a. Step 640 represents an evaluation that occurs after this initial determination is made. If the energy applicator 184 is within the workspace boundary, then the motion control process does not apply force to ensure that the energy applicator 184 remains within the workspace limits. This is represented by the branch to step 661.
[0369] If the evaluation test of step 661 is false, then comparator 652 calculates a positive workspace boundary exceedance distance, distance , step 663. The distance is the distance along a line from the origin of the coordinate system EAPP back to a point on the workspace boundary, the line being perpendicular to the surface of the boundary. The distance is typically the shortest distance from the origin of the coordinate system EAPP back to the workspace boundary. As part of step 663, a unit direction vector is determined, vector , which follows the line from the origin of the coordinate system EAPP toward the workspace boundary. The expressions are made in coordinate system MNPL.
[0370] The workspace boundary exceedance distances are applied to the workspace limiting force generator 654, step not shown. Generator 654 calculates the time derivative of these distances based on the input series of workspace boundary exceedance distances, step 664. The time derivative is the linear velocity V W_B_E .
[0371] In step 665, the workspace boundary exceeds the force generator 654 to output a force that will be applied along the normal from the origin of the coordinate system EAPP back to the workspace to prevent the energy applicator 184 from leaving the workspace boundary and moving further toward the workspace limit. , the size is determined according to the following formula:
[0372] = (17)
[0373] In some cases:
[0374] =K WS_E (17A)
[0375] =D WS_E (17B)
[0376] Coefficient K WS_E is the spring coefficient. This coefficient can be variable. This is because, as the energy applicator 184 moves outward from the workspace boundary toward the workspace limit, the force that prevents the energy applicator 184 from continuing to move toward the workspace limit needs to be significantly increased. Therefore, it is generally greater than the first order relationship between the magnitude of this force and the distance beyond the workspace boundary.
[0377] Coefficient D WS_E is the damping coefficient. The damping coefficient may be variable. In some forms of the invention, the coefficient is the distance and / or speed Function of changing coefficient D WS_E It may be desirable to enhance the stability of the machine movement.
[0378] In implementation, the workspace boundary force generator 654 does not actually execute equation (17) to determine the workspace boundary exceedance force. Instead, the generator 654 maintains a lookup table of these forces (lookup table not shown). The input used to determine the collision prevention force represents the workspace boundary exceedance distance and speed If the distance beyond the workspace boundary is zero, then the force Inherently there is zero force.
[0379] Scalar force It is converted into a vector force according to the following formula, :
[0380] = (17)
[0381] force The expressions are made in coordinate system MNPL.
[0382] force is applied to the CMVB force transducer 655, step not shown. The second input into the force transducer 655 is the Jacobian determinant from the Jacobian calculator 564 The force converter converts the force Converted into equivalent force and torque, force , which should be applied to the virtual rigid body at the origin of the coordinate system CMVB, step 666. This transformation is performed according to the following formula:
[0383] = (18)
[0384] force Expressed in coordinate system CMVB. Force is one of the forces applied to force adder 379, a step not shown.
[0385] The behavior controller also includes modules that provide data regarding external forces and torques applied to the manipulator 50, instrument 160, and energy applicator 184. These external forces and torques include the resistance of the tissue to instrument advancement and the forces and torques applied by the practitioner.
[0386] One method of determining the external forces and torques is to determine the magnitude of the back-drive torque output by the joint motor 101. The back-drive torque is output by the joint motor 101 in response to the external forces and torques applied to the manipulator, instrument, and energy applicator 184. The back-drive torque is the torque output by the joint motor 101 that exceeds the torque required to overcome inertia and gravity.
[0387] The reverse drive torque is used to represent external forces and torques because each joint motor 101 and the associated joint motor controller 126 form a position control loop. The joint motor controller 126 adjusts the joint angle of the joint associated with the controller. Each controller 126 continuously adjusts the torque output by the relevant motor 101 to ensure that the motor drives the relevant joint to the controlled joint angle as much as possible. When the instrument is subjected to external forces and torques, these forces and torques temporarily destroy the instrument to advance to a controlled posture. Then, temporarily destroy one or more joints to advance to their controlled joint angles. The control loop is usually operated with a much higher bandwidth than the behavior and motion control process. Therefore, the control loop basically adjusts the torque output by the joint motor 101 simultaneously with the application of external forces and torques to compensate for these forces and torques. Thus, the torque output by the joint motor represents torque and. These torques are the torques required to overcome inertia and gravity and the torques required to overcome external forces and torques and reverse drive torques.
[0388] To calculate the backdrive torque, the manipulator controller 124 determines the torque that the joint motor 101 should output in the absence of external forces and torques. These torques are determined by the desired dynamics module (module 690). The inputs into the desired dynamics module 690 are the measured joint angles from the encoders 112, 114, 116, 117 and 118 and the calculated joint angles from the forward kinematics module 562. Using the method adopted by the control dynamics module 544, the desired dynamics module 690 calculates torque estimates for the active joints that are consistent with the observed motion of the joints. These torques are torque estimates that will be applied in the absence of external forces and torques applied to the manipulator, instrument or energy applicator 184. These torques are called desired torques.
[0389] The second set of variables used to determine the reverse drive torque is the actual torque, which is applied by the joint motor to the arms 68 and 70 to move the instrument 160 toward the controlled posture. The manipulator 50 uses two methods to obtain the actual torque representation. One method is to measure the torque output by the joint motor 101, more precisely, the torque output by the reduction gear 105. In the implementation process, a signal representing the current applied to the joint motor 101 from the joint motor controller 126 is typically used as a signal representing the joint motor / reduction gear torque. This is because there is a linear relationship between the current applied to the motor 101 and the torque output by the motor.
[0390] A second method of determining an indication of actual torque is to monitor the torque output by the joint motor 101 as measured by the torque sensor 89 .
[0391] The back-drive torque adder 691 receives as input the current applied to the joint motor 101 and the signal output by the torque sensor 89. The torque adder 691 combines these inputs to produce a single output data stream representing the actual joint torque. In certain forms of the invention, the back-drive torque adder 691 produces a weighted average of these two actual torque representations. These average torque values reflect the advantages in torque measurement accuracy, which are inherent but different in the two separate methods of determining the actual joint torque. The torque sensor 89 can produce a signal that is increasingly sensitive to changes in torque output. In some cases, torque measurements based on applied current are more representative of output torque over a wider torque range.
[0392] The actual joint torque representation produced by torque adder 691 is applied to backdrive torque calculator 693. The second input into calculator 693 is a set of desired joint torques. Calculator 693 calculates the difference between these two sets of torques. The difference is an estimate of the backdrive torque, torque , whose output is used to compensate for external forces and torques. is a column vector containing an estimate of the backdrive torque applied to the active joint. The torque for the passive joint The components of are set to zero.
[0393] If there are no external forces and torques, then the actual joint torque representation should be equal to the desired joint torque. If this condition exists, then the output from the backdrive torque calculator 693, torque , which is essentially a zero vector.
[0394] Torque is applied to the CMVB force transducer 694. The second input into the force transducer 694 is the Jacobian from the Jacobian calculator 564 The force converter 694 converts the torque Converted into equivalent force and torque, force , which should be applied to the virtual rigid body at the origin of the coordinate system CMVB. This transformation is performed according to the following formula:
[0395] = (19)
[0396] force Expressed in coordinate system CMVB. Force In the same direction as the external forces and torques applied to the manipulator 50 , instrument 160 , and energy applicator 184 .
[0397] Reverse driving force is applied to a dead band filter 695. The dead band filter 695 only passes the subsequent processing backdrive force in absolute value beyond certain defined thresholds stored in the filter 695. In some forms of the invention, the force Each component of has a threshold value. Alternatively, the threshold value is based on the magnitude of the force component and the force The magnitude of the torque component.
[0398] The filter 695 output is based on the reverse driving force The difference between the component of and the threshold. A force with an absolute value below the threshold The components of are set to zero. This filtering counteracts the inherent limitations in simulating the structure of the manipulator 50. These limitations are due in part to the difficulty of accounting for additional loads, such as the presence of cables that may be attached to the arms 68 and 70 of the manipulator. These limitations also compensate for the difficulty of simulating the friction and dynamics of the manipulator.
[0399] The force / torque sensor 108 provides a second indicia of external forces and torques applied to the manipulator 50, the instrument 160, and the energy applicator 184 to the manipulator controller 124. The output signal from the sensor 108 is applied to Fig.13E The gravity compensator 689 is shown in FIG. The gravity compensator 689 outputs a signal representing the applied force and torque, and the effects of gravity on the sensor 108, the instrument 160, and the energy applicator 184 have been substantially eliminated from the signal.
[0400] These compensations are typically subtracted from the signals representing the sensed forces and torques. Typically, such compensations are performed by reference to values stored in a lookup table integral to the compensator 689. These values can be positive or negative. The specific compensation value subtracted from any individual signal representing the measured forces and torques is typically a function of the orientation of the instrument. Therefore, the second input into the compensator 689 is data representing the actual orientation of the instrument. The orientation component of the measured posture from the forward kinematics module 562 can be used as such an indication of the actual instrument orientation.
[0401] Whenever the manipulator 50 is initially activated, data for the compensation value table maintained by the compensator 689 can be defined. To obtain these data, the arms 68 and 70 position the instrument 160 and the attached energy applicator 184 in a variety of predetermined orientations. When the instrument is in each of these orientations, the compensator 689 generates data for the lookup table based on the output from the sensor 108. Alternatively, the data for the lookup table is calculated using predetermined data about the sensor 108 and data defining the mass characteristics of the component attached to the distal pointing portion of the sensor. These data may include data stored in a memory integral to the instrument.
[0402] Due to this compensation, the practitioner is neither exposed to the actual gravitational forces acting on the instrument nor to simulated forms of such forces when holding the instrument. This reduces the physical fatigue to which the practitioner might otherwise be exposed when holding the instrument for extended periods of time.
[0403] The compensator 689 also compensates for inherent errors in the signal output by the sensor. These errors include offsets due to temperature drift. The compensator 689 compensates for these errors by adding or subtracting specific offset values for the sensor. These offset values can also be a function of the sensor orientation. These offset values are usually stored in a lookup table that is integral to the compensator 689. These lookup tables are separate from the lookup tables that store gravity compensation offset values.
[0404] The gravity compensation signal from the sensor 108 is applied to the CMVB force converter 696. The converter 696 converts these forces and torques from the coordinate system specific to the sensor 108 into equivalent forces and torques applied to the coordinate system CMVB. The Jacobian determinant used by the CMVB force converter 696 is a Jacobian determinant with constant coefficients, which is defined at the beginning of the operation using the manipulator. The Jacobian is based on the relative pose between the coordinate system of the sensor 108 and the coordinate system CMVB. Thus, the converter 696 outputs a representation of the force and torque measured by the sensor 108 expressed in the coordinate system CMVB.
[0405] The output of converter 696 is applied to attenuator 697 which is internal to manipulator controller 124. Attenuator 697 selectively attenuates the signals from a zero value to their unattenuated levels. In some forms of the invention, the ramp change is performed using a finite impulse response digital filter. The degree to which attenuator 697 attenuates these signals is a function of the pressed / released state of switch 176. When switch 176 is pressed, attenuator 697 ramps the signals down to their fully attenuated zero value. With switch 176 released, the signals ramp down to their unattenuated levels. Typically, the ramp down / ramp up is performed over a time period of 10 to 500 milliseconds. The actual time periods for the two ramp change processes do not have to be equal. In some forms of the invention, the ramp change is performed using a finite impulse response digital filter. The output from attenuator 697 is a force .force It is expressed in coordinate system CMVB.
[0406] This signal ramping reduces the extent to which large pulse forces are applied to the instrument when the switch 176 is initially depressed or released.
[0407] Force from CMVB force transducer 694 And force is applied to the external force adder 698. The adder 698 produces a weighted sum of these two representations of the external force and torque, the force .force Including force vector components, and the torque vector components, The external force adder 698 outputs the force vector components according to the following formula:
[0408] =A BDR +A FTS (20A)
[0409] here, yes The force vector components of . yes The force vector components of . A similar formula is used to calculate the external force The torque vector components are:
[0410] =B BDR +B FTS (20B)
[0411] here, yes The torque vector components of . Vector yes The torque vector component.
[0412] In formulas (20A) and (20B), A BDR , A FTS , B BDR and B FTS are weighting factors for the various force and torque variables. These weighting factors may not be constant for the entire range of external forces and torques applied to the manipulator, instrument, or energy applicator 184. These weighting factors may vary to compensate for characteristics associated with the source of the representation of the external forces and torques. For example, when lower external forces and torques are applied to the instrument, the sensor 108 may provide a more accurate representation of these forces and torques. Thus, when the manipulator is in this state, the weighting factors A may ... instrument. FTS and B FTS Higher, and the weighting factor A BDR and B BDR Lower.
[0413] When the external forces and torques are large, the output signal from the same sensor 108 may be saturated. For this configuration of the manipulator 50, the back-driving torque represents the external forces and torques over a wider dynamic range. Therefore, when the external forces and torques are large, the weighting factor A BDR and B BDR Higher, and the weighting factor A FTS and B FTS Lower.
[0414] The weighting factor is typically in the range of 0.0 to 1.0. According to empirical testing, in some forms of the invention, the weighting factor A BDR and B BDR The maximum value of is set to a value greater than 1. and Each pair typically adds to 1. In some forms of the invention, this sum may be less than or greater than 1.
[0415] force The force adder converts the force Applied to force adder 379.
[0416] The damping force and torque are also output by the force adder 380 and torque Together, the damping force and torque are identified as the force Damping force Generated to provide resistance to machine movement that simulates the natural movement of the machine.
[0417] Damping force Generated by the damping force calculator 734, such as Fig. 13B A representation of the actual velocity of the coordinate system CMVB is used as input data from which the calculator 734 determines the damping force In the illustrated form of the invention, the controlled velocity output of the cutting guide 390 is used as a representation of this velocity.
[0418] There are a number of different means by which the damping force calculator 734 can generate forces that oppose the advancement of the instrument 160. The calculator 734 can generate these forces using an algorithm where the input variable is the velocity vector. The algorithm is typically of the following form:
[0419] = (twenty one)
[0420] In some cases:
[0421] = (21A)
[0422] speed is a vector quantity, including the linear and rotational components of the controlled velocity, expressed in the coordinate system CMVB. is a matrix including damping coefficients. In many configurations of the invention, the matrix is a diagonal matrix in which the linear and rotational coefficients are not equal. Typically, the linear coefficients are the same and the rotational coefficients are the same. The coefficients of the algorithm can vary as a function of a specific range of speeds supplied to the calculator. These coefficients are typically stored in a lookup table associated with calculator 734.
[0423] Alternatively, the damping calculator 734 refers to a lookup table based on the velocity vector, in which are stored the values for the damping force. Based on the specific speed provided to the calculator 734, the calculator retrieves data that together describe the appropriate force .
[0424] Typically, the manipulator 50 is provided with a plurality of sets of damping coefficients or multiple groups of storage are useful for force Depending on the operating mode of the manipulator 50, a specific set of coefficients or a lookup table is used as reference data, by which the force is generated. This is because it is generally desirable to set the damping force as a function of the operating mode of the manipulator. For example, it is generally desirable to provide a higher magnitude of damping force when the manipulator is operating in a semi-automatic mode than when operating in a manual mode. It has been found that an increase in the damping force minimizes the instrument's reaction (resistance) to the forces to which the instrument and energy applicator 184 are exposed. This can improve the accuracy with which the manipulator 50 advances the energy applicator 184 along the path segment.
[0425] Another way that the damping force calculator 734 can generate the force resisting the advancement of the instrument 160 is to utilize an algorithm to generate the force due to "sliding friction". The magnitude of sliding friction is a constant value and is independent of surface area, displacement or position, and velocity. This type of damping is first order and is known as Coulomb damping. Coulomb damping and the viscous damping described above can be adjusted independently to maintain the stability of the instrument and control the feel of the instrument to the practitioner.
[0426] Additionally, when the practitioner depresses the switch 176 to manually set the position of the instrument 176, it is generally desirable to output a damping force of reduced magnitude. Once switch 176 is released, it is usually expected that the coefficient or refer to a lookup table, resulting in a damping force The output value of the output increases. , to quickly stop the movement of the equipment.
[0427] Damping force calculator 734 outputs the damping force , as the force to be applied to the center of mass of the virtual rigid body, expressed in coordinate system CMVB. Damping force Applied to force adder 379.
[0428] The force adder 379 (environmental force adder) receives the following inputs: joint limit force ; Interference limiting force ; Workspace boundary force ;external force ; and damping force These forces are added together. The output of force adder 379 is the environmental force, force .
[0429] The environmental force adder 379 can output the force As a weighted sum. Coefficients are applied to the individual inputs to perform this weighting. This weighting can be performed to appropriately balance the relative distribution of each input force. This balancing is performed to increase the degree to which the impression felt by the practitioner when the manipulator 50 advances the instrument in manual mode is the same as the impression he / she would feel if he / she directly applied force to advance the instrument. The coefficients can be a function of the transition of the manipulator between operating modes. During these transitions, the coefficients typically ramp up or ramp down in a time interval after the transition. Typically, this time interval is between 10 and 100 milliseconds.
[0430] Environmental Force The energy applicator force calculator 358 is applied to the tool path force calculator 278. The energy applicator force calculator 358 utilizes the force As the above input, solve equation (5). Environmental force Also applied to the total force adder 380.
[0431] The total force adder 380 receives as input the environmental force , semi-automatic equipment forward force and the force required to maintain the orientation of the device, Based on these three inputs, the total force adder 380 produces the above output: force ; and torque .force and torque can be a weighted sum of the inputs. Similarly, the environmental forces It can be a weighted sum.
[0432] Another module within the manipulator controller 124 is the instrument manager 702, such as Fig. 27 As shown. The instrument manager 702 controls the on / off state of the instrument 160. The inputs into the manager 702 include signals indicating the pressed / released states of the droop trigger 194, the instrument buttons 164 and 174, and the instrument control switch 176. The force overrider 375 provides a signal whether the instrument power generation unit 163 needs to be deactivated. The tool path generator 234 selectively judges the signal to the instrument manager 702 when the semi-automatic advancement of the instrument begins. The signal is judged when the instrument is in the target area discussed below. The cutting guide 390 provides a signal to the instrument manager 702 indicating that the boundary has been defined. The positioning actuator 270 provides data indicating that the actuator is capable of generating data describing the relative posture of the instrument and the bone. Inferentially, the latter data is data indicating that the signals transmitted by the trackers 212 and 214 are received by the locator 216. Based on the above data, the instrument manager 702 selectively judges the signal to activate and deactivate the instrument power generation unit 163. These signals are transmitted to the tool controller 132.
[0433] The instrument manager 702 determines a signal that causes the tool power generation unit 163 to be turned on in response to a variety of conditions being encountered. One of these conditions is that the cutting guide 390 has indicated that the boundary has been defined. Another condition that should be encountered is that the positioning effector 270 is able to track the relative posture of the instrument to the bone.
[0434] When the practitioner takes positive action to intentionally actuate the instrument, the instrument manager 702 actuates the instrument 160. When the manipulator is operating in manual mode, this action is a combination of a continuous depression of the switch 176 and a depression of one of the buttons 164 or 174. When the manipulator is operating in semi-automatic mode, the instrument manager 702 simply sends a signal to the tool controller 132 indicating that the power generation unit 163 should be activated if the manager receives an indication that the pendant trigger 194 is depressed.
[0435] IV. Operation
[0436] A. Manual mode
[0437] The manipulator 50 is prepared for use by attaching the energy applicator 184 to the instrument 160. The instrument 160 is mounted to the end effector 110 by means of the coupling assembly 111. Using calibration techniques, the pose of the coordinate system EAPP, the pose of the coordinate system CMVB, the pose of the coordinate system EFCT, and the pose of the coordinate system TLTR are determined relative to each other. Data describing these relative poses are provided to the manipulator controller 124, specifically to the coordinate system transformer 272.
[0438] In the case of initial actuation of manipulator 50, the boundaries of the cutting guide limiting instrument advancement have not yet been defined. Therefore, instrument manager 702 does not assert a signal to tool controller 132 that may cause instrument power generation unit 163 to actuate.
[0439] Once the bone tracker 212 is fixed to the bone, the bone is recorded relative to the coordinate system BTRK. The surgical staff uses the navigation interface 220 to adjust and confirm the positioning of the boundary relative to the bone. Once this step is performed, the boundary generator 232 uses these data to calculate the coordinate system associated with the boundary relative to the coordinate system BTRK. This relationship is fixed. These relationship data are applied to the coordinate system converter 272. The data defining the position of the boundary definition patch is loaded into the cutting guide 390.
[0440] Once the patch definition data is loaded into the cut guide 390, the cut guide 390 asserts a signal to the instrument manager 702 indicating that the boundary has been defined. Receipt of this signal by the instrument manager 702 enables the practitioner to now actuate the instrument 160.
[0441] In addition, as part of the initial configuration of the instrument, the tool controller 132 is set to output the excitation signal required to cause the instrument to output the energy specified by the practitioner when actuated. For example, if the instrument 160 includes a motor, the tool controller 132 is set to cause the instrument motor to operate at the motor speed desired by the practitioner. If the instrument 160 is an electrosurgical tool, the tool controller 132 is set to cause the instrument to obtain a suitable current and / or cause a suitable voltage to pass through the two electrodes. If the instrument emits photon energy, the instrument controller 132 is set to cause the instrument 160 to output the photon energy of the appropriate wattage. These settings are performed by inputting commands through the user interface 130.
[0442] The manipulator 50 can be operated by pressing a button (button not shown) displayed on the user interface 130. In response to the button pressing, the manipulator controller reads the signals from the encoders 112, 114, 116, 117 and 118 as measured joint angles. Based on these data, the forward kinematics module 562 determines an initial set of calculated joint angles. The forward kinematics module 562 also outputs the initial pose of the coordinate system CMVB relative to the origin of the manipulator coordinate system MNPL.
[0443] Based on the measured joint angles, the calculated joint angles and the initial pose of the coordinate system CMVB, comparators 582, 622 and 652 perform initial comparisons. These comparisons are used to determine whether the manipulator violates any of the joint limits, interference limits or workspace limits in the initial state (steps not shown). If any of these limits are violated, an error message is displayed on the user interface 130. Further operation of the manipulator is locked until such violation is resolved.
[0444] The initial pose of the coordinate system CMVB obtained by forward kinematics is also used as the initial controlled pose of the coordinate system. The controlled velocity is initially set to zero.
[0445] Therefore, the integrator 386 has as the first frame initial state data representing the actual pose and initial controlled velocity of the coordinate system CMVB, which is zero. The controlled pose is initially passed to the inverse kinematics module 542.
[0446] As with any commanded pose data, the inverse kinematics module uses the commanded pose to determine the commanded joint angles applied to the joint motor controllers 126. In this initial frame, the measured joint angles are already substantially at the commanded joint angles.
[0447] When the joint motor controller 126 is initially activated, the brake keeps the active joint stationary. After the joint motor controller 126 is activated, the brake is released. In response to the release of the brake, gravity begins to act on the coupling. When the active joint begins to move away from the controlled joint angle, the controller 126 causes the motor 101 to output a torque to offset gravity. Therefore, the joint motor controller 126 causes the torque that basically keeps the arm stationary to be output. Once the brake 103 has been released, the manipulator 50 is able to position the instrument 160.
[0448] During the time period when the switch 176 is not pressed, the sensor signal attenuator 697 completely attenuates, preventing the signals from being transmitted from the force torque sensor 108 to the external force adder 698. Blocking these signals prevents unintended movement of the manipulator, which may be caused by drift and random variations in the signals from the sensor 108. If these drifting and varying sensor signals were passed past the attenuator 697, they would be interpreted as indicating that the practitioner has applied force and / or torque to the instrument. This would cause other modules within the manipulator controller 124 to generate commands that would result in unintended movement of the manipulator.
[0449] In reverse driving force In the event that one arm 68 or 70 or attached component is subjected to an external force, the manipulator controller 124 will reposition the instrument 160 even if the practitioner is not attempting to move the instrument. This prevents damage to the manipulator and structural components of the instrument 160 in the event that either of these devices are inadvertently collided inexplicably. It should be understood that these unintended forces must be greater than the minimum force passed by the dead band filter 695.
[0450] The manipulator 50 is initialized in manual mode by default. When the manipulator is in manual mode, the instrument 160 is not advanced semi-automatically. The tool path force calculator 278 does not output force and torque signals to the total force adder 380 that would facilitate semi-automatic advancement of the instrument.
[0451] In order for the practitioner to position the instrument, the practitioner presses the start switch 176. At the same time, the practitioner applies forces and torques to the instrument. These forces and torques are similar in magnitude to those that would be applied to an instrument held in the hand to control the posture of the instrument. In response to sensing the state change of the switch 176, the sensor signal attenuator 697 causes the signals from the sensor 108 to ramp up to their unattenuated levels. This signal ramping change ensures that the joint motor 101 does not suddenly apply a large amount of torque to the manipulator 50 when initially applying torque to the arm.
[0452] In response to the practitioner applying forces and torques to the instrument, the sensor 108 outputs signals representing these forces and torques. These signals are transmitted to the external force adder 698 through the sensor signal attenuator 697. The external force adder adds these signals to the external force (caused by the reverse driving force). The external force adder 698 then outputs these signals to the total force adder 380 via the environmental force adder 379. The force applied by these practitioners is thus the force output by the total force adder 380. and torque The amount.
[0453] Therefore, when the integrator 386 generates posture and velocity data, it is based in part on the representation of the force and torque applied by the practitioner. The cutting guide 390 outputs the controlled posture and controlled velocity for the coordinate system CMVB based on the posture and velocity generated by the integrator. Based on the controlled posture, the inverse kinematics module 542 and the control dynamics module 544 generate signals representing the controlled joint angle and forward feed torque for the active joint, respectively. The joint motor controller 126 applies the necessary current to the joint motor 101 based on the controlled joint angle and the forward feed torque. These are currents that cause the motor 101 to output torques that cause the active joints to advance toward their controlled joint angles. This causes the instrument to move, and the movement simulates the movement of the instrument 160 when the force and torque applied by the practitioner are applied to the center of mass of the instrument held in the hand.
[0454] To actuate the instrument 160, either button 164 or 174 is turned on while switch 176 is pressed. When this condition exists, the instrument manager 702 asserts a command signal to the tool controller 132. This is a command signal instructing the controller 132 how to actuate the instrument. Based on receiving the command signal, the tool controller 132 applies a suitable excitation signal to the instrument 160 to actuate the instrument. In the case where the instrument 160 includes a motor and the energy applicator 184 is a drill or other cutting attachment, the application of the excitation signal causes the energy applicator 184 to rotate.
[0455] As the instrument 160 and the energy applicator 184 advance, the positioning effector 270 continuously generates data indicating the pose of the bone tracker 212 and the tool tracker 214 relative to the positioner 216. These data are passed to the coordinate system transformer 272. The coordinate system transformer 272 receives data indicating the pose of the end effector 110 relative to the manipulator coordinate system MNPL from the forward kinematics module 562. The coordinate system transformer 272 generates data indicating the pose of the boundary coordinate system relative to the coordinate system MNPL based on the following data: the fixed pose of the boundary coordinate system relative to the bone tracker coordinate system BTRK; the kinematic pose of the bone tracker coordinate system BTRK relative to the positioner coordinate system LCLZ; the kinematic pose of the positioner coordinate system LCLZ relative to the tool tracker coordinate system TLTR; the fixed pose of the tool tracker coordinate system TLTR relative to the end effector coordinate system EFCT; and based on the forward kinematics module; the pose of the end effector coordinate system EFCT relative to the manipulator coordinate system MNPL.
[0456] Based on the energy applicator 184, the fixed pose of the coordinate system EAPP relative to the coordinate system EFCT and the moving pose of the end effector coordinate system EFCT relative to the coordinate system MNPL, the coordinate system transformer 272 generates data indicating the pose of the coordinate system EAPP relative to the coordinate system MNPL.
[0457] Thus, the coordinate system transformer 272 provides data to the cut guide 390 indicating the pose of the coordinate system EAPP and the boundary coordinate system relative to the manipulator coordinate system MNPL.
[0458] In addition to the above data, cutting guide 390 contains previously stored data defining the pose of the boundary forming patch relative to the origin of the boundary coordinate system. Based on these data, cutting guide 390 performs the above reference Figures 21A-21C The processing steps described are to determine whether the practitioner's intended advancement of the instrument 160 will cause the energy applicator 184 to cross the boundary defining patch. If this evaluation test is negative, the cut guide 390 outputs the integrator generated pose and velocity as the commanded pose and velocity.
[0459] Alternatively, if the integrator-generated position is presented to exceed the boundary-defining patch, the cutting guide 390 generates data that determines that one or more pulses need to be applied to the virtual rigid body to avoid the motion. The controlled posture output by the cutting guide 390 is based on the pulse (or multiple pulses). Therefore, the manipulator 50 will not advance the arm to cause the energy applicator 184 to cross the patch. Instead, the manipulator will advance the arm while keeping the energy applicator 184 within the volume defined by the boundary. If the energy applicator 184 is used to remove tissue, then this method of advancing the energy applicator 184 causes the manipulator to only allow energy to be applied to remove the tissue that the practitioner requires to be removed. This causes the remaining tissue to have a defined shape, surface 242, that the practitioner desires.
[0460] As described above, the gear assembly that transmits torque from the joint motor to the shoulder and the coupling is substantially a zero backlash gear assembly. This feature of the present invention means that during the actual rotation of the gear, there is substantially no slippage, looseness, in the movement in which the shoulder or coupling / couplings are actuated. This minimization of slippage results in very stable component movement. In addition, this minimization results in precise positioning of the attached arm and shoulder. Together, these features enable the joint motor to quickly reposition the shoulder and coupling, and to perform such repositioning with high precision. This includes repositioning due to the reverse rotation of the joint motor and the gear assembly.
[0461] During manual mode advancement of the energy applicator 184, the joint limit comparator 582, the interference limit comparator 622, and the workspace limit comparator 652 perform their above-described analyses. If a corresponding one of the boundaries is crossed, then the appropriate constraint force is provided to the environmental force adder 379. The constraint force applied to the virtual rigid body substantially prevents the manipulator from advancing the arm in a manner that would cause a joint to exceed a joint limit, cause a pair of arms to move beyond their interference limits, or cause the energy applicator 184 to exceed a workspace limit.
[0462] Although not shown in the flow chart, the joint limit comparator 582 evaluates whether any joint has exceeded one of its joint limits; the interference limit comparator 622 evaluates whether any pair of arms is at a distance less than their interference limits; and the workspace boundary comparator 652 evaluates whether the energy applicator 184 has moved beyond its workspace boundary limit. Typically, if the manipulator is damaged, fails, or is subjected to extremely high external forces, only one of these conditions will occur. If any of these conditions test true, the manipulator controller 124 stops the advancement of the arm and engages the brake, disabling the instrument power generation unit 163, the relationship of which is not shown. An error message is displayed to the user. The manipulator is considered to have entered an unstable state. The manipulator remains in this state until the error is resolved.
[0463] As described above, during advancement of the instrument, the removed material recorder 275 generates and stores data. These data determine the volume of tissue to which the energy applicator 184 is applied.
[0464] At any time during the manual mode advancement of the instrument, the practitioner can deactivate the instrument by one of the secondary activation buttons 164 or 174. In response to the secondary activation button 164 or 174, the instrument manager 702 sends a signal to the tool controller 132 causing the controller to deactivate the instrument power generation unit 163. Additional activation of the button 164 or 174 causes the instrument manager 702 and the tool controller 132 to deactivate the instrument power generation unit 163.
[0465] Once the practitioner has completed specific application of the energy applicator 184 to the tissue, the practitioner releases the pressure on the switch 176. In response to the release of the switch 176, the instrument manager 702 sends a signal to the tool controller 132 causing the controller to deactivate the instrument power generating unit 163. This prevents actuation of the instrument when the practitioner has removed his / her hand from the instrument.
[0466] The sensor signal attenuator 697 is also responsive to the release of the switch 176. When this occurs, the attenuator 697 ramps down the application of the signal from the force / torque sensor 108 to the external force adder 698. This results in a ramp down of the external force component applied to the ambient force adder 379. The ramping down of this component results in a similar ramp down of the force and torque output by the total force adder 380 to include a component based on the degree to which the practitioner desires the instrument positioning.
[0467] Integrator 386 also receives data indicating that switch 176 has been released. In response to receiving this data, integrator 386 rapidly ramps down the magnitude of the velocity signal output by the integrator. These velocities are ramped down to zero in a time period that is typically 250 milliseconds or less. Alternatively, this velocity ramping down can be achieved by temporarily increasing the damping force applied to environmental force adder 379.
[0468] Assuming no other forces are applied to the ambient force adder 379, the speed ramp down causes the instrument 160 to stop advancing. The joint motor controller 126 continues to apply current to the joint motor 101. These currents cause the joint motor 101 to output torques that hold the shoulder and arm in their final positions based on the final commanded posture output by the cutting guide 390. The manipulator holds the instrument in the final posture, at least temporarily, until the switch 176 is released.
[0469] When the switch 176 is released, the cutting guide 390 may be in the process of applying force to the virtual rigid body to prevent the energy applicator 184 from passing over the patch. If this condition exists, the release of the switch 176 does not cause a rapid stop in the advancement of the instrument. The cutting guide 390 continues to output the forces that need to be applied to the virtual rigid body. Therefore, the output of these forces causes the manipulator to continue to position the instrument so that the energy applicator 184 remains within the boundary range.
[0470] As described above, the release of switch 176 usually causes manipulator 50 to stop the advancement of instrument 160. There may be a situation that prompts the instrument to move further. As described above, one such situation is that the cutting guide 390 determines that it seems that the energy applicator 184 will cross the patch. In some cases, the cutting guide 390 makes this determination after the switch 176 is released. The reason why this determination may occur is that even after the switch 176 is released, the software module remains active. The cutting guide 390 continues to selectively generate a force applied to the virtual rigid body to prevent the energy applicator 184 from crossing the boundary. This situation may occur when the patient's movement relative to the instrument causes the energy applicator 184 to obviously cross the boundary when the instrument 160 is stationary. If the cutting guide 390 determines that this crossing is occurring, the cutting guide applies a force to the virtual rigid body, which effectively moves the energy applicator 184 so that the applicator does not cross the boundary. In other words, due to the movement of the bone, the manipulator 50 can continue to reposition the instrument.
[0471] There may be other conditions that cause the manipulator 184 to cause the instrument 160 to advance to a certain extent when the switch 176 is in the released state. Specifically, if the joint motor 101 is subjected to a reverse driving force or one of the behavior control modules outputs a restraining force, a non-zero addend is still applied to the environmental force adder 379. The total force adder 380 then outputs a non-zero total force and total torque to the acceleration calculator 384. If these outputs from the total force adder 380 are non-zero, the integrator 386 causes the speed to be ramped up to a speed based on the total force and total torque after initially ramping the speed down. Thus, if there is a reverse driving force or a restraining force, the manipulator 50 continues to reposition the instrument after initially stopping the instrument from advancing. This advancement occurs until the integral of these accelerations over time drops to zero due to these forces.
[0472] Once the integral of these accelerations over time drops to zero and the cutting guide 390 no longer applies force to the virtual rigid body, the manipulator 50 holds the instrument 160 in a static posture. The manipulator 50 remains in this state until repositioned by the practitioner.
[0473] When the operation is completed, the manipulator can be deactivated by pressing a button displayed on the user interface 130, where the button is not shown. When the button is pressed, the brake 103 is engaged again. Once sufficient time has passed to ensure that the brake 103 is engaged, the manipulator controller 124 sends commands to the joint motor controller 126. In response to these commands, the joint motor controller terminates the application of current to the joint motor 101.
[0474] B. Semi-automatic mode
[0475] Initialization steps are performed to operate the manipulator in manual mode to prepare the manipulator for semi-automatic operation. The instrument 160 and energy applicator 184 are connected together and connected to the end effector 110. Appropriate calibration, navigation registration and boundary positioning are performed. The boundary is loaded into the cutting guide 390.
[0476] In some forms of the invention, manipulator 50 is ready to advance instrument 160 semi-automatically once manual mode operation is enabled. Fig.28A , it can be seen that the initial step in the semi-automatic operation of the instrument is to generate a tool path along which the energy applicator 184 should advance, step 760. In step 760, the tool path generator 234 generates data defining the tool path 248 ( Fig. 15C ). The tool path, and a set of path segments 256, 262, and 266, define the location along the tissue to which the energy applicator 184 should be applied. As part of step 760, the tool path generator 234 references data obtained from the material removed recorder 275. In the case of performing step 760 at the beginning of the procedure, these data indicate that the energy applicator 184 has not yet been applied to the tissue. If this condition exists, then the starting point of the tool path against the tissue, point 258, is the initial calculated path starting point.
[0477] Alternatively, data from the material removed recorder 275 may indicate that the energy applicator 184 previously applied one or more volumes of tissue. Typically, this is due to the previous manual mode advancement of the instrument removing tissue. If this condition exists, the tool path generator 234 generates a revised tool path 248. The revised tool path 248 is a collection of path segments along the remaining tissue, which is the tissue that the energy applicator 184 did not apply to, and the energy applicator 184 should now pass through the revised tool path. The generation of the revised tool path 248 avoids moving the energy applicator 184 in free space in an attempt to remove tissue that was previously removed. As a result of the generation of this revised tool path, the tool path generator can generate a new position for point 258, which is the starting point of the tool path along the tissue to which the energy applicator 184 will be applied.
[0478] It should be understood that even if the tool path generator 234 defines a set of path segments extending over the tissue to be removed, not all of the path segments may extend over the tissue. Certain path segments may extend in the free space between the path segments extending over the tissue.
[0479] Before the instrument begins semi-automatic advancement, the practitioner positions the instrument by performing manual mode operation of the manipulator 50 so that the origin of the coordinate system EAPP is within the so-called target area, step 762. The target area is the space near the starting point (point 258) of the tool path on the tissue. In some forms of the invention, the target area is a volume within 2 cm of the path starting point 258 above the bone. In other forms of the invention, the target area is a volume within 1 cm above the path starting point 258. Based in part on the tracking of the instrument and the bone performed by the positioning effector, the coordinate system transformer 272 generates data indicating that the origin of the coordinate system EAPP of the energy applicator 184 is near the starting point 258. The coordinate system transformer 272 provides the data to the navigation processor 218. Based on this data, the navigation processor 218 displays an image on the interface 220 indicating the position of the energy applicator 184 relative to the tool path starting point 258. The practitioner refers to the display to position the instrument.
[0480] Once the practitioner has completed the rough positioning of the instrument, the manipulator controller 124 continues to hold the instrument in the final controlled posture. This presents that neither the arm nor the instrument is subject to restraining or reverse driving forces.
[0481] Once it is determined that the instrument is in the target area and the practitioner desires to begin semi-automatic operation, the practitioner presses the pendant trigger switch 194, step not shown. The user interface 130 continuously monitors the pendant 190 to determine whether the trigger switch is pressed, step 764. The pressing of the trigger 194 places the manipulator in semi-automatic mode. The pendant trigger 194 must remain pressed during the entire time period that the practitioner desires to advance the instrument semi-automatically. As discussed in more detail below, the release of the pendant trigger 194 returns the manipulator 50 to manual mode.
[0482] An intermediate effect of placing the instrument in semi-automatic mode is that the tool path generator 234 generates a path segment that extends through free space, step 766. A free space path segment is a portion of the tool path along which the energy applicator 184 should be advanced to reach point 258.
[0483] Prior to pressing the trigger 194, the user interface 130 sets the user adjustment input of the feed rate calculator 284 to zero, in a step not shown. Thus, when the trigger 194 is initially pressed, the feed rate calculator 284 outputs a default instrument feed rate of zero. Thus, these output signals cause the tool path force calculator 278 to initially generate a set of forces and torques that are applied to the total force adder 380 to maintain the energy applicator 184 approximately in the position it was in when the trigger 194 was pressed. Typically, in semi-automatic advancement of the instrument, the forces and torques output by the tool path force calculator 278 at this stage are close to zero.
[0484] With the initial depression of the pendant trigger 194, the manipulator controller 124 also verifies that the origin of the coordinate system EAPP of the energy applicator 184 is within the target area. If the energy applicator 184 is outside the target area, there is an increased likelihood that the free space path segment may cross one of the boundary defining patches or tissue segments that will not be cut. Therefore, the manipulator 50 only allows semi-automatic instrument advancement to begin when the energy applicator 184 is within the target area.
[0485] exist Fig.28A , steps 768 and 770 represent the process by which the manipulator 50 evaluates the proximity of the origin of the coordinate system EAPP of the energy applicator 184 to the tool path point 258. Step 768 is a determination made by the tool path generator 234 regarding the distance from the energy applicator 184 to the point 258. Step 770 is an evaluation of whether the distance indicates that the energy applicator 184 is in the target area. If the instrument is not in the target area, then information is displayed on the interface 220, step 772. The practitioner must then reposition the instrument. In order to so reposition the instrument, the practitioner must first release the trigger 194, a step not shown. In the described form of the invention, the manipulator automatically loops back to step 760 due to the release of the trigger 194.
[0486] When it is determined that the origin of the coordinate system EAPP is in the target area, the tool path generator 234 sends data about this fact to the instrument manager 702, a step not shown. The instrument manager 702 then sends a command to the tool controller 132. The command instructs the tool controller to apply an excitation signal to the instrument, thereby actuating the instrument power generation unit 163. The above steps are Fig.28A 774. To adjust the operating settings for the drive instrument 160, commands entered via buttons are displayed on the manipulator display (buttons not shown). Based on the pressing of these buttons, the user interface 130 sends commands to the tool controller 132 to adjust the operation of the tool power generation unit 163, steps not shown.
[0487] If the evaluation test of step 770 is positive, then the tool orientation adjuster 368 defines the reference surface 369, the aperture 370 and the centering point 371, step 776. These geometric landmarks are defined based on a representation of the actual pose of the instrument 160 relative to the bone. The commanded pose transformed into coordinate system BONE is used to represent the actual pose.
[0488] Once the practitioner is ready to begin semi-automatic advancement of the instrument 160, the practitioner presses button 195, step not shown. In some forms of the invention, the user interface 130 outputs a user-adjusted coefficient representing the feed rate based on the pressing of buttons 193 and 195. In some forms of the invention, the coefficient is 0.0, 0.25, 0.40, 0.70 or 1.0. This is the coefficient applied to the feed rate calculator 284 as the USERADJUST input. Each press of the pendant button 193 causes the user interface to readjust the feed rate coefficient downward to a level. Each press of the pendant button 195 causes the user interface to readjust the feed rate coefficient upward to the next higher level. The user interface 130 continuously monitors the pendant 190 to determine whether buttons 193 or 195 are pressed, step 778. In order to understand the present invention, it should be understood that the necessary command to start the advancement of the instrument is a command to reset the USERADJUST coefficient to greater than 0.
[0489] The initial press of button 195 causes user interface 130 to adjust upward the level of USERADJUST coefficient applied to feed rate calculator 284. The level to which the coefficient is set is a function of the number of times button 195 is pulsed. Feed rate calculator 284 outputs a non-zero instrument feed rate in response to receiving the non-zero coefficient, step not shown. This presents that none of the other coefficients applied to feed rate calculator 284 are zero. Based on this indication that the instrument is advancing at a non-zero speed, the downstream modules of tool path force generator 234 cooperate to output a sequence of forces and torques that need to be applied to the virtual rigid body to advance energy applicator 184 along the tool path. These forces and torques are applied to total force adder 380. Subsequently, the downstream modules of total force adder 380 cooperate to advance the instrument 160 and energy applicator 184 as desired, step 782. Although the advancement of the instrument is shown as a distinct step, it should be understood that the steps described below are performed when the instrument is advanced semi-automatically.
[0490] Initially, in this advancement of the energy applicator 184, the energy applicator 184 moves along a free space path segment; the path segment leads to point 258. From point 258, the energy applicator 184 advances along the path segment on the tissue. In the described form of the invention where the energy applicator 184 is a burr, this means that the rotating burr head is pressed against the tissue as the energy applicator 184 advances beyond point 258. Due to the geometry of the burr head, the rotation of the burr head obtained by the instrument power generation unit (motor 163), and the force applied to the burr head by the manipulator 50, the burr head removes the tissue to which it is applied, a step not shown.
[0491] exist Figures 28A-28G In the embodiment, these steps are shown to be performed sequentially. It should be understood that many steps are performed continuously and substantially simultaneously during the entire time period during which the instrument is advanced semi-automatically. In some cases, the functions represented by the process steps are implemented as independent continuous functions. Figures 28A-28G It does not represent the order in which the process steps are performed by the modules or the decisions made by the modules. These figures represent the aggregate effect of the practitioner's perception of the above processes performed by the modules.
[0492] As the energy applicator 184 is advanced against the tissue, the material removed recorder 275 generates and stores data indicating the portions of tissue to which the energy applicator 184 is applied, step 784. This data is used to update previously acquired data indicating the portions of tissue to which the energy applicator 184 is applied. In subsequent executions of step 760, the tool path generator 234 uses this updated data to generate a revised tool path.
[0493] Since the manipulator 50 is operating in a semi-automatic mode, the force overrider 375 performs its previously described monitoring of the manipulator and instrument. Step 786 represents a determination of the power output by the energy applicator 184. The determination that the power output exceeds a predetermined lower limit value for a specified time period is interpreted by the manipulator 50 as the system of the present invention being able to operate in a desired state. Therefore, as part of step 786, a marker of the power output by the energy applicator 184 is compared to the lower limit value for the marker. If this evaluation test is true, then the force overrider 375 sends a command to the instrument manager 702. In response to the command, the instrument manager 702 instructs the controller 132 to deactivate the instrument power generation unit 163. The tool controller 132 therefore deactivates the instrument. The above steps collectively form the execution of step 794. The force overrider 375 instructs the feed rate calculator 284 to ramp the instrument feed rate to zero. This causes the manipulator to stop the advancement of the energy applicator 184. This in Fig.28B In the figure, step 796 is executed.
[0494] The force overrider 375 also causes the user interface 130 to display information indicating why the instrument terminated semi-automatic advancement, step 798. This provides the surgeon with an opportunity to investigate why the instrument outputted more torque than expected, thereby determining whether an undesirable condition exists at the site to which the energy applicator 184 is applied.
[0495] The manipulator 50 causing the instrument to stop advancing in step 796 does not stop the manipulator from continuing to adjust the degree of torque output by the joint motor 101. The force and torque output by the tool path force calculator 278 are the forces and torques that need to be applied to the virtual rigid body to keep the energy applicator 184 in its final target position. The total force adder 380 and the downline module cause the joint motor 101 to output a torque that causes the arms 68 and 70 to keep the energy applicator 184 in the final target position, a step not shown.
[0496] Although the manipulator 50 is still in semi-automatic mode, the manipulator will not advance the energy applicator 184 after step 798. This provides the practitioner with an opportunity to address the condition that caused the applicator to stop advancing. The manipulator controller 124 allows the practitioner to resume semi-automatic advancement of the energy applicator 184 after the warning has been understood. Step 799 represents the force overrider 375 waiting for such understanding. The practitioner indicates such understanding by pressing a button. When the manipulator 50 is in this state, the instrument button 172 can be used as a button that is pressed for the practitioner to understand the warning of step 798.
[0497] Once the warning is understood, the force overrider 375 places the manipulator in a state where it can continue the current semi-automatic tool advancement. This is indicated by the transition from step 799 back to step 774. The instrument manager 702 again determines the command that causes the instrument power generation unit 163 to actuate. The instrument orientation landmark is reset when step 776 is re-executed. Then, based on the practitioner resetting the USERADJUST coefficient to greater than 0.0, step 778 is re-executed and the energy applicator 184 is again advanced, executing step 782.
[0498] Another component of step 786 is to compare the signature of the power output by the energy applicator 184 to the upper limit level for that signature for a specified period of time. This evaluation test being true is interpreted by the force overrider 375 as a greater probability that the manipulator is in an undesirable state. Therefore, if this evaluation test is true, the manipulator controller takes the necessary steps to transition to manual mode and disable operation of the energy applicator 184. This is represented as a branch from step 786 to steps 864 and 866 described below.
[0499] Step 788 represents the force overwriter monitoring the force output of the force calculator 358. In step 788, the force overwriter 375 sets the force The above lower and upper limits are compared with the values associated with them. If the evaluation shows that for the specified time period the force has exceeded its lower limit, then is interpreted as indicating that there is an obstacle 828 near the surgical site that is preventing advancement of the energy applicator 184. Therefore, if the evaluation test of step 788 is true, then the force overrider 375 causes the aforementioned steps 794, 796, 798, and 799 to be performed.
[0500] This provides the surgeon with an opportunity to determine why advancement of the energy applicator 184 is being impeded. If appropriate, the surgeon can take steps to address the condition that caused the energy applicator force calculator 358 to indicate that a large value of force / torque needs to be applied to the virtual rigid body.
[0501] In step 788, the force overrider 375 may determine the force Its upper limit has been exceeded. This evaluation test being true is interpreted as a greater probability that the manipulator is in an undesirable state. Therefore, the manipulator controller branches to steps 864 and 866 to return to manual mode and deactivate the energy applicator 184.
[0502] The force overrider 375 also monitors signals representing the forces and torques sensed by the sensor 108, step 804. This monitoring is performed to determine if excessive external forces are being applied to the instrument 160 or the energy applicator 184. There is some resistance to advancement of the instrument 160 due to the normal resistance of the tissue to which the energy applicator 184 is applied. During semi-automatic advancement of the instrument, the force / torque sensor 108 outputs signals indicating that the sensor is exposed to a minimum level of force and torque in response to the application of tissue resistance.
[0503] This evaluation may indicate that the force and torque sensed by the sensor 108 exceed the lower limit values for more than a specified period of time. This situation may occur if the obstacle 828 applies some type of resistive force to prevent the advancement of the energy applicator 184. If this condition tests true, the force overrider 375 branches to steps 794, 796, 798 and 799 to temporarily stop the semi-automatic advancement of the energy applicator 184.
[0504] In addition, during the semi-automatic advancement of the instrument, a situation may occur that causes the surgeon to suddenly attempt to reposition the instrument. When such an action is employed, the practitioner may inadvertently fail to release the pendant trigger 194. If such a situation occurs, the force / torque sensor 108 is exposed to higher forces and torques in response to the practitioner's efforts to move the instrument away from the tool path. These forces and torques exceed the high force / torque limits maintained by the force overrider 375. Therefore, in step 804, the force overrider also evaluates the output of the sensor 108 to determine whether these forces / torques have exceeded their higher limit values for a time greater than a specified time period.
[0505] If the above evaluation tests true, then the force overrider 375 determines a command that causes the instrument power generating unit to be disabled, step 808. The force overrider 375 also determines a command that causes the instrument to cease semi-autonomous advancement, step 810. The same software and hardware that performed steps 794 and 796 perform steps 808 and 810, respectively.
[0506] The force overrider 375 also causes the force output of the energy applicator force calculator to The tilt changes to zero. This disengages the manipulator from the semi-automatic mode and returns the manipulator to the manual mode of operation, represented by step 811. Due to the magnitude of the force and torque applied by the practitioner, the back-drive force is greater than the threshold stored in the deadband filter 695. The external force adder 698 outputs a force to the ambient force adder 379 based on the force applied by the practitioner. Thus, even though the switch 176 may not be depressed, the manipulator 50 (represented by step 812) repositions the instrument in response to the force and torque applied by the practitioner to force the energy applicator out of the tool path.
[0507] Once the instrument is so repositioned, the manipulator returns to step 760. Semi-automatic advancement of the instrument is deactivated by depressing the pendant trigger, step 764.
[0508] During advancement of the energy applicator 184, the tool orientation regulator 368 monitors the orientation of the instrument 160. Fig.28C , this is shown as a separate step 814. It will be appreciated that this monitoring occurs concurrently with the advancement of the energy applicator 184. It will be appreciated that during this process, the positions of the reference surface 369, the orifice 370, and the centering point 371 are defined relative to the coordinate system BONE.
[0509] Initial reference Fig.29A and 29B 369. The figures illustrate the initial orientation of the instrument and energy applicator 184. Here, the instrument longitudinal axis extends through the centering point 371 in the aperture 370. The longitudinal axis of the instrument is perpendicular to the reference surface 369.
[0510] During semi-automatic advancement of the instrument, the goal is to advance the energy applicator 184 along the tool path. From the above description, it should be understood that this is the movement caused by the application of forces and torques to the virtual rigid body based on the calculations performed by the energy applicator force calculator 358.
[0511] As described above, the tool orientation adjuster 368 generates another set of forces and torques applied to the virtual rigid body. This is to minimally ensure that the manipulator orients the instrument so that the instrument axis remains in the aperture 370 of the reference surface. Ideally, the manipulator can orient the instrument so that the instrument axis intersects the centering point 371 of the aperture.
[0512] Fig. 30A and 30B 371 is shown when the energy applicator coordinate system EAPP is spaced a short distance from a line extending perpendicular to the reference plane 369 through the centering point 371. Fig.29B Go forward to Fig. 30B When the position Output by the tool orientation adjuster 368 for application to the virtual rigid body. This is the force that causes the manipulator to pivot the instrument so that the common axis continues to extend through the centering point 371 .
[0513] like Fig.31 As shown, during semi-automatic advancement of the instrument, the manipulator can position the energy applicator 184 so that the applicator is advanced along a portion of the tool path 248 that is outside the area contained by the orifice 370. This area is shown in dashed lines. Even when the energy applicator 184 is so positioned, the tool orientation adjuster 368 applies a force , so that the manipulator orients the instrument so that the common axis substantially intersects the centering point 371. In certain configurations of the present invention, when the tool orientation adjuster 368 defines an orifice 370 with a radius of 3 cm in a reference surface 369 located more than 15 cm above the tissue surface, the manipulator 50 is able to position the energy applicator 184 so that it can be positioned 20 cm or more from a normal line passing through the centering point 371. Even if the energy applicator 184 is located at the periphery of the area, the force applied to the virtual rigid body The manipulator orients the instrument so that the common axis substantially intersects the centering point 371.
[0514] The manipulator 50 is further configured so that minor obstacles 828 that may present themselves above the tool path 248 do not prevent the energy applicator 184 from advancing along the tool path. These obstacles include tissue that protrudes outwardly above the tool path. Instruments such as suction applicators and retractors may also protrude above the tool path. Fig.28C , whether an obstacle 828 is present is shown as being a conditional test of step 818. Assuming that there is no obstacle 828, the condition of step 818 is negative, and this semi-automatic advancement of the instrument continues to step 836 as indicated by the progression.
[0515] If an obstacle 828 is present, then the condition of step 818 is positive and the obstacle 828 resists the tool orientation adjuster 368 from outputting sufficient force. The force causes the manipulator to maintain the common axis through the centering point 371, a step not shown. In response to this occurrence, the manipulator 50 advances the instrument so that the common axis moves toward the periphery of the orifice 370, a step not shown. The movement of the common axis away from the centering point 371 can be said to be caused by the resistance of the obstacle 828, which is not balanced and is greater than the force applied to the virtual rigid body. In response to the movement, the tool orientation adjuster adjusts the force , to ensure that the manipulator 50 orients the instrument so that the common axis remains in the orifice, step 824. Typically, this force Greater in magnitude than the previous output force .
[0516] In response to a newly applied force , the manipulator can position the instrument so that the common axis intersects the aperture 370 through a point in the aperture 370 spaced from the centering point 371 . Fig.32A , 32B 32C shows the instrument in this position. This new position of the common axis is the force applied to the virtual rigid body and the position where the resistance of barrier 828 is in equilibrium.
[0517] The obstacle 828 may yield to the instrument, step 826. This may occur if the obstacle 828 is a yieldable material (e.g., soft tissue). Alternatively, this may occur if the obstacle 828 is rigid but fixed to yieldable tissue. If the obstacle 828 yields, the manipulator causes the instrument to continue to advance. When the obstacle 828 yields, the force applied to the virtual rigid body becomes greater than the resistance of obstacle 828. This causes the manipulator to restore the instrument to an orientation where the common axis substantially intersects the centering point 371, a step not shown. Fig.28F , yielding of obstacle 828 is identified as branching to step 836 .
[0518] The common axis may remain in the reference surface aperture 370 even if the obstacle 828 will not yield, the condition of step 826 being negative, the condition of step 830 evaluating. If this condition exists, the manipulator 50 continues semi-automatic advancement of the instrument, branching to step 836.
[0519] Alternatively, the result of the conditional test of step 830 may be negative. In this case, the tool orientation force regulator 368 outputs a high value of force The force based on Fig.19 The force The output of is represented by step 832.
[0520] In step 834, the force The magnitude of the force is compared to the lower and upper limits associated with the force. This evaluation is performed by force overrider 375. If both evaluations test negative, the manipulator responds to the new force. Applied to the virtual rigid body to reorient the manipulator. This is shown as branching back to step 824.
[0521] Alternatively, as a result of the evaluation of step 834, the force overrider 375 may determine that the force Exceeds the lower limit value for the force. If the force overrider 375 makes such a determination, then the force overrider interprets that the manipulator is in a state where semi-automatic advancement should be at least temporarily stopped. This is shown as branching to the aforementioned steps 794, 796, 798 and 799.
[0522] In some cases, for a period of time greater than a specified period of time, the force output by the tool orientation regulator 368 may be The high limit associated with the force may be exceeded. This situation may occur in the event that the obstacle 828 collides with the instrument 160 or the energy applicator 184. Therefore, the force overrider 375 interprets the second evaluation test of step 834 as true as the manipulator being in an undesirable state. Therefore, the manipulator controller 124 branches to steps 864 and 866 to transition the manipulator back to manual mode and deactivate the instrument.
[0523] During semi-automatic advancement of the instrument 160, the practitioner may decide to reorient the instrument while the energy applicator 184 is advanced along the tool path 252. It may be desirable to reorient the instrument in this manner to avoid contact between the instrument and tissue or another instrument that may be adjacent to the tool path.
[0524] Step 836 represents a decision by the practitioner to reorient the instrument. If the practitioner desires to reorient the instrument in this manner, he / she presses the instrument button 172, a step not shown. The user interface 130 monitors the state of the button. As long as the evaluation test of step 836 is negative, the tool orientation regulator 368 continues to output force. , which causes the manipulator to orient the instrument so that the common axis intersects the previously defined centering point 371 as closely as possible. Fig.28C In , this is represented as a progression to step 850.
[0525] If the evaluation test of step 836 is positive, then the tool orientation adjuster 368 redefines the reference surface 369, tool aperture 370, and centering point 371, step 840. The redefinition of these geometric reference features is based on the current actual pose of the instrument, which is represented by the commanded pose.
[0526] Therefore, in a subsequent re-execution of step 814, the input variables entering the orientation regulator 368 indicate that the instrument is substantially centered on the centering point 371. Given that the instrument is in this state, the tool orientation regulator determines that no significant orientation force needs to be applied to the virtual rigid body. =0, step 842.
[0527] During instrument reorientation, the practitioner applies forces and torques to the instrument to reorient the instrument. These forces and torques are typically external forces applied to the environmental force adder 379. The maximum amount of. is zero, so the tool orientation regulator 368 does not apply a force to the virtual rigid body that is opposite to the external force applied by the practitioner. Thus, in response to the external force , the manipulator 50 orients the instrument so that the instrument orientation is based on the practitioner's desired orientation, step 844.
[0528] Although in this process, is zero, but the energy applicator force calculator 358 and force transducer 362 continue to output non-zero force . This is the force applied to the virtual rigid body , causing the manipulator to advance the energy applicator 184 along the tool path 248. Thus, the manipulator 50 continues to position the instrument so that the energy applicator 184 is advanced along the tool path 248, continuing to step 782, concurrently with the simulated practitioner's desired instrument reorientation.
[0529] The manipulator continues to reorient the instrument according to the above process steps as long as button 172 remains depressed. Figure 28G840 as a loop back from decision step 846 to step 840.
[0530] Once the instrument is in the orientation desired by the practitioner, the practitioner releases the button 172, a step not shown. In response to this occurrence, the tool orientation adjuster 368 no longer continuously updates the orientation landmarks based on the controlled posture of the instrument. When the button 172 is released, the stored landmarks are subsequently used to determine the force. The landmarks on which the calculation of is based, step 848. The manipulator continues the semi-automatic adjustment of the instrument orientation based on these landmarks, step 849. The manipulator 50 can then consider advancing to step 850.
[0531] In certain configurations of manipulator 50, release of button 172 is considered to indicate that the practitioner has performed step 799, the process of clearing the warning displayed in step 798. This is because a variety of conditions that may have caused manipulator 50 to temporarily halt semi-automatic advancement of instrument 160 are remedied by reorientation of the instrument.
[0532] When the manipulator 50 is operating in the semi-automatic mode, the user interface 130 continuously monitors the pendant 190 to determine whether the button 193 or 195 is pressed. Fig.28C 850. In response to the button 193 or 195 being pressed, the process described with reference to step 778 is used to apply a new USERADJUST factor to the feed rate calculator 284, a step not shown. This causes the controller 124 to adjust the rate at which the manipulator advances the energy applicator 184 along the tool path 248, step 858.
[0533] If the tool feed rate is set to zero speed in step 858, the tool path force calculator 278 still outputs the force . This is the force applied to the virtual rigid body , so that the manipulator 50 maintains the energy applicator 184 at the last determined target position on the tool path 248, a step not shown.
[0534] In some forms of the invention, when the instrument feed rate is set to zero speed, the instrument manager 702 also determines a command that causes the tool power generation unit 163 to be deactivated, a step not shown. In these forms of the invention, when the button 195 is pressed again to again cause semi-automatic advancement of the instrument, the instrument manager 702 causes the instrument power generation unit to be deactivated. The user interface 130 applies a non-zero USERADJUST coefficient to the feed rate calculator 284, a step not shown.
[0535] Additionally, in some forms of the invention, upon resetting the instrument feed rate to a speed greater than zero, the energy applicator force calculator 358 initially outputs the force , which is essentially the same force that causes the energy applicator 184 to advance along the tool path The direction is opposite to that of the initial force. Temporarily applied to the virtual rigid body, the manipulator initially moves the energy applicator 184 in the reverse direction along the tool path 248. This movement is typically 2 mm or less. Once the energy applicator 184 makes this return movement, the instrument power generation unit 163 is deactivated. Once the instrument power generation is stopped, the energy applicator force calculator 358 outputs the force , to cause the manipulator to advance the energy applicator 184 forward along the tool path 248.
[0536] The above process steps avoid the situation where the energy applicator 184 is reactivated while the applicator is pressed against tissue. This reduces the possibility that the applicator 184 will bind the tissue in the event of reactivation.
[0537] During the semi-automatic advancement of the instrument 160, the cutting guide 390 monitors the position of the energy applicator 184 relative to the boundary patches, as if the manipulator were operating in the manual mode, step 860. The cutting guide 390 operates the same way when the manipulator is operating in the semi-automatic mode as when the manipulator is operating in the manual mode. Because the manipulator 50 positions the energy applicator 184 along the tool path 248, the cutting guide 390 rarely determines that these positions cross one of the boundary defining patches.
[0538] However, there is the possibility that the occurrence of an extraneous situation will cause the manipulator to quickly transition from the semi-automatic mode back to the manual mode. An example of such a situation is the above-mentioned practitioner's action, which applies force to the instrument to re-orient the instrument while the manipulator performs semi-automatic advancement, see step 788. A second example of such a situation is the situation discussed below, that is, when the energy applicator 184 is close to one of the boundary defining patches, the practitioner presses the instrument switch 176 to position the instrument.
[0539] Thus, even when the manipulator 50 is advancing the energy applicator semi-automatically, the cutting guide 390 still verifies that the controlled position of the energy applicator 184 is within the defined boundary. If the cutting guide 390 determines that the energy applicator 184 will cross the boundary, the cutting guide applies one or more pulses to the virtual rigid body. Applying this force can be considered as part of step 860. The application of the pulse (multiple pulses) enables the manipulator 50 to avoid such movement. Thus, even when the manipulator advances the energy applicator 184 semi-automatically, the cutting guide 390 substantially eliminates the possibility of the energy applicator 184 moving beyond the boundary.
[0540] During semi-automatic advancement of the instrument, the user interface also monitors the state of the instrument switch 176, step 862. If the switch 176 is depressed, the user interface transitions the manipulator back to the manual operation mode, step 864. This process includes transferring the force output of the tool path force calculator 278 to the total force adder 380. and The sensor signal attenuator 697 allows the force and torque measured by the sensor 108 to be used as the force Collectively, these actions transition the manipulator from a state in which it performs semi-automatic advancement to a state in which it performs instrument positioning that simulates the positioning that would occur based on the forces and torques applied by the practitioner.
[0541] During this transition of operating modes, the instrument manager 702 generates a command for the tool controller to deactivate the instrument, step not shown. Upon receipt of the command, the tool controller 132 cancels the application of the energizing signal to the instrument power generating unit, step 866.
[0542] The manipulator controller then generates a new tissue tool path; and step 760 is re-executed.
[0543] The user interface 130 continuously monitors the pendant 190 to determine the state of the trigger 194, step 868. If the trigger 194 remains depressed, the manipulator 50 continues to advance the instrument in the semi-automatic mode. Fig.28B and 28D , this is shown as a loop return from step 868 to step 782.
[0544] Once the trigger 194 is released, the manipulator returns to the manual operation mode and deactivates the energy applicator 184. This is indicated by branching from step 868 to steps 864 and 866. It should be understood that in this form of execution of step 864, the practitioner may not apply force and torque to the instrument. Therefore, in addition to the zeroed force and In addition, force is also approximately zero. Therefore, the force output by the total force adder 380 is and torque are the forces and torques applied to the virtual rigid body that cause the manipulator 50 to hold the instrument in a static pose. This is the pose of the energy applicator 184 at the final target position along the tool path 248.
[0545] As described above, once step 866 is executed, a new organizational tool path is generated and step 760 is executed.
[0546] Once semi-automatic advancement of the instrument has terminated, the surgeon may position the instrument and actuate the instrument via a manual mode of operation.
[0547] Semi-automatic advancement of the instrument 160 may be resumed by the surgeon again depressing the depressing trigger 194. This will again cause the evaluation test of step 764 to be positive. V. Alternative Embodiments
[0548] It should be understood that the manipulator of the present invention is not limited to the described configuration with a manipulator controller and a navigation processor. In some forms of the present invention, a single processor or a multi-core processor, a plurality of multi-core processors or GPUs, a plurality of DSPs or a group of parallel processors can perform the data processing performed by these processors. Likewise, some forms of the present invention can have more processors than those already described. For example, a first processor can perform some navigation data processing, a second processor can perform behavior control functions, and a third processor can perform motion control processes. Likewise, in some forms of the present invention, many navigation and behavior control functions can be performed by processors specifically for these tasks.
[0549] Likewise, the various software modules that have been described should be understood to be exemplary and not limiting. Other software modules may perform processing steps that cause the joint motor 101 to output the torque necessary to: simulate the advancement of the instrument with the force and torque applied to the instrument by the practitioner; advance the instrument semi-automatically; and allow the practitioner to adjust the orientation of the instrument during semi-automatic advancement.
[0550] Additionally, in some forms of the invention, the mass properties and inertia properties of the virtual rigid body can be changed by pressing a button disposed on one of the interfaces 130 or 220. For example, the size of the virtual mass can be reduced or increased. Reducing the virtual mass causes the manipulator to respond as if the mass of the instrument and energy applicator 184 were reduced compared to their actual mass. Thus, when the practitioner applies forces and torques to the instrument, the simulated movement of the instrument obtained by the manipulator will cause the instrument to feel less massive in the practitioner's hands and more responsive to the applied forces and torques. Inertia properties that can be reset include inertia tensors or matrices.
[0551] Another inertial property that can be changed is the position of the center of mass of the virtual rigid body. The movement of the center of mass of the virtual rigid body is performed by redefining the position of the center of mass of the virtual rigid body relative to the origin of the end effector coordinate system EFCT. This movement of the center of mass of the virtual rigid body causes the manipulator to position the instrument so that the practitioner has the impression that the center of mass of the instrument has moved. It should be understood that the center of mass can even be positioned so that it is not located within the instrument 160. It is also possible to redefine the orientation of the coordinate system CMVB relative to the coordinate system EFCT or other static coordinate systems associated with the instrument 160 or the energy applicator 184.
[0552] Similarly, it is not necessary that the Z axis of the coordinate system EAPP of the energy applicator is oriented to extend in the direction opposite to the corresponding axis of the coordinate system CMVB. In some embodiments of the present invention, these axes can be oriented in the same direction. In addition, in some forms of the present invention, these Z axes can be tilted relative to each other. In addition, these axes can even be parallel relative to each other.
[0553] Furthermore, although the various Z axes of the various coordinate systems are generally shown as being vertical, this is not limiting. In alternative configurations of the present invention, for one or more coordinate systems, the X-axis or Y-axis may be the axis closest to being perpendicular to the horizontal reference plane of the cart 52.
[0554] Likewise, specific processing steps may differ from those already described, and algorithms and models may be altered. For example, it is not required that the forces calculated by the energy applicator force calculator 358 and the cutting guide 390, respectively, be identical. and are calculated for application to coordinate system EAPP. In an alternative form of the invention, these forces are calculated for application to other points, which are typically spaced away from the origin of coordinate system CMVB. The exact locations to which these forces are applied are typically a function of the geometry of energy applicator 184. Likewise, there is no requirement that energy applicator 358 and cutting guide 390 apply the forces they each generate to the same point. With reference to the cutting guide, the forces The points to which the force is applied can be recalculated every frame. The point of application of the energy applicator 184 can vary with a boundary crossing analysis step in which the cutting guide 390 determines which point or segment on the energy applicator 184 will first cross the boundary defining patch. The same optional form can be applied to the force As described below, in some forms of the invention, the energy applicator calculator 358 may calculate this force .
[0555] For example, it is not required that the interference limit calculator comparator 622 always includes a coupling model that is cylindrical or capsule-shaped. A coupling can be simulated as a rectangular, conical or triangular structure. In some forms of the invention, each coupling can be simulated as a collection of one or more structures, wherein the size and / or shape of the various structures are different.
[0556] Similarly, it is not required that in all forms of the invention a running average filter be used to generate target positions along tool path 248. Alternative smoothing techniques include: using spline functions; finite impulse response filtering; infinite impulse response filtering; Chebychev filtering; Butterworth filtering; and hybrid linear segments with parabolas.
[0557] Likewise, it is not required that a finite impulse filter be used to perform signal tilting, such as by attenuator 697. Alternatively, other processes such as infinite impulse response filtering, Chebychev filtering, Butterworth filtering, or adaptive filtering may be used to perform such signal tilting.
[0558] It is not required that in all forms of the invention, the feed rate calculator 284 always calculates the instrument feed rate based on the instantaneous value of the variable. In some forms of the invention, these input variables can be filtered. Similarly, there may be some reasons to change the coefficient, which is used as a multiplier to form the extent to which any variable affects the feed rate. The application of a specific variable can be delayed. The change of the coefficient can be filtered or tilted to mix / eliminate the effect of the change in the size of the coefficient. This filtering or mixing causes the advancement of the instrument 160 to be smooth. The smooth advancement of the instrument reduces the possibility that the manipulator may become unstable or exceed the target position due to rapid changes in the positioning of the instrument. The influence of any variable can be selectively ignored. For example, it may be desirable to generate the instrument feed rate based only on the smallest or largest coefficient. Other coefficients are ignored.
[0559] In some forms of the invention, two or more variables entering the feed rate calculator 284 can be combined. This combination can be addition, multiplication, average or division. The calculated coefficients can also be added, multiplied, averaged or divided to provide a final coefficient, which is used to form the instrument feed rate based on the defined feed rate. Similarly, it is not required to determine these coefficients based solely on a variable-coefficient feed rate table. Other means of determining these coefficients are based on using variables as input variables into the formula, and the result is that the coefficients are used to form the instrument feed rate. The formula can be a polynomial equation or a non-linear direction.
[0560] Similarly, data other than the maximum current of the device can be used as data through the feed rate calculator 284, which is used as a marker of the power of the device. These data include the voltage or duty cycle required to be applied to the device to maintain a constant output. The output can be a speed or temperature. In the case of a closed-loop energy output device, the measured value of the output can be used as a marker of the power of the device. More specifically, a decrease in the output can be used as a marker of a change in the power of the device. For example, if the sensed parameter is motor speed, then a decrease in speed indicates that the power demand of the device has increased. Based on this inferential indication that the power demand has changed, the INSTPOWER coefficient applied to the feed rate calculator 284 is adjusted.
[0561] Alternative representations of the torque output by the joint motors 101 can be used to facilitate determination of the reverse drive torque output by these motors. For example, it may not always be necessary to use a signal representing the actual current applied to the joint motors 101 as a marker of the torque output by these motors. In an alternative construction of the present invention, a signal representing the controlled current or forward feed torque input into the current control loop of the joint motor controller 126 is used as a signal representing the torque output by the motor.
[0562] Data representing the actual joint torque may also be provided by a sensor attached to the joint motor 101, or by other components integral to the active joint. Additionally, in certain forms of the invention, there is no back-drive force adder 691. In these forms of the invention, a single representation of the actual torque is applied to the back-drive torque calculator 693.
[0563] Alternative methods for determining the back-driving force and torque may be employed. For example, in one alternative method of the present invention, a first difference between the desired torque and the torque generated by the joint motor 101 is calculated. This set of torque differences is then converted into the coordinate system CMVB as a first set of back-driving force and torque. A second difference between the desired torque and the torque sensed by the sensor 89 is calculated. This set of torque differences is then converted into the coordinate system CMVB as a second set of back-driving force and torque. These two sets of apparatus back-driving force and torque are summed together to generate data representing the back-driving force and torque. The inputs to the sum may be weighted.
[0564] It should be understood that the physical construction of the coupling forming the manipulator may be different from the construction already described. For example, in some manipulators having a parallel four-bar linkage, the linkage may be designed so that the wrist connecting the coupling to the coupling may rotate around an axis that is laterally offset from the axis of the driven coupling. Similarly, the wrist may not even rotate around an axis that is exactly parallel or perpendicular to the driving coupling. Similarly, it is not required that in all forms of the present invention, the manipulator has multiple four-bar linkage assemblies. The present invention may be composed of multiple couplings that together form a single-arm series linkage. In the form of the present invention including parallel couplings that are coupled together, the couplers between the couplings may not be rigid.
[0565] Motors other than permanent magnet synchronous motors may be used as actuators. For example, brushless DC motors, brushed DC motors, stepper motors, and induction motors. Likewise, it is not required that the actuator be an electrically driven motor. In some forms of the invention, the actuator may be a hydraulic or pneumatic actuator.
[0566] The structure of the joint motor controller should be understood to vary with the characteristics of the motor in the actuator. The motor control process can also be changed. For example, when adjusting the motor operation, the speed control loop can be omitted.
[0567] In some forms of the invention, it is desirable to provide multiple encoders to at least one active joint. A first encoder monitors the angular position of a shaft integral with the joint motor 101. Data from the encoder is used by the joint motor controller to regulate the actuation of the joint actuator. If the joint actuator is an electric motor, these data are typically used to regulate the commutation of the motor windings. A second encoder monitors the joint angle. Data from the second encoder is used by a module such as the forward kinematics module 562 to represent the actual joint angle. This more direct measurement of the joint angle is not affected by the inherent tolerances of the gear train. Therefore, using this more direct measurement of the joint angle as an actual representation of the joint angle can improve the accuracy of the manipulator setting device 160's posture.
[0568] In the construction of the present invention including multiple encoders for at least one active joint, the position data from the multiple encoders can be used by the joint motor controller to adjust the actuation of the joint actuator. For example, in certain constructions of the present invention, data from one encoder (usually an encoder associated with the joint actuator) is used as a primary feedback variable entering a position control loop. Data from a second encoder (usually an encoder that generates data representing the actual joint angle) is used as an input to determine the damping component of the output signal. In other constructions of the manipulator of the present invention, the primary feedback variable entering the position control loop represents the joint angle based on a weighted average of data representing the joint angle from multiple encoders. In addition, the damping component can be based on the difference between the joint angle representations from multiple encoders. Using these multiple representations of the joint angle as input variables entering the joint angle position control loop can improve the stability of the control process.
[0569] Similarly, other methods can be used to map the tissue to which the instrument is to be applied. In one of these methods, the practitioner uses a pointer, and the surgical navigation system 210 tracks the position of the pointer. At the beginning of the operation, the practitioner uses the pointer to identify specific landmarks on the patient. Based on the location of these landmarks, data is generated to define the boundaries of the space to which the energy applicator 184 should be applied.
[0570] In an alternative form of the invention, the cutting guide uses other methods to determine the point on the boundary that the energy applicator 184 will cross. Regarding this analysis, when determining where the energy applicator 184 will cross the boundary, it is not required to always assume that the velocity of the coordinate system CMVB is constant. The velocity of the coordinate system BONE can also vary during the frame. It is not required to sequentially handle the problem of multiple energy applicators 184 contacting against the boundary during a single frame. These contacts can be summed to produce a single effective contact. The single effective contact is mitigated by a single boundary constraint.
[0571] Likewise, the cutting guide 390 may not rely on pulses to prevent the energy applicator 184 from crossing the boundary. For example, in an optional configuration of the manipulator 50, each boundary patch may be modeled as a conformable surface, such as a spring / damper system. When it is determined that the energy applicator 184 will move beyond the position of the patch, the spring defining the patch is considered to be compressed. The force applied by the spring to resist this compression is calculated.
[0572] Similarly, the manipulator of the present invention is not only designed to be used in a tool path generator that generates a tool path comprising parallel path segments. The manipulator of the present invention can be used in a tool path generator that generates a tool path comprising segments that form a two-dimensional or three-dimensional spiral when connected together.
[0573] In the described form of the invention, the tool path is described as a set of points along the tissue to which the energy applicator 184 is applied. This is exemplary only and not limiting. Depending on the type of instrument, the tool path can be a path that is generated to position the instrument so that the energy applicator 184 is within a selected distance from the target tissue and within a defined orientation relative to the target tissue. This type of tool path can be generated in the case where, for example, the instrument emits photon energy. This type of instrument can be designed so that in order to perform the desired procedure, the distal end of the energy applicator 184 needs to be a given distance, such as 0.1 to 2.0 cm, from the tissue to which the energy is to be applied.
[0574] Similarly, in some forms of the invention, the spacing of the orifice 370 relative to the tissue surface to which the energy applicator 184 is to be applied can be further adjusted. Generally speaking, as the distance between the orifice 370 and the underlying tissue surface increases, the volume of space in which the instrument can rotate rapidly decreases. The control to perform this adjustment can be displayed as a button on one of the interfaces 128 or 220. This allows the practitioner to perform this adjustment.
[0575] In some forms of the invention, the tool orientation adjuster 368 may not be configured to always ...
Claims
1. A surgical robot system, comprising: a surgical manipulator comprising an arm including a plurality of links and joints, a surgical instrument being connected to the arm, and the surgical manipulator being configured to manipulate the surgical instrument and an energy applicator extending from the surgical instrument, The surgical manipulator includes at least one controller configured to operate the surgical manipulator in a manual mode or a semi-automatic mode, the at least one controller configured to calculate an instrument feed rate, wherein the instrument feed rate is a speed at which the distal end of the energy applicator advances along a path segment of a tool path in the semi-automatic mode, and wherein the at least one control calculates the instrument feed rate for each individual path segment by being configured to: prior to operation of the surgical manipulator in the semi-automatic mode, assigning a defined feed rate for each individual path segment based on one or more variables evaluated by the at least one controller; and adjusting the defined feed rate for one or more of the individual path segments based on one or more variables evaluated by the at least one controller during operation of the surgical manipulator in the semi-automatic mode; as well as A hand-held pendant configured to adjust operation of the surgical manipulator in the semi-automatic mode, the hand-held pendant being operable to provide one of the variables evaluated by the at least one controller to thereby adjust the defined feed rate for one or more of the individual path segments.
2. A surgical robotic system according to claim 1, wherein the defined feed rate is based on variables including one or more of the following: the shape of the space to which the energy applicator is applied, the type of energy applicator, the health condition of the patient, the properties of the tissue to which the energy applicator is applied, and the geometry of the individual path segments.
3. The surgical robotic system of claim 1 , wherein the at least one controller is configured to adjust the defined feed rate by multiplying the defined feed rate by a plurality of coefficients associated with the one or more variables.
4. The surgical robotic system of claim 1, wherein the at least one controller is configured to adjust the defined feed rate based on forces and torques experienced by the energy applicator.
5. The surgical robotic system of claim 1, wherein the at least one controller is configured to adjust the defined feed rate based on a curvature of one or more of the individual path segments.
6. The surgical robotic system of claim 1, wherein the at least one controller is configured to adjust the defined feed rate based on instrument power.
7. The surgical robotic system of claim 1, wherein the at least one controller is configured to adjust the defined feed rate based on tissue temperature.
8. A surgical robotic system according to claim 1, wherein the at least one controller is configured to monitor the force or torque applied to the surgical instrument or the force or torque output by the energy applicator, and in response to determining that the force or torque exceeds a limit value, the at least one controller is configured to adjust the limited feed rate so that the instrument feed rate is zero.
9. The surgical robotic system of claim 1, wherein the handheld pendant comprises a housing shaped and configured to be held by one hand of a user.
10. The surgical robotic system of claim 1, wherein said handheld pendant is operable to place said surgical manipulator in said semi-automatic mode.
Citation Information
Patent Citations
Software center and highly configurable robotic systems for surgery and other uses
CN101227870A
Robotic system for assisting in minimally-invasive surgery, which can position a surgical instrument in response to orders from a surgeon, is not attached to the operating table and does not require pre-calibration of the insertion point
US20090326324A1
System and method for automated minimally invasive instrument command
US20110295248A1
Surgical Assistance System
US20110306985A1
