Systems and methods for guiding movement of a tool
The sensor measures force torque and generates virtual constraints, and uses the constraint solver and virtual simulator to control the movement of surgical system tools, solving the problem of precise placement of surgical system in manual and autonomous modes, enhancing the user's sense of control.
Patent Information
- Application Number
- CN202080068284.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-30
- Filing Date
- 2020-09-30
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2040-09-30
AI Technical Summary
It is difficult for existing surgical systems to accurately place tools in manual operation mode, and the user's sense of control over tools is weakened when moving independently.
Sensors are used to measure the force and torque applied by the user, generate virtual constraints through a guided processing program, calculate appropriate constraints using a constraint solver, combine the virtual simulator to simulate tool dynamics, and control tool movement through a manipulator to provide tactile feedback, achieving precise placement of the tool.
Improves the precise placement of the tool in target position and orientation, enhances the user's sense of control over the tool, combining the advantages of manual and autonomous operation modes.
Smart Images

Figure CN114449969B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and all benefits of U.S. Provisional Patent Application No. 62 / 908,056, filed September 30, 2019, the entire contents of which are hereby incorporated by reference. Technical Field
[0003] The present disclosure generally relates to systems and methods for guiding movement of a tool. Background Art
[0004] A surgical system may include a robotic manipulator and tools coupled to the manipulator for performing a surgical procedure on a patient. In a manual operation mode, one type of surgical system senses the forces and torques manually applied to the tool by a user. The surgical system may command the manipulator, which may include a robotic arm, to position the tool to emulate the user's intended movement based on the application of the sensed forces and torques. Thus, the surgical system typically positions the tool according to the user's intent and expectations, enabling the user, for example, to remove a desired volume of tissue. However, in manual mode, it may be difficult for the user to precisely place the tool in a target position and / or orientation. Therefore, the surgical system may also command the manipulator to autonomously move the tool to place the tool in a target position and / or orientation. However, when moving the tool autonomously, the user may feel that their control over the tool is reduced. For this reason, a manual mode, in which the user at least partially engages the tool, may be preferred by some users and / or in certain situations.
[0005] What is needed in the art are systems and methods for addressing these challenges. Summary of the Invention
[0006] This summary introduces some concepts in a simplified form that are further described below in the detailed description. This summary is not intended to limit the scope of the claimed subject matter and does not necessarily identify every key or essential feature of the claimed subject matter.
[0007] According to a first aspect, a surgical system is provided, comprising a tool and a manipulator for supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user. One or more sensors measure the forces and torques applied to the tool. A control system comprises a guidance processor for obtaining a target state of the tool and generating one or more virtual constraints based on the target state and a current state of the tool. The control system further comprises a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool from the current state toward the target state. The control system further comprises a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on input from the one or more sensors and based on the constraint forces, and outputting a command gesture. The control system is configured to command the manipulator to move the tool based on the command gesture, thereby providing tactile feedback to the user guiding the user to place the tool in the target state.
[0008] According to a second aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The manipulator supports the tool and moves the tool in response to user forces and torques applied to the tool by the user. The method includes receiving input from one or more sensors that measure forces and torques applied to the tool. The method also includes obtaining a target state of the tool; and generating one or more virtual constraints based on the target state and a current state of the tool. Based on the one or more virtual constraints, a constraint force suitable for attracting the tool from the current state toward the target state is calculated. The dynamics of the tool are simulated in a virtual simulation based on the input from the one or more sensors and based on the constraint forces. A command gesture is output based on the virtual simulation. The manipulator is commanded to move the tool based on the command gesture to thereby provide tactile feedback to the user guiding the user to place the tool in the target state.
[0009] According to a third aspect, a surgical system is provided, comprising a tool and a manipulator for supporting and moving the tool. The manipulator is operable in a first mode in which the manipulator automatically moves the tool along a tool path; and in a second mode in which the manipulator moves the tool in response to user forces and torques applied to the tool by a user. One or more sensors measure the forces and torques applied to the tool. A control system includes a guidance processor for obtaining a target state for the tool and generating one or more virtual constraints based on the target state and a current state of the tool. The target state is outside the tool path. The control system also includes a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool from the current state toward the target state. The control system also includes a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on input from the one or more sensors and based on the constraint forces, and outputting a command gesture. The control system is configured to command the manipulator to move the tool based on the command gesture to thereby provide tactile feedback to the user guiding the user to place the tool in the target state.
[0010] According to a fourth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The manipulator is operable in a first mode in which the manipulator automatically moves the tool along a tool path; and in a second mode in which the manipulator moves the tool in response to user forces and torques applied to the tool by a user. The method includes receiving input from one or more sensors that measure forces and torques applied to the tool; and obtaining a target state for the tool. The method also includes generating one or more virtual constraints based on the target state and a current state of the tool. The target state is outside the tool path. Constraint forces are calculated based on the one or more virtual constraints, adapted to attract the tool from the current state toward the target state. The dynamics of the tool are simulated in a virtual simulation based on the input from the one or more sensors and based on the constraint forces. A command gesture is output based on the virtual simulation. The manipulator is commanded to move the tool based on the command gesture, thereby providing tactile feedback to the user guiding the user to place the tool in the target state.
[0011] According to a fifth aspect, a surgical system is provided, comprising a tool and a manipulator. The manipulator is operable in a semi-autonomous mode, in which the manipulator automatically moves the tool along a tool path and is operable to reorient the tool in response to user forces and torques applied to the tool by a user while the tool remains on the tool path. One or more sensors measure the forces and torques applied to the tool. A control system includes a guidance processing program for obtaining a preferred orientation of the tool and generating one or more virtual constraints based on the preferred orientation and the current orientation of the tool. The control system also includes a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool from the current orientation toward the preferred orientation. The control system also includes a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on input from the one or more sensors and based on the constraint forces, and outputting a command gesture. The control system is configured to command the manipulator to move the tool based on the command gesture, thereby providing tactile feedback to the user guiding the user to place the tool in the preferred orientation.
[0012] According to a sixth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The manipulator is operable in a semi-autonomous mode in which the manipulator automatically moves the tool along a tool path and is operable to reorient the tool in response to user forces and torques applied to the tool by a user while the tool remains on the tool path. The method comprises the steps of receiving input from one or more sensors that measure forces and torques applied to the tool; and obtaining a preferred orientation of the tool. The method further comprises generating one or more virtual constraints based on the preferred orientation and a current orientation of the tool. Calculating, based on the one or more virtual constraints, a restraining force suitable for attracting the tool from the current orientation toward the preferred orientation. Simulating the dynamics of the tool in a virtual simulation based on the input from the one or more sensors and based on the restraining forces. Outputting a command gesture based on the virtual simulation. Commanding the manipulator to move the tool based on the command gesture to thereby provide tactile feedback to the user guiding the user to place the tool in the preferred orientation.
[0013] According to a seventh aspect, a surgical system is provided, comprising a tool and a manipulator for supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user. One or more sensors measure the forces and torques applied to the tool. A control system comprises a guidance processing program for obtaining a plurality of alignment points and one or more target planes of the tool, and generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes. The control system comprises a constraint solver for calculating a constraint force suitable for attracting the tool toward the one or more target planes based on the one or more virtual constraints. The control system further comprises a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on input from the one or more sensors and based on the constraint forces, and outputting a command gesture. The control system is configured to command the manipulator to move the tool based on the command gesture, thereby providing tactile feedback to the user guiding the user to place the tool in the one or more target planes.
[0014] According to an eighth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The manipulator supports the tool and moves the tool in response to user forces and torques applied to the tool by the user. The method comprises: receiving input from one or more sensors that measure forces and torques applied to the tool; and obtaining a plurality of alignment points and one or more target planes of the tool. The method further comprises: generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes. Calculating a constraint force suitable for attracting the tool toward the one or more target planes based on the one or more virtual constraints. Simulating the dynamics of the tool in a virtual simulation based on the input from the one or more sensors and based on the constraint forces. Outputting a command gesture based on the virtual simulation. Commanding the manipulator to move the tool based on the command gesture to thereby provide tactile feedback to the user guiding the user to place the tool in the one or more target planes.
[0015] According to a ninth aspect, a method for controlling the movement of a tool to produce a plurality of features is provided, wherein each of the features has a different target state of the tool. The method comprises determining a current state of the tool relative to the target state of the tool for the plurality of features in a known coordinate system to determine which of the plurality of features the user is selecting. The method further comprises enabling one or more guide constraints from a plurality of guide constraints based on the feature selected by the user. The movement of the tool is controlled based on the one or more guide constraints, wherein the one or more guide constraints act to generate tactile feedback to the user so that the user understands how to move the tool relative to the target state associated with the feature selected by the user.
[0016] According to a tenth aspect, a method for controlling the movement of a tool to generate a plurality of features is provided, wherein each of the features has a different virtual boundary of the tool. The method comprises: determining the current state of the tool relative to the virtual boundary for the plurality of features in a known coordinate system to determine which of the plurality of features the user is selecting. The method further comprises: enabling one or more guide constraints from a plurality of guide constraints based on the feature selected by the user; and enabling one or more of the boundary features from a plurality of boundary constraints based on the feature selected by the user. The movement of the tool is controlled based on the one or more guide constraints and the one or more boundary constraints, wherein the one or more guide constraints and the one or more boundary constraints act to generate tactile feedback to the user to generate the feature selected by the user.
[0017] According to an eleventh aspect, a surgical system is provided, comprising a tool and a manipulator for supporting and moving the tool. A control system comprises a guidance processing program for obtaining a target state of the tool and generating one or more virtual constraints based on the target state and the current state of the tool. The control system further comprises a constraint solver for calculating a constraint force suitable for attracting the tool toward the target state or repelling the tool away from the target state based on the one or more virtual constraints. The movement of the tool is controlled by the manipulator based on the constraint force to provide tactile feedback to the user to guide the user to place the tool in the target state or away from the target state.
[0018] According to a twelfth aspect, a surgical system is provided, comprising a tool and a manipulator for supporting the tool and moving the tool. The manipulator is operable in a first mode in which the manipulator moves the tool along a tool path; and the manipulator is operable in a second mode in which a user applies force and torque to the tool to move the tool. The control system comprises a guidance processor for obtaining a target state of the tool and generating one or more virtual constraints based on the target state and the current state of the tool. The control system further comprises a constraint solver for calculating a constraint force suitable for attracting the tool from the current state toward the target state based on the one or more virtual constraints. The movement of the tool is controlled by the manipulator in the second mode based on the constraint force to provide the user with tactile feedback guiding the user to place the tool in the target state.
[0019] According to a thirteenth aspect, a surgical system is provided, comprising a tool and a manipulator, the manipulator being operable in a semi-autonomous mode in which the manipulator moves the tool along a tool path. The tool is capable of moving in response to user forces and torques applied to the tool by a user while the tool remains on the tool path. A control system comprises a guidance handler for obtaining a preferred orientation of the tool and generating one or more virtual constraints based on the preferred orientation and the current orientation of the tool. The control system further comprises a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool from the current orientation toward the preferred orientation. Movement of the tool is controlled by the manipulator based on the constraint force to provide tactile feedback to the user guiding the user to place the tool in the preferred orientation.
[0020] According to a fourteenth aspect, a surgical system is provided, comprising a tool and a manipulator, the manipulator being used to support the tool and move the tool. A control system comprises a guidance processing program, the guidance processing program being used to obtain a plurality of alignment points and one or more target planes of the tool, and to generate one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes. The control system further comprises a constraint solver, the constraint solver calculating a constraint force suitable for attracting the tool toward the one or more target planes based on the one or more virtual constraints. The movement of the tool is controlled by the manipulator based on the constraint force to provide the user with tactile feedback guiding the user to place the tool on the one or more target planes.
[0021] According to a fifteenth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The method comprises: obtaining a target state for the tool; and generating one or more virtual constraints based on the target state and the current state of the tool. The method further comprises: calculating a restraining force suitable for attracting the tool toward the target state or repelling the tool away from the target state based on the one or more virtual constraints. Movement of the tool is controlled based on the restraining force to provide tactile feedback to the user guiding the user to place the tool in the target state or away from the target state.
[0022] According to a sixteenth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The manipulator is operable in a first mode in which the manipulator moves the tool along a tool path; and the manipulator is operable in a second mode in which the tool moves in response to user forces and torques applied to the tool by a user. The method comprises: obtaining a target state of the tool; and generating one or more virtual constraints based on the target state and a current state of the tool. The method further comprises: calculating a restraining force suitable for attracting the tool from the current state toward the target state based on the one or more virtual constraints. The mover of the tool is controlled in the second mode based on the restraining force to provide tactile feedback to the user guiding the user to place the tool in the target state.
[0023] According to a seventeenth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The manipulator is capable of operating in a semi-autonomous mode in which the manipulator moves the tool along a tool path. The tool is capable of reorienting the tool in response to user forces and torques applied to the tool by a user while the tool remains on the tool path. The method comprises the steps of obtaining a preferred orientation of the tool; and generating one or more virtual constraints based on the preferred orientation and the current orientation of the tool. The method further comprises calculating a restraining force suitable for attracting the tool from the current orientation toward the preferred orientation based on the one or more virtual constraints. The movement of the tool is controlled based on the restraining force to provide tactile feedback to the user guiding the user to place the tool in the preferred orientation.
[0024] According to an eighteenth aspect, a method for guiding a tool supported by a manipulator of a surgical system is provided. The method comprises: obtaining a plurality of alignment points and one or more target planes of the tool; and generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes. The method further comprises: calculating a restraining force suitable for attracting the tool toward the one or more target planes based on the one or more virtual constraints. The movement of the tool is controlled based on the restraining force to provide tactile feedback to the user guiding the user to place the tool in the one or more target planes.
[0025] According to the nineteenth aspect, a handheld manipulator system for performing surgery is provided, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processor for obtaining a target state of the saw blade and generating one or more virtual constraints based on the target state and a current state of the saw blade, the one or more virtual constraints comprising a guidance constraint; a constraint solver for calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints; and a virtual simulator for simulating the dynamics of the saw blade in a virtual simulation based on input from the constraint force and outputting a command posture, the control system being configured to command the handheld manipulator to move the saw blade based on the command posture and place the saw blade in the target state.
[0026] According to the twentieth aspect, a handheld manipulator system is provided, comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processor for obtaining a plurality of alignment points and one or more target planes of the saw blade and generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; a constraint solver for calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints; and a virtual simulator for simulating the dynamics of the saw blade in a virtual simulation based on input from the constraint force and outputting a command posture, the control system being configured to command the manipulator to move the saw blade based on the command posture to place the saw blade in the one or more target planes.
[0027] According to a twenty-first aspect, a method for controlling a saw blade of a handheld manipulator is provided, wherein the handheld manipulator includes a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip including a sagittal saw blade, the method comprising the following steps: obtaining a target state of the saw blade; generating one or more virtual constraints based on the target state and a current state of the saw blade; calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints; simulating the dynamics of the saw blade in a virtual simulation based on the constraint force; outputting a command gesture based on the virtual simulation; and commanding the manipulator to move the saw blade based on the command gesture to place the saw blade in the target state.
[0028] According to the twenty-second aspect, there is provided a method for guiding a saw blade supported by a handheld manipulator, the handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade, the manipulator supporting and moving the saw blade, the method comprising the following steps: obtaining a plurality of alignment points and one or more target planes of the saw blade; generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints; simulating the dynamics of the saw blade in a virtual simulation based on input from the constraint force; outputting a command gesture based on the virtual simulation; and commanding the manipulator to move the saw blade based on the command gesture to place the saw blade in the one or more target planes.
[0029] According to a twenty-third aspect, a method for controlling the movement of a saw blade of a handheld manipulator to generate a plurality of features is provided, wherein each of the plurality of features has a different target state of the saw blade, the method comprising the following steps: determining a current state of the saw blade relative to the target state of the saw blade for the plurality of features in a known coordinate system to determine which of the plurality of features is being selected to generate; enabling one or more guide constraints for the handheld manipulator from a plurality of guide constraints based on the selected feature; and controlling the movement of the saw blade based on the one or more guide constraints, wherein the one or more guide constraints act to place the saw blade in the target state for the selected feature.
[0030] According to the twenty-fourth aspect, a handheld manipulator system for performing surgery is provided, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processing program for obtaining a target state of the saw blade and generating one or more virtual constraints based on the target state and a current state of the saw blade; and a constraint solver for calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints, wherein the movement of the saw blade is controlled by the manipulator based on the constraint force to place the saw blade in the target state.
[0031] According to the twenty-fifth aspect, a handheld manipulator system for performing surgery is provided, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processing program for obtaining a plurality of alignment points and one or more target planes of the saw blade and generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; and a constraint solver for calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints, wherein the movement of the saw blade is controlled by the manipulator based on the constraint force to place the saw blade in the one or more target planes.
[0032] According to the twenty-sixth aspect, a method for guiding a saw blade of a handheld manipulator is provided, the method comprising the following steps: obtaining a target state of the saw blade; generating one or more virtual constraints based on the target state and a current state of the saw blade; calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints; and controlling the movement of the saw blade based on the constraint force to place the saw blade in the target state.
[0033] According to the twenty-seventh aspect, a method for guiding a saw blade supported by a handheld manipulator is provided, the method comprising the following steps: obtaining a plurality of alignment points and one or more target planes of the saw blade; generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints; and controlling the movement of the saw blade based on the constraint force to place the saw blade in the one or more target planes.
[0034] According to the twenty-eighth aspect, a handheld manipulator system for performing surgery is provided, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processing program for obtaining a target state of the saw blade and generating one or more virtual constraints based on the target state and the current state of the saw blade, the one or more virtual constraints comprising a guidance constraint, the guidance processing program being configured to generate a virtual constraint based on the target state and the current state of the saw blade A guidance constraint is calculated based on a relationship between a previous state and the target state, wherein the guidance constraint has a value of a tuning parameter, and the guidance processing program is configured to change the value of the tuning parameter based on the relationship between the current state and the target state; a constraint solver, the constraint solver is used to calculate a constraint force suitable for moving the saw blade toward the target state based on the guidance constraint; and a virtual simulator, the virtual simulator is used to simulate the dynamics of the saw blade in a virtual simulation based on input from the constraint force and output a command posture, the control system is configured to command the manipulator to move the saw blade based on the command posture and place the saw blade in the target state.
[0035] According to the twenty-ninth aspect, a surgical system is provided, comprising: a tool; a manipulator for supporting the tool and moving the tool in response to user force and torque applied to the tool by the user; one or more sensors for providing sensor input signals; and a control system comprising: a guidance processor for obtaining a target state of the tool and generating one or more virtual constraints based on the target state and a current state of the tool; a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool toward the target state or repelling the tool away from the target state; and a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on the sensor input signals and the constraint forces from the one or more sensors, and outputting a command gesture, the control system being configured to command the manipulator to move the tool based on the command gesture, and thereby providing tactile feedback to the user guiding the user to place the tool in the target state or away from the target state.
[0036] Any of the above aspects may be combined in part or in whole. In addition, any of the above aspects may be implemented by any of the following embodiments:
[0037] In one embodiment, the target state comprises a target position, a target orientation, or a target posture, and the current state comprises a current position, a current orientation, or a current posture. In one embodiment, the one or more virtual constraints comprise up to three virtual constraints associated with the target position and up to three virtual constraints associated with the target orientation. In one embodiment, the control system is configured to enable the user to reorient the tool away from the target orientation. In one embodiment, the control system is configured to enable the user to reposition the tool away from the target position.
[0038] In one embodiment, the control system is configured to select the starting position from a plurality of possible starting positions. In one embodiment, the control system is configured to select the starting position from the plurality of possible starting positions based on a last known position of the tool on the tool path before the tool moves out of the tool path.
[0039] In one embodiment, the control system is configured to define the starting position as a restart position along a restart path. In one embodiment, the control system is configured to: determine a last known point on the tool path before the tool is moved out of the tool path traversed by the tool; and calculate the restart position on the restart path based on the last known point. In one embodiment, the control system is configured to calculate the last known point on the tool path based on the last known position of the tool on the tool path before the tool is moved out of the tool path traversed by the tool. In one embodiment, the control system is configured to: calculate an introduction path from the restart position to the last known point; and move the tool along the introduction path from the restart position to the last known point in the first mode. In one embodiment, the tool includes an energy applicator and the control system includes a tool controller for supplying energy to the energy applicator as the energy applicator moves along the introduction path in the first mode. In one embodiment, the restart path is based on the shape of a virtual boundary. In one embodiment, the target state comprises a restart position on a restart path, wherein the restart path is defined based on a withdrawal path along which the user moves the tool when moving the tool out of the tool path. In one embodiment, the target state comprises a restart position selected from a plurality of possible restart positions defined along the restart path, the control system being configured to select the restart position based on cutting progress made by the tool relative to the plurality of possible restart positions.
[0040] In one embodiment, the target state comprises a target coordinate system and the tool comprises a guided coordinate system, the restraining force being adapted to attract the guided coordinate system towards the target coordinate system.
[0041] In one embodiment, the bootstrap handler is configured to calculate the one or more virtual constraints with respect to one or more degrees of freedom based on a difference between the current state and the target state.
[0042] In one embodiment, the control system includes a user interface for activating the one or more virtual constraints such that the restraining force includes force and torque components associated with attracting the tool toward the target state.
[0043] In one embodiment, the boot handler is configured to calculate the one or more virtual constraints based on a relationship between the current state and the target state.
[0044] In one embodiment, each of the one or more virtual constraints has a value of a tuning parameter, and the boot handler is configured to change the value of the tuning parameter based on a relationship between the current state and the target state.
[0045] In one embodiment, the one or more virtual constraints include a first virtual constraint having a first value of a tuning parameter and a second virtual constraint having a second value of the tuning parameter, wherein the first value is different from the second value, such that the resulting restraining force due to the first virtual constraint is suitable for more strongly attracting or repelling the tool compared to the second virtual constraint.
[0046] In one embodiment, the virtual simulator is configured to simulate the dynamics of the tool by representing the tool as a virtual rigid body having a virtual mass, and applying the constraint force to the virtual mass in the virtual simulation to obtain the command pose.
[0047] In one embodiment, the control system is configured to: calculate an external force based on the input from the one or more sensors; and calculate a total force for use in the virtual simulation based on the restraining force and the external force, wherein the external force can have a force component of a magnitude and direction sufficient to overcome the restraining force.
[0048] In one embodiment, the tool comprises a bone drill or a drill, and the one or more virtual constraints comprise two virtual constraints defined to attract the bone drill or the drill towards a desired orientation.
[0049] In one embodiment, the tool comprises a bone drill, and the one or more virtual constraints comprise three virtual constraints defined to attract the bone drill toward a desired starting position.
[0050] In one embodiment, the tool comprises a saw blade, and the one or more virtual constraints comprise three virtual constraints defined to attract the saw blade toward a desired cutting plane.
[0051] In one embodiment, the first mode comprises a semi-autonomous mode and the second mode comprises a guided-haptic mode.
[0052] In one embodiment, enabling the one or more guiding constraints includes: generating one or more guiding constraints based on the target state associated with the feature selected by the user and based on the current state of the tool, and wherein controlling the movement of the tool based on the one or more guiding constraints includes: calculating a constraint force suitable for attracting the tool from the current state toward the target state based on the one or more guiding constraints; simulating the dynamics of the tool in a virtual simulation based at least in part on the constraint force; outputting a command gesture based on the virtual simulation; and commanding the manipulator to move the tool based on the command gesture to thereby provide tactile feedback to the user guiding the user to place the tool in the target state.
[0053] In one embodiment, enabling the one or more guiding constraints includes: generating one or more guiding constraints based on the target state associated with the feature selected by the user and based on the current state of the tool, and wherein controlling the movement of the tool based on the one or more guiding constraints includes: calculating a restraining force suitable for repelling the tool away from the current state based on the one or more guiding constraints; simulating the dynamics of the tool in a virtual simulation based at least in part on the restraining force; outputting a command gesture based on the virtual simulation; and commanding the manipulator to move the tool based on the command gesture to thereby provide tactile feedback to the user guiding the user to place the tool away from the target state.
[0054] In one embodiment, determining the current state of the tool relative to the target state of the tool for the plurality of features in the known coordinate system includes determining a position of a plane defined by a saw blade relative to a plurality of cutting planes in the known coordinate system.
[0055] In one embodiment, determining the current state of the tool relative to the target state of the tool for the plurality of features in the known coordinate system includes determining a position of an axis defined by a bone drill or drill rod relative to a plurality of cutting axes.
[0056] In one embodiment, determining the current state of the tool relative to the target state of the tool for the multiple features in the known coordinate system includes: determining the angle between the current orientation of the tool and multiple target orientations of the tool, determining the distance between the current position of the tool and multiple target positions of the tool, or determining both the angle and the distance; and determining the feature selected by the user from the multiple features based on the value of the angle, the value of the distance, or both the value of the angle and the value of the distance.
[0057] In one embodiment, one or more virtual boundaries are enabled for the tool based on the feature selected by the user. In one embodiment, a selection area is defined relative to the plurality of features, wherein the one or more virtual boundaries and the one or more guide constraints associated with the feature selected by the user are enabled to generate the feature selected by the user when the tool is within the selection area, and are disabled when the tool is moved outside of the selection area, enabling the user to select a new feature to generate.
[0058] In some embodiments, a force-torque sensor measures the force or torque applied to the tool. Additionally or alternatively, other sensors may be used, such as one or more current sensors configured to measure the current flowing to any one or more actuators. In some embodiments, the current measurements can be used to derive or estimate a measure of the force and torque applied to the tool.
[0059] Any of the above embodiments may be used in any of the above aspects. For any one or more of the above aspects, any of the above embodiments may be combined in whole or in part. BRIEF DESCRIPTION OF THE DRAWINGS
[0060] Advantages of the present disclosure will become readily appreciated as the present disclosure becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings.
[0061] Figure 1 is a perspective view of the surgical system.
[0062] Figure 2 is a block diagram of a control system used to control a surgical system.
[0063] Figure 3 is a functional block diagram of the software program used to control the surgical system.
[0064] Figure 4 Illustrate the output of a boundary generator for a surgical procedure on the acetabulum.
[0065] Figure 5 Illustrate the output of a path generator for a surgical procedure on the acetabulum.
[0066] Figure 6 Illustrate the output of a boundary generator for a surgical procedure on a vertebral body.
[0067] Figure 7 Illustrate the output of a boundary generator for a surgical procedure on the femur.
[0068] Figure 8 Illustrate the output of a path generator for a surgical procedure on the femur.
[0069] Figure 9Illustrate the output of a boundary generator for a surgical procedure on the femur.
[0070] Figure 10 It is a graphic representation of virtual constraints and virtual attractions.
[0071] Figure 11 is a block diagram of the modules that can be operated by the control system.
[0072] Figure 12 Show sample constraint equations.
[0073] Figure 13 and Figure 14 A sample forward dynamics algorithm for performing virtual simulations is shown.
[0074] Figure 15 An exemplary set of steps performed by a control system to solve constraints, perform forward kinematics, and determine a command pose are shown.
[0075] 16A to 16D Movement of the tool is shown in response to applying a guidance constraint to attract the tool to a target position and target orientation.
[0076] Figure 17 Another application of a guide constraint to attract a tool to a target position and orientation to prepare a hole in a vertebral body is illustrated.
[0077] Figure 18 are a pair of graphs showing the change in restraining force with respect to z distance in the x, y directions and about the x, y axes.
[0078] Figure 19 and Figure 20 Illustrate another application of a guide constraint to attract the tool to the target plane.
[0079] Figure 21 Illustrate how the stiffness of a guide constraint varies with z distance.
[0080] Figures 22A to 22C The example tool is shown moving along a milling path in a semi-autonomous mode of operation to remove material from a femur.
[0081] Figure 22D Illustrate movement of the tool away from the milling path.
[0082] Figure 22E and Figure 22F The example illustrates applying guidance constraints in the guided-haptic mode to attract the tool to a target position and orientation before resuming operation in the semi-autonomous mode.
[0083] Figure 23 is a block diagram of the modules that can be operated by the control system.
[0084] Figures 24 to 27 Another example of applying a guide constraint to attract a tool to a target plane is shown, where the tool comprises a saw blade.
[0085] Figure 28 The example control system may determine which desired cutting plane the user is selecting based on the position of the tool.
[0086] Figure 29 Another example is applying a guide constraint to attract a tool to a target plane, where the tool is a saw blade of a handheld manipulator. DETAILED DESCRIPTION
[0087] I. Overview
[0088] refer to Figure 1 , illustrating a surgical system 10. The system 10 may be used to treat a surgical site or anatomical volume A of a patient 12, such as treating bone tissue or soft tissue. Figure 1 Patient 12 was undergoing a surgical procedure. Figure 1 The anatomical structures in the patient 12 include the femur F, pelvis PEL and tibia T of the patient 12. The surgical procedure may involve tissue removal or other forms of treatment. Treatment may include cutting, coagulation, damaged tissue, other in situ tissue treatments, etc. In some instances, the surgical procedure involves partial or total knee or hip replacement surgery, shoulder replacement surgery, spinal surgery or ankle surgery. In some instances, system 10 is designed to remove the material to be replaced by a surgical implant, such as a hip and knee implant, including a single chamber, double chamber, multiple chamber or total knee implant, an acetabular cup implant, a femoral stem implant, a screw, an anchor, other fasteners, etc. Some of these types of implants are shown in U.S. Patent Application Publication No. 2012 / 0330429 entitled "Prosthetic Implant and Method of Implantation", the disclosure of which is hereby incorporated by reference. System 10 and technology disclosed herein can be used for performing other surgeries or non-surgical procedures, or can be used for industrial applications or other applications.
[0089] The system 10 includes a robotic manipulator 14, also known as a surgical robot. The manipulator 14 has a base 16 and a plurality of linkages 18. A manipulator cart 17 supports the manipulator 14 such that the manipulator 14 is secured to the manipulator cart 17. The linkages 18 collectively form one or more arms (e.g., a robotic arm) of the manipulator 14. The manipulator 14 may have a tandem arm configuration (e.g., a Figure 1 ), a parallel arm configuration, or any other suitable manipulator configuration. In other examples, more than one manipulator 14 may be utilized in a multi-arm configuration.
[0090] exist Figure 1In the example shown, the manipulator 14 includes a plurality of joints J and a plurality of joint encoders 19 located at the joints J for determining position data of the joints J. For simplicity, Figure 1 , only one joint encoder 19 is illustrated, but other joint encoders 19 may be similarly illustrated. According to one example, the manipulator 14 has six joints J1-J6 that implement at least six degrees of freedom (DOF) of the manipulator 14. However, the manipulator 14 may have any number of degrees of freedom and any suitable number of joints J and may have redundant joints.
[0091] The manipulator 14 does not require joint encoders 19, but may alternatively or additionally utilize motor encoders present on the motors at each joint J. Moreover, the manipulator 14 does not require revolute joints, but may alternatively or additionally utilize one or more prismatic joints. Any suitable combination of joint types is contemplated.
[0092] The base 16 of the manipulator 14 is typically a portion of the manipulator 14 that provides a fixed reference coordinate system for the manipulator 14 or other components of the system 10 as a whole. Typically, the origin of the manipulator coordinate system MNPL is defined at a fixed reference point on the base 16. The base 16 may be defined relative to any suitable portion of the manipulator 14, such as one or more of the links 18. Alternatively or additionally, the base 16 may be defined relative to the manipulator cart 17, such as where the manipulator 14 is physically attached to the cart 17. In one example, the base 16 is defined at the intersection of the axes of the joints J1 and J2. Thus, although the joints J1 and J2 are actually moving components, the intersection of the axes of the joints J1 and J2 is still a virtual fixed reference pose that provides a fixed position and orientation reference and does not move relative to the manipulator 14 and / or the manipulator cart 17.
[0093] In some instances, reference Figure 29, the manipulator can be a handheld manipulator 15, wherein the base 16' is the base portion of the tool (e.g., the portion held by the user's bare hand), and the tool tip 17 is movable relative to the base portion. The base portion has a tracked reference coordinate system, and the tool tip has a tool tip coordinate system calculated relative to the reference coordinate system (e.g., via motors and / or joint encoders and forward kinematics calculations). Because the pose of the tool tip 17 relative to the path can be determined, the movement of the tool tip 17 can be controlled to follow the path. Such a handheld manipulator 15 can be similar to that shown in U.S. Patent No. 9,707,043, filed on August 31, 2012, 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 hereby incorporated by reference herein. Examples of handheld manipulators that may be used with the systems, methods, and techniques described herein may be similar to those described in PCT application No. PCT / US2020 / 042128, filed on July 15, 2020, entitled “Robotic Hand-Held Surgical Instrument Systems and Methods,” the entire contents of which are hereby incorporated by reference herein.
[0094] The manipulator 14 and / or manipulator cart 17 houses a manipulator controller 26 or other type of control unit. The manipulator controller 26 may include one or more computers, or any other suitable form of controller that directs the movement of the manipulator 14. The manipulator controller 26 may have a central processing unit (CPU) and / or other processors, memory (not shown), and storage devices (not shown). The manipulator controller 26 is loaded with software as described below. The processor may include one or more processors to control the operation of the manipulator 14. The processor may be any type of microprocessor, multiprocessor, and / or multi-core processing system. The manipulator controller 26 may additionally or alternatively include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein. The term processor is not intended to limit any embodiment to a single processor. The manipulator 14 may also include a user interface (UI) having one or more displays and / or input devices (e.g., push buttons, keyboard, mouse, microphone (voice activation), gesture control device, touch screen, etc.).
[0095] Surgical tool 20 is coupled to manipulator 14 and is movable relative to base 16 to interact with anatomical structures in certain modes. In certain embodiments, tool 20 is or forms part of an end effector 22 supported by manipulator 14. Tool 20 can be grasped by a user. One possible arrangement of manipulator 14 and tool 20 is described in U.S. Patent No. 9,119,655, filed on August 2, 2013, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," the disclosure of which is hereby incorporated by reference. Manipulator 14 and tool 20 may be arranged in alternative configurations. Tool 20 may be similar to that shown in U.S. Patent Application Publication No. 2014 / 0276949, filed on March 15, 2014, entitled "End Effector of a Surgical Robotic Manipulator," which is hereby incorporated by reference.
[0096] The tool 20 includes an energy applicator 24 designed to contact tissue of the patient 12 at the surgical site. In one example, the energy applicator 24 is a bone drill 25. The bone drill 25 can be substantially spherical and include a center, a radius (r), and a diameter. Alternatively, the energy applicator 24 can be a drill bit, a saw blade 27 (see FIG. Figure 1 ), ultrasonic vibrating tip, etc. The tool 20 and / or energy applicator 24 may include any geometric features, such as perimeter, circumference, radius, diameter, width, length, volume, area, surface / plane, range of motion envelope (along any one or more axes), etc. The geometric features may be considered to determine how to position the tool 20 relative to the tissue at the surgical site for the desired treatment. In some embodiments described herein, for convenience and ease of description, a spherical bone drill with a tool center point (TCP) and a sagittal saw blade with a TCP will be described, but it is not intended to limit the tool 20 to any particular form.
[0097] The tool 20 may include a tool controller 21 to control the operation of the tool 20, such as controlling the power supply to the tool (e.g., the rotary motor of the tool 20), controlling the movement of the tool 20, controlling the irrigation / suction of the tool 20, etc. The tool controller 21 may communicate with the manipulator controller 26 or other components. The tool 20 may also include a user interface (UI) having one or more displays and / or input devices (e.g., a push button, a keyboard, a mouse, a microphone (voice activation), a gesture control device, a touch screen, a foot switch, etc.). The manipulator controller 26 controls the state (position and / or orientation) of the tool 20 (e.g., TCP) relative to a coordinate system such as the manipulator coordinate system MNPL. The manipulator controller 26 can control the (linear or angular) velocity, acceleration, or other derivatives of the motion of the tool 20.
[0098] In one example, the tool center point (TCP) is a predetermined reference point defined at the energy applicator 24. The TCP has a known or calculable (i.e., not necessarily static) posture relative to other coordinate systems. The geometry of the energy applicator 24 is known in the TCP coordinate system (or other tool coordinate systems associated with the tool) or is defined relative to the coordinate system. The TCP may be located at the center of the spherical center of the drill 25 of the tool 20 or the distal end of the saw blade 27 so that only one point is tracked. The TCP may be defined in various ways depending on the configuration of the energy applicator 24. The manipulator 14 may employ joint / motor encoders, or any other non-encoder position sensing method, to enable determination of the posture of the TCP. The manipulator 14 may use joint measurements to determine the TCP posture and / or may employ technology to directly measure the TCP posture. Control of the tool 20 is not limited to the center point. For example, any suitable primitive, grid, etc. may be used to represent the tool 20.
[0099] The system 10 also includes a navigation system 32. An example of the navigation system 32 is described in U.S. Patent No. 9,008,757, filed on September 24, 2013, entitled "Navigation System Including Optical and Non-Optical Sensors," which is hereby incorporated by reference. The navigation system 32 tracks the movement of various objects. Such objects include, for example, the manipulator 14, the tool 20, and anatomical structures, such as the femur F, the pelvis PEL, and the tibia T. The navigation system 32 tracks these objects to collect state information for each object relative to the (navigation) localizer coordinate system LCLZ. Coordinates in the localizer coordinate system LCLZ can be transformed to the manipulator coordinate system MNPL, other coordinate systems, and / or vice versa using a transformation.
[0100] The navigation system 32 includes a cart assembly 34 that houses a navigation controller 36 and / or other type of control unit. A navigation user interface (UI) is in operative communication with the navigation controller 36. The navigation user interface includes one or more displays 38. The navigation system 32 is capable of displaying a graphical representation of the relative status of tracked objects to the user using the one or more displays 38. The navigation user interface (UI) also includes one or more input devices for inputting information into the navigation controller 36 or otherwise selecting / controlling certain aspects of the navigation controller 36. Such input devices include an interactive touch screen display. However, the input devices may include any one or more of a push button, a keyboard, a mouse, a microphone (voice activated), a gesture control device, a foot pedal, and the like.
[0101] The navigation system 32 also includes a navigation localizer 44 coupled to the navigation controller 36. In one example, the localizer 44 is an optical localizer and includes a camera unit 46. The camera unit 46 has an external housing 48 that houses one or more optical sensors 50. The localizer 44 may include its own localizer controller 49 and may also include a camera VC.
[0102] The navigation system 32 includes one or more trackers. In one example, the trackers include a pointer tracker PT, one or more manipulator trackers 52A, 52B, a first patient tracker 54, a second patient tracker 55, and a third patient tracker 56. Figure 1 In the illustrated example of FIG, a manipulator tracker is securely attached to the tool 20 (i.e., tracker 52A), a first patient tracker 54 is securely attached to the femur F of the patient 12, a second patient tracker 55 is securely attached to the pelvis PEL of the patient 12, and a third patient tracker 56 is securely attached to the tibia T of the patient 12. In this example, the patient trackers 54, 55, 56 are securely attached to the bone segments. The pointer tracker PT is securely attached to the pointer P, which is used to register the anatomical structure to the localizer coordinate system LCLZ. The manipulator trackers 52A, 52B may be attached to any suitable component of the manipulator 14 in addition to or other than the tool 20, such as the base 16 (i.e., tracker 52B), or any one or more links 18 of the manipulator 14. The trackers 52A, 52B, 54, 55, 56, PT may be attached to their respective components in any suitable manner. For example, trackers may be rigidly fixed, flexibly connected (fiber optic), or not physically connected at all (ultrasound), as long as there is a suitable (complementary) way to determine the relationship (measurements) of the respective tracker and the object it is associated with.
[0103] Any one or more trackers may include an active marker 58. Active marker 58 may include a light emitting diode (LED). Alternatively, trackers 52A, 52B, 54, 55, 56, PT may have a passive marker, such as a reflector, that reflects light emitted from camera unit 46. Other suitable markers not specifically described herein may be utilized.
[0104] The localizer 44 tracks the trackers 52A, 52B, 54, 55, 56, PT to determine the state of each of the trackers 52A, 52B, 54, 55, 56, PT, which state corresponds to the state of the object attached thereto. The localizer 44 may perform known triangulation techniques to determine the state of the trackers 52, 54, 55, 56, PT and the associated objects. The localizer 44 provides the state of the trackers 52A, 52B, 54, 55, 56, PT to the navigation controller 36. In one example, the navigation controller 36 determines the state of the trackers 52A, 52B, 54, 55, 56, PT and communicates the state to the manipulator controller 26. As used herein, the state of an object includes, but is not limited to, data defining the position and / or orientation of the tracked object or equivalents / derivatives of the position and / or orientation. For example, the state may be the posture of the object and may include linear velocity data and / or angular velocity data, etc.
[0105] The navigation controller 36 may include one or more computers, or any other suitable form of controller. The navigation controller 36 has a central processing unit (CPU) and / or other processors, memory (not shown), and storage devices (not shown). The processor can be any type of processor, microprocessor, or multi-processor system. The navigation controller 36 is loaded with software. The software converts, for example, signals received from the locator 44 into data representing the position and orientation of the object being tracked. The navigation controller 36 may additionally or alternatively include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein. The term processor is not intended to limit any embodiment to a single processor.
[0106] Although one example of the navigation system 32 using triangulation techniques to determine the shape of an object is shown, the navigation system 32 may have any other suitable configuration for tracking the manipulator 14, tool 20, and / or patient 12. In another example, the navigation system 32 and / or the localizer 44 are ultrasound-based. For example, the navigation system 32 may include an ultrasound imaging device coupled to a navigation controller 36. The ultrasound imaging device images any of the above-mentioned objects (e.g., the manipulator 14, tool 20, and / or patient 12) and generates a status signal to the navigation controller 36 based on the ultrasound image. The ultrasound image may be 2-D, 3-D, or a combination of both. The navigation controller 36 may process the image in near real time to determine the state of the object. The ultrasound imaging device may have any suitable configuration and may be different from, for example, Figure 1 A camera unit 46 is shown.
[0107] In another example, the navigation system 32 and / or the locator 44 are radio frequency (RF) based. For example, the navigation system 32 may include an RF transceiver coupled to the navigation controller 36. The manipulator 14, tool 20, and / or patient 12 may include an RF transmitter or transponder attached thereto. The RF transmitter or transponder may be passive or actively powered. The RF transceiver transmits RF tracking signals and generates a status signal to the navigation controller 36 based on the RF signal received from the RF transmitter. The navigation controller 36 may analyze the received RF signal to associate an associated status therewith. The RF signal may have any suitable frequency. The RF transceiver may be positioned at any suitable location to effectively track an object using the RF signal. Additionally, the RF transmitter or transponder may have a configuration that is compatible with the navigation controller 36. Figure 1 The trackers 52A, 52B, 54, 55, 56, PT shown may be of any suitable structural configuration, which may vary widely.
[0108] In yet another example, the navigation system 32 and / or the locator 44 are electromagnetic based. For example, the navigation system 32 may include an EM transceiver coupled to the navigation controller 36. The manipulator 14, tool 20, and / or patient 12 may include EM components attached thereto, such as any suitable magnetic tracker, electromagnetic tracker, inductive tracker, etc. The tracker may be passive or actively powered. The EM transceiver generates an EM field and generates a status signal to the navigation controller 36 based on the EM signal received from the tracker. The navigation controller 36 may analyze the received EM signal to associate an associated status therewith. Likewise, such an example of a navigation system 32 may have an EM field coupled thereto. Figure 1 The navigation system 32 is shown in different configurations.
[0109] The navigation system 32 may have any other suitable components or structures not specifically listed herein. Furthermore, any of the techniques, methods, and / or components described above with respect to the illustrated navigation system 32 may be implemented or provided for any of the other examples of the navigation system 32 described herein. For example, the navigation system 32 may utilize only inertial tracking or any combination of tracking technologies, and may additionally or alternatively include fiber-based tracking, machine vision tracking, and the like.
[0110] refer to Figure 2 The system 10 includes a control system 60, which includes components such as a manipulator controller 26, a navigation controller 36, and a tool controller 21. The control system 60 also includes Figure 3 One or more software programs and software modules are shown. A software module may be part of one or more programs that operate on the manipulator controller 26, navigation controller 36, tool controller 21, or any combination thereof to process data to assist in the control of the system 10. The software programs and / or modules include computer-readable instructions stored in non-transitory memory 64 on the manipulator controller 26, navigation controller 36, tool controller 21, or any combination thereof for execution by one or more processors 70 of the controllers 21, 26, 36. The memory 64 may be any suitable configuration of memory, such as RAM, non-volatile memory, etc., and may be implemented locally or from a remote database. Additionally, software modules for prompting and / or communicating with a user may form part of one or more programs and may include instructions stored in memory 64 on the manipulator controller 26, navigation controller 36, tool controller 21, or any combination thereof. The user may interact with any input device of the navigation user interface (UI) or other user interface (UI) to communicate with the software modules. The user interface software may run on a device separate from the manipulator controller 26, navigation controller 36, and / or tool controller 21.
[0111] The control system 60 may include any suitable configuration of input, output, and processing devices suitable for carrying out the functions and methods described herein. The control system 60 may include the manipulator controller 26, the navigation controller 36, or the tool controller 21, or any combination thereof, or may include only one of these controllers. These controllers may be controlled via, for example, Figure 2 The control system 60 may also be referred to as a controller. The control system 60 may include one or more microcontrollers, field programmable gate arrays, systems on a chip, discrete circuits, sensors, displays, user interfaces, indicators, and / or other suitable hardware, software, or firmware capable of performing the functions described herein.
[0112] refer to Figure 3, the software used by the control system 60 includes a boundary generator 66. Figure 4 As shown, the boundary generator 66 is a software program or module that generates a virtual boundary 71 for constraining the movement and / or operation of the tool 20. The virtual boundary 71 can be one-dimensional, two-dimensional, three-dimensional, and can include points, lines, axes, trajectories, planes, volumes, faces, triangular meshes, etc. The virtual boundary 71 can have a simple shape or a complex geometry. In some embodiments, the virtual boundary 71 is a surface defined by a triangular mesh. The virtual boundary 71 can also be referred to as a virtual object. The virtual boundary 71 can be defined relative to an anatomical model AM such as a 3-D skeletal model. Because the anatomical model AM is mapped to the patient's anatomy via registration or other processes, the anatomical model AM is associated with the real patient anatomy. Figure 4 In the example of FIG, the virtual boundary 71 includes a generally spherical mesh substantially surrounding the acetabulum, the spherical mesh having an entrance portion 71a (opening) that enables access to the acetabulum. The entrance portion has a funnel or cone shape. This virtual boundary 71 is associated with the 3-D model of the acetabulum.
[0113] The anatomical model AM and the associated virtual boundary 71 are registered to one or more patient trackers 54, 55, 56. Thus, the anatomical model AM (and the associated real patient anatomy) and the virtual boundary 71 fixed to the anatomical model AM can be tracked by the patient trackers 54, 55, 56. The virtual boundary 71 can be implant-specific, for example, defined based on the size, shape, volume, etc. of the implant, and / or patient-specific, for example, defined based on the patient's anatomy. The virtual boundary 71 can be a boundary generated before surgery, during surgery, or a combination thereof. In other words, the virtual boundary 71 can be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. In any case, the control system 60 obtains the virtual boundary 71 by storing / retrieving the virtual boundary 71 in memory, obtaining the virtual boundary 71 from memory, generating the virtual boundary 71 before surgery, generating the virtual boundary 71 during surgery, etc.
[0114] The manipulator controller 26 and / or navigation controller 36 tracks the state of the tool 20 relative to the virtual boundary 71. In one example, the state of the TCP is measured relative to the virtual boundary 71 to determine the tactile force to be applied to the virtual rigid body model via virtual simulation so that the tool 20 remains in a desired positional relationship with the virtual boundary 71 (e.g., does not move beyond the virtual boundary 71). The results of the virtual simulation are passed to the manipulator 14. The control system 60 controls / positions the manipulator 14 in a manner that emulates the response of a physical head in the presence of a physical boundary / obstacle. The boundary generator 66 may be implemented on the manipulator controller 26. Alternatively, the boundary generator 66 may be implemented on other components such as the navigation controller 36.
[0115] refer to Figure 3 and Figure 5 , the path generator 68 is another software program or module run by the control system 60. In one instance, the path generator 68 is run by the manipulator controller 26. The path generator 68 generates a tool path TP for the tool 20 to traverse, such as for removing a segment of an anatomical structure to receive an implant. The tool path TP may include multiple path segments PS, or may include a single path segment PS. The path segment PS may be a straight line segment, a curved segment, a combination thereof, etc. The tool path TP may also be defined relative to the anatomical model AM and may be tracked via one or more of the patient trackers 54, 55, 56. The tool path TP may be implant-specific, for example, defined based on the size, shape, volume, etc. of the implant, and / or patient-specific, for example, defined based on the patient's anatomical structure.
[0116] In one version described herein, tool path TP is defined as a tissue removal path, but in other versions, tool path TP can be used for treatments other than tissue removal. An example of a tissue removal path described herein includes a milling path 72. It should be understood that the term "milling path" generally refers to the path of the tool 20 used to mill the anatomical structure near the target site, and is not intended to require that the tool 20 be operable to mill the anatomical structure for the entire duration of the path. For example, the milling path 72 may include sections or segments where the tool 20 transitions from one position to another without milling. Additionally, other forms of tissue removal along the milling path 72 may be employed, such as tissue ablation, etc. The milling path 72 may be a predefined path generated before the procedure, during the procedure, or a combination thereof. In other words, the milling path 72 may be defined before the start of the surgical procedure, during the surgical procedure (including during tissue removal), or a combination thereof. In any case, the control system 60 obtains the milling path 72 by storing / retrieving the milling path 72 in / from memory, obtaining the milling path 72 from memory, generating the milling path 72 preoperatively, generating the milling path 72 intraoperatively, etc. The milling path 72 can have any suitable shape or combination of shapes, such as circular, spiral / corkscrew, linear, curved, combinations thereof, etc. Figure 5 The illustrated milling path 72, when traversed by the tool 20, is intended to remove material from the acetabulum to make room for the acetabular cup implant to fit into the acetabulum.
[0117] Figures 4 to 9 An exemplary virtual boundary 71 and / or milling path 72 is shown in FIG. The specific shape and arrangement of the virtual boundary 71 and / or milling path 72 shown are for illustrative purposes. Other shapes and arrangements are possible. As previously described, Figure 4 and Figure 5Illustrated are a virtual boundary 71 and a milling path 72 that are generated for use in a surgical procedure to prepare (eg, mill) the acetabulum to receive an acetabular cup implant.
[0118] Figure 6 A virtual boundary 71 is illustrated, comprising a generally spherical mesh substantially surrounding the vertebral body, the spherical mesh having an entrance portion 71a (opening) that enables access to the vertebral body. Entrance portion 71a has a funnel or conical shape and extends into a cylindrical portion 71b. This virtual boundary 71 is associated with a 3-D model of the vertebral body. This virtual boundary 71 is generated for use in a surgical procedure to prepare (e.g., mill) the vertebral body to receive screws or other implants.
[0119] Figure 7 A virtual boundary 71 is illustrated, comprising a generally spherical mesh substantially surrounding the femur, with an entrance portion 71a (opening) that allows access to the femur. Entrance portion 71a has a funnel or conical shape and extends to a canal portion 71b that extends downward along the medullary canal of the femur. This virtual boundary 71 is associated with a 3-D model of the femur. Figure 8 The milling path 72 is illustrated and is defined to enable the tool 20 to remove material from the femur to make way for the femoral stem implant. Figure 7 and Figure 8 Illustrated are a virtual boundary 71 and a milling path 72 that are generated for use in a surgical procedure to prepare (eg, mill) a femur F to receive a femoral stem implant.
[0120] Figure 9 A series of virtual boundaries 71 generated for five cutting planes through the distal femur are illustrated. Figure 9 Each of the virtual boundaries 71 in the figure includes a generally spherical grid substantially surrounding the distal end of the femur, the spherical grid having an entrance portion 71a (opening) that enables access to the femur. The entrance portion 71a continues into a cutting groove 71b defined along one of the five cutting planes 73a-73e. These virtual boundaries 71 are generated for use in preparing the femur F (e.g., via plane resection with a saw blade) to receive a total knee implant during an operation. Other types / shapes of virtual boundaries and / or milling paths 72 are contemplated for use in other surgical procedures.
[0121] One example of a system and method for generating a virtual boundary 71 and / or a milling path 72 is described in U.S. Patent No. 9,119,655, entitled “Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes,” the disclosure of which is hereby incorporated by reference. In some examples, the virtual boundary 71 and / or the milling path 72 may be generated offline, rather than on the manipulator controller 26 or the navigation controller 36. Thereafter, the virtual boundary 71 and / or the milling path 72 may be utilized by the manipulator controller 26 at runtime.
[0122] Return Reference Figure 3 , two additional software programs or modules run on the manipulator controller 26 and / or navigation controller 36. One software module performs behavioral control 74. Behavior control 74 is the process of calculating data indicative of the next commanded position and / or orientation (e.g., pose) of the tool 20. In some cases, only the position of the TCP is output from the behavior control 74, while in other cases, both the position and orientation of the tool 20 are output. Outputs from the boundary generator 66, the path generator 68, and one or more sensors such as a force / torque sensor S may be fed as inputs into the behavior control 74 to determine the next commanded position and / or orientation of the tool 20. The behavior control 74 may process these inputs, as well as one or more virtual constraints, described further below, to determine a command pose.
[0123] The second software module performs motion control 76. One aspect of motion control is the control of the manipulator 14. The motion control 76 receives data defining the next command pose from the behavior controller 74. Based on this data, the motion control 76 determines the next position of the joint angles of the joints J of the manipulator 14 (e.g., via inverse kinematics and a Jacobian matrix calculator) so that the manipulator 14 can position the tool 20 as commanded by the behavior control 74 (e.g., at a command pose). In other words, the motion control 76 processes the command pose, which may be defined in Cartesian space, into joint angles of the manipulator 14 so that the manipulator controller 26 can command the joint motors accordingly to move the joints J of the manipulator 14 to the command joint angles corresponding to the command pose of the tool 20. In one version, the motion control 76 adjusts the joint angles of each joint J and continuously adjusts the torque output by each joint motor to ensure as closely as possible that the joint motors drive the associated joint J to the command joint angles.
[0124] Boundary generator 66, path generator 68, behavior control 74, and motion control 76 can be subsets of software program 78. Alternatively, each can be a software program that operates individually and / or independently in any combination thereof. The term "software program" is used herein to describe computer-executable instructions configured to implement the various capabilities of the described technical solutions. For simplicity, the term "software program" is intended to cover at least any one or more of boundary generator 66, path generator 68, behavior control 74, and / or motion control 76. Software program 78 can be implemented on manipulator controller 26, navigation controller 36, or any combination thereof, or can be implemented by control system 60 in any suitable manner.
[0125] Clinical application 80 can be provided to process user interaction.Clinical application 80 processes many aspects of user interaction and coordinates surgical workflow, including preoperative planning, implant placement, registration, visualizing bone preparation and postoperative evaluation of implant coordination, etc. Clinical application 80 is configured to output to display 38.Clinical application 80 can be run on its own separate processor or can be run beside navigation controller 36.In one example, clinical application 80 interacts with boundary maker 66 and / or path maker 68 after user sets implant placement, then sends virtual boundary 71 and / or tool path TP returned by boundary maker 66 and / or path maker 68 to manipulator controller 26 for processing and execution.Manipulator controller 26 performs tool path TP as described herein, including generation path constraint as described below.Manipulator controller 26 can produce certain segments (for example, introducing segments) in addition when starting or resuming machining to smoothly return to generated tool path TP.Manipulator controller 26 can also process virtual boundary 71 to generate corresponding virtual constraint, as further described below.
[0126] II. Guidance-Tactile Mode
[0127] The system 10 can be operated in a manual mode, such as described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. Here, the user manually directs, and the manipulator 14 performs, the movement of the tool 20 and its energy applicator 24 at the surgical site. The user physically contacts the tool 20 to cause the tool 20 to be moved in the manual mode. In one version, the manipulator 14 monitors the forces and torques placed on the tool 20 by the user in order to position the tool 20. For example, the manipulator 14 may include one or more sensors (e.g., force / torque sensors S) that detect and measure the forces and torques applied by the user to the tool 20 and generate corresponding inputs (e.g., one or more corresponding input / output signals) used by the control system 60. The forces and torques applied by the user at least partially define the external force F ext , the Fext Used to determine how to move the tool 20 in manual mode. External force F ext Other forces and torques besides those applied by the user may be included, such as gravity compensation forces, back-driving forces, etc., as described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. Thus, the external force F is at least partially defined by the forces and torques applied by the user. ext , and in some cases may completely define the external force F that affects the overall movement of the tool 20 in manual mode ext .
[0128] The force / torque sensor S may include a 6-DOF force / torque transducer, such as disclosed in, for example, U.S. Patent No. 9,119,655, which is incorporated herein by reference. The force / torque sensor S may form part of the tool 20, the manipulator 14, or both. The force / torque sensor S may form part of the interface between the tool 20 and the manipulator 14, or may be placed in any suitable location such that the force and torque applied to the tool 20 by the user are transmitted to the force / torque sensor S. The manipulator controller 26 and / or the navigation controller 36 receive input (e.g., a signal) from the force / torque sensor S. In response to the force and torque applied by the user, the manipulator 14 moves the tool 20 in a manner that emulates the movement that would occur based on the force and torque applied by the user. The movement of the tool 20 in manual mode may also be constrained with respect to a virtual boundary 71 generated by the boundary generator 66. In some versions, the measurements obtained by the force / torque sensor S are transformed from the force / torque coordinate system FT of the force / torque sensor S to another coordinate system, such as a virtual mass coordinate system VM in which a virtual simulation is performed on a virtual rigid body model of the tool 20, so that forces and torques can be virtually applied to the virtual rigid body in the virtual simulation to ultimately determine how those forces and torques (and other inputs) will affect the movement of the virtual rigid body, as described below.
[0129] The system 10 can also operate in a semi-autonomous mode in which the manipulator 14 moves the tool 20 autonomously along the milling path 72 (e.g., the movable joint J of the manipulator 14 operates to move the tool 20 without force / torque on the tool 20 from the user). Examples of operation in a semi-autonomous mode are also described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. In some embodiments, when the manipulator 14 operates in the semi-autonomous mode, the manipulator 14 is able to move the tool 20 without user assistance. No user assistance may mean that the user does not physically contact the tool 20 to move the tool 20. Instead, the user may use some form of remote control RC (see FIG. 1 ) that communicates with the manipulator 14 (e.g., wired or wireless). Figure 1) to control the start and stop of movement. For example, the user can press and hold a button of the remote control RC to start the movement of the tool 20 and release the button to stop the movement of the tool 20. Such a remote control RC embodied as a user pendant is disclosed in U.S. Patent No. 10,117,713 to Moctezuma de La Barrera et al., entitled “Robotic Systems and Methods for Controlling a Tool Removing Material from a Workpiece,” which is hereby incorporated by reference herein.
[0130] In manual mode, the user moves tool 20 from its current state to a target state, that is, moving to a target position, target orientation or target posture (position and orientation) may be challenging. For any number of reasons, it may be desirable to move tool 20 to a specific target state, such as placing tool 20 within the desired proximity to milling path 72, so that tool 20 is placed in an orientation that is applicable to preparing tissue to receive implants, aligning tool 20 with specific trajectory / planes, etc. When the patient's anatomical structure is partially blocked outside the user's field of view by soft tissue, fluid, etc., the difficulty of moving tool 20 to the target state can be aggravated. For this reason, system 10 can be switched to semi-autonomous mode from manual mode such as in the manner described in U.S. Patent number 9,119,655, which is incorporated herein by reference. In order to place tool 20 in the target state, manipulator 14 autonomously moves tool 20 from the current state to the target state.
[0131] Assuming that the user wishes to maintain manual contact with the tool 20 during movement toward the target state to achieve control of the tool 20, the system 10 can also operate in the guided-tactile mode. The guided-tactile mode can be used to help guide the user to place the tool 20 in the target state (attraction) or to guide the user away from the target state (repulsion). In the guided-tactile mode, aspects of the control used in the manual mode and the semi-autonomous mode are utilized. For example, the force and torque applied by the user are still detected by the force / torque sensor S to determine the external force F. ext , the external force F ext is fed into the virtual simulation to at least partially influence the overall movement of the tool 20. Additionally, in the guided-tactile mode, the system 10 generates a virtual restraining force F c The virtual attraction (or repulsion) force and torque embodied in the virtual constraint force F c With external force F extare fed together into the virtual simulation. While the guidance-haptic mode can be used to keep the user away from the target state (repulsive haptics), the examples described below focus on using the guidance-haptic mode to attract the tool 20 toward the target state (attractive haptics). Therefore, any software, hardware, technology, method, and / or calculation described below for attracting haptics can be fully applied to repelling haptics.
[0132] The virtual attractive forces and torques that can be applied to the virtual rigid body in the virtual simulation are adapted to attract the tool 20 toward the target state. The virtual attractive forces and torques affect the overall movement of the tool 20 in a manner that ultimately provides tactile feedback to the user to indicate how the tool 20 should be moved to reach the target state. More specifically, in the virtual simulation, the virtual attractive forces and / or torques can supplement and / or counteract the external force F. ext The effect of the forces and / or torques of the tool 20 (and / or other forces and torques) causes the tool 20 to ultimately move in a manner that provides the user with a tactile interaction effect that indicates the direction / rotation in which the tool 20 needs to be moved to reach the target state. Thus, the guided-haptic mode relies on manual manipulation of the tool 20 to move the tool 20, but such movement does not simply emulate the movement that would occur based on the forces and torques applied by the user, but rather is actively controlled via virtual attraction and torque to guide the user toward the target state. Thus, the guided-haptic mode combines the benefits associated with direct engagement of the user with the tool 20 and autonomous movement of the tool 20.
[0133] In the guided-haptic mode, the tool 20 is effectively attracted toward the target state to provide tactile interaction effects to the user. These effects may be generated in one or more degrees of freedom to attract the tool 20 toward the target state. Thus, the target state may be defined so as to attract the tool 20 in only one degree of freedom, or may be defined so as to attract the tool 20 in more than one degree of freedom. Thus, the target state may include a target position, a target orientation, or both defined in a target coordinate system TF (also referred to as a target frame TF). Figure 10As shown, the target position may include one or more position components relative to the x, y and / or z axis of the target coordinate system TF, for example, the target x position, the target y position and / or the target z position. In some cases, the target position is expressed as the origin of the target coordinate system TF. The target orientation may include one or more orientation components relative to the x, y and / or z axis of the target coordinate system TF, for example, the target x orientation, the target y orientation and / or the target z orientation. In some cases, the target orientation is expressed as the orientation of the x, y and z axis of the target coordinate system TF. The target posture means a combination of one or more position components and one or more orientation components. In some cases, the target posture may include the target position and target orientation in all six degrees of freedom of the target coordinate system TF. In some cases, the target position and / or target orientation may also be referred to as the starting position and / or starting orientation.
[0134] The target coordinate system TF may be any coordinate system in which a target state is defined, and the target state may be transformed to any other coordinate system desired to monitor the current state of the tool 20 relative to the target state of the tool 20. The target state may be tracked in a tracker coordinate system, a localizer coordinate system LCLZ, a manipulator coordinate system MNPL, a virtual mass coordinate system VM, a TCP coordinate system, etc. The target state may be defined relative to an anatomical model AM of the patient and may be fixed relative to the patient's anatomy in an anatomical model coordinate system, an anatomy tracker coordinate system, etc.
[0135] The current state of the tool 20 can be defined relative to a guided coordinate system GF (also referred to as a guide frame GF). The guided coordinate system GF can be bound to another coordinate system, such as a virtual mass coordinate system VM, or the current state can be transformed into any other coordinate system to enable tracking of the current state relative to a target state. The current state can be tracked in a tracker coordinate system, a localizer coordinate system LCLZ, a manipulator coordinate system MNPL, a virtual mass coordinate system VM, a TCP coordinate system, and the like. In some versions described herein, the current state of the tool 20 is initially defined by the TCP coordinate system (e.g., for ease of illustration, the TCP coordinate system and the guided coordinate system GF are shown to be the same). Both the guided coordinate system GF and the target coordinate system TF can be transformed into a common coordinate system for tracking purposes. The target state can be defined preoperatively, intraoperatively, or both.
[0136] III. Guidance Constraints
[0137] The control system 60 uses virtual constraints that are defined to generate virtual attractive forces and torques used in the virtual simulation of attracting the tool 20 to the target state. These virtual constraints are referred to as guidance constraints in this article. Guidance constraints are defined to ultimately affect the movement of the tool 20 toward the target state, so that one or more of the above-mentioned haptic interaction effects are provided to the user. Generally, virtual constraints are restrictions on the movement of a rigid body that the control system 60 considers together with other motion-related information to determine how to command the manipulator 14 to move the tool 20. As further described below, guidance constraints have configurable spring and damping properties so that the guidance constraints are not infinitely rigid. More specifically, in some versions, guidance constraints are defined as "soft constraints" so that they do not prevent movement that violates them, such as movement caused by forces and torques applied by the user in the direction opposite to the target state. Therefore, in the guidance-haptic mode, the user can still violate the guidance constraints and influence the movement of the tool 20 into the direction opposite to the target state, but the guidance constraints still work to generate attractive forces and torques (haptic interaction effects) that the user feels against the user, so that the user understands in which direction to move the tool 20 to reach the target state. For example, the user may perceive these haptic interaction effects because of the ease of moving the tool 20 toward the target state compared to moving it away from the target state (i.e., the user may feel as if more work is required to move the tool 20 away from the target state than to move it toward the target state). In other words, the user may feel as if a physical spring interconnects the guided coordinate system GF of the tool 20 with the target coordinate system TF (see Figure 10 Figure 2 shows the spring and damper in Figure 2).
[0138] One or more guidance constraints may be used by the control system 60 to guide the user, including up to three guidance constraints associated with the target position and up to three guidance constraints associated with the target orientation. As described in more detail below, the control system 60 operates to calculate a restraining force F that satisfies or attempts to satisfy the guidance constraints (and other virtual constraints, if used). c . Binding force F c Incorporate virtual attraction and torque to attract the tool 20 to the target state. Each of the guidance constraints is considered a one-dimensional virtual constraint. In some versions, the guidance constraint is a velocity pulse constraint, in which force and / or torque are calculated based on the desired constraint parameters to apply a virtual pulse to the object in the virtual simulation to cause a change in the velocity of the object. In some versions, the constraints are similar to those used in the impulse modeling described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. In some versions, the virtual constraints are defined only in the guidance-tactile mode and not in the manual mode or the semi-autonomous mode. In some versions, the virtual constraints are used in all modes.
[0139] exist Figure 10 In FIG, the three guiding constraints GC associated with the target position are illustratively shown as being defined in the target coordinate system TF, and their respective constraint directions are defined as the x, y, and z axes of the target coordinate system TF. The constraint direction of any constraint is the direction along which the constraint can effectively exert a force. The constraint direction can also be defined in the guided coordinate system GF, or the constraint direction can be defined using any known relationship to either the target coordinate system TF or the guided coordinate system GF. The constraint force F is finally calculated as a result of these three guiding constraints GC. c The illustrated example includes an attractive force incorporating spring and damping properties that guides the TCP of the tool 20 to a target location (e.g., the origin of the target coordinate system TF). This is just one example. The restraining force F c Components of force and torque may be included to also align the tool 20 with a target orientation.
[0140] Each of the guided constraints (and other virtual constraints, if used) is primarily defined by three runtime parameters: the constraint Jacobian matrix Jp, which maps the forces / velocities applied along the constraint direction of each one-dimensional guided constraint at the guided coordinate system GF to the coordinate system used for the virtual simulation (e.g., mapping the forces / velocities applied along the components of the target coordinate system TF to the virtual mass coordinate system VM); the desired velocity V des (or Vp2), which is the scalar velocity resulting from projecting the velocity of the target coordinate frame TF (relative to a stationary reference frame, such as the manipulator coordinate frame MNPL at the base 16 of the manipulator 14) into the constrained direction, where the desired velocity may be zero when the patient is stationary or non-zero when the patient is moving if the target coordinate frame TF is specified relative to the patient via a corresponding anatomical structure tracker; and the constrained distance Δd, which is the scalar distance resulting from projecting the linear / angular distance between the guided coordinate frame GF and the target coordinate frame TF into the constrained direction. In some cases, Δd refers to the distance / angular component of the current state (indicated by the guided coordinate frame GF) from the target state (indicated by the target coordinate frame TF), and the guiding constraint is violated any time the current state does not match the target state for the associated degree of freedom. In Figure 10 In the figure, three separate guidance constraints GC are shown, where each of the guidance constraints has a specific constraint direction, for example, the x, y, and z axes of the target coordinate system TF. The corresponding constraint Jacobian matrix Jp, the desired velocity V, and the corresponding constraint direction are calculated for each constraint. des and Δd. For simplicity, Figure 10 Only a single constraint Jacobian matrix Jp of a guidance constraint GC (eg, a z-axis guidance constraint GC) whose constraint direction is along the z-axis of the target coordinate system TF, a desired velocity V des and Δd. Therefore, the V shown here desand Δd are those values of the guidance constraints imposed along the z direction of the target coordinate system TF, but there will usually be other guidance constraints V des and non-zero values of Δd (e.g., x-axis guide constraint and y-axis guide constraint), although not shown.
[0141] The guide constraints are not infinitely rigid, instead each of the guide constraints has tuning parameters to adjust the stiffness of the virtual constraint, for example, by incorporating spring and damping parameters into the constraint. Such parameters may include a constraint force hybrid parameter (C) and an error reduction parameter (ε) that can be calculated to achieve equivalent spring / damper behavior. The spring and damping parameters can be adjusted during operation in the guide-tactile mode. In some versions, the value of the tuning parameter can be changed based on the relationship between the current state and the target state. For example, the tuning parameter can be configured to increase the stiffness as the tool 20 becomes closer to the target state, or the tuning parameter can decrease the stiffness as the tool 20 approaches the target state. The tuning parameters can be different for different guide constraints. For example, the guide constraint may include a first virtual constraint having a first value of the tuning parameter and a second virtual constraint having a second value of the tuning parameter, the first value being different from (e.g., greater than) the second value, such that the first virtual constraint has a lower stiffness than the second virtual constraint due to the constraint force F. c The resulting virtual attractive force and / or torque embodied in is adapted to attract the tool more strongly.For position constraints, the value of the tuning parameter may be greater (eg, more rigid) for the position constraint than for the orientation constraint, or vice versa.
[0142] The tuning parameters can also be set to: remain constant regardless of the distance / angle from the current state to the target state; increase / decrease exponentially with distance; vary linearly with the distance between the current state and the target state; vary with the direction of the constraint; emulate the force / distance relationship of a gravitational field; and so on. The tuning parameters of a constraint associated with one degree of freedom can be set based on a relationship associated with another degree of freedom, for example, the stiffness of an x-axis constraint can be changed based on the distance along the y-axis between the current state and the target state. The tuning parameters can also vary based on the direction in which the tool 20 needs to move to reach the target state, for example, being stiffer when moving in one direction along the x-axis than when moving in the opposite direction along the x-axis. The tuning parameters can also be changed based on the constraint force F that is ultimately calculated based on the guide constraint. c Scaling is performed, such as by applying a constraint force F c Or the magnitude of any of its components to increase / decrease the stiffness. In some cases, one or more fixed values of virtual attractive forces may also be added to the virtual simulation.
[0143] The tuning parameters of the guidance constraints can be set so that the user can easily move the tool 20 away from the target position and / or target orientation. In other words, the tuning parameters can be set so that in the virtual simulation, the effects of the forces and torques applied by the user can exceed the effects of the virtual attractive forces and torques. Thus, the control system 60 can be configured to enable the user to reposition and / or reorient the tool 20 away from the target position and / or target orientation even when the guidance constraints are enabled. The tuning parameters of the guidance constraints can be: set preoperatively; set intraoperatively; updated intraoperatively; and combinations thereof. The tuning parameters and their values, their correlation with specific relationships, and the manner in which they can be scaled can be stored in one or more lookup tables in any suitable memory in the control system 60 for later retrieval.
[0144] The guidance constraints are activated when the user switches the system 10 to the guidance-tactile mode, or when the system 10 automatically switches the system 10 to the guidance-tactile mode. Of course, the guidance constraints can be activated in other modes. Additionally or alternatively, the user may be able to manually set the guidance constraints (e.g., via one or more of the user interface UI, change one or more parameters of the guidance constraints, activate / deactivate the guidance constraints, etc.). The user can use the clinical application 80 to do this. The guidance constraints can also be triggered when certain surgical steps are being performed (e.g., cutting a desired volume of tissue, etc.), or when the system 10 detects or otherwise identifies certain conditions (e.g., the system 10 detects that the user is having difficulty placing the tool 20 in manual mode).
[0145] Each guidance constraint also has configuration settings. The configuration settings may include: information about tuning parameters such as the constraint force blending parameter (C) and the error reduction parameter (ε), which may be specified directly or indirectly via spring and damper parameters from which the constraint force blending parameter (C) and the error reduction parameter (ε) are calculated; upper and / or lower force limits; and / or upper and lower constraint distance offsets. The upper and lower force limits refer to the limits of the forces calculated for each guidance constraint, which are ultimately solved by the constraint solver 86 to produce the constraint force F c, as further described below. The guiding constraints can be bilateral constraints (e.g., the force calculated to satisfy the constraint can be positive or negative), and the force limits can be set high (e.g., -100,000 / +100,000 Newtons) or at any desired limits in the positive and negative directions. The upper and lower constraint distance offsets indicate when the constraint is active. Relative to the guiding constraint, the upper and lower constraint distance offsets can be set so that the constraint is active at any time when the current state is different from the target state. Additional configuration settings for each guiding constraint can be the pose of the guided coordinate system GF (e.g., defined relative to the virtual mass coordinate system VM) and the pose of the target coordinate system TF (e.g., defined relative to the anatomical structure tracker). The poses of the guided coordinate system GF and the target coordinate system TF are used to calculate the current state and the target state, respectively.
[0146] Figure 11 is a block diagram of a process implemented in some versions to execute the guided-haptic mode. In these versions, behavior control 74 includes a path handler 82, a guidance handler 84, a constraint solver 86, and a virtual simulator 88. Behavior control 74 also includes a boundary handler 89 to generate virtual boundary constraints based on one or more virtual boundaries 71 generated by boundary generator 66. Path handler 82, guidance handler 84, constraint solver 86, virtual simulator 88, and boundary handler 89 each include executable software stored in non-transitory memory of any one or more of the above-mentioned controllers and implemented by control system 60.
[0147] The guidance processing program 84 obtains the target state of the tool 20 and generates one or more guidance constraints based on the target state and the current state of the tool 20. As previously mentioned, the target state (e.g., position, orientation, and / or velocity) can be specified as a target position, a target orientation, and / or a target velocity of the target coordinate system TF, and the current state can be specified as a current position, a current orientation, and / or a current velocity of the guided coordinate system GF. Figure 11 As shown, two inputs into the guidance handler 84 include a current state and a target state. The current state can be defined relative to the last command pose CP, since the last command pose CP is related to the current pose of the tool 20. The command pose CP can be calculated as, for example, a pose of a virtual mass coordinate system VM or a TCP coordinate system relative to the manipulator coordinate system MNPL. The target state can be defined in an anatomical coordinate system, an anatomical structure tracker coordinate system, or the like, and transformed to a common coordinate system with the current state, such as the manipulator coordinate system MNPL. Other inputs into the guidance handler 84 include configuration and tuning parameters of guidance constraints. The guidance handler 84 defines one or more guidance constraints based on the relationship between the current state and the target state and the configuration and tuning parameters. The guidance constraints are output from the guidance handler 84 to the constraint solver 86.
[0148] Various virtual constraints can be fed into the constraint solver 86, including guidance constraints, path constraints, boundary constraints, and other constraints. These constraints can be turned on / off by the control system 60. For example, in some cases, path constraints, boundary constraints, and other constraints may not be generated. Similarly, in some cases and in certain operating modes, guidance constraints may not be generated. All virtual constraints used in the behavior control 74 can affect the movement of the tool 20. For the purpose of illustration, only guidance constraints will be described in detail.
[0149] The constraint solver 86 calculates the constraint force F to be virtually applied to the tool 20 in the virtual simulator 88 based on the virtual constraints fed into the constraint solver 86. c In the guided-tactile mode, the restraining force F c The force and / or torque components are adapted to attract the tool 20 from the current state toward the target state based on one or more guiding constraints. Fc can be considered as the virtual attraction force mentioned above. However, when other constraints are adopted, the ultimate task of the constraint solver 86 is to provide the constraint force F c The solution that satisfies or attempts to satisfy all constraints, and therefore other constraints may also affect the constraint force F c In those cases, the virtual attractive forces and torques are considered as the restraining forces F c Those force and torque components that are directed toward the goal state due to the guiding constraints.
[0150] refer to Figure 12 The constraint solver 86 places the constraint data of each virtual constraint into the corresponding row of the constraint equation in matrix form to solve F p .for Figure 10 For the example shown, and for the case where only the guided constraint activity is p is the force vector in the target coordinate system TF, that is, F p Each component of is a scalar constraint force acting in the corresponding constraint direction. In order to solve F p , as described below, Figure 12 The equation shown is converted into a matrix equation where each row represents a single one-dimensional constraint. The constraint data is placed in the constraint equation along with other information known to the constraint solver 86, such as the external force F cgext , damping force F 阻尼 , inertial force F 惯性 , virtual mass matrix M, virtual mass velocity V cg1 and a time step Δt (e.g., 125 microseconds).
[0151] The virtual mass matrix M combines the 3x 3 mass and inertia matrices. The damping force F 阻尼 and inertial force F 惯性 is calculated / known by the virtual simulator 88 and is based on the virtual mass velocity V output by the virtual simulator 88 in the previous time step cg1 (For example, the velocity of the virtual mass coordinate system VM). Virtual mass velocity V cg1 is a 6-DOF velocity vector including linear velocity and angular velocity components. Damping force F 阻尼 is based on the virtual mass velocity V cg1 The 6-DOF force / torque vector is calculated using the inertial force F and the damping coefficient matrix (the linear and rotational coefficients may not be equal). Damping is applied to the virtual mass to improve its stability and / or give the user a desired feel, e.g., how the tool 20 responds to the forces and torques applied by the user. 惯性 Also according to the virtual mass velocity V cg1 The 6-DOF force / torque vector calculated from the virtual mass matrix M. The damping force F 阻尼 and inertial force F 惯性 It can be determined in the manner described in US Patent No. 9,566,122 to Bowling et al., which is hereby incorporated by reference.
[0152] The constraint solver 86 may be configured with any suitable algorithmic instructions (e.g., an iterative constraint solver, a projected Gauss-Seidel solver, etc.) to solve this set of constraint equations in order to provide a solution that satisfies the set of equations (e.g., satisfies the various constraints). In some cases, not all constraints may be satisfied simultaneously. For example, where the motion is overconstrained by the various constraints, the constraint solver 86 will essentially find a 'best fit' solution in view of the relative stiffness / damping of the various constraints. The constraint solver 86 solves the set of equations and ultimately outputs the constraint force F p .
[0153] When a projected Gauss-Seidel solver is employed, the constraint solver 86 constructs the A and b matrices based on the constraints and solves the system of equations using projected Gauss-Seidel to determine the resulting force vector F p , take the output of the projected Gauss-Seidel and transform it from the constraint coordinate system to the virtual mass coordinate system VM. For example, using equation F c =J p T F p , where F c is the restraining force, force vector F p The components of are converted into equivalent force / torque vectors F applied to the virtual mass coordinate system VM c .
[0154] Methods for using Projected Gauss-Seidel to solve multiple constrained systems of equations are shown, for example, in "Constraint based physics solver" by Marijn Tamis and Giuseppe Maggiore, dated June 15, 2015 (v1.02), which can be found at http: / / www.mft-spirit.nl / files / MTamis_ConstraintBasedPhysicsSolver.pdf, or "Comparison between Projected Gauss-Seidel and Sequential Impulse Solvers for Real-Time Physics Simulations" by Marijn Tamis, dated July 1, 2015 (v1.01), which can be found at http: / / www.mft-spirit.nl / files / MTamis_PGS_SI_Comparison.pdf, both of which are hereby incorporated by reference in their entirety.
[0155] The projected Gauss-Seidel method solves the linear complementarity problem (LCP). Since some constraint types (e.g., unilateral constraints, such as boundary constraints) can only push (apply force) in one direction, such as positive constraint forces, inequalities associated with LCP arise. If the calculated force for such a constraint is negative (or more generally, outside its allowed range) at a given iteration of the constraint solver 86, i.e., invalid, the given constraint must be pruned (or alternatively limited / capped to its upper or lower allowed value) and the remaining constraints solved until a suitable result is found (i.e., convergence). In this way, the constraint solver 86 determines the active constraint set for a given time step and then solves for their values. Other constraint types can apply forces in both positive and negative directions, such as bilateral constraints. Such constraints include guide constraints for guiding the user to move the tool toward a target state. Such bilateral constraints are typically active and not pruned / restricted during the constraint solver 86 iteration when enabled.
[0156] The constraint force F calculated by the constraint solver 86 c The virtual simulator 88 utilizes the constraint force F in its virtual simulation. c and the external force F cgext , damping force F 阻尼 and inertial force F 惯性(All of these may include six force / torque components.) In some cases, these force / torque components are first transformed to a common coordinate system (e.g., virtual mass coordinate system VM) and then summed to define the total force F T The resulting 6-DOF forces (ie, forces and torques) are applied to the virtual rigid body and the resulting motion is calculated by the virtual simulator 88. The virtual simulator 88 thus functions to effectively simulate the various constraints (all of which are reflected in the total force F T How does the motion of the virtual rigid body be affected by applying a given total force F to the virtual rigid body? T , the virtual simulator 88 performs forward dynamics to calculate the resulting 6-DOF pose and velocity of the virtual rigid body. In one example, the virtual simulator 88 includes a physics engine that is executable software stored in the non-transitory memory of any one or more of the previously mentioned controllers 21, 26, 36 and implemented by the control system 60.
[0157] For virtual simulation, the virtual simulator 88 models the tool 20 as a virtual rigid body in a virtual mass coordinate system VM, wherein the origin of the virtual mass coordinate system VM is typically located at the center of mass of the virtual rigid body and the coordinate axes are aligned with the principal axes of the virtual rigid body. For the purposes of the virtual simulation, the virtual rigid body is a dynamic object and is a rigid body representation of the tool 20. According to the virtual simulation, the virtual rigid body is free to move according to six degrees of freedom (6-DOF) in Cartesian space. The virtual simulation can be processed computationally without visual or graphical representation. Therefore, the virtual simulation does not need to display the dynamics of the virtual rigid body. In other words, there is no need to model the virtual rigid body within a graphics application executed on the processing unit. The virtual rigid body may exist only for the virtual simulation.
[0158] The virtual rigid body and its properties (mass, inertia matrix, center of mass, principal axes, etc.) define how the tool 20 will respond to applied forces and torques (e.g., from the total force F T , which incorporates the forces and torques applied by the user and the attractive / repulsive forces and torques, as well as other forces and torques resulting from other constraints (if any). This governs whether the tool 20 will feel heavy or light and how it will move (e.g., accelerate in translation and rotation) in response to the applied forces and torques. By adjusting the properties of the virtual rigid body, the control system 60 can adjust the user's perception of the tool 20. For as realistic motion / feel as possible, it may be desirable to model the properties of the virtual rigid body to be reasonably close to the actual properties of the tool 20, but this is not required. For control stability reasons (to account for finite acceleration of the manipulator, control delays, etc.), the virtual mass and inertia may be modeled to be slightly higher than the virtual mass and inertia of the physical tool 20.
[0159] The virtual rigid body may correspond to a component that may be on or within the tool 20. Additionally or alternatively, the virtual rigid body may partially extend beyond the physical tool 20. The virtual rigid body may consider a tool 20 with an energy applicator 24 or a tool 20 without an energy applicator 24. In addition, the virtual rigid body may be based on a TCP. In one example, the center of mass of the virtual rigid body is understood to be the point around which the virtual rigid body will rotate if a virtual force is applied to another point of the virtual rigid body and the virtual rigid body is otherwise unconstrained (i.e., not constrained by the manipulator 14). The center of mass of the virtual rigid body may be close to but not necessarily identical to the actual center of mass of the tool 20. The center of mass of the virtual rigid body may be determined empirically. Once the tool 20 is attached to the manipulator 14, the position of the center of mass can be reset to accommodate the preferences of the individual practitioner.
[0160] The virtual simulator 88 effectively simulates the rigid body dynamics of the tool 20 by virtually applying forces and / or torques on the virtual rigid body in the virtual simulation, i.e., virtually applying a total force F at the center of mass of the virtual rigid body in a virtual mass coordinate system VM. T Thus, the force / torque applied virtually to the virtual rigid body may include the force and torque components of the external force F cgext (e.g., based on input from one or more sensors), the damping force F 阻尼 , inertial force F 惯性 The associated forces / torques, and the constraint forces F associated with the various constraints c The force / torque (due to the constraint force F c middle).
[0161] The rigid body Jacobian matrix can be used to transform velocities and forces from one coordinate system (reference frame) to another coordinate system on the same virtual rigid body, and can also be used here to transform F ext The forces and torques are transformed into the virtual mass coordinate system VM (e.g., to obtain F used in the constraint equations cgext ). The virtual simulator 88 then internally calculates the damping force F 阻尼 and inertial force F 惯性 To determine the total force F T , and also outputs the damping force F 阻尼 and inertial force F 惯性 for use by the constraint solver 86 in its set of equations in the next time step.
[0162] like Figure 13 and Figure 14 The virtual forward dynamics algorithm shown can be used in a virtual simulation to simulate the virtual rigid body in which the total force F is applied. TIn practice, the virtual forward dynamics algorithm solves the equation F=ma (or a=F / m) in 6-DOF and integrates the acceleration to get the velocity, which is then used to determine the new pose, such as Figure 14 As shown. The control system 60 converts the virtual force and / or torque (eg, total force F T ) are input into the virtual simulator 88, and these virtual forces and / or torques are applied to the center of mass (e.g., CG) of the virtual rigid body in the virtual simulator 88 when the virtual rigid body is in an initial pose with an initial velocity. In response to the control system 60 satisfying the input virtual forces and / or torques, the virtual rigid body is moved in Cartesian space to a final pose with a different state (i.e., position and / or orientation) and a final velocity. The next command pose CP to be sent to the motion control 76 is based on the final pose calculated by the virtual simulator 88. Therefore, the virtual simulator 88 operates to calculate the final pose by using the following example. Figure 14 The virtual forward dynamics simulation shown applies a total force F on the virtual rigid body. T The effect of CP is used to determine the next command posture CP.
[0163] In the simulation, acceleration limits may be imposed on the virtual rigid body. In some cases, the velocity limits may be set high so that they generally do not affect the simulation, or they may be set to any desired value. At the beginning of each iteration of the virtual simulation (e.g., at each time step / interval dt), the virtual rigid body is in an initial pose (initial state) and has an initial velocity. The initial pose and initial velocity may be defined as the final pose and final velocity output by the virtual simulator 88 in the previous time step. The velocity limit may also be used to calculate the damping force F by increasing as the velocity of the virtual rigid body approaches and / or exceeds a threshold value. 阻尼 The damping coefficient is applied.
[0164] Thereafter, the virtual simulator 88 calculates and outputs the next command pose CP based on its virtual simulation. The control system 60 is configured to command the manipulator 14 to move the tool 20 based on the command pose CP, which ideally causes the tool 20 to move in a manner that guides the user to place the tool 20 in the target state by providing tactile feedback to the user that guides the user to place the tool 20 in the target state. Thus, the user is able to manually manipulate the tool 20 while the control system 60 assists in guiding the tool movement by utilizing guidance constraints. The forces and torques applied by the user to the tool 20 can still affect the overall movement of the tool 20 because the external force F is not applied to the tool 20 before the virtual simulation is run to determine the command pose CP. ext With binding force F c In some cases (e.g., time steps), the total force F T Including the external force F extforce and torque components whose magnitude and direction are sufficient to overcome the restraining force F c The force and torque of F are such that the tool 20 can be moved away from the target state. However, as previously mentioned, the guide constraint has a configurable stiffness and damping that can be tuned in some cases so that the external force F ext The impact is small.
[0165] Figure 15 Summarizing the various steps performed by the behavioral control 74, these include steps performed by the constraint solver 86 and the virtual simulator 88 as described above. In step 100, the external force F is calculated based on the readings taken from the force / torque sensor S. ext In step 102 , constraint data associated with various virtual constraints is fed into the constraint solver 86 from the path handler 82 , the guide handler 84 , the boundary handler 89 , and / or other constraint sources.
[0166] In steps 104-108, a rigid body calculation is performed by the virtual simulator 88 to determine the inverse mass matrix M of the virtual rigid body. -1 , inertial force F 惯性 and damping force F 阻尼 In steps 110-114, the constraint solver 86 utilizes the output from the rigid body calculations performed in steps 104-108 and the constraint data provided in step 102 to perform the previously described constraint force calculations to ultimately obtain the constraint force F c In step 116, the constraint force F c The external force F transformed to the virtual mass coordinate system VM ext (F cgext ), damping force F 阻尼 and inertial force F 惯性 Add together to get the total force F T In step 118, the total force F is converted to T The virtual rigid body is applied to determine the new posture and velocity of the virtual rigid body in step 120, and finally the new posture and velocity are transformed into TCP in step 122. In step 124, the new command posture CP (T TCP ) and speed (V TCP ).
[0167] IV. Examples
[0168] a. Guidance for acetabular preparation
[0169] 16A to 16DIllustrate the application of the guidance-tactile mode. In this example, the control system 60 has activated the guidance-tactile mode and the associated guidance constraints to assist the user (see the representation of the user's hand) in placing the TCP of the tool 20 at a target position located at the center of the patient's acetabulum and a target orientation suitable for avoiding collision of the tool 20 with the acetabulum. Guidance constraints are employed in six degrees of freedom to guide the user toward the target state, namely, three position constraints along the x, y, and z axes of the target coordinate system TF that guide the origin of the guided coordinate system GF to the origin of the target coordinate system TF, and three orientation constraints about the x, y, and z axes of the target coordinate system TF that guide the x, y, and z axes of the guided coordinate system GF to be aligned with the x, y, and z axes of the target coordinate system TF. It is noteworthy that 16A to 16D Only a single guidance constraint is shown as being active along the z-axis of the target coordinate system TF (eg, as represented by the associated Δd) and the velocity of the target coordinate system TF is zero—resulting in a constraint force F c is defined directly along the z-axis of the target coordinate system TF. However, other guiding constraints (defined along the x- and y-axes of the target coordinate system TF) will typically also be active, although not shown.
[0170] In some cases, the orientation guidance constraint about the z-axis may be removed or inactive so that the x, y axes of the guided coordinate system GF may not be guided to align with the x, y axes of the target coordinate system TF because the tool 20 may include a bone drill or other energy applicator that does not require precise orientation of the tool 20 about the z-axis. In some cases, only one, two, three, or four guidance constraints may be used. More than six guidance constraints may also be used, such as when more than one guidance constraint is defined for any degree of freedom. For illustration purposes, 16A to 16D The progression of φ shows that the guided frame GF is aligned with the target frame TF in all six degrees of freedom due to the six guiding constraints.
[0171] In from 16A to 16D The TCP of the tool 20 is shown moving towards the target state (in this case, towards the origin of the target coordinate system TF) as the time step progresses. At each time step, the constraint force F is calculated. c And consider the guidance constraints to effectively guide the user to apply forces and torques that ideally move the tool 20 toward the target state. The guidance constraints can be dynamic in that their tuning parameters are adjusted at each time step. For example, the closer the current state is to the target state (e.g., the closer the guided coordinate system GF is to the target coordinate system TF—see Δd), the stronger the spring and / or damping characteristics of the guidance constraints can be. Thus, as the guided coordinate system GF approaches the target coordinate system TF, the constraint force F c (which may include force and / or torque components associated with stronger spring and / or damping characteristics) may increase in magnitude.
[0172] b. Guidance for vertebral body preparation
[0173] Figure 17 and Figure 18 Another example of a guidance-tactile mode for assisting a user to place a tool 20 in a target state is illustrated. In this example, the control system 60 has activated the guidance-tactile mode and associated guidance constraints to assist the user in placing the TCP of the tool 20 (e.g., a bone drill 25 or drill) in the target position relative to the planned hole of the pedicle screw and in the target orientation of aligning the tool 20 with the planned hole. Guidance constraints are employed on four degrees of freedom to guide the user toward the target state, i.e., two position constraints along the x and y axes of the target coordinate system TF and two orientation constraints about the x and y axes of the target coordinate system TF. Similar target states can be used for multiple parallel axis holes. Additional guidance constraints (e.g., z-axis position constraints) can be employed to help the user locate and orient the tool 20 at the entrance portion 71a of the virtual boundary 71 generated for the planned hole to reduce the possibility of the tool 20 violating the virtual boundary 71.
[0174] At each time step, the constraint force F is calculated c And consider the guidance constraints to effectively guide the user to apply forces and torques that ideally move the tool 20 toward the target state. The guidance constraints can be dynamic in that their tuning parameters are adjusted at each time step. For example, the closer the current state is to the target state (e.g., the closer the guided coordinate system GF is to the target coordinate system TF in the z-axis direction of the target coordinate system TF—see z distance), the greater the stiffness of the guidance constraints can be. Therefore, with reference to Figure 18 , binding force F c The force and torque components relative to the x and y axes may have forces and torque components that increase in magnitude as the magnitude of the z distance (e.g., the absolute value of the distance) decreases. The tuning parameters of the guidance constraint may also be adjusted based on other relationships between the current state and the target state, such as the x, y, and / or z distances between the current state and the target state, the x, y, and / or z angles between the current state and the target state, or any combination of distances and angles. In some versions, a lookup table may be accessible by the control system 60 that relates the tuning parameters to the magnitude of the x, y, and / or z distances and / or projections onto a plane, etc. and / or to the x, y, and / or z distances based on the magnitude of the x, y, and / or z angles. In some versions, the tuning parameters may be adjusted so that the constraint force F cHaving force and torque components that are scaled or otherwise adjusted based on the sign (+ / -) of the x, y, and / or z distances and / or the x, y, and / or z angles. For example, the tuning parameters of the guidance constraints along the z-axis can be adjusted based on whether the TCP of the tool 20 is approaching the target coordinate system TF (e.g., the TCP of the tool 20 is approaching a shank hole / drill hole, where the z-axis position is positive) or has already reached the target coordinate system TF and is now penetrating beyond the target coordinate system TF (e.g., the TCP of the tool 20 is inside a nail hole / drill hole, where the z-axis position is negative). It may be desirable, for example, to have a gradually increasing stiffness as the TCP of the tool 20 approaches the shank hole / drill hole (as the z-distance moves from a large positive value to zero), and then continue to maintain maximum stiffness as the user moves into the shank hole (as the z-distance moves from zero to increasingly negative values). Alternatively, for some situations, it may be desirable to effectively disable one or more of the guidance constraints by setting their stiffness to zero for negative values of the z-distance.
[0175] The guided alignment of the tool 20 in the guided-tactile mode can also assist in machining axial holes for certain implants, for example, by controlling the position and orientation of an energy applicator (such as a bone drill 25 or drill bit) before or during machining of the hole. As previously discussed, the tuning parameters of the various constraints can be different depending on the flexibility required. For example, the guidance constraint associated with the orientation of the tool 20 can be tuned to be relatively weaker than the guidance constraint associated with the position of the TCP of the tool 20, so that the user can easily change the orientation of the tool 20 via the forces and torques applied to the tool 20 by the user, while at the same time giving the user an indication (via subtle tactile feedback) of the target orientation of the tool 20. This can make it easier for the user to avoid certain anatomical structures, retractors, etc. when machining the axial hole.
[0176] c. Guidance for femoral preparation for total knee implants
[0177] Figure 19 and Figure 20Another example of a guidance-tactile mode for assisting a user in placing a tool 20 (e.g., with a saw blade 27) in a target state is illustrated. In this example, the control system 60 has activated the guidance-tactile mode and associated guidance constraints to assist the user in placing the TCP of the tool 20 in a target position relative to the desired cutting plane 73c for a total knee replacement and in a target orientation that aligns the tool 20 with the desired cutting plane 73c. In this case, the origin of the target coordinate system TF is offset from the desired cutting plane 73c by at least half the blade thickness to account for the blade thickness. Three guidance constraints are employed in three degrees of freedom to guide the user toward the target state, namely, one position constraint along the y-axis of the target coordinate system TF and two orientation constraints about the x and z-axes of the target coordinate system TF. Additional guidance constraints (e.g., a z-axis position constraint) may be employed to help guide the user in positioning and orienting the tool 20 at the entrance 71a of the virtual boundary 71 to reduce the likelihood of the tool 20 violating the virtual boundary 71.
[0178] At each time step, the constraint force F is calculated c And consider the guidance constraints to effectively guide the user to apply forces and torques that ideally move the tool 20 toward the target state. The guidance constraints can be dynamic in that their tuning parameters are adjusted at each time step. For example, the closer the current state is to the target state (e.g., the closer the guided coordinate system GF is to the target coordinate system TF in the z-axis direction—based on the z-distance), the greater the stiffness of the guidance constraints can be. Therefore, with reference to Figure 21 , the stiffness associated with the tuning parameter of the guide constraint may increase in magnitude as the magnitude of the z distance decreases. In some versions, the tuning parameter may be adjusted so that the constraint force F c Having a force and / or torque component scaled or otherwise adjusted based on the sign (+ / -) of the z distance.For example, tuning parameters for a guide constraint along the z-axis may be adjusted based on whether the TCP of the tool 20 has a positive or negative z-axis position.
[0179] Aligning the tool 20 with the desired cutting plane assists the user in making precise cuts along the femur and / or tibia, for example, to make room for a total knee implant. Figure 9, the guidance constraint can be used to align the tool 20 to each of the five cutting planes 73a-73e that the femur may need. The guidance constraint can similarly remain active during the cutting process so that the user is continuously guided toward the target state. This can be used to reduce the possibility that the user applies forces and torques to the tool 20 that virtually cause the tool 20 to violate the virtual boundary 71. In some versions, the target coordinate system TF can define a virtual boundary (e.g., an infinite planar virtual boundary defined by the xz plane). The guidance processing program 84 will initially generate guidance constraints to pull the tool 20 to the xz plane, and then the guidance processing program 84 will effectively act as a boundary processing program 89 by generating guidance constraints to keep the tool 20 on the xz plane. In this case, the stiffness of each guidance constraint can increase as the tool 20 approaches the xz plane to help keep the tool 20 on the xz plane. Therefore, the guidance constraint can also be regarded as a boundary constraint. Utilizing the planar virtual boundary, the user can control the width and depth of the cut to avoid soft tissue, etc., or can define a separate virtual boundary to control width and / or depth.
[0180] d. Guidance for the starting position of self-processing
[0181] refer to Figures 22A to 22F , when preparing the system 10 for operation in the semi-autonomous mode, the guidance-tactile mode can also be used to guide the user. More specifically, the guidance-tactile mode can help guide the user to move the tool 20 to a starting position and / or starting orientation relative to the tool path TP (such as the milling path 72 shown). This can include guiding the user to a starting position on the milling path 72 or spaced apart from the milling path 72. The starting position can be located in free space outside the milling path 72, or in free space on the milling path 72 so that the energy applicator 24 can be energized before engaging any tissue to reduce stalling, etc. The starting orientation can be a preferred orientation stored in the control system 60. Guidance constraints can be defined to place the TCP of the tool 20 in the starting position (e.g., three position constraints along the x, y, and z axes) and a starting orientation relative to two degrees of freedom (e.g., two orientation constraints about the x and y axes).
[0182] Figure 22A The example tool 20 has been placed at a starting position and a starting orientation defined relative to the target coordinate system TF, i.e., the user has placed the tool 20 and the guided coordinate system GF at a starting position and a starting orientation defined by the target coordinate system TF via the guide-tactile mode. Figure 22AAs shown, when the semi-autonomous mode is activated (or pre-prepared), the control system 60 generates an introduction path 72a from the starting position to the starting point of the milling path 72. As previously noted, the starting position may be spaced apart from the milling path 72 to enable the energy applicator 24 to be powered on before engaging any tissue. The introduction path 72a, which may be generated by the path processing program 82, may define autonomous tool path segments (in some cases linear) to guide the tool 20 to the starting point of the milling path 72 so that the energy applicator engages tissue after the energy applicator 24 has been powered on. The control system 60 then instructs the manipulator 14 to move the tool 20 so that the TCP of the tool 20 follows the introduction path 72a. When the semi-autonomous mode is activated, the tool controller 21 may simultaneously supply energy to the energy applicator 24 so that the energy applicator 24 is active while the energy applicator 24 moves autonomously along the introduction path 72a, for example, the bone drill 25 may rotate at a desired speed for removing material. In some versions, the introduction path 72a may not be employed. In some cases, the starting position is at the beginning of the milling path 72, but the beginning of the milling path 72 is located in free space to enable the energy applicator 24 to be energized before engaging any tissue.
[0183] Figure 22B and Figure 22C The example control system 60 operates in a semi-autonomous mode to move the TCP of the tool 20 along the milling path 72 to remove material from the femur to make room for the femoral stem implant. Figure 22C When the control system 60 is operating in the semi-autonomous mode and the user instructs the control system 60 to switch to the manual mode (or some other mode), or when the control system 60 automatically switches to the manual mode (or some other mode), the control system 60 records the last known position / point KP occupied by the tool 20 on the milling path 72 in the semi-autonomous mode before the switch.
[0184] Figure 22D For example, the user has caused the TCP of the tool 20 to be moved (pulled) along the retraction path 72b in manual mode, away from the last known position / point KP. The control system 60 can store each command posture CP calculated along the retraction path 72b in manual mode for the tool 20. Thereafter, as further described below, the retraction path 72b can be used to help guide the user back to the last known position / point KP.
[0185] refer to Figure 22E During machining in the semi-autonomous mode, the control system 60 can track the progress of the tool 20 to determine whether the user has Figure 22DThe control system 60 can help guide the user back to machining in the semi-autonomous mode after moving the tool 20 away from the milling path 72. For example, the control system 60 can determine a new starting position (also called a restart position SP) to which the tool 20 is to be guided based on the progress of the machining. Figure 22E As shown, restart position SP is defined as the origin of the new target coordinate system TF. Restart position SP may also be selected from a plurality of possible restart positions IN defined along restart path 72c. Restart path 72c may be based on the shape of virtual boundary 71. In some cases, restart path 72c is defined centrally relative to virtual boundary 71 and extends from entry portion 71a of virtual boundary 71 to the distal tip of tube portion 71b of virtual boundary 71. Restart path 72c may also be based on, and may be identical to, withdrawal path 72b.
[0186] The restart position SP can be selected from a plurality of other possible restart positions IN based on the last known position / point KP of the tool 20 on the milling path 72 before the tool 20 is moved out of the milling path 72 as shown. As previously described, the control system 60 determines the last known position / point KP on the milling path 72 before the tool 20 is moved out of the milling path 72 traversed by the tool 20 and stores the last known position / point KP in memory for later retrieval. The restart position SP can be calculated by the control system 60 as the point on the restart path 72 c that is closest to the last known position / point KP. In some versions, after finding the closest point on the restart path 72 c, the restart position SP (and the subsequent setting of the target coordinate system TF) can be set along the restart path 72 c toward the starting point of the restart path 72 c by a fixed distance (e.g., 0.1 inches, 0.5 inches, 1.0 inches, etc.) to ensure that the restart position SP is not covered or partially covered by the tissue.
[0187] The control system 60 may also define and store a plurality of possible restart positions along the restart path 72 c, with the plurality of possible restart positions being activated as milling progresses as each position is virtually exposed by the tool 20, i.e., when the tool 20 has removed a portion of the material occupying the same virtual space as the restart position, or when the tool 20 has virtually exposed the possible restart positions to at least a predetermined depth (e.g., at least 0.1 inches, 0.5 inches, 1.0 inches, etc. of free space surrounding the possible restart positions in all directions). As the tool 20 progresses further into the volume of material to be removed from the target site, deeper and deeper restart positions are exposed. Thus, the active restart position becomes the restart position that has been exposed and is closest to the last known position / point KP of the TCP of the tool 20 on the milling path 72. See, e.g., Figure 22E The restart position SP is selected from other inactive restart positions IN.
[0188] like Figure 22Eand Figure 22F As shown, once the restart position SP is determined, the guidance-tactile mode can be activated to guide the user to place the tool 20 at the restart position SP. As previously described, this can include guiding the user using position constraints defined in the x, y, z axes of the target coordinate system TF.
[0189] In some versions, a guidance-tactile mode can be employed to guide the user along the restart path 72c by applying guidance constraints in increments along the restart path 72c until the active restart position SP is reached. These increments can be defined as equal increments at each of the other exposed inactive restart positions IN along the restart path 72c that are higher than the active restart position SP. Thus, the user is guided along the restart path 72c to avoid collisions between the TCP of the tool 20 and anatomical structures. Orientation constraints can also be applied along the restart path 72c with the same, lesser, or different stiffnesses.
[0190] Once the user has been guided to within a predefined threshold distance from the restart position SP, the control system 60 can generate a lead-in path from the current position of the tool 20's TCP (based on the last commanded pose CP) to the last known position / point KP. This lead-in path can be generated in response to the user switching to semi-autonomous mode, or in response to the control system 60 automatically switching to semi-autonomous mode. The user can then operate the system 10 to autonomously move the tool 20 along the lead-in path in semi-autonomous mode to the last known position / point KP. Thus, when switching back to semi-autonomous mode, the control system 60 can return to the last known position / point KP to pick up where semi-autonomous mode left off. In other words, once the tool 20 is at or within a predefined threshold distance of the restart position SP, semi-autonomous operation can begin automatically or follow user prompts and selections, and a lead-in path can then be generated to return to the last known position / point KP. When semi-autonomous mode is activated, the tool controller 21 can simultaneously supply energy to the energy applicator 24, causing the energy applicator 24 to be active while it autonomously moves along the lead-in path.
[0191] A restart orientation may also be defined together with the restart position SP. The restart orientation may be required to improve machining efficiency, improve access to the last known position / point KP, and generally assist the user in understanding how best to orient the tool 20, particularly where visibility of the tissue to be machined is limited. For example, bone drills are typically designed to achieve optimized cutting performance with respect to a specific angle between the drill shaft and the bone (or other tissue), depending on the drill flute geometry, cutting direction, conventional / down milling approach, etc. In many cases, it may be desirable to avoid end cutting (or even partial end cutting) with a drill, which can be avoided by ensuring a suitable starting orientation relative to the bone and optionally further maintaining said orientation during continued milling. As another example, referring to Figure 22F If no orientation guidance constraints are provided to guide the user regarding the orientation of tool 20, the user may orient tool 20 in such a way that the axis of tool 20 may collide with virtual boundary 71 and / or with the unremoved bone (see hidden lines of tool 20). In some cases, only the TCP of tool 20 is monitored for collision with virtual boundary 71, not the axis of tool 20. Therefore, in those cases, the orientation guidance constraints can help keep the axis of tool 20 away from virtual boundary 71 and / or the unremoved bone. The preferred tool orientation can be used to help guide the user's restart orientation when moving tool 20 to the restart position SP (now effectively considered a restart pose, taking orientation into account). The restart orientation can be defined in one or more rotational degrees of freedom in the target coordinate system TF. In this case, one or more axes of the target coordinate system TF can be selected to give the desired orientation of the guided coordinate system GF. Therefore, the guidance-haptic mode can assist the user in guiding the TCP of tool 20 to the restart pose SP. As described above, the position and orientation constraints can have different stiffness / damping tuning parameters to provide the desired user interaction and feel. As the tool 20 approaches the restart pose SP (eg, as the distance / angle from the restart position / orientation decreases), the tuning parameters may also be scaled as previously described to increase the virtual attractive force and torque.
[0192] Return Reference Figure 22B and Figure 22CWhen the control system 60 operates the manipulator 14 in a semi-autonomous mode, the control system 60 may employ an orientation adjuster that maintains a preferred orientation of the tool 20 as the tool 20 moves along the milling path 72. The preferred orientation may be a path-defined orientation that is included along with position information as part of the milling path 72. For example, the preferred orientation may be given for each segment of the milling path 72 or for a series of segments along the milling path 72, and the preferred orientation may be automatically updated as the tool 20 traverses the milling path 72. The preferred orientation may be one or more discrete orientations or a series of orientations and may be defined by a virtual pivot and aperture guide. Such an orientation adjuster and its operation are described in detail in U.S. Patent No. 9,681,920, filed on June 15, 2015, entitled “Robotic System and Method for Reorienting a Surgical Instrument Moving Along a Tool Path,” which is hereby incorporated herein by reference. An input device (e.g., a button, gesture control, touch sensor, foot pedal, etc.) on the user interface UI of the tool 20 can be actuated by the user to reorient the tool 20 as needed during autonomous movement of the tool 20 along the milling path 72 in semi-autonomous mode. When the input device is actuated, the orientation adjuster is temporarily disabled and the user is able to reorient the tool 20 as needed, for example, to avoid soft tissue or a retractor, to improve visibility, or for some other reason. More specifically, the manipulator 14 is operable to reorient the tool 20 in response to the user force and torque applied to the tool 20 by the user while the tool 20 (e.g., TCP) remains on the milling path 72. When the input device is released, the orientation adjuster is reset to maintain the orientation of the tool 20 in the new orientation set by the user. The preferred orientation during autonomous machining along the milling path 72 can be reflected in the orientation constraints (e.g., path constraints that control / adjust the orientation) generated by the path processing program 82. When the user actuates the input device to reorient the tool 20, such orientation constraints will be temporarily disabled, but the path constraints associated with the position, generated by the path handler 82, will remain enabled to maintain the TCP of the tool 20 on the milling path 72. When the user releases the input device after reorienting the tool 20, the orientation constraints are reenabled to maintain the tool 20 in the new user-defined orientation.
[0193] In some cases, it may be desirable for the user to return to a preferred orientation after the user has redirected the tool 20. For example, the user may initially redirect the tool 20 to avoid soft tissue or a retractor, but once the tool 20 has passed such an obstacle, the user may wish to return to a preferred orientation that provides more efficient milling, visibility, etc. Therefore, the guided-tactile mode may be employed separately from or in conjunction with the semi-autonomous mode to guide the user in moving the tool 20 to a preferred orientation. In this case, when the input device is pressed to redirect the tool 20, a target state including a target orientation in one, two, or three rotational degrees of freedom may be enabled. The guidance handler 84 obtains the target orientation (e.g., the preferred orientation), and the guidance handler 84 then generates one or more guidance constraints based on the target orientation (preferred orientation) and the current orientation. The constraint solver 86 then calculates a constraint force F suitable for attracting the tool 20 from the current orientation toward the target orientation based on the one or more guidance constraints. c Binding force F c There is therefore a force and / or torque component that applies a subtle virtual attraction to guide the user to restore the preferred orientation by providing tactile feedback to the user that guides the user to place the tool 20 in the preferred orientation as previously described. In fact, in this embodiment, the input device is used to switch between two different sets of constraints, namely: (1) an orientation constraint provided by the orientation adjuster (e.g., an orientation constraint generated by the path handler 82, or even a guiding constraint in some cases) that maintains the preferred orientation; and (2) a guiding constraint that acts to provide tactile feedback to the user indicating the preferred orientation. When the input device is actuated (e.g., pressed), the above-mentioned guiding constraint is enabled to suggest the preferred orientation to the user, and the orientation constraint provided by the orientation adjuster is disabled. When the input device is released, the orientation constraint provided by the orientation adjuster is enabled to maintain the preferred orientation, and the guiding constraint is disabled. In some cases, the orientation constraint provided by the orientation adjuster is stronger (in terms of stiffness / damping) than the guiding constraint provided to indicate the preferred orientation.
[0194] The virtual attraction and torque associated with guiding the user to the preferred orientation can be overcome by the force and torque applied by the user to the tool 20 to allow the user to redirect the tool 20 away from the preferred orientation. However, the virtual attraction and torque are strong enough to give tactile feedback to the user to indicate to the user how to move the tool 20 to return to the preferred orientation. Once the input device is released, the guidance constraint and the associated virtual attraction and torque are disabled, and as the semi-autonomous mode continues, the orientation adjuster then takes over again to control the orientation of the tool 20. Other orientation alignment methods can be used to suggest a preferred orientation to the user. Virtual attraction (or repulsion) forces can also be used to return to (or avoid) certain orientations, such as when transitioning from one operating mode to another, for example, when returning to the semi-autonomous operating mode from a manual mode or from another mode.
[0195] e. Use alignment points to guide alignment
[0196] Figure 23 The process of executing the guided-tactile mode is illustrated, such as when the tool 20 includes a saw blade 27. In this version, the behavior control 74 includes a guide handler 84, a constraint solver 86, and a virtual simulator 88. The behavior control 74 also includes a boundary handler 89 to generate virtual boundary constraints based on one or more virtual boundaries 71 generated by the boundary generator 66. The guide handler 84, the constraint solver 86, the virtual simulator 88, and the boundary handler 89 each include executable software stored in a non-transitory memory of any one or more of the controllers mentioned above and implemented by the control system 60. The path generator 68 and the path handler 82 are in Figure 23 It does not exist in the present invention, but can also be used to guide the autonomous movement of the saw blade 27.
[0197] In this version, the current state of the tool 20 is represented by one or more sets of alignment points APi, such as AP1, AP2, where each set includes a plurality of points AP1, AP2. In some cases, there may be more than two sets of alignment points. The target state of the tool 20 is represented by one or more target planes TP1, TP2 of the tool 20. As in the previously described version, the guidance processing program 84 generates one or more guidance constraints based on the relative positions of the current state and the target state, that is, based on the relative positions of the plurality of alignment points AP1, AP2 and the one or more target planes TP1, TP2. Thus, as Figure 23 As shown, one input into the boot processing program 84 includes a plurality of alignment points AP1, AP2, which are typically predefined and fixed in the TCP coordinate system (see Figures 24 to 27 ). The location of the alignment points AP1, AP2 may be based on the serial number or model number of the tool stored in the accessor, etc. Another input into the boot handler 84 includes target planes TP1, TP2. The alignment concept described below with respect to saw blade alignment is merely an example, as this alignment method may be used for other purposes. The target planes TP1, TP2 include: a first target plane TP1 associated with the desired cutting plane 73c (the first target plane TP1 may be offset from the desired cutting plane 73c to account for blade thickness); and a second target plane TP2 located orthogonally to the first target plane TP1 along the approximate centerline of the planar cut PC to be made to the femur on the desired cutting plane 73c (see Figure 26 When a particular surgical procedure (such as a total knee procedure) requires multiple plane incisions, different cutting planes 73a-73e (see Figure 9 ), the target planes TP1 and TP2 are different.
[0198] like Figures 24 to 27 As shown, six alignment points AP1, AP2 can be used to align the saw blade 27 to the target planes TP1, TP2. The three first alignment points AP1 are used to align the saw blade 27 to the first target plane TP1, as shown in FIG. Figure 24 and Figure 25 As shown, the three second alignment points AP2 are used to align the saw blade 27 to the second target plane TP2, as shown in FIG. Figure 26 and Figure 27 As shown. The alignment points AP1, AP2 can be set in 120 degree increments relative to each other around a circle defined with the TCP as the center. The first alignment point AP1 is defined in the x,z plane of the saw blade 27, and the second alignment point AP2 is defined in the y,z plane of the saw blade 27. The y,z plane of the saw blade 27 is substantially perpendicular to the saw blade 27 and is set along the centerline of the saw blade 27. In some versions, only three alignment points AP1 can be used to align the saw blade 27 with only the first target plane TP1. The alignment points AP1, AP2 can be defined relative to the TCP coordinate system because they are associated with the tool 20, such as the saw blade 27. The final command pose CP is related to the current pose of the tool 20 and gives the pose of the TCP coordinate system relative to the manipulator coordinate system MNPL and / or gives the pose of the virtual mass coordinate system VM relative to the manipulator coordinate system MNPL. Therefore, the current position of each of the alignment points AP1, AP2 is known relative to the manipulator coordinate system MNPL and can be transformed to any other coordinate system.
[0199] One-dimensional guidance constraints are defined at the target planes TP1, TP2 to attract the alignment points AP1, AP2 to their respective target planes TP1, TP2 in the same manner as described above. More specifically, at each time step, the guidance processing program 84 determines the position of the normal point NPi, such as the normal point NP1, NP2, in the respective target planes TP1, TP2 based on the normal vectors from each alignment point AP1, AP2 to its corresponding target plane TP1, TP2, and then generates guidance constraints along these normal vectors. In the illustrated embodiment, six guidance constraints are generated, including three constraints for the interaction involving the alignment point AP1 and the normal point NP1 and three constraints for the interaction involving the alignment point AP2 and the normal point NP2. The constraint direction, constraint Jacobian matrix Jp, desired velocity V are calculated for each guidance constraint. des and the constraint distance Δd. For example, the constraint direction is the normal vector between APi and NPi. The desired velocity V desis the component of the anatomical velocity (e.g., bone velocity based on the associated anatomical tracker velocity) projected along the constraint direction. The constraint distance Δd is the distance between APi and NPi projected along this constraint direction. The constraint Jacobian matrix Jp is the constraint Jacobian matrix that maps the 1-dof velocity / force applied at APi along the constraint direction (as if it were firmly attached to the tool 20) to its equivalent 6-dof effect at the virtual mass coordinate system VM.
[0200] The constraint solver 86 calculates a constraint force F suitable for attracting the saw blade 27 toward one or more target planes TP1, TP2 based on one or more guiding constraints. c . Binding force F c Therefore, a virtual attractive force based on the guidance constraints applied at each alignment point AP1, AP2 is included. The magnitude and direction of each virtual attractive force is based on the relative position of the corresponding normal point NP1, NP2 and the alignment point AP1, AP2. It should be noted that the normal points NP1, NP2 are always recalculated on the target planes TP1, TP2 at each time step, that is, they move based on the movement of the saw blade 27. In some cases, a target coordinate system TF fixed relative to the anatomical structure can be introduced, and as previously discussed, the z distance or the z distance magnitude can be used to change the spring and / or damping parameters so that the closer the saw blade 27 is to the anatomical structure, the more strongly the user is guided to align with the desired cutting plane. Once the saw blade 27 is within the virtual boundary 71 defining the virtual cutting guide slot, the guidance constraints can be disabled or their parameters can be changed in other ways. In some cases, such as when the virtual boundary 71 is the target plane TP1, the spring and / or damping parameters for the guide constraint associated with the alignment point AP1 can be made rigid, and the guide constraint associated with the alignment point AP2 can be disabled to allow the user to freely move the saw blade 27 left and right in the target plane TP1 while keeping the saw blade 27 on the target plane TP1.
[0201] f. Enable / disable guide constraints
[0202] refer to Figure 28, the user may be able to enable / disable various guidance constraints and / or virtual boundaries 71 associated with a plurality of different features to be generated relative to the patient's anatomy. Such features include, for example, planar cuts, resected volumes, bone drill holes / bores, and the like. Enabling / disabling guidance constraints and / or virtual boundaries 71 associated with different features may be performed via a user interface UI on the tool 20, manipulator 14, navigation system 32, or the like. For example, a user may select a specific planar cut to be made from among the six possible planar cuts required in a total knee procedure (five planar cuts on the femur and one planar cut on the tibia). By selecting one of the cuts, for example, via one of the user interface UIs, the control system 60 may enable the associated guidance constraints and associated virtual boundaries 71 while disabling the guidance constraints and virtual boundaries 71 associated with the other planar cuts. A different target state (e.g., position, orientation, and / or velocity) of the tool 20 is associated with each feature, such that depending on which feature the user selects, different guidance constraints will need to be generated to guide the user in moving the tool 20 to the corresponding target state. Selection of one of the features may also be made by the control system 60 based on the proximity of the tool 20 to a target state for the feature (e.g., the distance and / or angular difference between the current state of the tool 20 and the target state). Selection of one of the features may also be made by the control system 60 based on the proximity of the tool 20 to a plurality of virtual boundaries 71 associated with different features (e.g., a virtual boundary associated with the cut volume from the femur versus a virtual boundary associated with the cut volume from the pelvis). Selection may be made automatically or after user confirmation and may be made in a manual mode, a free mode, a selection mode, etc.
[0203] like Figure 28 As shown, tool 20 is positioned so that its TCP is closest to the front chamfer cutting plane. The control system 60 can measure the closest distance from the TCP (current state) to each of the cutting planes (target state) that define a planar cut (e.g., a feature) in a common coordinate system to select a specific planar cut to be made and control (i.e., enable / disable) the guide constraints and / or virtual boundaries 71 accordingly. The dot product of the normal vector from the plane defining saw blade 27 and the normal vector of each cutting plane can also be compared to further determine the user's selection relative to each of the cutting planes, for example, to understand the posture of saw blade 27. The largest dot product reveals the lowest angle, and selection can be made accordingly. For example, the lowest angle further indicates that the user intends to make the next cut at this cutting plane because saw blade 27 is most closely aligned with the cutting plane. The display 38 can provide visual feedback to the user indicating which cutting plane is being selected. For example, the display 38 can display a selection screen that visually highlights the selected cutting plane / cut. To select the next cutting plane / cut, the user may move the tool 20 away from the current cutting plane and repeat the selection process.
[0204] Other methods of selecting features and their associated cutting planes, cutting axes, etc., and enabling associated guide constraints and / or associated virtual boundaries 71 are also contemplated. For example, in some versions, the control system 60 may simply measure the angle between the plane defining the saw blade 27 and each of the cutting planes, and select the planar cut to be made based on the cutting plane that forms the smallest angle (magnitude). In this case, the xz plane of the TCP defines the plane of the saw blade 27 (see Figure 24 ), and the control system 60 measures the angle between the xz plane (current state) and each of the cutting planes (target state) to find the minimum magnitude angle (e.g., the maximum dot product of their normal vectors). This can be done similarly to select the bone drill hole / bores to be produced, i.e., by determining the angle between the axis defined by the bone drill or drill rod and the multiple cutting axes associated with the bone drill hole / bores and finding the minimum magnitude angle.
[0205] When two or more cutting planes have nearly identical normal vectors (such as the front and rear cutting planes), that is, when multiple candidate planar cuts exist because the measured angles between the saw blade 27 and the associated cutting planes for the planar cuts are within a threshold value (e.g., 5 degrees, 10 degrees, etc.) of each other, the distance from the TCP of the tool 20 to each candidate cutting plane will help determine which planar cut to select. Once a planar cut is selected and executed, this planar cut can be eliminated as a candidate for the next selection. As a result, the number of candidates remaining for the next selection will be reduced, thereby potentially avoiding multiple candidates for the next selection.
[0206] In another approach, rather than evaluating the distance from the TCP of the tool 20 to each cutting plane, the control system 60 projects a ray forward from the TCP of the tool 20 (e.g., along Figure 24 The z-axis in the figure) and selects a projection point along the ray that is a fixed distance (e.g., 0.5 inches, 1.0 inches, 2.0 inches, etc.) from the TCP of the tool 20 forward (similar to Figure 24 The centerline alignment point AP1 is shown. The control system 60 then selects the active plane cut based on the distance between this projected point and each cutting plane. The projected point effectively clarifies which cutting plane the user is pointing or facing, rather than which plane is closest. In some cases, a virtual representation of the projected point can be displayed on one or more of the displays along with a virtual representation of the saw blade 27.
[0207] In another approach, the user's movement of the tool 20 can be used as an input device via any of the user interfaces UI to select a desired planar cut (or for other selections). In this case, for example, a change in the angle of the xz plane of the saw blade 27 (e.g., relative to the anatomical structure, the base 16, etc.) will act to scroll through a list of each of the planar cuts shown on one or more of the displays (e.g., sequentially one at a time), while displaying the currently selected planar cut. For example, a positive angle change moves a cursor or other virtual selector up in the list, and a negative angle change moves a cursor or other virtual selector down in the list. An input device on the tool 20 or other input device can then be actuated to make the final selection.
[0208] The same or similar methods may also be used to: (i) select the next hole to be cut from a plurality of holes requiring tissue removal (e.g., bone drilling / boring); (ii) select the next bone to be machined from a plurality of bones requiring tissue removal; (iii) select a virtual boundary to be activated on a given bone from a plurality of virtual boundaries; (iv) combinations thereof, etc. These methods may make such selections based on reasonable assumptions about the movement of the tool 20, the position of the patient's anatomy (e.g., relative to the tool 20), and the expected workflow. Furthermore, any of the selection methods described herein may be combined / weighted in any suitable manner.
[0209] For any of the selection methods described herein, once a final candidate for selection (e.g., a planar cut, a hole, a bone, a virtual boundary, etc.) is identified, a final acceptance check can be performed based on angles and / or distances within the acceptance criteria. For example, if a final candidate for a planar cut has an associated cutting plane within a 15-degree acceptance angle (between the xz plane of the saw blade 27 and the cutting plane), the cutting plane is activated (e.g., any one or more associated guiding constraints and / or virtual boundaries 71 for the planar cut are enabled). If the acceptance criteria are not met, the final candidate is not selected. Alternatively or additionally, a protective virtual boundary 71 (e.g., a sphere or other shape) can be enabled around the patient's anatomy, such as around the patient's knee (without a groove), to prevent the user from contacting the bone until a feature that meets the acceptance criteria is selected. Additionally, workflow information can be used to further reduce the candidates before applying any of the selection methods described herein. For example, the tool 20 may be capable of operating in one or more configurations, some of which indicate the user's selection. For example, the saw blade 27 and its xz plane can be flipped 180 degrees for certain cuts and not flipped for other cuts. Thus, depending on the configuration in which the user places the tool 20 (e.g., flipped or not flipped), the candidate planar cuts and associated cutting planes may be effectively narrowed down accordingly before a final selection is made by the control system 60. Additionally, in some cases, already completed planar cuts (or other features) may be removed from consideration as candidates and / or have a reduced weighting factor (or stringent criteria) applied to them to reduce their likelihood of being selected again.
[0210] In some versions, when using selection methods such as those described above, a selection region (e.g., a spherical region, or other shaped region or volume) can be defined around the anatomical structure (e.g., the knee) to facilitate selection, selection changes, etc. For example, the selection region can be defined by a sphere having a predetermined radius (e.g., having a radius of 5.0, 6.0, 7.0 inches, etc.) positioned relative to the center of the knee. When the TCP of the tool 20 is outside the selection region for more than a predefined amount of time (e.g., greater than 0, 1, 2, 3 seconds, etc.), the control system 60 can enter a selection mode in which any guidance constraints and / or virtual boundaries 71 associated with the last selected feature are disabled (although protective virtual boundaries can be enabled) and a selection method (such as any one or a combination of those described above) is employed to make a new selection (e.g., select a new feature to be generated). In selection mode, the selection is displayed to the user on one or more user interfaces (UI). For example, for a total knee procedure, one or more of the displays shows a lateral view (sagittal) of the knee to allow for better visualization of the various plane cuts. Once a selection is made in selection mode, and in response to the user moving the TCP of the tool 20 into the selection area (e.g., toward the knee), the guiding constraints and / or virtual boundaries for the selection are enabled. Typically, the control system 60 will then update one or more of the displays to show the specific visualization / orientation that is most suitable for the selection (e.g., most suitable for the selected plane incision). While within the selection area, the selection is effectively frozen and remains enabled until the user again moves the TCP of the tool 20 outside the selection area to repeat the selection process. This helps the user avoid inadvertently making a new selection while within the selection area.
[0211] Guidance-tactile mode can also be adopted in various other ways.For example, guidance-tactile mode can help guide the user when the TCP of instrument 20 is returned to tool path TP when being transitioned to semi-autonomous mode from other operating modes.Guidance-tactile mode can also assist the user to move instrument 20 out of tool path TP when being transitioned to certain other mode such as manual mode from semi-autonomous mode.Guidance-tactile mode can be used for aligning drill bit and / or for the tap of screw, anchor or other fastener.Guidance-tactile mode can be used for aligning the impactor with the desired trajectory for impacting acetabular cup implant, with acetabular cup implant being placed in the prepared acetabulum.Guidance-tactile mode can be used for aligning the tool for placing other types of implants.Guidance-tactile mode can be used for aligning / guiding the tool for placing kirschner wire, sleeve, trocar, retractor etc.
[0212] The remote control RC may be used to switch between various operating modes of the manipulator 14. Other input devices, such as on various user interfaces UI, may also be used to switch / activate various operating modes of the manipulator 14. For example, the UI of the tool 20 may have input devices (buttons, touch sensors, gesture inputs, foot pedals, etc.) that can be actuated to activate one or more guidance constraints such that the constraint force F c The control system 60 may be configured to automatically switch modes in certain situations. For example, if the control system 60 initially (i.e., before switching to the guided-tactile mode) operates the manipulator 14 in the semi-autonomous mode, the control system 60 may automatically restart the semi-autonomous mode once the user turns off the guided-tactile mode. The control system 60 may also first prompt the user (such as by providing a selectable prompt on one or more of the displays 38) to continue in the semi-autonomous mode before automatically continuing in the semi-autonomous mode. The user may choose to continue in the manual mode, the guided-tactile mode, the semi-autonomous mode, etc.
[0213] In some cases, the user may indicate a desire to end operation in the guided-tactile mode by applying a force of appropriate magnitude and direction on the tool 20, such as by applying a force in a direction opposite to the target state. In such cases, the control system 60 may automatically switch back to the manual mode or free mode when such force exceeds a predefined threshold in a direction opposite to the target state.
[0214] The current state of the tool 20 relative to the target state, the milling path 72, and / or relative to the surgical site can be output by the navigation system 32 and represented on the display 38 via a graphical representation of the tool 20, the target state, the virtual boundary 71, the milling path 72, and / or the surgical site, such as the femur F, the tibia T, the pelvis PEL, the vertebral body, or other anatomical structures. These graphical representations can be updated in real time, allowing the user to visualize their movements in the guided-tactile mode relative to the target state, the virtual boundary 71, the milling path 72, the anatomical structure, etc. For example, the graphical representations of the tool 20 and the anatomical structure can move in real time on the display 38 as the manipulator 14 actually moves the tool 20 and the anatomical structure.
[0215] The guidance-haptic model described herein can be employed in various types of surgical systems. For example, the manipulator can include a teleoperated robotic arm that is controlled via a user interface remotely positioned relative to the teleoperated robotic arm to control the teleoperated robotic arm. The user interface can include a separate manipulator, such as a 6-DOF control unit that is manually manipulated by the user, for example, a separate manipulator having movable joints to provide tactile feedback to the user. This tactile feedback provided to the user interface can utilize attractive / repulsive forces and torques to align the guided coordinate system GF to the target coordinate system TF based on the generation of guidance constraints, etc.
[0216] For all examples described herein, the boundary constraint may be set to have a significantly higher stiffness than the guide constraint to minimize penetration of the tool 20 beyond the virtual boundary 71 .
[0217] The principles described herein for attracting the tool 20 to the target state can also be employed to repel the tool 20 from the target state. This can be accomplished by applying a guide constraint in the opposite direction to indicate to the user how the tool 20 needs to be moved away from the target state.
[0218] This application is related to U.S. Provisional Patent Application No. 62 / 815,739, filed on March 8, 2019, the disclosure of which is hereby incorporated by reference in its entirety.
[0219] Several embodiments have been discussed in the foregoing description. However, the embodiments discussed herein are not intended to be exhaustive or to limit the invention to any particular form. The terminology used is intended to be descriptive rather than restrictive. In light of the above teachings, many modifications and variations are possible, and the invention may be practiced in other ways than those specifically described.
[0220] Any aspect or implementation of the above systems, methods and / or technologies may be described with reference to any of the following clauses:
[0221] Terms
[0222] C1. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processor for obtaining a target state of the saw blade and generating one or more virtual constraints based on the target state and a current state of the saw blade, the one or more virtual constraints comprising a guidance constraint; a constraint solver for calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints; and a virtual simulator for simulating the dynamics of the saw blade in a virtual simulation based on input from the constraint force and outputting a command posture, the control system being configured to command the handheld manipulator to move the saw blade based on the command posture and place the saw blade in the target state.
[0223] C2. A handheld manipulator system as described in clause C1, wherein the target state includes a target position, a target orientation, or a target pose, and the current state includes a current position, a current orientation, or a current pose.
[0224] C3. The handheld manipulator system of clause C2, wherein the one or more virtual constraints include up to three virtual constraints associated with the target position and up to three virtual constraints associated with the target orientation.
[0225] C4. The handheld manipulator system of clause C1, wherein the target state comprises a target coordinate system and the saw blade comprises a guided coordinate system, the constraining force being adapted to attract the guided coordinate system toward the target coordinate system.
[0226] C5. The handheld manipulator system of clause C1, wherein the bootstrap handler is configured to calculate the one or more virtual constraints with respect to one or more degrees of freedom based on a difference between the current state and the target state.
[0227] C6. A handheld manipulator system as described in clause C1, wherein the control system includes a user interface for activating the one or more virtual constraints so that the constraint force includes force and torque components associated with attracting the saw blade toward the target state.
[0228] C7. The handheld manipulator system of clause C1, wherein the boot handler is configured to calculate the one or more virtual constraints based on a relationship between the current state and the target state.
[0229] C8. A handheld manipulator system as described in clause C1, wherein each of the one or more virtual constraints has a value of a tuning parameter, and the boot handler is configured to change the value of the tuning parameter based on the relationship between the current state and the target state.
[0230] C9. A handheld manipulator system as described in clause C1, wherein the one or more virtual constraints include a first virtual constraint having a first value of a tuning parameter and a second virtual constraint having a second value of the tuning parameter, the first value being different from the second value such that the resulting restraining force due to the first virtual constraint is suitable for moving the saw blade more strongly than the second virtual constraint.
[0231] C10. A handheld manipulator system as described in clause C1, wherein the virtual simulator is configured to simulate the dynamics of the saw blade by representing the saw blade as a virtual rigid body with a virtual mass, and applying the constraint force to the virtual mass in the virtual simulation to obtain the command posture.
[0232] C11. The handheld manipulator system of clause C1, wherein the control system is configured to: calculate an external force applied to the handheld robotic saw; and calculate a total force for use in the virtual simulation based on the restraining force and the external force.
[0233] C12. A handheld manipulator system, comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processor for obtaining a plurality of alignment points and one or more target planes of the saw blade and generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; a constraint solver for calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints; and a virtual simulator for simulating the dynamics of the saw blade in a virtual simulation based on input from the constraint force and outputting a command posture, the control system being configured to command the manipulator to move the saw blade based on the command posture to place the saw blade in the one or more target planes.
[0234] C13. A method for controlling a saw blade of a handheld manipulator, the handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade, the method comprising the following steps: obtaining a target state of the saw blade; generating one or more virtual constraints based on the target state and a current state of the saw blade; calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints; simulating the dynamics of the saw blade in a virtual simulation based on the constraint force; outputting a command gesture based on the virtual simulation; and commanding the manipulator to move the saw blade based on the command gesture to place the saw blade in the target state.
[0235] C14. The method of clause C13, wherein the target state comprises a target position, a target orientation, or a target pose, and the current state comprises a current position, a current orientation, or a current pose.
[0236] C15. The method of clause C14, wherein the one or more virtual constraints include up to three virtual constraints associated with the target position and up to three virtual constraints associated with the target orientation.
[0237] C16. The method of clause C13, wherein the target state comprises a target coordinate system and the saw blade comprises a guided coordinate system, the restraining force being adapted to move the guided coordinate system toward the target coordinate system.
[0238] C17. The method of clause C13, comprising: calculating the one or more virtual constraints with respect to one or more degrees of freedom based on a difference between the current state and the target state.
[0239] C18. The method of clause C13, comprising: activating the one or more virtual constraints such that the constraint force includes force and torque components associated with moving the saw blade toward the target state.
[0240] C19. The method of clause C13, comprising: calculating the one or more virtual constraints based on a relationship between the current state and the target state.
[0241] C20. The method of clause C13, comprising changing values of tuning parameters of the one or more virtual constraints based on a relationship between the current state and the target state.
[0242] C21. A method as described in clause C13, comprising: setting a tuning parameter of a first virtual constraint of the one or more virtual constraints to a first value and setting the tuning parameter of a second virtual constraint of the one or more virtual constraints to a second value, wherein the first value is different from the second value, so that the resulting restraint force due to the first virtual constraint is suitable for moving the saw blade more strongly than that of the second virtual constraint.
[0243] C22. The method of clause C13, comprising simulating the dynamics of the saw blade by representing the saw blade as a virtual rigid body having a virtual mass, and applying the constraint force to the virtual mass in the virtual simulation to obtain the command pose.
[0244] C23. The method of clause C13, comprising: calculating an external force; and calculating a total force for use in the virtual simulation based on the constraint force and the external force.
[0245] C24. The method of clause C14, comprising: defining three of the one or more virtual constraints to move the saw blade toward a desired cutting plane.
[0246] C25. A method for guiding a saw blade supported by a handheld manipulator, the handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade, the manipulator supporting and moving the saw blade, the method comprising the following steps: obtaining a plurality of alignment points and one or more target planes of the saw blade; generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints; simulating the dynamics of the saw blade in a virtual simulation based on input from the constraint force; outputting a command gesture based on the virtual simulation; and commanding the manipulator to move the saw blade based on the command gesture to place the saw blade in the one or more target planes.
[0247] C26. A method for controlling the movement of a saw blade of a handheld manipulator to produce a plurality of features, wherein each of the plurality of features has a different target state of the saw blade, the method comprising the following steps: determining a current state of the saw blade relative to the target state of the saw blade for the plurality of features in a known coordinate system to determine which of the plurality of features is being selected to produce; enabling one or more guide constraints for the handheld manipulator from a plurality of guide constraints based on the selected feature; and controlling the movement of the saw blade based on the one or more guide constraints, wherein the one or more guide constraints act to place the saw blade in the target state for the selected feature.
[0248] C27. A method as described in clause C26, wherein enabling the one or more guide constraints includes: generating the one or more guide constraints based on the target state associated with the selected feature and based on the current state of the saw blade, and wherein controlling the movement of the saw blade based on the one or more guide constraints includes: calculating a constraint force suitable for moving the saw blade from the current state toward the target state based on the one or more guide constraints; simulating the dynamics of the saw blade in a virtual simulation based at least in part on the constraint force; outputting a command gesture based on the virtual simulation; and commanding the handheld manipulator to move the saw blade based on the command gesture to place the saw blade in the target state.
[0249] C28. The method of clause C26, wherein determining the current state of the saw blade relative to the target state of the saw blade for the plurality of features in the known coordinate system comprises: determining the position of a plane defined by the saw blade relative to a plurality of cutting planes in the known coordinate system.
[0250] C29. A method as described in clause C28, wherein determining the current state of the saw blade relative to the target state of the saw blade for the multiple features in the known coordinate system includes: determining the angle between the current orientation of the saw blade and multiple target orientations of the saw blade, determining the distance between the current position of the saw blade and multiple target positions of the saw blade, or determining both the angle and the distance; and determining a selected feature from the multiple features based on the value of the angle, the value of the distance, or both the value of the angle and the value of the distance.
[0251] C30. The method of clause C26, comprising: enabling one or more virtual boundaries for the saw blade based on the selected characteristics.
[0252] C31. A method as described in clause C30, comprising: defining a selection area relative to the multiple features, wherein the one or more virtual boundaries and the one or more guide constraints associated with the selected features are enabled to produce the selected features when the saw blade is within the selection area, and are disabled when the saw blade moves outside the selection area, so that new features can be produced.
[0253] C32. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processing program for obtaining a target state of the saw blade and generating one or more virtual constraints based on the target state and a current state of the saw blade; and a constraint solver for calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints, wherein the movement of the saw blade is controlled by the manipulator based on the constraint force to place the saw blade in the target state.
[0254] C33. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processing program for obtaining a plurality of alignment points and one or more target planes of the saw blade and generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; and a constraint solver for calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints, wherein the movement of the saw blade is controlled by the manipulator based on the constraint force to place the saw blade in the one or more target planes.
[0255] C34. A method for guiding a saw blade of a handheld manipulator, the method comprising the following steps: obtaining a target state of the saw blade; generating one or more virtual constraints based on the target state and a current state of the saw blade; calculating a constraint force suitable for moving the saw blade toward the target state based on the one or more virtual constraints; and controlling the movement of the saw blade based on the constraint force to place the saw blade in the target state.
[0256] C35. A method for guiding a saw blade supported by a handheld manipulator, the method comprising the following steps: obtaining a plurality of alignment points and one or more target planes of the saw blade; generating one or more virtual constraints based on the relative positions of the plurality of alignment points and the one or more target planes; calculating a constraint force suitable for moving the saw blade toward the one or more target planes based on the one or more virtual constraints; and controlling the movement of the saw blade based on the constraint force to place the saw blade in the one or more target planes.
[0257] C36. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a handheld manipulator comprising a base portion held by a user's bare hands and a tool tip movable relative to the base portion, the tool tip comprising a sagittal saw blade; and a control system for controlling the movement of the tool tip, the control system comprising: a guidance processing program for obtaining a target state of the saw blade and generating one or more virtual constraints based on the target state and a current state of the saw blade, the one or more virtual constraints comprising a guidance constraint, the guidance processing program being configured to generate a virtual constraint based on the current state and the target state. The present invention relates to a method for calculating a guidance constraint based on the relationship between the current state and the target state, wherein the guidance constraint has a value of a tuning parameter, and the guidance processing program is configured to change the value of the tuning parameter based on the relationship between the current state and the target state; a constraint solver, which is used to calculate a constraint force suitable for moving the saw blade toward the target state based on the guidance constraint; and a virtual simulator, which is used to simulate the dynamics of the saw blade in a virtual simulation based on input from the constraint force and output a command posture, and the control system is configured to command the manipulator to move the saw blade based on the command posture and place the saw blade in the target state.
[0258] C37. A surgical system comprising: a tool; a manipulator for supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user; one or more sensors for providing sensor input signals; and a control system comprising: a guidance processor for obtaining a target state of the tool and generating one or more virtual constraints based on the target state and a current state of the tool; a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool toward the target state or repelling the tool away from the target state; and a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on the sensor input signals and the constraint forces from the one or more sensors, and outputting a command gesture, the control system being configured to command the manipulator to move the tool based on the command gesture, and thereby providing tactile feedback to the user guiding the user to place the tool in the target state or away from the target state.
Claims
1. A surgical system comprising: tool; a manipulator for supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user; one or more sensors for measuring force and torque applied to the tool; as well as A control system, comprising: a bootstrap handler for obtaining a target state of the tool and generating one or more virtual constraints based on a relationship between the target state and a current state of the tool; a constraint solver for calculating, based on the one or more virtual constraints, a constraint force suitable for attracting the tool toward the target state or repelling the tool away from the target state; and a virtual simulator for simulating the dynamics of the tool in a virtual simulation based on input from the one or more sensors and the restraining forces, and outputting a command pose, The control system is configured to command the manipulator to move the tool based on the command gesture and thereby provide tactile feedback to the user guiding the user to place the tool in or away from the target state. 2 . The surgical system of claim 1 , wherein the target state comprises a target position, a target orientation, or a target posture, and the current state comprises a current position, a current orientation, or a current posture. 3 . The surgical system of claim 2 , wherein the one or more virtual constraints include up to three virtual constraints associated with the target position and up to three virtual constraints associated with the target orientation.
4. The surgical system of claim 2, wherein the control system is configured to enable the user to reorient the tool away from the target orientation.
5. The surgical system of claim 2, wherein the control system is configured to enable the user to reposition the tool away from the target location. 6 . The surgical system of claim 1 , wherein the target state comprises a target coordinate system and the tool comprises a guided coordinate system, the constraining force being adapted to attract the guided coordinate system toward the target coordinate system. 7 . The surgical system of claim 1 , wherein the guidance processing program is configured to calculate the one or more virtual constraints with respect to one or more degrees of freedom based on a difference between the current state and the target state.
8. The surgical system of claim 1 , wherein the control system includes a user interface for activating the one or more virtual constraints such that the constraint force includes force and torque components associated with attracting the tool toward the target state.
9. The surgical system of claim 1 , wherein each of the one or more virtual constraints has a value of a tuning parameter, and the boot handler is configured to change the value of the tuning parameter based on a relationship between the current state and the target state.
10. A surgical system as described in claim 1, wherein the one or more virtual constraints include a first virtual constraint having a first value of a tuning parameter and a second virtual constraint having a second value of the tuning parameter, and the first value is different from the second value, so that the calculated restraint force is suitable for more strongly attracting or repelling the tool due to the first virtual constraint compared to the second virtual constraint.
11. The surgical system of claim 1 , wherein the virtual simulator is configured to simulate the dynamics of the tool by representing the tool as a virtual rigid body having a virtual mass, and applying the constraint force to the virtual mass in the virtual simulation to obtain the command pose.
12. The surgical system of claim 1 , wherein the control system is configured to: calculating an external force based on input from the one or more sensors; and A total force is calculated for use in the virtual simulation based on the restraining force and the external force, wherein the external force can have a force component with a magnitude and direction sufficient to overcome the restraining force.
13. The surgical system of claim 1, wherein the tool comprises a bone drill or a drill, and the one or more virtual constraints comprise two virtual constraints defined to attract the bone drill or the drill toward a desired orientation.
14. The surgical system of claim 1, wherein the tool comprises a bone drill, and the one or more virtual constraints comprise three virtual constraints defined to attract the bone drill toward a desired starting position.
15. The surgical system of claim 1, wherein the tool comprises a saw blade, and the one or more virtual constraints comprise three virtual constraints defined to attract the saw blade toward a desired cutting plane.
Citation Information
Patent Citations
Robotic systems and methods for controlling a tool removing material from a workpiece
US10117713B2
Prosthetic implant and method of implantation
US20120330429A1
End Effector of a Surgical Robotic Manipulator
US20140276949A1
Navigation system including optical and non-optical sensors
US9008757B2
Surgical manipulator capable of controlling a surgical instrument in multiple modes
US9119655B2