Systems and methods for directing tool movement

The surgical system addresses precision challenges by using sensors and virtual constraints to provide haptic feedback for accurate tool placement, enhancing user control and precision in surgical procedures.

JP7777521B2Active Publication Date: 2025-11-28MAKO SURGICAL CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022520085
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-09-30
Filing Date
2020-09-30
Publication Date
2025-11-28
Estimated Expiration
2040-09-30

AI Technical Summary

Technical Problem

Existing surgical systems face challenges in accurately placing a tool at a target position and orientation, whether in manual or autonomous modes, leading to difficulty in user control and precision.

Method used

A surgical system with a manipulator that responds to user forces and torques, utilizing sensors, a guidance handler, constraint solver, and virtual simulator to generate virtual constraints, providing haptic feedback for precise tool placement.

Benefits of technology

Enhances user control and precision by guiding the tool to a target state through haptic feedback, improving accuracy in surgical procedures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007777521000001
    Figure 0007777521000001
  • Figure 0007777521000002
    Figure 0007777521000002
  • Figure 0007777521000003
    Figure 0007777521000003
Patent Text Reader

Abstract

A system and method for guiding tool motion is provided. The system includes a tool and a manipulator. A guidance handler obtains a goal state of the tool and generates virtual constraints based on the goal state and the current state of the tool. A constraint solver calculates constraint forces adapted to attract the tool to the goal state or repel the tool from the goal state based on the virtual constraints. A virtual simulator simulates the dynamics of the tool in a virtual simulation based on the constraint forces and inputs from one or more sensors and outputs a command pose. A control system commands the manipulator to move the tool based on the command pose, thereby providing haptic feedback to the user to guide the user to place the tool in or away from the goal state.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to and the benefit of all U.S. Provisional Patent Application No. 62 / 908,056, filed September 30, 2019, the entire contents of which are incorporated herein by reference.

[0002] TECHNICAL FIELD The present disclosure relates generally to systems and methods for guiding tool movement. [Background technology]

[0003] A surgical system may include a robotic manipulator and a tool coupled to the manipulator to perform a surgical procedure on a patient. In a manual operating mode, some surgical systems sense forces and torques manually applied by a user to the tool. The surgical system commands a manipulator, which may include a robotic arm, to apply the sensed forces and torques to position the tool to emulate the user's expected movements. Thus, the surgical system generally positions the tool according to the user's intentions and expectations, allowing the user to, for example, remove a desired volume of tissue. However, accurately placing the tool at a target position and / or orientation in a manual mode may be difficult for a user. Therefore, a surgical system may also command a manipulator to autonomously move the tool to place it at a target position and / or orientation. However, when moving the tool autonomously, the user may find it difficult to control the tool. For this reason, a manual mode, in which the user is at least partially involved in the tool movement, may be preferred by some users and / or in certain situations.

[0004] There is a need in the art for systems and methods to address these challenges. Summary of the Invention

[0005] This Summary introduces a selection of 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, nor does it necessarily identify key or essential features of each claimed subject matter.

[0006] According to a first aspect, a surgical system is provided that includes a tool and a manipulator that supports the tool and moves it 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 handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool. The control system also includes a constraint solver that calculates constraint forces adapted to attract the tool from the current state to the target state based on the one or more virtual constraints. The control system further includes a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on inputs from the one or more sensors and the constraint forces and outputs a commanded posture. The control system is configured to command the manipulator to move the tool based on the commanded posture, thereby providing haptic feedback to the user that guides the user to place the tool in the target state.

[0007] According to a second aspect, a method is provided for guiding a tool supported by a manipulator of a surgical system. The manipulator supports 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 measuring the 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 the current state of the tool. Constraint forces adapted to attract the tool from the current state to the target state are calculated based on the one or more virtual constraints. Dynamics of the tool are simulated in a virtual simulation based on the input from the one or more sensors and the constraint forces. A commanded posture is output based on the virtual simulation. The manipulator is instructed to provide haptic feedback to the user to guide the user in placing the tool in the target state by moving the tool based on the commanded posture.

[0008] According to a third aspect, a surgical system is provided that includes a tool and a manipulator that supports and moves the tool. The manipulator is operable in a first mode in which the manipulator autonomously 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 handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool. The target state is located outside the tool path. The control system also includes a constraint solver that calculates constraint forces, based on the one or more virtual constraints, adapted to attract the tool from its current state to the target state. The control system further includes a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on inputs from the one or more sensors and the constraint forces and outputs a commanded posture. The control system is configured to command the manipulator to move the tool based on the commanded posture, thereby providing haptic feedback to the user that guides the user to place the tool in the target state.

[0009] 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 autonomously 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 measuring forces and torques applied to the tool and obtaining a goal state of the tool. The method further includes generating one or more virtual constraints based on the goal state and a current state of the tool. The goal state is located outside the tool path. Constraint forces adapted to attract the tool from the current state to the goal state are calculated based on the one or more virtual constraints. Tool dynamics are simulated in a virtual simulation based on the input from the one or more sensors and the constraint forces. A commanded posture is output based on the virtual simulation. The manipulator is instructed to provide haptic feedback to the user to guide the user in placing the tool in the goal state by moving the tool based on the commanded posture.

[0010] According to a fifth aspect, a surgical system is provided that includes a tool and a manipulator. The manipulator is operable in a semi-autonomous mode in which the manipulator autonomously moves the tool along the tool path and is operable to reorient the tool in response to user forces and torques applied to the tool by the user while the tool is still on the tool path. One or more sensors measure the forces and torques applied to the tool. The control system includes a guidance handler that obtains a recommended orientation for the tool and generates one or more virtual constraints based on the recommended orientation and the current orientation of the tool. The control system also includes a constraint solver that calculates constraint forces, based on the one or more virtual constraints, adapted to attract the tool from its current orientation to the recommended orientation. The control system further includes a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on inputs from the one or more sensors and the constraint forces and outputs a commanded orientation. The control system is configured to command the manipulator to move the tool based on the commanded orientation, thereby providing haptic feedback to the user that guides the user to place the tool in the recommended orientation.

[0011] 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 autonomously moves the tool along the tool path and is operable to reorient the tool in response to user forces and torques applied to the tool by the user while the tool is still on the tool path. The method includes receiving input from one or more sensors measuring the forces and torques applied to the tool and obtaining a recommended orientation for the tool. The method further includes generating one or more virtual constraints based on the recommended orientation and the current orientation of the tool. Constraint forces adapted to attract the tool from the current orientation to the recommended orientation are calculated based on the one or more virtual constraints. Tool dynamics are simulated in a virtual simulation based on the input from the one or more sensors and the constraint forces. A commanded orientation is output based on the virtual simulation. The manipulator is instructed to move the tool based on the commanded orientation, thereby providing haptic feedback to the user to guide the user to place the tool in the recommended orientation.

[0012] According to a seventh aspect, there is provided a surgical system including a tool and a manipulator that supports the tool and 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. The control system includes a guidance handler that acquires a plurality of alignment points and one or more target planes for the tool and generates one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes. The control system includes a constraint solver that calculates constraint forces adapted to attract the tool to the one or more target planes based on the one or more virtual constraints. The control system further includes a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on inputs from the one or more sensors and the constraint forces and outputs a commanded orientation. The control system is configured to command the manipulator to move the tool based on the commanded orientation, thereby providing haptic feedback to the user that guides the user to place the tool on the one or more target planes.

[0013] According to an eighth aspect, there is provided a method for guiding a tool supported by a manipulator of a surgical system. The manipulator supports 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 measuring the forces and torques applied to the tool and obtaining a plurality of alignment points and one or more target planes for the tool. The method also includes generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes. Constraint forces adapted to attract the tool to the one or more target planes are calculated based on the one or more virtual constraints. Tool dynamics are simulated in a virtual simulation based on the input from the one or more sensors and the constraint forces. A commanded orientation is output based on the virtual simulation. The manipulator is instructed to provide haptic feedback to the user to guide the user to place the tool in the one or more target planes by moving the tool based on the commanded orientation.

[0014] According to a ninth aspect, there is provided a method for controlling tool movement to create a plurality of features, each of the features having a different goal state of the tool. The method includes identifying a current state of the tool relative to the goal states of the plurality of features in a known coordinate system and identifying which of the plurality of features is selected by a user. The method also includes enabling one or more guiding constraints from a plurality of guiding constraints based on the feature selected by the user. The tool movement is controlled based on the one or more guiding constraints, and the one or more guiding constraints function to generate haptic feedback to the user so that the user understands how to move the tool relative to the goal state associated with the feature selected by the user.

[0015] According to a tenth aspect, there is provided a method for controlling movement of a tool to create a plurality of features, each of the features having a different virtual boundary relative to the tool. The method includes determining a current state of the tool relative to the virtual boundaries of the plurality of features in a known coordinate system and determining which of the plurality of features is selected by a user. The method also includes enabling one or more guiding constraints from a plurality of guiding constraints based on the feature selected by the user, and enabling one or more boundary constraints 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 guiding constraints and the one or more boundary constraints, and the one or more guiding constraints and the one or more boundary constraints function to generate haptic feedback to the user to create the feature selected by the user.

[0016] According to an eleventh aspect, there is provided a surgical system including a tool and a manipulator for supporting and moving the tool. The control system includes a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool. The control system also includes a constraint solver that calculates constraint forces adapted to attract the tool to the target state or repel the tool 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 forces, and haptic feedback is provided to the user to guide the user to place the tool in the target state or away from the target state.

[0017] According to a twelfth aspect, there is provided a surgical system including a tool and a manipulator for supporting and moving the tool. The manipulator is operable in a first mode in which the manipulator moves the tool along a tool path and in a second mode in which a user applies forces and torques to the tool to move the tool. The control system includes a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and the current state of the tool. The control system also includes a constraint solver that calculates constraint forces adapted to attract the tool from the current state to 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 forces, and haptic feedback is provided to the user to guide the user to place the tool in the target state.

[0018] According to a thirteenth aspect, there is provided a surgical system including a tool and a manipulator operable in a semi-autonomous mode, wherein the manipulator moves the tool along a tool path. The tool can move in response to user forces and torques applied to the tool by the user while the tool is still on the tool path. The control system includes a guidance handler that obtains a recommended orientation for the tool and generates one or more virtual constraints based on the recommended orientation and the current orientation of the tool. The control system also includes a constraint solver that calculates constraint forces adapted to attract the tool from its current orientation to the recommended orientation based on the one or more virtual constraints. The movement of the tool is controlled by the manipulator based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool in the recommended orientation.

[0019] According to a fourteenth aspect, there is provided a surgical system including a tool and a manipulator for supporting and moving the tool. The control system includes a guidance handler for acquiring a plurality of alignment points and one or more target planes for the tool and for generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes. The control system also includes a constraint solver for calculating constraint forces adapted to attract the tool to the one or more target planes based on the one or more virtual constraints. Movement of the tool is controlled by the manipulator based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool on the one or more target planes.

[0020] According to a fifteenth aspect, there is provided a method for guiding a tool supported by a manipulator of a surgical system. The method includes obtaining a goal state of the tool and generating one or more virtual constraints based on the goal state and a current state of the tool. The method also includes calculating constraint forces adapted to attract the tool to the goal state or repel the tool from the goal state based on the one or more virtual constraints. Movement of the tool is controlled based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool in or away from the goal state.

[0021] According to a sixteenth aspect, there is provided a method for guiding a tool supported by a manipulator of a surgical system. The manipulator is operable in a first mode in which the manipulator moves the tool along a tool path and in a second mode in which the tool moves in response to user forces and torques applied by the user to the tool. The method includes 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 method also includes calculating constraint forces based on the one or more virtual constraints, the constraint forces being adapted to attract the tool from the current state to the target state. The movement of the tool is controlled in the second mode based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool in the target state.

[0022] According to a seventeenth 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 moves the tool along a tool path. The tool can move to reorient itself in response to user forces and torques applied to the tool by the user while the tool is still on the tool path. The method includes obtaining a recommended orientation for the tool and generating one or more virtual constraints based on the recommended orientation and the current orientation of the tool. The method also includes calculating constraint forces based on the one or more virtual constraints, the constraint forces being adapted to attract the tool from its current orientation to the recommended orientation. Movement of the tool is controlled based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool in the recommended orientation.

[0023] According to an eighteenth aspect, there is provided a method for guiding a tool supported by a manipulator of a surgical system. The method includes acquiring a plurality of alignment points and one or more target planes for the tool, and generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes. The method also includes calculating constraint forces adapted to attract the tool to the one or more target planes based on the one or more virtual constraints. Movement of the tool is controlled based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool on the one or more target planes.

[0024] According to a nineteenth aspect, there is provided a handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held by a user in a free hand; a handheld manipulator having a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler for obtaining a target state of the saw blade and generating one or more virtual constraints including a guidance constraint based on the target state and a current state of the saw blade; a constraint solver for calculating constraint forces adapted to move the saw blade to the target state based on the one or more virtual constraints; and a virtual simulator for simulating saw blade dynamics in a virtual simulation based on input from the constraint forces and outputting a command position, the control system being configured to command the handheld manipulator to move the saw blade based on the command position and position the saw blade in the target state.

[0025] According to a twentieth aspect, there is provided a handheld manipulator system comprising: a base portion held by a user in a free hand; a handheld manipulator having a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler for acquiring a plurality of alignment points and one or more target planes for the saw blade and generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; a constraint solver for calculating constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints; and a virtual simulator for simulating saw blade dynamics in a virtual simulation based on input from the constraint forces and outputting a command orientation, wherein the control system is configured to command the manipulator to move the saw blade based on the command orientation and position the saw blade in the one or more target planes.

[0026] According to a twenty-first aspect, there is provided a method for controlling a saw blade of a handheld manipulator having a base portion held in a user's freehand and a tool tip movable relative to the base portion and including a sagittal saw blade, the method including the steps of 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 constraint forces adapted to move the saw blade to 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 forces, outputting a command position based on the virtual simulation, and instructing a manipulator to move the saw blade based on the command position and position the saw blade in the target state.

[0027] According to a twenty-second aspect, there is provided a method for guiding a saw blade supported by a handheld manipulator having a base portion held in a user's freehand and a tool tip movable relative to the base portion and including a sagittal saw blade, the manipulator supporting and moving the saw blade, the method including the steps of obtaining a plurality of alignment points and one or more target planes for the saw blade, generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes, calculating constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints, simulating saw blade dynamics in a virtual simulation based on input from the constraint forces, outputting a command orientation based on the virtual simulation, and commanding the manipulator to move the saw blade based on the command orientation and position the saw blade in the one or more target planes.

[0028] According to a twenty-third aspect, there is provided a method for controlling movement of a saw blade of a handheld manipulator to create a plurality of features, each of the plurality of features having a different target state of the saw blade, the method including the steps of: identifying a current state of the saw blade in a known coordinate system relative to the target states of the saw blade for the plurality of features and identifying which of the plurality of features is selected for creation; enabling one or more guiding constraints from a plurality of guiding constraints for the handheld manipulator based on the selected feature; and controlling movement of the saw blade based on the one or more guiding constraints that function to position the saw blade at the target state of the selected feature.

[0029] According to a 24th aspect, there is provided a handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held in a user's free hand; a handheld manipulator having a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler 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 constraint forces adapted to move the saw blade to the target state based on the one or more virtual constraints, and the movement of the saw blade is controlled by the manipulator based on the constraint forces, and the saw blade is positioned in the target state.

[0030] According to a 25th aspect, there is provided a handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held by a user in his free hand; a handheld manipulator having a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler that acquires a plurality of alignment points and one or more target planes for the saw blade and generates 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 that calculates constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints, and the movement of the saw blade is controlled by the manipulator based on the constraint forces, and the saw blade is positioned on the one or more target planes.

[0031] According to a twenty-sixth aspect, there is provided a method for guiding a saw blade of a handheld manipulator, the method including the steps of 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 constraint forces adapted to move the saw blade to the target state based on the one or more virtual constraints, and controlling movement of the saw blade based on the constraint forces to position the saw blade in the target state.

[0032] According to a twenty-seventh aspect, there is provided a method for guiding a saw blade supported by a handheld manipulator, the method including the steps of obtaining a plurality of alignment points and one or more target planes for the saw blade, generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes, calculating constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints, and controlling movement of the saw blade based on the constraint forces to position the saw blade on the one or more target planes.

[0033] According to a twenty-eighth aspect, there is provided a handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held in a user's free hand; a handheld manipulator with a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler that obtains a target state of the saw blade and generates one or more virtual constraints based on the target state and a current state of the saw blade, the one or more virtual constraints including a guidance constraint, the guidance handler configured to calculate the guidance constraint based on a relationship between the current state and the target state, the guidance constraint having values ​​of tuning parameters, and the guidance handler configured to modify the values ​​of the tuning parameters based on the relationship between the current state and the target state; a constraint solver that calculates constraint forces adapted to move the saw blade to the target state based on the guidance constraints; and a virtual simulator that simulates saw blade dynamics in a virtual simulation based on input from the constraint forces and outputs a command posture, the control system being configured to command the manipulator to move the saw blade based on the command posture and position the saw blade in the target state.

[0034] According to a 29th aspect, there is provided a surgical system comprising: a tool; a manipulator that supports the tool and moves the tool in response to user forces and torques applied to the tool by the user; one or more sensors that provide sensor input signals; and a control system, the control system comprising: a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; and a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the sensor input signals from the one or more sensors and the constraint forces and outputs a command posture, wherein the control system is configured to command the manipulator to move the tool based on the command posture, thereby providing haptic feedback to the user to guide the user to place the tool in the target state or away from the target state.

[0035] Any of the above aspects can be combined in part or in whole. Furthermore, any of the above aspects can be implemented with any of the following embodiments.

[0036] In one embodiment, the target state includes a target position, a target orientation, or a target posture, and the current state includes a current position, a current orientation, or a current posture. In one embodiment, 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. In one embodiment, the control system is configured to allow a user to reorient the tool away from the target orientation. In one embodiment, the control system is configured to allow a user to reposition the tool away from the target position.

[0037] In one embodiment, the control system is configured to select the start location from a plurality of possible start locations.In one embodiment, the control system is configured to select the start location from a plurality of possible start locations based on the last known position of the tool on the tool path before the tool was moved off the tool path.

[0038] In one embodiment, the control system is configured to define the start position as a resume position along the resume path. In one embodiment, the control system is configured to identify a last known point on the tool path traversed by the tool before the tool was moved out of the tool path, and calculate a resume position on the resume path based on the last known point. In one embodiment, the control system is configured to calculate a last known point on the tool path traversed by the tool based on a last known position of the tool on the tool path before the tool was moved out of the tool path. In one embodiment, the control system is configured to calculate an entry path from the resume position to the last known point, and move the tool from the resume position to the last known point along the entry path in the first mode. In one embodiment, the tool includes an energy applicator, and the control system includes a tool controller that supplies energy to the energy applicator as the energy applicator moves along the entry path in the first mode. In one embodiment, the resume path is based on the shape of the virtual boundary. In one embodiment, the target state includes a resume position on the resume path, and the resume path is defined based on a retreat path along which a user moves the tool when the tool is moved out of the tool path. In one embodiment, the target state includes a restart position selected from a plurality of possible restart positions defined along the restart path, and the control system is configured to select the restart position based on cutting progress made by the tool with respect to the plurality of possible restart positions.

[0039] In one embodiment, the target state includes a target coordinate system, the tool includes a guided coordinate system, and the constraint force is adapted to attract the guided coordinate system to the target coordinate system.

[0040] In one embodiment, the guidance handler is configured to calculate one or more virtual constraints for one or more degrees of freedom based on the difference between the current state and the target state.

[0041] In one embodiment, the control system includes a user interface for enabling one or more virtual constraints such that the constraint forces include force and torque components associated with attracting the tool to the target state.

[0042] In one embodiment, the guidance handler is configured to calculate one or more virtual constraints based on a relationship between the current state and the goal state.

[0043] In one embodiment, each of the one or more virtual constraints has a value for a tuning parameter, and the guidance handler is configured to change the value of the tuning parameter based on a relationship between the current state and the goal state.

[0044] In one embodiment, the one or more virtual constraints include a first virtual constraint having a tuning parameter of a first value and a second virtual constraint having a tuning parameter of a second value, the first value being different from the second value, such that a resulting constraint force of the first virtual constraint is adapted to more strongly attract or repel the tool compared to the second virtual constraint.

[0045] In one embodiment, the virtual simulator is configured to simulate the dynamics of the tool and generate command postures by representing the tool as a virtual rigid body having a virtual mass and applying constraint forces to the virtual mass in the virtual simulation.

[0046] In one embodiment, the control system is configured to calculate an external force based on input from one or more sensors, and to calculate a total force to be used in the virtual simulation based on the constraint force and the external force, where the external force may have a force component of sufficient magnitude and direction to overcome the constraint force.

[0047] In one embodiment, the tool comprises a burr or drill, and the one or more virtual constraints include two virtual constraints defined to attract the burr or drill into a desired orientation.

[0048] In one embodiment, the tool comprises a bar and the one or more virtual constraints include three virtual constraints defined to attract the bar to a desired starting position.

[0049] In one embodiment, the tool includes a saw blade and the one or more virtual constraints include three virtual constraints defined to attract the saw blade to a desired cutting plane.

[0050] In one embodiment, the first mode comprises a semi-autonomous mode and the second mode comprises a guided haptic mode.

[0051] In one embodiment, enabling the one or more guiding constraints includes generating one or more guiding constraints based on a goal state associated with a feature selected by the user and a current state of the tool, and controlling the movement of the tool based on the one or more guiding constraints includes calculating constraint forces adapted to attract the tool from the current state to the goal 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 forces, outputting a command pose based on the virtual simulation, and providing haptic feedback to the user to guide the user to place the tool in the goal state by commanding a manipulator to move the tool based on the command pose.

[0052] In one embodiment, enabling the one or more guiding constraints includes generating one or more guiding constraints based on a goal state associated with a feature selected by the user and a current state of the tool, and controlling the movement of the tool based on the one or more guiding constraints includes calculating constraint forces adapted to urge the tool away from the goal state based on the one or more virtual constraints, simulating the dynamics of the tool in a virtual simulation based at least in part on the constraint forces, outputting a command pose based on the virtual simulation, and providing haptic feedback to the user to guide the user to position the tool away from the goal state by commanding a manipulator to move the tool based on the command pose.

[0053] In one embodiment, determining the current state of the tool relative to a target state of the tool of a plurality of features in a known coordinate system includes determining the position of a plane defined by the saw blade relative to a plurality of cutting planes in the known coordinate system.

[0054] In one embodiment, determining the current state of the tool relative to a target state of the tool for a plurality of features in a known coordinate system includes determining the position of an axis defined by the shaft of the burr or drill relative to a plurality of cutting axes.

[0055] In one embodiment, determining the current state of the tool relative to the target states of the tool of the plurality of features in a known coordinate system includes determining an angle between the current orientation of the tool and the plurality of target orientations of the tool, or determining a distance between the current position of the tool and the plurality of target positions of the tool, or determining both the angle and the distance, and determining a user-selected one of the plurality of features based on the angle value, the distance value, or both the angle value and the distance value.

[0056] 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 region is defined for multiple features, and one or more virtual boundaries and one or more guiding constraints associated with the user-selected feature are enabled when the tool is within the selection region to create the user-selected feature and disabled when the tool is moved outside the selection region, thereby allowing the user to select a new feature to create.

[0057] In some implementations, the 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 to any one or more actuators. In some implementations, the current measurements may be used to derive or estimate measurements of the force and torque applied to the tool.

[0058] Any of the above embodiments can be utilized with any of the aforementioned aspects. Any of the above embodiments can be combined, in whole or in part, with any one or more of the aforementioned aspects.

[0059] The advantages of the present disclosure will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, in which: [Brief explanation of the drawings]

[0060] [Figure 1] FIG. 1 is a perspective view of a surgical system. [Figure 2] FIG. 1 is a block diagram of a control system for controlling a surgical system. [Figure 3] FIG. 1 is a functional block diagram of a software program used to control the surgical system. [Figure 4] 10 shows the output of a boundary generator for an acetabular surgical procedure. [Figure 5] 10 shows the output of a path generator for an acetabular surgical procedure. [Figure 6]10 shows the output of a boundary generator for a surgical procedure on a vertebral body. [Figure 7] 10 shows the output of a boundary generator for a femoral surgical procedure. [Figure 8] 13 shows the output of a path generator for a femoral surgical procedure. [Figure 9] 10 shows the output of a boundary generator for a femoral surgical procedure. [Figure 10] 1 is an example of virtual constraint and virtual attraction. [Figure 11] FIG. 2 is a block diagram of modules operable by the control system. [Figure 12] An example of a constraint equation is shown below. [Figure 13] An example of a forward dynamics algorithm for performing virtual simulations is presented. [Figure 14] An example of a forward dynamics algorithm for performing virtual simulations is presented. [Figure 15] 1 illustrates an exemplary set of steps performed by the control system to resolve constraints, perform forward dynamics, and identify a command pose. [Figure 16A] 1 illustrates the movement of a tool in response to application of guiding constraints that entice the tool to a target position and orientation. [Figure 16B] 1 illustrates the movement of a tool in response to application of guiding constraints that entice the tool to a target position and orientation. [Figure 16C] 1 illustrates the movement of a tool in response to application of guiding constraints that entice the tool to a target position and orientation. [Figure 16D] 1 illustrates the movement of a tool in response to application of guiding constraints that entice the tool to a target position and orientation. [Figure 17] 13 illustrates another application of a guiding constraint to guide a tool to a target location and orientation for drilling a hole in a vertebral body. [Figure 18] 1 is a pair of graphs showing the variation of binding force in the x and y directions with respect to z distance, and the variation of binding force about the x and y axes. [Figure 19] 13 illustrates another application of a guidance constraint to attract a tool to a target plane. [Figure 20] 13 illustrates another application of a guidance constraint to attract a tool to a target plane. [Figure 21] Show how the stiffness of the guided constraint varies with z-distance. [Figure 22A] 10 shows the movement of a tool along a milling path in a semi-autonomous operating mode to remove material from a femur. [Figure 22B] 10 shows the movement of a tool along a milling path in a semi-autonomous operating mode to remove material from a femur. [Figure 22C] 10 shows the movement of a tool along a milling path in a semi-autonomous operating mode to remove material from a femur. [Figure 22D] Shows the movement of the tool away from the milling path. [Figure 22E] 10 illustrates the application of guided constraints to attract the tool to a target position and orientation in a guided haptic mode before resuming operation in a semi-autonomous mode. [Figure 22F] 10 illustrates the application of guided constraints to attract the tool to a target position and orientation in a guided haptic mode before resuming operation in a semi-autonomous mode. [Figure 23] FIG. 2 is a block diagram of modules operable by the control system. [Figure 24] 13 illustrates the application of another guidance constraint to attract a tool with a saw blade to a target plane. [Figure 25] 13 illustrates the application of another guidance constraint to attract a tool with a saw blade to a target plane. [Figure 26] 13 illustrates the application of another guidance constraint to attract a tool with a saw blade to a target plane. [Figure 27] 13 illustrates the application of another guidance constraint to attract a tool with a saw blade to a target plane. [Figure 28] 10 illustrates how the control system can identify the desired cutting plane selected by the user based on the position of the tool. [Figure 29] 10 shows another application of guiding constraints to attract a tool, a saw blade of a handheld manipulator, to a target plane. DETAILED DESCRIPTION OF THE INVENTION

[0061] I. Overview Referring to FIG. 1 , a surgical system 10 is shown. The system 10 is useful for treating a surgical site or anatomical volume A of a patient 12, such as treating bone or soft tissue. In FIG. 1 , the patient 12 is undergoing a surgical procedure. The anatomical structures in FIG. 1 include the femur F, pelvis PEL, and tibia T of the patient 12. The surgical procedure may include tissue removal or other forms of treatment. The treatment may include tissue ablation, coagulation, lesioning, or other in-situ tissue treatment. In some examples, the surgical procedure includes partial or total knee or hip replacement surgery, shoulder replacement surgery, spinal surgery, or ankle surgery. In some examples, the system 10 is designed to remove material to be replaced by surgical implants, such as hip and knee implants, including unicompartmental, bicompartmental, multicompartmental, or total knee implants, acetabular cup implants, femoral stem implants, screws, anchors, and other fasteners. 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 incorporated herein by reference. The system 10 and techniques disclosed herein may also be used to perform other procedures, surgical or non-surgical, or may be used in industrial or other applications.

[0062] System 10 includes a robotic manipulator 14, also referred to as a surgical robot. Manipulator 14 has a base 16 and a plurality of links 18. A manipulator cart 17 supports manipulator 14 such that manipulator 14 is secured to the manipulator cart 17. Links 18 collectively form one or more arms (e.g., robotic arms) of manipulator 14. Manipulator 14 may have a serial arm configuration (shown in FIG. 1), a parallel arm configuration, or any other suitable manipulator configuration. In other examples, multiple manipulators 14 may be utilized in a multiple arm configuration.

[0063] In the example shown in Figure 1, the manipulator 14 includes multiple joints J and multiple joint encoders 19 disposed at the joints J to determine position data for the joints J. For simplicity, only one joint encoder 19 is shown in Figure 1, although other joint encoders 19 may be shown as well. According to one example, the manipulator 14 has six joints J1-J6 that implement at least six degrees of freedom (DOF) for the manipulator 14. However, the manipulator 14 may have any number of degrees of freedom, any suitable number of joints J, and may have redundant joints.

[0064] The manipulator 14 does not necessarily require joint encoders 19, but may alternatively or additionally utilize motor encoders present on the motors of each joint J. Also, the manipulator 14 does not necessarily require revolute joints, but may alternatively or additionally utilize one or more prismatic joints. Any suitable combination of joint types is contemplated.

[0065] The base 16 of the manipulator 14 is typically a part of the manipulator 14 and generally provides a fixed reference frame for the manipulator 14 or other components of the system 10. Typically, the origin of the manipulator coordinate system MNPL is defined relative to a fixed reference on the base 16. The base 16 may be defined relative to any appropriate 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 when 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 joints J1 and J2. Thus, although joints J1 and J2 are actually moving components, the intersection of the axes of joints J1 and J2 is a virtual fixed reference frame that provides a fixed reference for both position and orientation and does not move relative to the manipulator 14 and / or the manipulator cart 17.

[0066] 29, the manipulator may be a handheld manipulator 15 in which a base 16' is the base portion of the tool (e.g., the portion held by a user in their freehand) 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 that is calculated with respect to the reference coordinate system (e.g., via motor and / or joint encoders and forward kinematic calculations). The orientation of the tool tip 17 may be determined relative to a path, so that the movement of the tool tip 17 can be controlled to follow the path. Such a handheld manipulator 15 may be similar to that shown in U.S. Patent No. 9,707,043, filed 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 incorporated herein by reference. Examples of handheld manipulators that can be utilized with the systems, methods, and techniques described herein can be similar to those described in PCT Application No. PCT / US2020 / 042128, entitled "Robotic Hand-Held Surgical Instrument Systems and Methods," filed July 15, 2020, the entire contents of which are incorporated herein by reference.

[0067] The manipulator 14 and / or manipulator cart 17 house a manipulator controller 26 or other type of control unit. The manipulator controller 26 may comprise one or more computers or any other suitable form of controller for directing the movement of the manipulator 14. The manipulator controller 26 may include a central processing unit (CPU) and / or other processor, memory (not shown), and storage (not shown). The manipulator controller 26 is loaded with software, as described below. The processor may include one or more processors that control the operation of the manipulator 14. The processor may be any type of microprocessor, multiprocessor, and / or multicore processing system. The manipulator controller 26 may additionally or alternatively comprise 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 (eg, push buttons, keyboard, mouse, microphone (voice-activated), gesture control device, touch screen, etc.).

[0068] The surgical tool 20 is coupled to the manipulator 14 and is movable relative to the base 16 to interact with the anatomical structure in a particular mode. In certain embodiments, the tool 20 is, or forms part of, an end effector 22 supported by the manipulator 14. The tool 20 can be grasped by a user. One possible arrangement of the manipulator 14 and tool 20 is described in U.S. Patent No. 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," filed August 2, 2013, the disclosure of which is incorporated herein by reference. The manipulator 14 and tool 20 can be arranged in alternative configurations. The tool 20 can be similar to that shown in U.S. Patent Application Publication No. 2014 / 0276949, entitled "End Effector of a Surgical Robotic Manipulator," filed March 15, 2014, which is incorporated herein by reference.

[0069] 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 burr 25. The burr 25 may be generally spherical and include a spherical center, a radius (r), and a diameter. Alternatively, the energy applicator 24 may be a drill bit, a saw blade 27 (see alternative tool in FIG. 1 ), an ultrasonic vibration tip, or the like. The tool 20 and / or the energy applicator 24 may include any geometric characteristics, such as a perimeter, a circumference, a radius, a diameter, a width, a length, a volume, an area, a surface / plane, an operating envelope (along any one or more axes), or the like. The geometric characteristics may be considered to determine how the tool 20 is positioned relative to the tissue at the surgical site to perform the desired treatment. In some of the embodiments described herein, a spherical burr having a tool center point (TCP) and a sagittal saw blade having a TCP are described for convenience and ease of illustration, but the tool 20 is not intended to be limited to any particular configuration.

[0070] The tool 20 may include a tool controller 21 that controls the operation of the tool 20, such as controlling power to the tool (e.g., to the tool's 20 rotational motor), controlling the movement of the tool 20, and / or controlling irrigation / aspiration of the tool 20. The tool controller 21 may communicate with a manipulator controller 26 or other components. The tool 20 may also include a user interface UI with one or more displays and / or input devices (e.g., push buttons, keyboard, mouse, microphone (voice activation), gesture control device, touch screen, foot pedals, etc.). The manipulator controller 26 controls the state (position and / or orientation) of the tool 20 (e.g., of the TCP) with respect to a coordinate system such as the manipulator coordinate system MNPL. The manipulator controller 26 may control the velocity (linear or angular), acceleration, or other derivatives of the motion of the tool 20.

[0071] The tool center point (TCP), in one example, is a predetermined reference point defined on the energy applicator 24. The TCP has a known or calculable (i.e., not necessarily static) orientation relative to another coordinate system. The geometry of the energy applicator 24 is known in or defined relative to the TCP coordinate system (or another tool coordinate system associated with the tool). The TCP may be located at the spherical center of the bar 25 of the tool 20 or at the distal end of the saw blade 27 so that only a single point is tracked. The TCP may be defined in various ways depending on the configuration of the energy applicator 24. The manipulator 14 may be capable of determining the orientation of the TCP using joint / motor encoders or any other non-encoder position sensing method. The manipulator 14 may determine the TCP orientation using joint measurements and / or may use techniques that directly measure the TCP orientation. Control of the tool 20 is not limited to the center point. For example, any suitable primitives, meshes, etc. may be used to represent the tool 20.

[0072] The system 10 further includes a navigation system 32. An example of a navigation system 32 is described in U.S. Patent No. 9,008,757, filed September 24, 2013, entitled "Navigation System Including Optical and Non-Optical Sensors," which is incorporated herein 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 and collects state information for each object relative to a (navigation) localizer coordinate system LCLZ. Coordinates of the localizer coordinate system LCLZ can be transformed to the manipulator coordinate system MNPL, to other coordinate systems, and / or vice versa, using transformations.

[0073] The navigation system 32 includes a cart assembly 34 that houses a navigation controller 36 and / or other types of control units. A navigation user interface UI is in operative communication with the navigation controller 36. The navigation user interface UI includes one or more displays 38. The navigation system 32 can use the one or more displays 38 to display a graphical representation of the relative status of tracked objects to a user. The navigation user interface UI further includes one or more input devices for inputting information into the navigation controller 36 or for selecting / controlling certain aspects of the navigation controller 36. Such input devices include an interactive touchscreen display. However, the input devices may also include any one or more of push buttons, a keyboard, a mouse, a microphone (voice-activated), a gesture control device, a foot pedal, and the like.

[0074] The navigation system 32 also includes a navigation localizer 44 connected 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 outer housing 48 that houses one or more optical sensors 50. The localizer 44 may include its own localizer controller 49 and may further include a video camera VC.

[0075] 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. In the example shown in FIG. 1 , the manipulator tracker is rigidly attached to the tool 20 (i.e., tracker 52A), the first patient tracker 54 is rigidly fixed to the femur F of the patient 12, the second patient tracker 55 is rigidly fixed to the pelvis PEL of the patient 12, and the third patient tracker 56 is rigidly fixed to the tibia T of the patient 12. In this example, the patient trackers 54, 55, and 56 are rigidly fixed to bone portions. The pointer tracker PT is rigidly fixed to the pointer P, which is used to register anatomical structures to the localizer coordinate system LCLZ. Manipulator trackers 52A, 52B may be affixed to any suitable component of manipulator 14, in addition to or other than tool 20, such as base 16 (i.e., tracker 52B) or to any one or more links 18 of manipulator 14. Trackers 52A, 52B, 54, 55, 56, PT may be affixed to their respective components in any suitable manner. For example, trackers may be rigidly affixed, flexibly connected (fiber optics), or not physically connected at all (ultrasound), so long as there is a suitable (complementary) way to identify the relationship (measurement) between each tracker and its associated object.

[0076] Any one or more of the trackers may include an active marker 58. The active marker 58 may include a light emitting diode (LED). Alternatively, the trackers 52A, 52B, 54, 55, 56, PT may have a passive marker, such as a reflector that reflects light emitted from the camera unit 46. Other suitable markers not specifically described herein may be utilized.

[0077] The localizer 44 tracks the trackers 52A, 52B, 54, 55, 56, and PT to determine the state of each of the trackers 52A, 52B, 54, 55, 56, and PT, which correspond to the state of the object to which the tracker 52A, 52B, 54, 55, 56, and PT is attached. The localizer 44 may perform known triangulation techniques to determine the state of the trackers 52, 54, 55, 56, and PT and the associated object. The localizer 44 provides the states of the trackers 52A, 52B, 54, 55, 56, and PT to the navigation controller 36. In one example, the navigation controller 36 determines the states of the trackers 52A, 52B, 54, 55, 56, and PT and communicates them to the manipulator controller 26. As used herein, object state includes, but is not limited to, data defining the position and / or orientation of a tracked object, or equivalents / derivatives of the position and / or orientation. For example, state may be the posture of the object, may include linear velocity data and / or angular velocity data, etc.

[0078] The navigation controller 36 may comprise one or more computers or any other suitable form of controller. The navigation controller 36 includes a central processing unit (CPU) and / or other processor, memory (not shown), and storage (not shown). The processor may be any type of processor, microprocessor, or multiprocessor. The navigation controller 36 is loaded with software. The software converts signals received from, for example, the localizer 44 into data representing the position and orientation of the object being tracked. The navigation controller 36 may additionally or alternatively comprise 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.

[0079] Although an example of a navigation system 32 using triangulation techniques to determine the state of an object is shown, the navigation system 32 may have any other suitable configuration for tracking the manipulator 14, the tool 20, and / or the 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 connected to the navigation controller 36. The ultrasound imaging device images any of the aforementioned objects, such as the manipulator 14, the tool 20, and / or the patient 12, and generates a state signal to the navigation controller 36 based on the ultrasound images. The ultrasound images may be 2D, 3D, or a combination of both. The navigation controller 36 may process the images 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 the camera unit 46 shown in FIG. 1 .

[0080] In another example, the navigation system 32 and / or the localizer 44 are radio frequency (RF) based. For example, the navigation system 32 may include an RF transceiver connected to the navigation controller 36. The manipulator 14, the tool 20, and / or the patient 12 may be equipped with an RF emitter or RF transponder. The RF emitter or RF transponder may be passively or actively powered. The RF transceiver transmits an RF tracking signal and generates a status signal to the navigation controller 36 based on the RF signal received from the RF emitter. The navigation controller 36 may analyze the received RF signal and associate a relative status with the RF signal. The RF signal may be of any suitable frequency. The RF transceiver may be positioned in any suitable location to effectively use the RF signal to track the object. Furthermore, the RF emitter or RF transponder may have any suitable structural configuration, which may differ significantly from the trackers 52A, 52B, 54, 55, 56, PT shown in FIG. 1 .

[0081] In yet another example, the navigation system 32 and / or the localizer 44 are electromagnetic-based. For example, the navigation system 32 may include an EM transceiver connected to the navigation controller 36. The manipulator 14, the tool 20, and / or the patient 12 may be equipped with EM components, such as any suitable magnetic, electromagnetic, or inductive trackers. The trackers may be passively or actively energized. The EM transceiver generates an EM field and generates a status signal to the navigation controller 36 based on the EM signals received from the trackers. The navigation controller 36 may analyze the received EM signals and associate a relative status with the EM signals. Again, such an example navigation system 32 may have a structural configuration different from that of the navigation system 32 shown in FIG. 1 .

[0082] The navigation system 32 may have any other suitable components or structures not specifically detailed herein. Additionally, any of the techniques, methods, and / or components described above with respect to the illustrated navigation system 32 may be implemented or provided in any of the other examples of the navigation system 32 described herein. For example, the navigation system 32 may utilize inertial tracking alone or any combination of tracking techniques, which may additionally or alternatively include fiber optic-based tracking, machine vision tracking, and the like.

[0083] 2, the system 10 includes a control system 60, which includes, among other components, a manipulator controller 26, a navigation controller 36, and a tool controller 21. The control system 60 further includes one or more software programs and modules, as shown in FIG. 3. The software modules may be part of one or more programs in the manipulator controller 26, the navigation controller 36, the tool controller 21, or any combination thereof, that process data to assist in controlling the system 10. The software programs and / or modules include computer-readable instructions that are stored in non-transitory memory 64 of the manipulator controller 26, the navigation controller 36, the tool controller 21, or any combination thereof, and executed 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, or may be implemented from a local or remote database. Additionally, software modules for prompting and / or communicating with the user may form part of one or more programs and may include instructions stored in memory 64 of the manipulator controller 26, navigation controller 36, tool controller 21, or any combination thereof. A user may communicate with the software modules by interacting with any of the input devices of the navigation user interface UI or other user interface UI. User interface software may execute on a device separate from the manipulator controller 26, navigation controller 36, and / or tool controller 21.

[0084] The control system 60 may include any suitable configuration of input devices, output devices, and processing devices suitable for performing 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 communicate via a wired bus or communication network as shown in FIG. 2, via wireless communication, or otherwise. 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-chips, discrete circuits, sensors, displays, user interfaces, indicators, and / or other suitable hardware, software, or firmware capable of performing the functions described herein.

[0085] Referring to FIG. 3 , the software used by the control system 60 includes a boundary generator 66. As shown in FIG. 4 , 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, or three-dimensional and can include points, lines, axes, trajectories, planes, volumes, surfaces, or triangular meshes. The virtual boundary 71 can have simple or complex geometric shapes. In some embodiments, the virtual boundary 71 is a surface defined by a triangular mesh. The virtual boundary 71 may also be referred to as a virtual object. The virtual boundary 71 can be defined with respect to an anatomical model AM, such as a 3D bone model. The anatomical model AM is associated with the actual patient's anatomy by being mapped to the patient's anatomy through registration or other processes. In the example of FIG. 4 , the virtual boundary 71 includes a generally spherical mesh that substantially surrounds the acetabulum, with an inlet portion 71 a (opening) that provides access to the acetabulum. The inlet portion is funnel-shaped or conical-shaped. This virtual boundary 71 is associated with a 3D model of the acetabulum.

[0086] 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 actual 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, defined based on, for example, the size, shape, volume, etc. of the implant, and / or patient-specific, defined based on, for example, the patient anatomy. The virtual boundary 71 can be a boundary created pre-operatively, intra-operatively, 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 either case, the control system 60 obtains the virtual boundary 71 by storing / retrieving the virtual boundary 71 in memory, retrieving the virtual boundary 71 from memory, creating the virtual boundary 71 pre-operatively, creating the virtual boundary 71 intra-operatively, etc.

[0087] The manipulator controller 26 and / or navigation controller 36 track 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 in order to determine forces to apply to the virtual rigid body model via a virtual simulation so that the tool 20 remains in a desired positional relationship relative to the virtual boundary 71 (e.g., does not move beyond the virtual boundary 71). The results of the virtual simulation are instructed to the manipulator 14. The control system 60 controls / positions the manipulator 14 in a manner that emulates how a physical handpiece would respond to the presence of a physical boundary / barrier. The boundary generator 66 may be implemented on the manipulator controller 26. Alternatively, the boundary generator 66 may be implemented in another component, such as the navigation controller 36.

[0088] 3 and 5 , the path generator 68 is another software program or module executed by the control system 60. In one example, the path generator 68 is executed by the manipulator controller 26. The path generator 68 generates a tool path TP through which the tool 20 traverses, such as to remove an anatomical section 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 segment, a curved segment, or a combination thereof. The tool path TP may also be defined with respect to the anatomical model AM and tracked via one or more of the patient trackers 54, 55, 56. The tool path TP may be implant-specific, defined based on, for example, the size, shape, volume, etc. of the implant, and / or patient-specific, defined based on, for example, the patient's anatomy.

[0089] In one embodiment described herein, the tool path TP is defined as a tissue removal path, although in other embodiments, the tool path TP may be used for treatments other than tissue removal. One 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 near a target site that mills an anatomical structure and is not intended to require the tool 20 to operatively mill the anatomical structure throughout the entire path. For example, the milling path 72 may include sections or segments in which the tool 20 transitions from one location to another without milling. Additionally, other forms of tissue removal, such as tissue resection, may be used along the milling path 72. The milling path 72 may be a predefined path created preoperatively, intraoperatively, or a combination thereof. In other words, the milling path 72 may be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. In either case, the control system 60 obtains the milling path 72 by storing / retrieving the milling path 72 in memory, retrieving the milling path 72 from memory, creating the milling path 72 preoperatively, creating the milling path 72 intraoperatively, etc. The milling path 72 may be any suitable shape or combination of shapes, such as circular, spiral / corkscrew, linear, curved, and combinations thereof. The milling path 72 shown in FIG. 5 is intended to remove material from the acetabulum as the tool 20 passes through it to create space for an acetabular cup implant to fit into the acetabulum.

[0090] Examples of virtual boundaries 71 and / or milling paths 72 are shown in Figures 4-9. The particular shapes and arrangements of virtual boundaries 71 and / or milling paths 72 are shown for illustrative purposes. Other shapes and arrangements are possible. As mentioned above, Figures 4 and 5 show virtual boundaries 71 and milling paths 72 generated for use in a surgical procedure to prepare (e.g., mill) an acetabulum to receive an acetabular cup implant.

[0091] 6 shows a virtual boundary 71 that includes a generally spherical mesh that substantially surrounds a vertebral body, with an entrance portion 71 a (opening) that provides access to the vertebral body. The entrance portion 71 a is funnel- or cone-shaped and extends into a cylindrical portion 71 b. This virtual boundary 71 is associated with a 3D 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 a screw or other implant.

[0092] FIG. 7 shows a virtual boundary 71 including a generally spherical mesh substantially surrounding one end of the femur, with an entrance portion 71 a (opening) providing access to the femur. The entrance portion 71 a is funnel- or cone-shaped and extends down the medullary canal of the femur into a continuing canal portion 71 b. This virtual boundary 71 is associated with a 3D model of the femur. FIG. 8 shows a milling path 72 defined to enable the tool 20 to remove material from the femur to create a receiving portion for a femoral stem implant. Accordingly, FIGS. 7 and 8 show the virtual boundary 71 and milling path 72 generated for use in a surgical procedure to prepare (e.g., mill) the femur F to receive a femoral stem implant.

[0093] FIG. 9 illustrates a series of virtual boundaries 71 generated for five cutting planes through the distal end of a femur. Each of the virtual boundaries 71 in FIG. 9 includes a generally spherical mesh that substantially surrounds the distal end of the femur, with an entry portion 71 a (opening) providing access to the femur. The entry portion 71 a leads to a cutting slot 71 b defined along one of five cutting planes 73 a–73 e. These virtual boundaries 71 are generated for use in a surgical procedure to prepare the femur F to receive a total knee implant (e.g., via planar resection with a saw blade). Other types / shapes of virtual boundaries and / or milling paths 72 for use in other surgical procedures are also contemplated.

[0094] One example of a system and method for generating the virtual boundary 71 and / or 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 incorporated herein by reference. In some examples, the virtual boundary 71 and / or milling path 72 may be generated offline, rather than on the manipulator controller 26 or the navigation controller 36. The virtual boundary 71 and / or milling path 72 may then be utilized by the manipulator controller 26 at runtime.

[0095] Referring back to FIG. 3 , two additional software programs or modules execute on the manipulator controller 26 and / or navigation controller 36. One software module executes the behavior control 74. The behavior control 74 is a process that calculates data indicative of the next commanded position and / or orientation (e.g., posture) of the tool 20. In some cases, only the position of the TCP is output from the behavior control 74, while in other cases, the position and orientation of the tool 20 are output. Outputs from one or more sensors, such as the boundary generator 66, the path generator 68, and the force / torque sensor S, may be provided as inputs to 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, along with one or more virtual constraints, described further below, to determine the command posture.

[0096] The second software module executes the motion control 76. One aspect of the motion control is the control of the manipulator 14. The motion control 76 receives data from the behavior control 74 defining a next commanded pose. Based on these data, the motion control 76 determines next positions for the joint angles of the joints J of the manipulator 14 (e.g., via an inverse kinematics calculator and a Jacobian calculator) so that the manipulator 14 can position the tool 20 as commanded by the behavior control 74, e.g., at the commanded pose. In other words, the motion control 76 processes the commanded pose, which may be defined in Cartesian space, into joint angles of the manipulator 14 so that the manipulator controller 26 can accordingly command the joint motors to move the joints J of the manipulator 14 to the commanded joint angles corresponding to the commanded pose of the tool 20. In one form, the motion control 76 adjusts the joint angle of each joint J and continually regulates the torque output by each joint motor to ensure that the joint motor drives the associated joint J as closely as possible to the commanded joint angle.

[0097] The boundary generator 66, the path generator 68, the behavior control 74, and the motion control 76 may be subsets of the software program 78. Alternatively, each may be a software program operating independently, separately and / or in any combination thereof. In this specification, the term "software program" is used to describe computer-executable instructions configured to perform various functions of the described technical solution. For brevity, the term "software program" is intended to encompass at least any one or more of the boundary generator 66, the path generator 68, the behavior control 74, and / or the motion control 76. The software program 78 may be implemented in the manipulator controller 26, the navigation controller 36, or any combination thereof, or may be implemented in any suitable manner by the control system 60.

[0098] A clinical application 80 may be provided to handle user interactions. The clinical application 80 handles many aspects of user interactions and coordinates the surgical workflow, including preoperative planning, implant placement, registration, bone preparation visualization, and postoperative assessment of implant suitability. The clinical application 80 is configured to output to the display 38. The clinical application 80 may run on its own separate processor or may run in conjunction with the navigation controller 36. In one example, the clinical application 80 interfaces with the boundary generator 66 and / or path generator 68 after implant placement is set by the user, and then sends the virtual boundary 71 and / or tool path TP returned by the boundary generator 66 and / or path generator 68 to the manipulator controller 26 for processing and execution. The manipulator controller 26 executes the tool path TP as described herein, including the generation of path constraints, as described below. The manipulator controller 26 may further create a specific segment (e.g., a lead-in segment) to smoothly return to the generated tool path TP when starting or resuming machining. Manipulator controller 26 may also process virtual boundary 71 to generate corresponding virtual constraints, which are described further below.

[0099] II. Inductive Haptic Mode The system 10 can operate in a manual mode, such as that described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. Here, a user manually directs and the manipulator 14 executes the movement of the tool 20 and its energy applicator 24 at the surgical site. The user physically touches the tool 20 to move the tool 20 in manual mode. In one form, the manipulator 14 monitors the forces and torques applied by the user to the tool 20 to position it. 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 forces Fext that are used to determine how the tool 20 moves when in manual mode. The external force Fext may also include other forces and torques besides those applied by the user, such as gravity compensation forces and back-driving forces, as described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. Thus, the user applied forces and torques may at least partially define, and in some cases completely define, the external force Fext, which affects the overall movement of the tool 20 in manual mode.

[0100] The force / torque sensor S may comprise, for example, a 6 DOF (degree of freedom) force / torque transducer as disclosed in U.S. Pat. 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 an interface between the tool 20 and the manipulator 14, or may be located in any suitable location such that forces and torques applied by a user to the tool 20 are transmitted to the force / torque sensor S. The manipulator controller 26 and / or the navigation controller 36 receive inputs (e.g., signals) from the force / torque sensor S. In response to the user-applied forces and torques, the manipulator 14 moves the tool 20 in a manner that emulates the movement that would have occurred based on the user-applied forces and torques. Movement of the tool 20 in manual mode may also be constrained relative to a virtual boundary 71 generated by the boundary generator 66. In some forms, measurements made 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, whereby forces and torques are virtually applied to the virtual rigid body in the virtual simulation, as described below, and how these forces and torques (among other inputs) affect the motion of the virtual rigid body can ultimately be determined.

[0101] The system 10 can also operate in a semi-autonomous mode in which the manipulator 14 autonomously moves the tool 20 along the milling path 72 (e.g., the active joints J of the manipulator 14 operate to move the tool 20 without the need for a user force / torque on the tool). Examples of operation in a semi-autonomous mode are also described in U.S. Pat. No. 9,119,655, which is incorporated herein by reference. In some embodiments, when the manipulator 14 operates in a semi-autonomous mode, the manipulator 14 can move the tool 20 without user assistance. Without user assistance may mean that the user does not physically touch the tool 20 to move it. Instead, the user may control starting and stopping the movement using some form of remote control RC (see FIG. 1 ) that communicates (e.g., wired or wireless) with the manipulator 14. For example, the user may start movement of the tool 20 by pressing a button on the remote control RC and stop movement of the tool 20 by releasing the button. Such a remote control RC embodied as a user pendant is disclosed in U.S. Pat. No. 10,117,713, entitled "Robotic Systems and Methods for Controlling a Tool Removing Material from a Workpiece," by Moctezuma de La Barrera et al., which is incorporated herein by reference.

[0102] In manual mode, it may be difficult for a user to move the tool 20 from a current state to a target state, i.e., a target position, orientation, or posture (position and orientation). Moving the tool 20 to a particular target state may be desirable for a variety of reasons, such as to position the tool 20 in a desired vicinity of the milling path 72, to position the tool 20 in an orientation suitable for preparing tissue to receive an implant, or to align the tool 20 with a particular trajectory / plane. Moving the tool 20 to a target state may be even more difficult if the patient's anatomy is partially obscured from the user's view by soft tissue, bodily fluids, etc. To this end, the system 10 may be switched from manual mode to a semi-autonomous mode, such as the method described in U.S. Pat. No. 9,119,655, incorporated herein by reference. To position the tool 20 in the target state, the manipulator 14 autonomously moves the tool 20 from the current state to the target state.

[0103] The system 10 can also operate in a guided haptic mode when the user desires to maintain manual contact with and control the tool 20 while moving it to the goal state. Using the guided haptic mode, the user can be encouraged to place the tool 20 in the goal state (attractive) or guided away from the goal state (repulsive). The guided haptic mode utilizes aspects of control used in both the manual and semi-autonomous modes. For example, user-applied forces and torques are still detected by the force / torque sensor S to identify external forces Fext, which are then fed into the virtual simulation to at least partially influence the overall motion of the tool 20. Additionally, in the guided haptic mode, the system 10 generates virtual attractive forces and torques (or virtual repulsive forces and torques), which are embodied as virtual constraint forces Fc and fed into the virtual simulation along with the external forces Fext. Although the guiding haptics mode can also be used to move a user away from a goal state (repulsive haptics), the examples described below focus on using the guiding haptics mode to attract tool 20 to a goal state (attractive haptics). Thus, any of the software, hardware, techniques, methods, and / or calculations described below with respect to attractive haptics are fully applicable to reactive haptics.

[0104] Virtual attractive forces and torques that may be applied to the virtual rigid body in the virtual simulation are adapted to attract the tool 20 to the goal state. The virtual attractive forces and torques affect the overall motion of the tool 20 in a manner that ultimately provides the user with haptic feedback indicating to the user how to move the tool 20 to reach the goal state. More specifically, in the virtual simulation, the virtual attractive forces and / or torques may supplement and / or counteract the effect of the external force Fext forces and / or torques (and / or other forces and torques), thereby ultimately moving the tool 20 in a manner that provides the user with haptic interaction effects that indicate the direction / rotation in which the tool 20 needs to move to reach the goal state. Thus, while the guided haptic mode relies on manually manipulating the tool 20 to move it, such motion is actively controlled to guide the user to the goal state via the virtual attractive forces and torques, rather than simply emulating the motion that would have occurred based on the user-applied forces and torques. Thus, the guided haptic mode combines the benefits of direct user interaction with the tool 20 with the autonomous movement of the tool 20 .

[0105] In the guided haptic mode, the tool 20 is effectively attracted to a goal state, resulting in haptic interaction effects for the user. These effects can be generated in one or more degrees of freedom to attract the tool 20 to the goal state. Thus, a goal state can be defined such that the tool 20 is attracted in only one degree of freedom, or such that the tool 20 is attracted in two or more degrees of freedom. Thus, a goal state can include a target position, a target orientation, or both, defined in a target coordinate system TF (also referred to as a target frame TF). As shown in FIG. 10 , a target position can include one or more position components, e.g., a target x-position, a target y-position, and / or a target z-position, relative to the x-axis, y-axis, and / or z-axis of the target coordinate system TF. In some instances, the target position is expressed as the origin of the target coordinate system TF. A target orientation can include one or more orientation components, e.g., a target x-orientation, a target y-orientation, and / or a target z-orientation, relative to the x-axis, y-axis, and / or z-axis of the target coordinate system TF. In some cases, the target orientation is expressed as an orientation of the x-axis, y-axis, and z-axis of the target coordinate system TF. The target posture refers to a combination of one or more position components and one or more orientation components. In some cases, the target posture may include a target position and a target orientation in all six degrees of freedom of the target coordinate system TF. In some cases, the target position and / or the target orientation may also be referred to as a starting position and / or a starting orientation.

[0106] The target coordinate system TF may be any coordinate system in which a goal state is defined, and the goal state may be transformed to any other coordinate system desired for monitoring the current state of the tool 20 relative to the goal state of the tool 20. The goal state may be tracked in a tracking coordinate system, a localizer coordinate system LCLZ, a manipulator coordinate system MNPL, a virtual mass coordinate system VM, or a TCP coordinate system, etc. The goal state may be defined with respect to the patient's anatomical model AM and may be fixed with respect to the patient's anatomy, such as in an anatomical model coordinate system or an anatomical tracking coordinate system.

[0107] The current state of the tool 20 may be defined with respect to the guided coordinate system GF (also referred to as the guide frame GF). The guided coordinate system GF may be related to another coordinate system, such as the virtual mass coordinate system VM, or the current state may be transformed into any other coordinate system that enables tracking of the current state relative to a target state. The current state may be tracked in a tracking coordinate system, a localizer coordinate system LCLZ, a manipulator coordinate system MNPL, a virtual mass coordinate system VM, or a TCP coordinate system, etc. In some of the embodiments described herein, the current state of the tool 20 is initially defined using the TCP coordinate system (e.g., the TCP coordinate system and the guided coordinate system GF are shown as the same for ease of illustration). Both the guided coordinate system GF and the target coordinate system TF may be transformed into a common coordinate system for tracking purposes. The target state may be defined preoperatively, intraoperatively, or both.

[0108] III. Guidance and Restraint The control system 60 uses defined virtual constraints to generate virtual attractive forces and torques used in the virtual simulation to attract the tool 20 to the goal state. These virtual constraints are referred to herein as guided constraints. The guided constraints are defined to ultimately affect the movement of the tool 20 toward the goal state, thereby providing one or more of the aforementioned haptic interaction effects to the user. Typically, virtual constraints are limits on rigid body motion that are considered by the control system 60 along with other motion-related information that specifies how to command the manipulator 14 to move the tool 20. As explained further below, the guided constraints have configurable spring and damping characteristics, and the guided constraints are not infinitely stiff. More specifically, in some forms, the guided constraints are defined as “soft constraints,” and thus do not prevent movement that violates the guided constraints, such as movement resulting from user-applied forces and torques in a direction opposite to the goal state. Thus, even in the guided haptic mode, the user may be able to affect movement of the tool 20 in a direction opposite to the goal state, violating the guided constraints, but the guided constraints still function to generate attractive forces and torques (with haptic interaction effects) acting against the user, informing the user of the direction in which to move the tool 20 to reach the goal state. For example, the user may feel these haptic interaction effects because it is easier to move the tool 20 toward the goal state compared to away from it; i.e., the user may perceive it as requiring more effort to move the tool 20 away from the goal state compared to moving the tool 20 toward it. In other words, it may feel to the user as if a physical spring interconnects the guided coordinate system GF of the tool 20 with the target coordinate system TF (see the spring and damper illustration in FIG. 10 ).

[0109] 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 constraint forces Fc that satisfy or attempt to satisfy the guidance constraints (and other virtual constraints, if used). Virtual attraction forces and torques are incorporated into the constraint forces Fc to attract the tool 20 to the target state. Each guidance constraint is considered a one-dimensional virtual constraint. In some embodiments, the guidance constraints are velocity impulse constraints in which forces and / or torques are calculated to apply a virtual impulse to an object in a virtual simulation to change the object's velocity according to desired constraint parameters. In some embodiments, the constraints are similar to the constraints used in impulse modeling described in U.S. Pat. No. 9,119,655, which is incorporated herein by reference. In some embodiments, virtual constraints are defined only for the guided haptic mode and not for the manual or semi-autonomous modes. In some embodiments, virtual constraints are used in all modes.

[0110] In FIG. 10 , three guidance constraints GC associated with the target position are illustratively represented as being defined in the target coordinate system TF, with the respective constraint directions defined as the x-axis, y-axis, and z-axis of the target coordinate system TF. The constraint direction of any constraint is the direction in which the constraint can effectively apply force. The constraint direction can also be defined in the guidance coordinate system GF, or the constraint direction can be defined using any known relationship to the target coordinate system TF or the guidance coordinate system GF. The constraint force Fc ultimately calculated as a result of these three guidance constraints GC is illustratively shown to have an attractive force incorporating spring and damping characteristics that guides the TCP of the tool 20 to the target position, e.g., the origin of the target coordinate system TF. This is merely an example. The constraint force Fc may also include force and torque components that orient the tool 20 to the target orientation.

[0111] Each guided constraint (and other virtual constraints, if used) is defined by three main runtime parameters: the constraint Jacobian Jp, the desired velocity Vdes, and the constraint distance Δd. The constraint Jacobian Jp maps the force / velocity applied in the guided coordinate system GF along the constraint direction of each one-dimensional guided constraint to the coordinate system used for the virtual simulation (e.g., along the components of the target coordinate system TF to the virtual mass coordinate system VM). The desired velocity Vdes (or Vp2) is a scalar velocity obtained by projecting the velocity of the target coordinate system TF (with respect to a stationary reference, such as the manipulator coordinate system MNPL at the base 16 of the manipulator 14) onto the constraint direction. If the target coordinate system TF is determined relative to the patient via a corresponding anatomical tracker, the desired velocity can be zero when the patient is not moving and non-zero when the patient is moving. The constraint distance Δd is a scalar distance obtained by projecting the linear / angular distance between the guided coordinate system GF and the target coordinate system TF onto the constraint direction. In some cases, Δd refers to the distance / angle component of the current state (denoted by the guidance frame GF) from the target state (denoted by the target frame TF). A guidance constraint is violated whenever the current state does not match the target state for the associated degree of freedom. In FIG. 10 , three individual guidance constraints GC are depicted, each with a specific constraint direction, e.g., the x-axis, y-axis, or z-axis of the target frame TF. The corresponding constraint Jacobian Jp, desired velocity Vdes, and Δd for each constraint are calculated based on the constraint direction. For simplicity, FIG. 10 only shows the single constraint Jacobian Jp, desired velocity Vdes, and Δd for a guidance constraint GC with a constraint direction along the z-axis of the target frame TF (e.g., the z-axis guidance constraint GC). Therefore, Vdes and Δd shown here are values ​​of the guidance constraint applied along the z-direction of the target frame TF. However, non-zero values ​​of Vdes and Δd for other guidance constraints (e.g., the x-axis guidance constraint and the y-axis guidance constraint) also typically exist, though not shown.

[0112] The guided constraints are not infinitely stiff; each guided constraint has tuning parameters, such as spring and damping parameters incorporated into the constraint, to adjust the stiffness of the virtual constraint. Such parameters may include a constraint force blend parameter (C) and an error reduction parameter (ε), which may be calculated to achieve equivalent spring / damper behavior. The spring and damping parameters may be adjusted during operation in the guided haptic mode. In some forms, the values ​​of the tuning parameters may change based on the relationship between the current state and the goal state. For example, the tuning parameters may be configured to increase stiffness as the tool 20 approaches the goal state, or the tuning parameters may decrease stiffness as the tool 20 approaches the goal state. The tuning parameters may vary depending on the guided constraint. For example, the guiding constraints may include a first virtual constraint having a tuning parameter of a first value and a second virtual constraint having a tuning parameter of a second value, where the first value is different from (e.g., greater than) the second value, such that the virtual attraction force and / or torque embodied in the constraint force Fc resulting from the first virtual constraint is adapted to attract the tool more strongly compared to the second virtual constraint. The value of the tuning parameter for the position constraint may be greater (e.g., stiffer) than the value of the tuning parameter for the orientation constraint, and vice versa.

[0113] The tuning parameters may also be set to remain constant regardless of the distance / angle from the current state to the goal state, to increase / decrease exponentially with distance, to vary linearly with the distance between the current state and the goal state, to vary with the constraint direction, to emulate the force / distance relationship of a gravitational field, etc. The tuning parameters of one constraint associated with one degree of freedom may be set based on the relationship associated with another degree of freedom, e.g., the stiffness of an x-axis constraint may vary based on the distance along the y-axis between the current state and the goal state. The tuning parameters may also vary depending on the direction in which the tool 20 needs to move to reach the goal state, e.g., moving in one direction along the x-axis may be stiffer than moving in the opposite direction along the x-axis. The tuning parameters may also be scaled according to the final calculated constraint force Fc based on the guiding constraint, such as by increasing or decreasing the stiffness according to the magnitude of the constraint force Fc or any component thereof. In some cases, fixed values ​​of one or more virtual attractive forces may be added to the virtual simulation.

[0114] The tuning parameters of the guided constraints may be set to allow the user to easily move the tool 20 away from the target position and / or orientation. In other words, the tuning parameters may be set so that the effects of user-applied forces and torques can outweigh the effects of virtual attractive forces and torques in the virtual simulation. Thus, the control system 60 may be configured to allow the user to reposition and / or reorient the tool 20 away from the target position and / or orientation even when the guided constraints are enabled. The tuning parameters of the guided constraints may be set preoperatively, set intraoperatively, updated intraoperatively, or a combination thereof. The tuning parameters and their values, their correlation to particular relationships, and how they may be scaled may be stored in one or more lookup tables in any suitable memory in the control system 60 for later retrieval.

[0115] The guided constraints are enabled when the user switches the system 10 to the guided haptics mode or when the system 10 automatically switches the system 10 to the guided haptics mode. Of course, the guided constraints can be enabled in other modes as well. Additionally or alternatively, the user may be able to manually set the guided constraints (e.g., by changing one or more parameters of the guided constraints, enabling / disabling the guided constraints, etc., via one or more user interfaces UI). The user may use the clinical application 80 for this purpose. The guided constraints may also be triggered when a particular surgical step, such as cutting a desired volume of tissue, is being performed, or when the system 10 detects or recognizes a particular situation, such as when the system 10 detects that the user is having difficulty positioning the tool 20 in manual mode.

[0116] Each guiding constraint also has configuration settings. The configuration settings include information about tuning parameters, such as a constraint force blend parameter (C) and an error reduction parameter (ε), upper and / or lower force limits, and / or upper and lower constraint distance offset limits. The information about the tuning parameters may be specified directly or indirectly via spring and damper parameters, from which the constraint force blend parameter (C) and error reduction parameter (ε) are calculated. The upper and lower force limits refer to the calculated force limits for each guiding constraint, which are ultimately found by the constraint solver 86 to generate the constraint force Fc, as described further below. Guiding constraints may be double-sided (e.g., the force calculated to satisfy the constraint can be positive or negative), and the force limits can be set high in the positive and negative directions (e.g., −100,000 / +100,000 Newtons) or any desired limit. The upper and lower constraint distance offset limits indicate when the constraint is enabled. Upper and lower constraint distance offset limits can be set for the guidance constraints so that the constraints are activated whenever the current state differs from the goal state. Further configurations of each guidance constraint can be the orientation of the guidance frame GF (e.g., defined with respect to the virtual mass frame VM) and the orientation of the target frame TF (e.g., defined with respect to an anatomical tracker). The orientations of the guidance frame GF and the target frame TF are used to calculate the current state and the goal state, respectively.

[0117] 11 is a block diagram of a process implemented to implement the guided haptic mode in some embodiments. In these embodiments, behavior control 74 includes a path handler 82, a guidance handler 84, a constraint solver 86, and a virtual simulator 88. Behavior control 74 further includes a boundary handler 89 that generates 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 that is stored in non-transitory memory of any one or more of the aforementioned controllers and executed by control system 60.

[0118] The guidance handler 84 obtains a 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 described, the target state (e.g., position, orientation, and / or velocity) may be specified by a target position, target orientation, and / or target velocity in a target coordinate system TF, and the current state may be specified by a current position, current orientation, and / or current velocity in a guidance coordinate system GF. As shown in FIG. 11 , two inputs to the guidance handler 84 include a current state and a target state. The current state may be defined with respect to the last commanded attitude CP because the last commanded attitude CP correlates to the current attitude of the tool 20. The commanded attitude CP may be calculated, for example, as a attitude in a virtual mass coordinate system VM or TCP coordinate system relative to the manipulator coordinate system MNPL. The target state may be defined in an anatomical coordinate system or an anatomical tracking coordinate system, etc., and transformed to a common coordinate system with the current state, such as the manipulator coordinate system MNPL. Other inputs to the guidance handler 84 include configuration and tuning parameters for the guidance constraints. The guidance handler 84 defines one or more guidance constraints based on the relationship between the current state and the goal state, and the configuration and tuning parameters. The guidance constraints are output from the guidance handler 84 to a constraint solver 86.

[0119] Various virtual constraints, including guidance constraints, path constraints, boundary constraints, and other constraints, may be provided to the constraint solver 86. These constraints may be enabled / disabled 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, guidance constraints may not be generated in certain operating modes. All virtual constraints used in the behavior control 74 may affect the movement of the tool 20. For purposes of illustration, only guidance constraints will be described in detail.

[0120] The constraint solver 86 calculates constraint forces Fc to be virtually applied to the tool 20 in the virtual simulator 88 based on the virtual constraints provided to the constraint solver 86. In guided haptic mode, the constraint forces Fc include force and / or torque components adapted to attract the tool 20 from the current state to the goal state based on one or more guided constraints. If only the guided constraints are input to the constraint solver 86, the constraint forces Fc may be considered the virtual attractive forces described above. However, if other constraints are used, the constraint solver 86 is ultimately tasked with providing a solution for the constraint forces Fc that satisfies or attempts to satisfy all constraints, and thus the other constraints may also affect the magnitude / direction of the constraint forces Fc. In these cases, the virtual attractive forces and torques are considered force and torque components of the constraint forces Fc that are directed toward the goal state as a result of the guided constraints.

[0121] 12, the constraint solver 86 solves Fp by placing the constraint data for each virtual constraint into a corresponding row of the constraint equation in matrix form. In the example shown in FIG. 10, if only the guided constraint is active, Fp is a force vector in the target coordinate system TF, i.e., each component of Fp is a scalar constraint force acting in the corresponding constraint direction. To solve Fp, as described below, the equation shown in FIG. 12 is converted into a matrix equation in which each term represents a single one-dimensional constraint. The constraint data is placed into the constraint equation along with other information known to the constraint solver 86, such as the external force Fcgext, the damping force Fdamping, the inertial force Finertial, the virtual mass matrix M, the virtual mass velocity Vcg1, and the time step Δt (e.g., 125 microseconds).

[0122] The virtual mass matrix M is a combination of a 3x3 mass matrix and an inertia matrix. The damping force Fdamping and the inertia force Finertial are calculated / known by the virtual simulator 88 and are based on the virtual mass velocity Vcg1 (e.g., the velocity of the virtual mass coordinate system VM) output by the virtual simulator 88 in the previous time step. The virtual mass velocity Vcg1 is a 6DOF velocity vector including linear and angular velocity components. The damping force Fdamping is a 6DOF force / torque vector calculated as a function of the virtual mass velocity Vcg1 and a 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 provide a desired user feel, such as the responsiveness of the tool 20 to user-applied forces and torques. The inertia force Finertial is also a 6DOF force / torque vector calculated as a function of the virtual mass velocity Vcg1 and the virtual mass matrix M. The damping force Fdamping and the inertial force Finertial may be determined in the manner described in US Pat. No. 9,566,122 to Bowling et al., which is incorporated herein by reference.

[0123] To provide a solution that satisfies the simultaneous equations (e.g., that satisfies the various constraints), the constraint solver 86 may be configured with any suitable algorithmic instructions that solve the simultaneous constraint equations (e.g., an iterative constraint solver, a projected Gauss-Seidel solver, etc.). In some cases, not all constraints may be satisfied simultaneously. For example, if the motion is over-constrained by the various constraints, the constraint solver 86 essentially finds an "optimal" solution that takes into account the relative stiffness / damping of the various constraints. The constraint solver 86 solves the simultaneous equations and ultimately outputs the constraint forces Fp.

[0124] If a projected Gauss-Seidel solver is used, the constraint solver 86 creates A and b matrices based on the constraints, solves the system of equations using the projected Gauss-Seidel method to identify the resulting force vector Fp, obtains the output of the projected Gauss-Seidel method, and transforms it from the constraint coordinate system to the virtual mass coordinate system VM. For example, using the equation Fc=JpTFp, where Fc is the constraint force, the components of the force vector Fp are transformed into an equivalent force / torque vector Fc applied to the virtual mass coordinate system VM.

[0125] Methods for solving systems of equations with multiple constraints using the projected Gauss-Seidel method are shown, for example, in "Constraint based physics solver" (v1.02) by Marijn Tamis and Giuseppe Maggiore, dated June 15, 2015, available at http: / / www.mft-spirit.nl / files / MTamis_ConstraintBasedPhysicsSolver.pdf, or in "Comparison between Projected Gauss-Seidel and Sequential Impulse Solvers for Real-Time Physics Simulations" (v1.01) by Marijn Tamis, dated July 1, 2015, available at http: / / www.mft-spirit.nl / files / MTamis_PGS_SI_Comparison.pdf, both of which are incorporated herein by reference in their entirety.

[0126] The projected Gauss-Seidel method addresses linear complementarity problems (LCPs). Some types of constraints (e.g., one-sided constraints, such as boundary constraints) can only be pushed (forced) in one direction, e.g., a positive constraint force, resulting in inequalities for LCPs. If, at a given iteration of the constraint solver 86, the force calculated for such a constraint is negative (or, more broadly, outside its tolerance range), it is invalid and the given constraint must be pruned (or limited / restricted by its upper or lower tolerance limits), and the remaining constraints must be solved until a suitable result (i.e., convergence) is found. In this way, the constraint solver 86 identifies the set of constraints that are valid at a given time step and then solves for those values. Other types of constraints, such as two-sided constraints, can exert forces in both positive and negative directions. Such constraints include guidance constraints used to guide the user to move the tool toward a goal state. Such two-sided constraints typically function when enabled and are not pruned / restricted during the iterations of the constraint solver 86.

[0127] The constraint force Fc calculated by the constraint solver 86 includes three components of force along the x-axis, y-axis, and z-axis, and three components of torque about the x-axis, y-axis, and z-axis. The virtual simulator 88 utilizes the constraint force Fc in its virtual simulation, along with the external force Fcgext, the damping force Fdamping, and the inertial force Finertial (which may all include six components of force / torque). In some cases, these force / torque components are first transformed into a common coordinate system (e.g., a virtual mass coordinate system VM) and then summed to define a total force Ft. The resulting 6DOF forces (i.e., forces and torques) are applied to a virtual rigid body, and the resulting motion is calculated by the virtual simulator 88. Thus, the virtual simulator 88 effectively functions to simulate how the various constraints, all reflected in the total force Ft, affect the motion of the virtual rigid body. Based on a given total force Ft applied to the virtual rigid body, the virtual simulator 88 performs forward dynamics to calculate the resulting 6DOF orientation and velocity of the virtual rigid body. In one example, the virtual simulator 88 comprises a physics engine, which is executable software stored in non-transitory memory of any one or more of the aforementioned controllers 21, 26, 36 and executed by the control system 60.

[0128] In the virtual simulation, the virtual simulator 88 models the tool 20 as a virtual rigid body in a virtual mass coordinate system VM, where 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. The virtual rigid body is a rigid representation of the dynamic object and tool 20 for the virtual simulation. The virtual rigid body is free to move with six degrees of freedom (6 DOF) within Cartesian space in the virtual simulation. The virtual simulation may be computationally processed without a visual or graphical representation. Therefore, the virtual simulation does not need to display the dynamics of the virtual rigid body. In other words, the virtual rigid body does not need to be modeled within a graphics application running on the processing unit. The virtual rigid body may exist only in the virtual simulation.

[0129] The virtual rigid body and its properties (mass, inertia matrix, center of mass, principal axes, etc.) define how the tool 20 moves in response to applied forces and torques (e.g., from the total force F, which incorporates the user-applied forces and torques, attractive / repulsive forces and torques, and other forces and torques resulting from other constraints, if present). This controls whether the tool 20 feels heavy or light and how the tool 20 moves (e.g., translational and rotational accelerations) in response to applied forces and torques. By adjusting the properties of the virtual rigid body, the control system 60 can adjust how the tool 20 feels to the user. To obtain as realistic a movement / feel as possible, it may be desirable to have the properties of the virtual rigid body modeled as closely as possible to the actual properties of the tool 20, although this is not required. For control stability reasons (given the finite acceleration of the manipulator, control latency, etc.), the virtual mass and inertia may be modeled to be somewhat larger than the mass and inertia of the physical tool 20.

[0130] The virtual rigid body may correspond to a component that may be present on or within the tool 20. Additionally or alternatively, the virtual rigid body may extend partially beyond the physical tool 20. The virtual rigid body may account for the tool 20 with or without the energy applicator 24. Furthermore, the virtual rigid body may be based on a TCP. In one example, if a virtual force is applied at a point other than the center of rotation of the virtual rigid body and the virtual rigid body is not otherwise constrained, i.e., not constrained by the manipulator 14, the center of mass of the virtual rigid body is understood to be the center of rotation of the virtual rigid body. The center of mass of the virtual rigid body may be near, but need not be the same as, the actual center of mass of the tool 20. The center of mass of the virtual rigid body can be determined empirically. When the tool 20 is attached to the manipulator 14, the location of the center of mass may be reset to accommodate individual practitioner preferences.

[0131] Virtual simulator 88 effectively simulates the rigid body dynamics of tool 20 by virtually applying forces and / or torques to a virtual rigid body in a virtual simulation, i.e., by virtually applying force and torque components from the total force F to the center of mass of the virtual rigid body in a virtual mass coordinate system VM. Thus, the forces / torques virtually applied to the virtual rigid body may include forces / torques associated with external forces F (e.g., based on inputs from one or more sensors), damping forces F, inertial forces F, and forces / torques from constraint forces F associated with various constraints (as embodied by constraint forces F).

[0132] The rigid body Jacobian can be used to transform velocities and forces for the same virtual rigid body from one coordinate system (reference frame) to another, where it can similarly be used to transform the forces and torques of Fext into the virtual mass coordinate system VM (e.g., to generate Fcgext for use in the constraint equations). Next, having calculated the damping force Fdamping and the inertial force Finertial internally, the virtual simulator 88 determines the total force FT and outputs the damping force Fdamping and the inertial force Finertial for use by the constraint solver 86 in the simultaneous equations for the next time step.

[0133] As shown in FIGS. 13 and 14 , a virtual forward dynamics algorithm can be used in a virtual simulation to simulate the motion of a moving virtual rigid body when subjected to a total force F. In effect, the virtual forward dynamics algorithm solves the 6 DOF equation F=ma (or a=F / m) and integrates acceleration to generate a velocity, which is then used to identify a new posture, as shown in FIG. 14 . The control system 60 inputs virtual forces and / or torques (e.g., total force F) into the virtual simulator 88, where these virtual forces and / or torques are applied to the virtual rigid body at its center of mass (e.g., C) while the virtual rigid body is in an initial posture with an initial velocity. The virtual rigid body is moved to a final posture with a different state (i.e., position and / or orientation) and final velocity in Cartesian space in response to the control system 60 fulfilling the input virtual forces and / or torques. The next commanded posture C, sent to the motion control 76, is based on the final posture calculated by the virtual simulator 88. Thus, the virtual simulator 88 operates to identify the next commanded posture CP by simulating the effect of applying a total force FT to a virtual rigid body using virtual forward dynamics, as shown in FIG.

[0134] In the simulation, a speed limit may be imposed on the virtual rigid body. In some cases, the speed limit may be set high enough to not normally affect the simulation, or the speed limit may be set to any desired value. The virtual rigid body has an initial posture (initial state) and an initial velocity at the start of each iteration of the virtual simulation (e.g., at each time step / interval dt). The initial posture and initial velocity may be defined by the final posture and final velocity output by the virtual simulator 88 at the previous time step. When the velocity of the virtual rigid body approaches and / or exceeds a threshold, a speed limit may also be applied by increasing the damping coefficient used in calculating the damping force Fdamping.

[0135] The virtual simulator 88 then calculates and outputs a next command position CP based on the virtual simulation of the virtual simulator 88. The control system 60 is configured to command the manipulator 14 to move the tool 20 based on the command position CP, ideally in a manner that guides the user to place the tool 20 in the target state by providing haptic feedback to the user that guides the user to place the tool 20 in the target state. Thus, the user can manually manipulate the tool 20 while the control system 60 helps guide the tool's movement by utilizing guiding constraints. Because the external force F is combined with the constraint force F before running the virtual simulation to identify the command position CP, the user's forces and torques applied to the tool 20 can still affect the overall motion of the tool 20. In some instances (e.g., time steps), the total force F includes force and torque components of the external force F that are sufficient in magnitude and direction to overcome the forces and torques of the constraint force F, thereby allowing the tool 20 to move away from the target state. However, the guidance constraint has configurable stiffness and damping that can be tuned to reduce the effect of the external force Fext in certain situations, as previously described.

[0136] 15 summarizes the various steps performed by behavior control 74. These include steps performed by constraint solver 86 and virtual simulator 88 as previously described. At step 100, external forces Fext are calculated based on readings obtained from force / torque sensor S. At step 102, constraint data associated with various virtual constraints is provided to the constraint solver 86 from the path handler 82, from the guidance handler 84, from the boundary handler 89, and / or from other constraint sources.

[0137] In steps 104-108, rigid body calculations are performed by the virtual simulator 88 to determine the inverse mass matrix M, the inertial force Finertial, and the damping force Fdamping of the virtual rigid body. In steps 110-114, the constraint solver 86 performs the aforementioned constraint force calculations using the outputs from the rigid body calculations performed in steps 104-108 and the constraint data provided in step 102 to ultimately generate the constraint force Fc. In step 116, the constraint force Fc is summed with the external force Fext (Fcgext), the damping force Fdamping, and the inertial force Finertial, which have been transformed into the virtual mass coordinate system VM, to generate a total force Ft. In step 118, the total force Ft is applied to the virtual rigid body in the virtual simulation performed by the virtual simulator 88, and in step 120, a new orientation and velocity of the virtual rigid body are determined. Finally, in step 122, the new orientation and velocity are converted to TCP. At step 124, new command CP (TTCP) and velocity (VTCP) are output by virtual simulator 88.

[0138] IV. Working Examples a. Induction for acetabular preparation 16A-16D illustrate application of the guided haptic mode. In this example, control system 60 activates the guided haptic mode and associated guided constraints to assist a user (see representation of the user's hand) in placing the TCP of tool 20 at a target position centered on the patient's acetabulum and at a target orientation suitable for avoiding collision of tool 20 with the acetabulum. To guide the user to the target state, guided constraints are used in six degrees of freedom: three position constraints along the x-, y-, and z-axes of target coordinate system TF guide the origin of guided coordinate system GF to the origin of target coordinate system TF; and three orientation constraints about the x-, y-, and z-axes of target coordinate system TF guide the x-, y-, and z-axes of guided coordinate system GF to align with the x-, y-, and z-axes of target coordinate system TF. 16A-16D, only a single guidance constraint is shown to be in effect along the z-axis of the target frame TF (e.g., represented by the relation Δd) and the velocity of the target frame TF is zero, resulting in a constraint force Fc defined directly along the z-axis of the target frame TF. However, other guidance constraints (defined along the x- and y-axes of the target frame TF) are typically in effect as well, although they are not shown.

[0139] In some cases, the tool 20 may include a burr or other energy applicator that does not require precise orientation of the tool 20 about the z-axis, and therefore the z-axis orientation guidance constraint may be removed or disabled so that the x- and y-axes of the guidance frame GF are not guided in alignment with the x- and y-axes of the target frame TF. In some cases, only one, two, three, or four guidance constraints may be used. More than seven guidance constraints may also be used, such as when multiple guidance constraints are defined for any degree of freedom. In the progression from FIG. 16A to FIG. 16D, for illustrative purposes, the guidance frame GF is shown aligned with the target frame TF in all six degrees of freedom by six guidance constraints.

[0140] 16A to 16D, the TCP of the tool 20 is shown moving toward a target state (in this case, toward the origin of the target coordinate system TF). At each time step, a constraint force Fc is calculated to account for the guidance constraints that effectively guide the user to apply forces and torques that ideally move the tool 20 toward the target state. The guidance constraints may be dynamic, with tuning parameters for the guidance constraints adjusted at each time step. For example, the guidance constraints may have stronger spring and / or damping characteristics as the current state approaches the target state (e.g., as the guidance coordinate system GF approaches the target coordinate system TF (see Δd)). Thus, the constraint force Fc (which may include force and / or torque components correlated to stronger spring and / or damping characteristics) may increase in magnitude as the guidance coordinate system GF approaches the target coordinate system TF.

[0141] b. Vertebral preparation guidance 17 and 18 show another example of the guided haptics mode used to assist the user in positioning the tool 20 at a target state. In this example, the control system 60 activates the guided haptics mode and associated guided constraints to assist the user in positioning the TCP of the tool 20 (e.g., the burr 25 or drill) at a target position relative to the planned pedicle screw drilling and at a target orientation that aligns the tool 20 with the planned drilling. To guide the user to the target state, guided constraints are used in four degrees of freedom: 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 peg holes. Using additional guided constraints (e.g., a z-axis position constraint) can help the user position and orient the tool 20 at the entry portion 71 a of the virtual boundary 71 generated for the planned drilling, reducing the likelihood that the tool 20 will violate the virtual boundary 71.

[0142] At each time step, a constraint force Fc is calculated, taking into account the guidance constraints that effectively guide the user to apply forces and torques that ideally move the tool 20 toward the target state. The guidance constraint tuning parameters are adjusted at each time step, so that the guidance constraints can be dynamic. For example, the guidance constraints can be more rigid the closer the current state is to the target state (e.g., the closer the guidance frame GF is to the target frame TF along the z-axis of the target frame TF (see z-distance)). Thus, referring to FIG. 18 , the constraint force Fc can have force and torque components about the x- and y-axes that increase in magnitude as the magnitude of the z-distance (e.g., the absolute value of the distance) decreases. The guidance constraint tuning parameters can also be adjusted based on other relationships between the current state and the target state, such as the x-distance, y-distance, and / or z-distance between the current state and the target state, the x-angle, y-angle, and / or z-angle between the current state and the target state, or any combination of distances and angles. In some forms, the control system 60 may have access to a lookup table correlating tuning parameters to the magnitude of the x-distance, y-distance, and / or z-distance and / or the x-distance, y-distance, and / or z-distance projected onto a particular plane, etc., and / or based on the x-angle, y-angle, and / or z-angle. In some forms, the tuning parameters may be adjusted so that the constraint force Fc has force and torque components that are scaled or adjusted based on the sign (+ / -) of the x-distance, y-distance, and / or z-distance and / or the x-angle, y-angle, and / or z-angle. For example, the tuning parameters of a guided constraint along the z-axis may be adjusted based on whether the TCP of the tool 20 is approaching the target coordinate system TF (e.g., whether the TCP of the tool 20 is approaching a peg / drill hole at a positive z-axis location) or has already reached the target coordinate system TF and is currently penetrating beyond the target coordinate system TF (e.g., whether the TCP of the tool 20 is inside a peg / drill hole at a negative z-axis location).This may be desirable, for example, to gradually increase stiffness as the TCP of tool 20 approaches the peg / drill hole (as the z-distance goes from large positive values ​​to zero), and then continue to maintain maximum stiffness as the user moves the TCP of tool 20 into the peg hole (as the z-distance goes from zero to increasingly negative values). Alternatively, in some cases it may be desirable to effectively disable one or more of the guiding constraints by setting their stiffness to zero when the z-distance is negative.

[0143] Guided alignment of tool 20 in guided haptic mode may also assist in machining peg holes for particular implants, for example, by controlling the position and orientation of an energy applicator, such as a burr 25 or drill bit, before or during machining of the holes. As previously discussed, tuning parameters for various constraints may vary depending on the desired flexibility. For example, guided constraints associated with the orientation of tool 20 may be tuned relatively weaker than guided constraints associated with the position of the TCP of tool 20, so that the user can easily change the orientation of tool 20 via the force and torque applied to tool 20, while at the same time providing the user with indications (via fine haptic feedback) of the target orientation of tool 20. This may help the user avoid particular anatomical structures, retractors, etc. while machining peg holes.

[0144] c. Guidance for femoral preparation for total knee implant 19 and 20 show another example of the guided haptic mode used to assist a user in positioning a tool 20 (e.g., having a saw blade 27) at a target state. In this example, the control system 60 activates the guided haptic mode and associated guided constraints to assist the user in positioning the TCP of the tool 20 at a target position relative to a desired cutting plane 73c of a total knee replacement and at 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 guided constraints in three degrees of freedom are used to guide the user to the target state: 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. Using additional guided constraints (e.g., a z-axis position constraint) can help guide the user to position and orient the tool 20 at the entrance 71a of the virtual boundary 71, reducing the likelihood that the tool 20 will violate the virtual boundary 71.

[0145] At each time step, a constraint force Fc is calculated, taking into account the guidance constraints that effectively guide the user to apply forces and torques that ideally move the tool 20 toward the goal state. The guidance constraint tuning parameters are adjusted at each time step, so that the guidance constraints can be dynamic. For example, the guidance constraints can be stiffer the closer the current state is to the goal state (e.g., the closer the guidance frame GF is to the goal frame TF along the z-axis (based on the magnitude of the z-distance)). Thus, with reference to FIG. 21 , the magnitude of stiffness associated with the guidance constraint tuning parameters can increase as the magnitude of the z-distance decreases. In some forms, the tuning parameters can be adjusted so that the constraint force Fc has force and / or torque components that are scaled or adjusted based on the sign (+ / -) of the z-distance. For example, the tuning parameters of the guidance constraint along the z-axis can be adjusted based on whether the z-axis position of the TCP of the tool 20 is positive or negative.

[0146] Aligning the tool 20 with the desired cutting planes can assist, for example, a user in making precise cuts along the femur and / or tibia to create space for a total knee implant. Referring back to FIG. 9 , guidance constraints can be used to align the tool 20 with each of the five cutting planes 73a-73e that may be required for the femur. The guidance constraints can remain in effect throughout the cutting process as well, thereby continuously guiding the user to the target state. This can serve to reduce the likelihood that the user's application of forces and torques to the tool 20 will cause the tool 20 to substantially violate the virtual boundary 71. In some forms, the target coordinate system TF can define the virtual boundary (e.g., an infinite planar virtual boundary defined by the x-z plane). The guidance handler 84 first generates guidance constraints that pull the tool 20 toward the x-z plane, and then the guidance handler 84 effectively functions as a boundary handler 89 by generating guidance constraints that maintain the tool 20 on the x-z plane. In this case, as tool 20 approaches the xz plane, each guiding constraint may become more rigid to help maintain tool 20 on the xz plane. Thus, the guiding constraints may also be considered boundary constraints. A planar virtual boundary may allow the user to control the width and depth of the cut to avoid soft tissue, etc., or a separate virtual boundary may be defined to control the width and / or depth.

[0147] d. Guidance of the starting position for autonomous machining 22A-22F, the guided haptic mode can also be used to guide a user when preparing to operate the system 10 in a semi-autonomous mode. More specifically, the guided haptic mode can help guide a user to move the tool 20 to a start position and / or a start orientation relative to a tool path TP, such as the illustrated milling path 72. This can include guiding the user to a start position on the milling path 72 or a start position away from the milling path 72. The start 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, mitigating stalls, etc. The start orientation can be a preferred orientation stored in the control system 60. Guided constraints can be defined to place the TCP of the tool 20 in a start position (e.g., three positional constraints along the x-, y-, and z-axes) and a start orientation with respect to two degrees of freedom (e.g., two orientational constraints about the x- and y-axes).

[0148] FIG. 22A shows the tool 20 already positioned at a start position and start orientation defined with respect to the target coordinate system TF; i.e., the user has already positioned the tool 20 and the guided coordinate system GF at a start position and start orientation defined by the target coordinate system TF via the guided haptic mode. As shown in FIG. 22A , when the semi-autonomous mode is enabled (or previously enabled), the control system 60 generates a lead-in path 72a from the start position to the start of the milling path 72. As previously described, the start position is spaced apart from the milling path 72, which may allow the energy applicator 24 to be energized before engaging any tissue. The lead-in path 72a, which may be generated by the path handler 82, may define an autonomous tool path segment (linear in some instances) that guides the tool 20 to the start of the milling path 72 so that the energy applicator 24 will engage tissue after being powered. The control system 60 then instructs the manipulator 14 to move the tool 20 such that the TCP of the tool 20 follows the lead-in path 72a. When the semi-autonomous mode is enabled, the tool controller 21 may simultaneously energize the energy applicator 24, thereby enabling the energy applicator 24 to move autonomously along the introduction path 72a, e.g., the burr 25 may rotate at a desired speed to remove material. The introduction path 72a may not be used in some configurations. In some instances, the start position is located at the start of the milling path 72, but the start of the milling path 72 is located in free space, allowing the energy applicator 24 to be energized before engaging any tissue.

[0149] 22B and 22C show the control system 60 operating in semi-autonomous mode to move the TCP of the tool 20 along the milling path 72 to remove material from the femur and create space for the femoral stem implant. Referring to FIG. 22C, when the control system 60 is operating in semi-autonomous mode and the user instructs the control system 60 to switch to manual mode (or other mode), or when the control system 60 automatically switches to manual mode (or other mode), the control system 60 records the last known position / point KP on the milling path 72 that the tool 20 occupied in semi-autonomous mode before the switch.

[0150] 22D shows a user, e.g., in manual mode, moving (pulling) the TCP of tool 20 along retraction path 72b away from the last known position / point KP. Control system 60 may store each calculated command position CP of tool 20 along retraction path 72b in manual mode. As described further below, subsequent use of retraction path 72b may facilitate guiding the user back to the last known position / point KP.

[0151] 22E , the control system 60 may track the progress of the tool 20 during machining in the semi-autonomous mode to determine how to guide and assist the user in returning to machining in the semi-autonomous mode after the user moves the tool 20 away from the milling path 72 as shown in FIG. 22D . For example, the control system 60 may identify a new start position (also referred to as a resume position SP) to guide the tool 20 as the machining progresses. As shown in FIG. 22E , the resume position SP is defined as the origin of a new target coordinate system TF. The resume position SP may also be selected from among multiple possible resume positions IN defined along the restart path 72c. The restart path 72c may be based on the shape of the virtual boundary 71. In some cases, the restart path 72c is defined centered relative to the virtual boundary 71 and extends from the inlet portion 71a of the virtual boundary 71 to the distal tip of the tube portion 71b of the virtual boundary 71. The restart path 72c may also be based on and may be identical to the withdrawal path 72b.

[0152] Based on the last known position / point KP of the tool 20 on the milling path 72 before the tool 20 was moved out of the milling path 72, the resume position SP may be as shown or may be selected from a number of other possible start positions IN. As previously described, the control system 60 identifies the last known position / point KP on the milling path 72 traversed by the tool 20 before the tool 20 was moved out of the milling path 72 and stores the last known position / point KP in memory for later retrieval. The resume position SP may be calculated by the control system 60 to be the point on the restart path 72c that is closest to the last known position / point KP. In some forms, after the closest point on the restart path 72c is found, the resume position SP (and subsequent setting of the target coordinate system TF) may be set a fixed distance (e.g., 0.1, 0.5, or 1.0 inch) along the restart path 72c toward the start of the restart path 72c to ensure that the resume position SP is not covered or partially covered by tissue.

[0153] The control system 60 may also define and store multiple possible restart locations along the restart path 72c, and as milling progresses, a possible restart location becomes valid when the tool 20 substantially exposes each location, i.e., when the tool 20 removes material that occupies the same virtual space as the restart location, or when the tool 20 substantially exposes the possible restart location to at least a predetermined depth (e.g., when at least 0.1, 0.5, or 1.0 inch of free space surrounds the possible restart location on all sides). As the tool 20 progresses further into the volume of material being removed from the target site, deeper restart locations are exposed. As a result, the valid restart location is the restart location that is exposed and closest to the last known position / point KP of the TCP of the tool 20 on the milling path 72. See, for example, FIG. 22E, restart location SP selected from other invalid restart locations IN.

[0154] 22E and 22F, once the restart position SP is identified, a guided haptic mode may be enabled and the user may be guided to place the tool 20 at the restart position SP. As previously mentioned, this may include guiding the user through position constraints defined by the x-, y-, and z-axes of the target coordinate system TF.

[0155] In some forms, using the guided haptic mode, the user may be guided along the restart path 72c by incrementally applying guidance constraints along the restart path 72c until a valid restart position SP is reached. These increments may be defined as equal increments at each of the other exposed invalid restart positions IN along the restart path 72c above the valid restart position SP, etc. As a result, the user is guided to follow the restart path 72c and avoid collisions between the TCP of the tool 20 and the anatomical structure. Orientation constraints may similarly be applied along the restart path 72c with the same, lesser, or different stiffness.

[0156] Once the user is guided within a predefined threshold distance of the restart position SP, the control system 60 can generate an introduction path from the current position of the tool 20's TCP (based on the last command position CP) to the last known position / point KP. The generation of the introduction path can be performed 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 system 10 can then be operated by the user to autonomously move the tool 20 along the introduction path to the last known position / point KP in semi-autonomous mode. Thus, upon returning to semi-autonomous mode, the control system 60 can return to the last known position / point KP and resume where the semi-autonomous mode left off. In other words, once the tool 20 is within a predefined threshold distance of the restart position SP, semi-autonomous operation can be initiated automatically, or following user prompting and selection, and then an introduction path can be generated to return to the last known position / point KP. When the semi-autonomous mode is enabled, the tool controller 21 may simultaneously energize the energy applicator 24, thereby enabling the energy applicator 24 to move autonomously along the introduction path.

[0157] A restart orientation may also be defined along with the restart position SP. A restart orientation may be desired to improve machining efficiency, improve access to the last known position / point KP, and generally assist the user in understanding how to best orient the tool 20, especially when visibility of the target tissue for machining is poor. For example, burrs are often designed to achieve optimized cutting performance by considering a specific angle between the burr shaft and the bone (or other tissue) depending on the burr flute geometry, cutting direction, conventional / downward milling approach, etc. In many cases, it may be desirable to avoid end cutting (even partial end cutting) with the burr, which can be avoided by ensuring a proper starting orientation relative to the bone and, optionally, further maintaining that orientation during continuous milling. As another example, referring to FIG. 22F, if orientation-guiding constraints are not provided to guide the user regarding the orientation of the tool 20, the user may orient the tool 20 in a way that could cause the shaft of the tool 20 to collide with the imaginary boundary 71 and / or unremoved bone (see hidden lines of the tool 20). In some cases, the shaft of the tool 20 is not monitored for collision with the virtual boundary 71, but only the TCP of the tool 20. Therefore, in these cases, the orientation guidance constraints can help direct the shaft of the tool 20 away from the virtual boundary 71 and / or unremoved bone. To facilitate user guidance when moving the tool 20 to the restart position SP, the recommended tool orientation can be used as the restart orientation (effectively, the restart orientation at this point is considered to consist of an orientation). The restart orientation can be defined in terms of one or more rotational degrees of freedom of the target coordinate system TF. In this case, one or more axes of the target coordinate system TF can be selected to provide the desired orientation of the guided coordinate system GF. Thus, the guided haptic mode can assist the user in guiding the TCP of the tool 20 to the restart position SP. The position constraints and orientation constraints can have various stiffness / damping tuning parameters to provide a desired user interaction and user feel, as described above. As the tool 20 approaches the restart position SP (e.g., as the distance / angle to the restart position / restart orientation decreases), the tuning parameters may also be scaled, as described above, to increase the virtual attraction force and torque.

[0158] 22B and 22C , when the control system 60 operates the manipulator 14 in semi-autonomous mode, the control system 60 may use an orientation adjuster to maintain a preferred orientation of the tool 20 as it moves along the milling path 72. The preferred orientation may be a path-defined orientation included as part of the milling path 72 along with position information; for example, a preferred orientation may be assigned to each segment of the milling path 72 or to a range of segments along the milling path 72, and the preferred orientation may be automatically updated as the tool 20 moves through the milling path 72. The preferred orientation may be one or more distinct orientations or ranges of orientations, and may be defined with guidance from virtual pivots and apertures. Such orientation adjusters and their operation are described in detail in U.S. Pat. No. 9,681,920, filed June 15, 2015, entitled “Robotic System and Method for Reorienting a Surgical Instrument Moving Along a Tool Path,” which is incorporated herein by reference. While the tool 20 moves autonomously along the milling path 72 in semi-autonomous mode, 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. When the input device is actuated, the orientation adjuster is temporarily disabled, allowing the user to reorient the tool 20 as needed, for example, to avoid soft tissue or retractors, to improve visibility, or for any other reason. More specifically, the manipulator 14 is operable to reorient the tool 20 in response to user forces and torques applied to the tool 20 by the user while the tool 20 (e.g., TCP) is still on the milling path 72. When the input device is released, the orientation adjuster is reset, and the orientation of the tool 20 is maintained at the new orientation set by the user. The preferred orientation during autonomous machining along the milling path 72 can be embodied in orientation constraints (e.g., path constraints that control / adjust the orientation) generated by the path handler 82.These orientation constraints are temporarily disabled when the user actuates the input device to reorient the tool 20, but the position-related path constraints generated by the path handler 82 remain enabled, keeping the TCP of the tool 20 on the milling path 72. When the input device is released after the user reorients the tool 20, the orientation constraints are reenabled, keeping the tool 20 in the new user-defined orientation.

[0159] In some cases, after the user reorients the tool 20, it may be desirable for the user to return to a preferred orientation. For example, the user may initially reorient the tool 20 to avoid soft tissue or a retractor, but once the tool 20 has passed such obstacles, the user may desire to return to the preferred orientation, which may result in more efficient milling, visibility, etc. Accordingly, a guided haptic mode may be used separately from or in combination with the semi-autonomous mode to guide the user to move the tool 20 to the preferred orientation. In this case, when the input device is pressed to reorient the tool 20, a goal state including a target orientation with one, two, or three rotational degrees of freedom may be enabled. The target orientation (e.g., the preferred orientation) is obtained by the guidance handler 84, which then generates one or more guidance constraints based on the target orientation (the preferred orientation) and the current orientation. The constraint solver 86 then calculates a constraint force F adapted to attract the tool 20 from the current orientation to the target orientation based on the one or more guidance constraints. Thus, the constraint force Fc includes a force and / or torque component that applies a subtle virtual tug to guide the user back to the recommended orientation by providing the user with haptic feedback that guides the user to place the tool 20 in the recommended orientation, as described above. Effectively, in this embodiment, the input device is used to switch between two different sets of constraints: (1) orientation constraints provided by the orientation adjuster that maintain the recommended orientation (e.g., generated by the path handler 82, or even by guiding constraints in some cases); and (2) guiding constraints that function to provide the user with haptic feedback indicating the recommended orientation. When the input device is actuated (e.g., pressed down), the aforementioned guiding constraints are enabled to suggest the recommended orientation to the user and the orientation constraints provided by the orientation adjuster are disabled. When the input device is released, the orientation constraints provided by the orientation adjuster are enabled to maintain the recommended orientation and the guiding constraints are disabled. In some cases, the orientation constraints provided by the orientation adjuster are stronger (in terms of stiffness / damping) than the guiding constraints provided to indicate the recommended orientation.

[0160] The virtual attractive forces and torques associated with guiding the user to the recommended orientation may be overcome by the forces and torques applied by the user to the tool 20, allowing the user to reorient the tool 20 away from the recommended orientation. However, the virtual attractive forces and torques are strong enough to provide haptic feedback to the user to show the user how to move the tool 20 back to the recommended orientation. When the input device is released, the guiding constraints and associated virtual attractive forces and torques are disabled, and the orientation adjuster then takes over control of the orientation of the tool 20 again as the semi-autonomous mode continues. Other orientation alignment methods may be used to suggest recommended orientations to the user. Virtual attractive (or repulsive) forces may also be used to return to (or avoid) a particular orientation when transitioning from one operating mode to another, such as when returning to semi-autonomous operating mode from manual mode or another mode.

[0161] e. Guided alignment using alignment points 23 illustrates a process performed to implement the guided haptic mode, such as when tool 20 includes saw blade 27. In this form, behavior control 74 includes guidance handler 84, constraint solver 86, and virtual simulator 88. Behavior control 74 further includes boundary handler 89, which generates virtual boundary constraints based on one or more virtual boundaries 71 generated by boundary generator 66. 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 aforementioned controllers and executed by control system 60. Path generator 68 and path handler 82 are not present in FIG. 23, but may also be used to direct autonomous movement of saw blade 27.

[0162] In this embodiment, the current state of the tool 20 is represented by one or more sets of alignment points APi, such as AP1 and AP2, each set including multiple points AP1 and AP2. In some cases, there may be three or more sets of alignment points. The target state of the tool 20 is represented by one or more target planes TP1 and TP2 of the tool 20. As in the previous embodiment, the guidance handler 84 generates one or more guidance constraints based on the relative positions of the current state and the target state, i.e., based on the relative positions of the multiple alignment points AP1 and AP2 and the one or more target planes TP1 and TP2. As a result, as shown in FIG. 23, one input to the guidance handler 84 includes multiple alignment points AP1 and AP2, which are typically predefined and fixed in the TCP coordinate system (see FIGS. 24-27). The positions of the alignment points AP1 and AP2 may be based on the tool's serial number or model number, stored in memory or the like. Another input to the guidance handler 84 includes the target planes TP1 and TP2. The alignment concepts described below with respect to saw blade alignment are merely exemplary, as this alignment method can be used for other applications. 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 the blade thickness) and a second target plane TP2 positioned orthogonal to the first target plane TP1 so as to be approximately down the centerline of the planar cut PC to be made at the desired cutting plane 73c on the femur (see FIG. 26). If multiple planar cuts are required for a particular surgical procedure, such as a total knee procedure, the target planes TP1, TP2 will be different for each of the cutting planes 73a-73e (see FIG. 9).

[0163] As shown in FIGS. 24-27, six alignment points AP1 and AP2 can be used to align the saw blade 27 with the target planes TP1 and TP2. As shown in FIGS. 24 and 25, three first alignment points AP1 can be used to align the saw blade 27 with the first target plane TP1, and as shown in FIGS. 26 and 27, three second alignment points AP2 can be used to align the saw blade 27 with the second target plane TP2. The alignment points AP1 and AP2 can be located 120 degrees apart from each other around a circle defined with the TCP as its center. The first alignment point AP1 is defined in the x- and z-plane of the saw blade 27, and the second alignment point AP2 is defined in the y- and z-plane of the saw blade 27. The y- and z-plane of the saw blade 27 is positioned approximately perpendicular to the saw blade 27 and below the centerline of the saw blade 27. In some embodiments, the saw blade 27 may be aligned with only the first target plane TP1 using only three alignment points AP1. The alignment points AP1, AP2 may be defined with respect to the TCP coordinate system because they are associated with the tool 20, e.g., the saw blade 27. The final command orientation CP is correlated with the current orientation of the tool 20 to provide an orientation in the TCP coordinate system with respect to the manipulator coordinate system MNPL and / or to provide an orientation in the virtual mass coordinate system VM with respect to the manipulator coordinate system MNPL. Thus, the current position of each alignment point AP1, AP2 is known with respect to the manipulator coordinate system MNPL and can be transformed to any other coordinate system.

[0164] In the same manner as described above, one-dimensional guidance constraints are defined on the target planes TP1 and TP2 to attract the alignment points AP1 and AP2 to the respective target planes TP1 and TP2. More specifically, at each time step, the guidance handler 84 locates normal points NPi, such as normal points NP1 and NP2, on the respective target planes TP1 and TP2 based on the normal vectors from each alignment point AP1 and AP2 to the corresponding target planes TP1 and TP2, and then generates guidance constraints along these normal vectors. In the illustrated embodiment, six guidance constraints are generated, three for interactions involving the alignment point AP1 and the normal point NP1, and the remaining three for interactions involving the alignment point AP2 and the normal point NP2. For each guidance constraint, a constraint direction, a constraint Jacobian Jp, a desired velocity Vdes, and a constraint distance Δd are calculated. For example, the constraint direction is the normal vector between APi and NPi. The desired velocity Vdes is 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 Jp is the constraint Jacobian that maps 1 dof velocity / force applied along the constraint direction at APi (1 dof velocity / force as if rigidly attached to tool 20) to an equivalent 6 dof effect in the virtual mass coordinate system VM.

[0165] The constraint solver 86 calculates constraint forces Fc adapted to attract the saw blade 27 to one or more target planes TP1, TP2 based on one or more guiding constraints. Thus, the constraint forces Fc include virtual attractive forces based on the guiding constraints applied to each alignment point AP1, AP2. The magnitude and direction of each virtual attractive force are based on the relative position of the corresponding normal point NP1, NP2 and the alignment point AP1, AP2. Note that the normal points NP1, NP2 are constantly being recalculated on the target planes TP1, TP2 at each time step, i.e., the normal points NP1, NP2 move based on the movement of the saw blade 27. In some cases, a target coordinate system TF fixed relative to the anatomical structure may be introduced, and the z-distance or the magnitude of the z-distance may be used to modify spring and / or damping parameters, as described above, 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. When the saw blade 27 enters inside the virtual boundary 71 that defines the virtual cutting guide slot, the guidance constraints may be disabled or the parameters of the guidance constraints may be changed. In some cases, for example, if the virtual boundary 71 is the target plane TP1, the spring and / or damping parameters of the guidance constraint associated with the alignment point AP1 may be tightened and the guidance constraint associated with the alignment point AP2 may be disabled, thereby allowing the user to move the saw blade 27 freely from side to side across the target plane TP1 while maintaining the saw blade 27 on the target plane TP1.

[0166] f. Enable / disable guidance constraints 28 , a user may be able to enable / disable various guiding constraints and / or virtual boundaries 71 associated with different features to be created with respect to the patient's anatomy. Such features may include, for example, planar cuts, resection volumes, and burr / drill holes. Enabling / disabling the guiding constraints and / or virtual boundaries 71 associated with different features may be performed via a user interface UI, such as the tool 20, the manipulator 14, or the navigation system 32. For example, a user may select a particular planar cut to be created from 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 interfaces UI, the control system 60 may enable the associated guiding constraints and associated virtual boundaries 71 while simultaneously disabling the guiding constraints and virtual boundaries 71 associated with the other planar cuts. A different goal state (e.g., position, orientation, and / or velocity) of the tool 20 is associated with each of the features, such that different guidance constraints must be generated to guide the user to move the tool 20 to each goal state depending on which feature the user selects. Selection of one of the features can also be performed by the control system 60 based on the proximity of the tool 20 to the goal state of the feature, e.g., the distance and / or angle difference between the current state of the tool 20 and the goal state. Selection of one of the features can also be performed by the control system 60 based on the proximity of the tool 20 to multiple virtual boundaries 71 associated with different features (e.g., comparing proximity to a virtual boundary associated with volumetric cutting from the femur with proximity to a virtual boundary associated with volumetric cutting from the pelvis). Selection can be performed automatically or after user confirmation, and can be performed in manual mode, free mode, selection mode, etc.

[0167] As shown in FIG. 28 , the tool 20 is positioned so that the TCP of the tool 20 is closest to the front chamfer cutting plane. The control system 60 can measure the closest distance of the TCP (current state) to each of the cutting planes (target states) defining the planar cut (e.g., feature) in a common coordinate system to select the particular planar cut to perform and, therefore, control (i.e., enable / disable) the guidance constraints and / or virtual boundary 71 accordingly. Additionally, the dot product of the normal vector of the plane defining the saw blade 27 with the normal vector of each cutting plane can be compared to further identify the user's selection, for example, to understand the orientation of the saw blade 27 relative to each of the cutting planes. The largest dot product indicates the smallest angle, and a selection can be made accordingly; for example, the smallest angle further indicates that the saw blade 27 is oriented closest to this cutting plane and therefore the user intends to make the next cut at this cutting plane. The display 38 can provide visual feedback to the user to indicate which cutting plane has been selected. For example, the display 38 can display a selection screen visually highlighting 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.

[0168] Other methods of selecting a feature and its associated cutting plane or cutting axis, etc., and enabling associated guidance constraints and / or associated virtual boundary 71 are also contemplated. For example, in some forms, control system 60 may simply measure the angle between the plane defining saw blade 27 and each of the cutting planes and select a planar cut to create based on the cutting plane that forms the smallest angle (magnitude). In this case, the xz plane of the TCP defines the plane of saw blade 27 (see FIG. 24 ), and control system 60 measures the angle between the xz plane (current state) and each of the cutting planes (target state) to find the angle with the smallest magnitude (e.g., the largest dot product of the normal vectors). This may be done similarly to select a burr hole / drill hole to create, i.e., by identifying angles between an axis defined by the shaft of the burr or drill and multiple cutting axes associated with the burr hole / drill hole and finding the angle with the smallest magnitude.

[0169] When multiple candidate planar cuts exist because two or more cutting planes have approximately the same normal vector (such as a front cutting plane and a rear cutting plane), i.e., the measured angles between the saw blade 27 and its associated cutting planes are within a threshold value of each other (e.g., 5 degrees, 10 degrees, etc.), the distance from the TCP of the tool 20 to each of the candidate cutting planes helps determine which planar cut to select. Once a planar cut is selected and performed, it may be removed from the candidates for the next selection. Thus, the number of candidates remaining for the next selection is reduced, thereby potentially preventing multiple candidates for the next selection.

[0170] Alternatively, instead of evaluating the distance from the TCP of the tool 20 to each of the cutting planes, the control system 60 casts a ray forward from the TCP of the tool 20 (e.g., along the z-axis in FIG. 24 ) and selects a projection point along that ray forward from the TCP of the tool 20 at a fixed distance (e.g., 0.5, 1.0, or 2.0 inches) from the TCP of the tool 20 (similar to the centerline alignment point AP1 shown in FIG. 24 ). The control system 60 then selects a valid plane cut based on the distance between this projection point and each of the cutting planes. The projection point effectively locates which cutting plane the user is pointing or moving towards, rather than which plane is closest. In some instances, a virtual representation of the projection point may be displayed on one or more of the displays along with a virtual representation of the saw blade 27.

[0171] Alternatively, user movement of tool 20 may be used as an input device for selecting a desired planar cut (or for other selection) via any of the user interfaces UI. In this instance, for example, a change in the angle of the xz plane of saw blade 27 (e.g., relative to the anatomy, or base 16, etc.) serves to scroll through a list of respective planar cuts displayed on one or more of the displays, e.g., 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 the cursor or other virtual selector down in the list. The final selection may then be made by actuating an input device on tool 20 or other input device.

[0172] The same or similar methods may also be used to select (i) the next hole to drill (e.g., burr / drill hole) from a plurality of holes requiring tissue removal, (ii) the next bone to machine from a plurality of bones requiring tissue removal, (iii) the virtual boundary to activate from a plurality of virtual boundaries on a given bone, or (iv) combinations thereof. These methods may make such selections based on reasonable assumptions about the motion of tool 20, the patient's anatomical position (e.g., relative to tool 20), and the expected workflow. Also, any of the selection methods described herein may be combined / weighted in any suitable manner.

[0173] For any of the selection methods described herein, once final candidates for selection (e.g., planar cuts, holes, bones, virtual boundaries, etc.) have been identified, a final acceptance check may be performed based on angle and / or distance being within acceptance criteria. For example, if the associated cutting plane of a final candidate for a planar cut is within 15 degrees of the acceptance angle (the angle between the plane xz of the saw blade 27 and the cutting plane is within 15 degrees), that cutting plane is enabled (e.g., any one or more associated guiding constraints and / or virtual boundaries 71 of that 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) may be enabled around the patient's anatomy, such as around the patient's knee (which has no slots), to prevent the user from contacting bone until a feature that meets the acceptance criteria is selected. Additionally, workflow information may be used to further reduce the candidates before applying any of the selection methods described herein. For example, the tool 20 may be operable in one or more configurations, with a particular configuration indicating a user selection. For example, the saw blade 27 and its xz plane may be flipped 180 degrees to make certain cuts and not flipped for other cuts. Thus, depending on the configuration in which the user positions the tool 20 (e.g., flipped or not), the candidate planar cuts and associated cutting planes may be effectively narrowed down accordingly before the control system 60 makes the final selection. Furthermore, in some cases, completed planar cuts (or other features) may be removed from the candidates and / or may have a reduced weighting factor (or more stringent criteria) applied to them to make them less likely to be selected again.

[0174] In some forms, when using selection methods such as those described above, a selection region (e.g., a spherical region or other shaped region or volume) may be defined around an anatomical structure (e.g., the knee) to facilitate selection, selection modification, etc. For example, the selection region may be defined by a sphere of a predetermined radius positioned relative to the center of the knee (e.g., a radius of 5.0, 6.0, or 7.0 inches, etc.). If the TCP of the tool 20 resides outside the selection region for more than a predefined time (e.g., longer than 0, 1, 2, or 3 seconds), the control system 60 may enter a selection mode, in which any guiding constraints and / or virtual boundaries 71 associated with the last selected feature are disabled (but protective virtual boundaries may be enabled), and a new selection is made (e.g., a new feature is selected to create) using a selection method (e.g., any of the selection methods described above, or a combination thereof). In the selection mode, the selection is displayed to the user on one or more of the user interfaces UI. For example, in the case of a total knee procedure, one or more of the displays may display a lateral (sagittal) view of the knee, allowing for better visualization of the various planar cuts. Once a selection is made in selection mode, guiding constraints and / or virtual boundaries for the selection are activated as the user moves the TCP of tool 20 into the selection area (e.g., toward the knee). Typically, control system 60 then updates one or more of the displays to show the particular visualization / orientation best suited for the selection (e.g., the selected plane cut). While within the selection area, the selection is effectively frozen and remains activated until the user again moves the TCP of tool 20 out of the selection area and repeats the selection process. This helps prevent the user from accidentally making a new selection within the selection area.

[0175] The guided haptics mode may also be used in a variety of other ways. For example, the guided haptics mode may help guide the user when transitioning from another operating mode to the semi-autonomous mode and returning the TCP of the tool 20 to the tool path TP. The guided haptics mode may also assist the user in moving the tool 20 outside the tool path TP when transitioning from the semi-autonomous mode to another mode, such as the manual mode. The guided haptics mode may be used to align drill bits and / or drill taps for screws, anchors, or other fasteners. The guided haptics mode may be used to align an impactor to a desired trajectory for impacting an acetabular cup implant to install the acetabular cup implant into a prepared acetabulum. The guided haptics mode may be used to align tools used to install other types of implants. The guided haptics mode may be used for alignment / guiding tools for placing k-wires, cannulas, trocars, retractors, and the like.

[0176] A remote control RC may be used to switch between various operating modes of the manipulator 14. Other input devices, such as various user interfaces UI, may also be used to switch / enable various operating modes of the manipulator 14. For example, the UI of the tool 20 may have an input device (such as a button, touch sensor, gesture input, foot pedal, etc.) actuable to enable one or more guided constraints such that the constraint force Fc includes force and torque components associated with attracting the tool to the target state. The control system 60 may be configured to automatically switch modes in certain situations. For example, if the control system 60 was initially operating the manipulator 14 in semi-autonomous mode (i.e., before switching to the guided haptic mode), the control system 60 may automatically resume semi-autonomous mode when the user disengages the guided haptic 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 semi-autonomous mode, before automatically continuing in semi-autonomous mode. The user may choose to continue in manual mode, guided haptic mode, semi-autonomous mode, etc.

[0177] In some cases, a user may apply a force of appropriate magnitude and direction to tool 20 indicating a desire to terminate operation in the guided haptic mode, such as by applying a force in a direction opposite to the goal state. In this case, when such a force in a direction opposite to the goal state exceeds a predefined threshold, control system 60 may automatically return to the manual mode or the free mode.

[0178] The current state of the tool 20 relative to the goal state, milling path 72, and / or surgical site may be output by the navigation system 32 and displayed on the display 38 via graphical representations of the tool 20, the goal state, virtual boundary 71, milling path 72, and / or the surgical site, e.g., the femur F, tibia T, pelvis PEL, vertebral bodies, or other anatomical structures. These graphical representations are updated in real time, allowing the user to visualize the user's movement in guided haptic mode relative to the goal state, virtual boundary 71, milling path 72, anatomical structures, etc. For example, the graphical representations of the tool 20 and anatomical structures may move on the display 38 in real time along with the actual movement of the tool 20 by the manipulator 14 and the actual movement of the anatomical structures.

[0179] The guided haptic mode described herein can be used in various types of surgical systems. For example, the manipulator can include a teleoperated robotic arm controlled via a user interface, which is remotely located relative to and controls the teleoperated robotic arm. The user interface can include a separate manipulator, such as a 6DOF control unit manually operated by a user, e.g., a separate manipulator with active joints that provide haptic feedback to the user. This haptic feedback provided to the user interface can utilize attractive / repulsive forces and torques to align the position of the guided coordinate system GF with the target coordinate system TF, such as based on the generation of guided constraints.

[0180] For all examples described herein, the boundary constraints may be set to be significantly stiffer than the guiding constraints to minimize the tool 20 from advancing beyond the virtual boundary 71 .

[0181] The principles described herein for attracting tool 20 to a goal state can also be used to repel tool 20 from a goal state. This can be achieved by applying opposing guidance constraints to show the user how tool 20 needs to move to move away from the goal state.

[0182] This application is a related application to U.S. Provisional Patent Application No. 62 / 815,739, filed March 8, 2019, the entire disclosure of which is incorporated herein by reference.

[0183] In the foregoing description, several embodiments have been described. 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 in the nature of words and descriptions rather than of limitation. Many modifications and variations are possible in light of the above teachings, and the invention may be practiced other than as specifically described.

[0184] Any aspect or implementation of the aforementioned systems, methods, and / or techniques may be described with reference to any of the following clauses.

[0185] Terms C1. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held in a user's free hand; a handheld manipulator with a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler that obtains a target state of the saw blade and generates one or more virtual constraints, including a guidance constraint, based on the target state and a current state of the saw blade; a constraint solver that calculates constraint forces based on the one or more virtual constraints, the constraint forces being adapted to move the saw blade to the target state; and a virtual simulator that simulates the dynamics of the saw blade in a virtual simulation based on input from the constraint forces and outputs a command orientation, the control system being configured to command the handheld manipulator to move the saw blade based on the command orientation and position the saw blade at the target state.

[0186] C2. The handheld manipulator system of clause C1, wherein the goal state comprises a goal position, a goal orientation, or a goal posture, and the current state comprises a current position, a current orientation, or a current posture.

[0187] 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.

[0188] C4. The handheld manipulator system of clause C1, wherein the target state includes a target coordinate system, the saw blade includes an induced coordinate system, and the constraint force is adapted to attract the induced coordinate system to the target coordinate system.

[0189] C5. The handheld manipulator system of clause C1, wherein the guidance handler is configured to calculate the one or more virtual constraints for one or more degrees of freedom based on a difference between the current state and the goal state.

[0190] C6. The handheld manipulator system described in clause C1, wherein the control system includes a user interface for enabling the one or more virtual constraints such that the constraint forces include force and torque components associated with attracting the saw blade to the target state.

[0191] C7. The handheld manipulator system of clause C1, wherein the guidance handler is configured to calculate the one or more virtual constraints based on a relationship between the current state and the goal state.

[0192] C8. The handheld manipulator system described in clause C1, wherein each of the one or more virtual constraints has a value for a tuning parameter, and the guidance handler is configured to change the value of the tuning parameter based on a relationship between the current state and the goal state.

[0193] C9. The handheld manipulator system described in clause C1, wherein the one or more virtual constraints include a first virtual constraint having a tuning parameter of a first value and a second virtual constraint having a tuning parameter of a second value, the first value being different from the second value, such that a constraint force resulting from the first virtual constraint is adapted to move the saw blade more strongly than the second virtual constraint.

[0194] C10. The handheld manipulator system of clause C1, wherein the virtual simulator is configured to simulate the dynamics of the saw blade and generate the commanded position 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.

[0195] C11. The handheld manipulator system described in clause C1, wherein the control system is configured to calculate an external force to be applied to the handheld robotic saw, and to calculate a total force to be used in the virtual simulation based on the constraint force and the external force.

[0196] C12. A handheld manipulator system comprising: a base portion held in a user's freehand; a handheld manipulator having a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, wherein the control system comprises: a guidance handler that acquires a plurality of alignment points and one or more target planes for the saw blade and generates one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; a constraint solver that calculates constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints; and a virtual simulator that simulates the dynamics of the saw blade in a virtual simulation based on input from the constraint forces and outputs a command orientation, wherein the control system is configured to command the manipulator to move the saw blade based on the command orientation and position the saw blade in the one or more target planes.

[0197] C13. A method for controlling a saw blade of a handheld manipulator having a base portion held in a user's freehand and a tool tip movable relative to the base portion and including a sagittal saw blade, the method comprising: 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 constraint forces based on the one or more virtual constraints adapted to move the saw blade to the target state; simulating the dynamics of the saw blade in a virtual simulation based on the constraint forces; outputting a command orientation based on the virtual simulation; and commanding the manipulator to move the saw blade based on the command orientation and position the saw blade in the target state.

[0198] C14. The method of clause C13, 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.

[0199] 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.

[0200] C16. The method of clause C13, wherein the target state includes a target coordinate system, the saw blade includes a guided coordinate system, and the constraint force is adapted to move the guided coordinate system to the target coordinate system.

[0201] C17. The method of clause C13, comprising calculating the one or more virtual constraints for one or more degrees of freedom based on a difference between the current state and the target state.

[0202] C18. The method of clause C13, including enabling the one or more virtual constraints such that the constraint forces include force and torque components associated with moving the saw blade to the target state.

[0203] C19. The method of clause C13, comprising calculating the one or more virtual constraints based on a relationship between the current state and the goal state.

[0204] C20. The method of clause C13, including changing values ​​of tuning parameters of the one or more virtual constraints based on a relationship between the current state and the goal state.

[0205] C21. The method of clause C13, wherein the method includes setting the 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, the first value being different from the second value, such that a constraint force resulting from the first virtual constraint is adapted to move the saw blade more strongly compared to the second virtual constraint.

[0206] C22. The method of clause C13, including 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 generate the command position.

[0207] C23. The method of clause C13, comprising: calculating external forces; and calculating a total force for use in the virtual simulation based on the constraint forces and the external forces.

[0208] C24. The method of clause C14, including defining three virtual constraints of the one or more virtual constraints to move the saw blade to a desired cutting plane.

[0209] C25. A method for guiding a saw blade supported by a handheld manipulator having a base portion held in a user's freehand and a tool tip movable relative to the base portion and including a sagittal saw blade, the manipulator supporting and moving the saw blade, the method comprising: acquiring a plurality of alignment points and one or more target planes for the saw blade; generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; calculating constraint forces based on the one or more virtual constraints adapted to move the saw blade to the one or more target planes; simulating dynamics of the saw blade in a virtual simulation based on input from the constraint forces; outputting a command orientation based on the virtual simulation; and commanding the manipulator to move the saw blade based on the command orientation and position the saw blade in the one or more target planes.

[0210] C26. A method for controlling movement of a saw blade of a handheld manipulator to create a plurality of features, each of the plurality of features having a different target state of the saw blade, the method including: determining, in a known coordinate system, a current state of the saw blade relative to the target states of the saw blade for the plurality of features and identifying which of the plurality of features is selected for creation; enabling one or more guiding constraints from a plurality of guiding constraints for the handheld manipulator based on the selected feature; and controlling movement of the saw blade based on the one or more guiding constraints that function to position the saw blade at the target state of the selected feature.

[0211] C27. The method of clause C26, wherein enabling the one or more guiding constraints includes generating the one or more guiding constraints based on the target state associated with the selected feature and the current state of the saw blade, and controlling the movement of the saw blade based on the one or more guiding constraints includes calculating a constraint force adapted to move the saw blade from the current state to the target state based on the one or more guiding constraints, simulating dynamics of the saw blade in a virtual simulation based at least in part on the constraint force, outputting a command orientation based on the virtual simulation, and commanding the handheld manipulator to move the saw blade based on the command orientation and position the saw blade at the target state.

[0212] C28. The method of clause C26, wherein determining the current state of the saw blade relative to the target state of the saw blade of the plurality of features in the known coordinate system includes determining the position of a plane defined by the saw blade relative to a plurality of cutting planes in the known coordinate system.

[0213] C29. The method of clause C28, wherein determining the current state of the saw blade relative to the target states of the saw blade of the plurality of features in the known coordinate system includes determining an angle between a current orientation of the saw blade and a plurality of target orientations of the saw blade, or determining a distance between a current position of the saw blade and a plurality of target positions of the saw blade, or determining both the angle and the distance, and identifying a selected one of the plurality of 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.

[0214] C30. The method of clause C26, including enabling one or more virtual boundaries for the saw blade based on the selected characteristics.

[0215] C31. The method of clause C30, wherein the method includes defining a selection area relative to the plurality of features, and wherein the one or more virtual boundaries and the one or more guiding constraints associated with the selected features are enabled when the saw blade is within the selection area to create the selected features, and disabled when the saw blade is moved outside the selection area, thereby allowing new features to be created.

[0216] C32. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held in a user's free hand; a handheld manipulator having a base portion movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler that obtains a target state of the saw blade and generates one or more virtual constraints based on the target state and a current state of the saw blade; and a constraint solver that calculates constraint forces adapted to move the saw blade to the target state based on the one or more virtual constraints, wherein movement of the saw blade is controlled by the manipulator based on the constraint forces, and the saw blade is positioned to the target state.

[0217] C33. A handheld manipulator system for performing surgery, comprising: a handheld manipulator having a base portion held in a user's free hand; and a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, wherein the control system comprises: a guidance handler that acquires a plurality of alignment points and one or more target planes for the saw blade and generates one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; and a constraint solver that calculates constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints, wherein movement of the saw blade is controlled by the manipulator based on the constraint forces, and the saw blade is positioned in the one or more target planes.

[0218] C34. A method for guiding a saw blade of a handheld manipulator, comprising: 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 constraint forces based on the one or more virtual constraints adapted to move the saw blade to the target state; and controlling movement of the saw blade based on the constraint forces to position the saw blade at the target state.

[0219] C35. A method for guiding a saw blade supported by a handheld manipulator, comprising: obtaining a plurality of alignment points and one or more target planes for the saw blade; generating one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; calculating constraint forces adapted to move the saw blade to the one or more target planes based on the one or more virtual constraints; and controlling movement of the saw blade based on the constraint forces to position the saw blade on the one or more target planes.

[0220] C36. A handheld manipulator system for performing surgery, the handheld manipulator system comprising: a base portion held in a user's free hand; a handheld manipulator having a tool tip movable relative to the base portion and including a sagittal saw blade; and a control system for controlling movement of the tool tip, the control system comprising: a guidance handler configured to obtain a target state of the saw blade and generate one or more virtual constraints based on the target state and a current state of the saw blade, the one or more virtual constraints including a guidance constraint, the guidance handler configured to calculate the guidance constraint based on a relationship between the current state and the target state, and the guidance handler configured to calculate the guidance constraint based on a relationship between the current state and the target state. the guidance handler, wherein constraints have values ​​of tuning parameters, and the guidance handler is configured to change the values ​​of the tuning parameters based on a relationship between the current state and the target state; a constraint solver, which calculates constraint forces adapted to move the saw blade to the target state based on the guidance constraints; and a virtual simulator, which simulates the dynamics of the saw blade in a virtual simulation based on input from the constraint forces and outputs a command orientation; and the control system, which is configured to command the manipulator to move the saw blade based on the command orientation and position the saw blade at the target state.

[0221] C37. A surgical system comprising: a tool; a manipulator that supports the tool and moves it in response to user forces and torques applied to the tool by a user; one or more sensors that provide sensor input signals; and a control system, wherein the control system comprises: a guidance handler that obtains a goal state of the tool and generates one or more virtual constraints based on the goal state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool to the goal state or repel the tool from the goal state based on the one or more virtual constraints; and a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the sensor input signals from the one or more sensors and the constraint forces and outputs a command posture, wherein the control system is configured to command the manipulator to move the tool based on the command posture, thereby providing haptic feedback to the user to guide the user to place the tool in the goal state or away from the goal state. The following appendices are provided to illustrate embodiments of the present invention. (Appendix 1) Tools and a manipulator that supports the tool and moves the tool in response to user forces and torques applied to the tool by the user; one or more sensors for measuring forces and torques applied to the tool; Control system and A surgical system comprising: the control system a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the input from the one or more sensors and the constraint forces, and outputs a command posture; Equipped with the control system is configured to command the manipulator to move the tool based on the command posture, thereby providing haptic feedback to the user to guide the user to place the tool in or away from the target state. Surgical system. (Appendix 2) 2. The surgical system of claim 1, wherein the target state includes a target position, a target orientation, or a target posture, and the current state includes a current position, a current orientation, or a current posture. (Appendix 3) 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. (Appendix 4) 3. The surgical system of claim 2, wherein the control system is configured to allow the user to reorient the tool away from the target orientation. (Appendix 5) 3. The surgical system of claim 2, wherein the control system is configured to allow the user to reposition the tool away from the target location. (Appendix 6) 2. The surgical system of claim 1, wherein the target state includes a target coordinate system, the tool includes a guided coordinate system, and the constraint force is adapted to attract the guided coordinate system to the target coordinate system. (Appendix 7) 2. The surgical system of claim 1, wherein the guidance handler is configured to calculate the one or more virtual constraints for one or more degrees of freedom based on a difference between the current state and the target state. (Appendix 8) 2. The surgical system of claim 1, wherein the control system includes a user interface for enabling the one or more virtual constraints such that the constraint forces include force and torque components associated with attracting the tool to the target state. (Appendix 9) 2. The surgical system of claim 1, wherein the guidance handler is configured to calculate the one or more virtual constraints based on a relationship between the current state and the goal state. (Appendix 10) 2. The surgical system of claim 1, wherein each of the one or more virtual constraints has a value for a tuning parameter, and the guidance handler is configured to change the value of the tuning parameter based on a relationship between the current state and the target state. (Appendix 11) the one or more virtual constraints include a first virtual constraint having the tuning parameter at a first value and a second virtual constraint having the tuning parameter at a second value; 2. The surgical system of claim 1, wherein the first value is different from the second value and the calculated constraint force is adapted to attract or repel the tool more strongly as a result of the first virtual constraint compared to the second virtual constraint. (Appendix 12) 2. The surgical system of claim 1, wherein the virtual simulator is configured to simulate the dynamics of the tool and generate the command position 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. (Appendix 13) The control system includes: calculating an external force based on input from the one or more sensors; calculating a total force to be used in the virtual simulation based on the constraint force and the external force, wherein the external force may have a force component of sufficient magnitude and direction to overcome the constraint force; 2. The surgical system of claim 1, configured to perform (Appendix 14) 2. The surgical system of claim 1, wherein the tool comprises a burr or a drill, and the one or more virtual constraints include two virtual constraints defined to attract the burr or drill into a desired orientation. (Appendix 15) 2. The surgical system of claim 1, wherein the tool comprises a bar and the one or more virtual constraints include three virtual constraints defined to attract the bar to a desired starting position. (Appendix 16) 2. The surgical system of claim 1, wherein the tool comprises a saw blade, and the one or more virtual constraints include three virtual constraints defined to attract the saw blade to a desired cutting plane. (Appendix 17) Tools and a manipulator for supporting and moving the tool, wherein the manipulator is operable in a first mode in which it moves the tool along a tool path and in a second mode in which it moves the tool in response to user forces and torques applied to the tool by a user; one or more sensors for measuring forces and torques applied to the tool; Control system and A surgical system comprising: the control system a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool from the current state to the target state based on the one or more virtual constraints; a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the input from the one or more sensors and the constraint forces, and outputs a command posture; Equipped with the control system is configured to command the manipulator to move the tool based on the command posture, thereby providing haptic feedback to the user to guide the user to place the tool in the target state. Surgical system. (Appendix 18) 18. The surgical system of claim 17, wherein the target state comprises a starting position, a starting orientation, or a starting posture, and the current state comprises a current position, a current orientation, or a current posture. (Appendix 19) 19. The surgical system of claim 18, wherein the one or more virtual constraints include up to three virtual constraints associated with the starting position and up to three virtual constraints associated with the starting orientation. (Appendix 20) 19. The surgical system of claim 18, wherein the control system is configured to allow the user to reorient the tool away from the starting orientation. (Appendix 21) 19. The surgical system of claim 18, wherein the control system is configured to allow the user to reposition the tool away from the starting position. (Appendix 22) 19. The surgical system of claim 18, wherein the control system is configured to select the start position from a plurality of possible start positions. (Appendix 23) 23. The surgical system of claim 22, wherein the control system is configured to select the start position from the plurality of possible start positions based on a last known position of the tool on the tool path before the tool was moved out of the tool path. (Appendix 24) 23. The surgical system of claim 22, wherein the control system is configured to define the start position as a restart position along a restart path. (Appendix 25) The control system includes: Identifying a last known point on the tool path that the tool passed through before the tool was moved out of the tool path; calculating the restart position on the restart path based on the last known point; 25. The surgical system of claim 24, configured to perform (Appendix 26) 26. The surgical system of claim 25, wherein the control system is configured to calculate the last known point on the tool path traversed by the tool based on a last known position of the tool on the tool path before the tool was moved outside the tool path. (Appendix 27) The control system includes: calculating an introduction path from the restart location to the last known point; moving the tool along the lead path from the restart position to the last known point in the first mode; 26. The surgical system of claim 25, configured to perform (Appendix 28) 28. The surgical system of claim 27, wherein the tool includes an energy applicator, and the control system includes a tool controller that supplies energy to the energy applicator as the energy applicator moves along the introduction path in the first mode. (Appendix 29) 18. The surgical system of claim 17, wherein the target state includes a restart position on a restart path, the restart path being based on a shape of a virtual boundary. (Appendix 30) 18. The surgical system of claim 17, wherein the target state includes a restart position on a restart path, the restart path being defined based on a withdrawal path along which the user moves the tool when moving the tool outside the tool path. (Appendix 31) 18. The surgical system of claim 17, wherein the target state includes a restart position selected from a plurality of possible restart positions defined along a restart path, and the control system is configured to select the restart position based on cutting progress made by the tool with respect to the plurality of possible restart positions. (Appendix 32) 18. The surgical system of claim 17, wherein the first mode comprises a semi-autonomous mode and the second mode comprises a guided haptic mode. (Appendix 33) Tools and a manipulator, wherein the manipulator is operable in a semi-autonomous mode in which the manipulator moves the tool along a tool path and is further operable to reorient the tool in response to user forces and torques applied by a user to the tool while it is still on the tool path; one or more sensors for measuring forces and torques applied to the tool; Control system and A surgical system comprising: the control system a guidance handler that obtains a preferred orientation of the tool and generates one or more virtual constraints based on the preferred orientation and a current orientation of the tool; a constraint solver that calculates constraint forces adapted to attract the tool from the current orientation to the preferred orientation based on the one or more virtual constraints; a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the input from the one or more sensors and the constraint forces, and outputs a command posture; Equipped with the control system is configured to command the manipulator to move the tool based on the commanded posture to provide haptic feedback to the user guiding the user to place the tool in the recommended orientation. Surgical system. (Appendix 34) Tools and a manipulator that supports the tool and moves the tool in response to user forces and torques applied to the tool by the user; one or more sensors for measuring forces and torques applied to the tool; Control system and A surgical system comprising: the control system a guidance handler that acquires a plurality of alignment points and one or more target planes of the tool and generates one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; a constraint solver that calculates constraint forces adapted to attract the tool to the one or more target planes based on the one or more virtual constraints; a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the input from the one or more sensors and the constraint forces, and outputs a command posture; Equipped with the control system is configured to command the manipulator to move the tool based on the command orientation to provide haptic feedback to the user guiding the user to place the tool in the one or more target planes. Surgical system. (Appendix 35) 1. A method for guiding a tool supported by a manipulator of a surgical system, the manipulator supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user; receiving input from one or more sensors that measure forces and torques applied to the tool; obtaining a target state of the tool; generating one or more virtual constraints based on the target state and a current state of the tool; calculating constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; simulating the dynamics of the tool in a virtual simulation based on the inputs from the one or more sensors and the constraint forces; outputting a command posture based on the virtual simulation; commanding the manipulator to move the tool based on the commanded orientation to provide haptic feedback to the user guiding the user to place the tool into or away from the goal state; A method comprising: (Appendix 36) 36. The method of claim 35, 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. (Appendix 37) 37. The method of claim 36, 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. (Appendix 38) 37. The method of claim 36, comprising allowing the user to reorient the tool away from the target orientation. (Appendix 39) 37. The method of claim 36, comprising allowing the user to reposition the tool away from the target location. (Appendix 40) 36. The method of claim 35, wherein the target state includes a target coordinate system, the tool includes a guided coordinate system, and the constraint force is adapted to attract the guided coordinate system to the target coordinate system. (Appendix 41) 36. The method of claim 35, comprising calculating the one or more virtual constraints for one or more degrees of freedom based on a difference between the current state and the target state. (Appendix 42) 36. The method of claim 35, comprising enabling the one or more virtual constraints such that the constraint forces include force and torque components associated with attracting the tool to the target state. (Appendix 43) 36. The method of claim 35, comprising calculating the one or more virtual constraints based on a relationship between the current state and the goal state. (Appendix 44) 36. The method of claim 35, comprising changing values ​​of tuning parameters of the one or more virtual constraints based on a relationship between the current state and the goal state. (Appendix 45) setting the 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; 36. The method of claim 35, wherein the first value is different from the second value and the calculated constraint force is adapted to attract or repel the tool more strongly as a result of the first virtual constraint compared to the second virtual constraint. (Appendix 46) 36. The method of claim 35, comprising simulating the dynamics of the tool to generate the command posture by representing the tool as a virtual rigid body having a virtual mass and applying the constraint forces to the virtual mass in the virtual simulation. (Appendix 47) calculating an external force based on the input from the one or more sensors; calculating a total force to be used in the virtual simulation based on the constraint force and the external force, wherein the external force may have a force component of sufficient magnitude and direction to overcome the constraint force; 36. The method of claim 35, comprising: (Appendix 48) defining two virtual constraints of the one or more virtual constraints to attract the tool into a desired orientation; 36. The method of claim 35, wherein the tool comprises a burr or a drill. (Appendix 49) defining three of the one or more virtual constraints to attract the tool to a desired start position; 36. The method of claim 35, wherein the tool comprises a bar. (Appendix 50) defining three virtual constraints of the one or more virtual constraints to attract the tool to a desired cutting plane; 36. The method of claim 35, wherein the tool comprises a saw blade. (Appendix 51) 1. A method for guiding a tool supported by a manipulator of a surgical system, the manipulator operable in a first mode in which the manipulator 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; receiving input from one or more sensors that measure forces and torques applied to the tool; obtaining a target state of the tool; generating one or more virtual constraints based on the target state and a current state of the tool; calculating a constraint force adapted to attract the tool from the current state to the target state based on the one or more virtual constraints; simulating the dynamics of the tool in a virtual simulation based on inputs from the one or more sensors and the constraint forces; outputting a command posture based on the virtual simulation; commanding the manipulator to move the tool in the second mode based on the command orientation to provide haptic feedback to the user guiding the user to place the tool in the target state; A method comprising: (Appendix 52) 52. The method of claim 51, wherein the target state comprises a starting position, a starting orientation, or a starting posture, and the current state comprises a current position, a current orientation, or a current posture. (Appendix 53) 53. The method of claim 52, wherein the one or more virtual constraints include up to three virtual constraints associated with the starting position and up to three virtual constraints associated with the starting orientation. (Appendix 54) 53. The method of claim 52, comprising allowing the user to reorient the tool away from the starting orientation. (Appendix 55) 53. The method of claim 52, comprising allowing the user to reposition the tool away from the starting position. (Appendix 56) 53. The method of claim 52, comprising selecting the start location from a plurality of possible start locations. (Appendix 57) 57. The method of claim 56, comprising selecting the start position from the plurality of possible start positions based on a last known position of the tool on the tool path before the tool was moved out of the tool path. (Appendix 58) 57. The method of claim 56, wherein the control system defines the start position as a restart position along a restart path. (Appendix 59) Identifying a last known point on the tool path that the tool passed through before the tool was moved out of the tool path; calculating the restart position on the restart path based on the last known point; 59. The method of claim 58, comprising: (Appendix 60) 60. The method of claim 59, comprising calculating the last known point on the tool path traversed by the tool based on a last known position of the tool on the tool path before the tool was moved out of the tool path. (Appendix 61) calculating an introduction path from the restart location to the last known point; moving the tool along the lead path from the restart position to the last known point in the first mode; 59. The method of claim 59, comprising: (Appendix 62) 62. The method of claim 61, comprising energizing an energy applicator of the tool as the energy applicator moves along the introduction path in the first mode. (Appendix 63) 52. The method of claim 51, comprising defining a restart path based on a shape of a virtual boundary, the goal state comprising a restart location on the restart path. (Appendix 64) 52. The method of claim 51, further comprising defining a restart path based on a retraction path along which the user moves the tool when the tool moves outside the tool path, and wherein the target state includes a restart position on the restart path. (Appendix 65) 52. The method of claim 51, comprising selecting a restart position from a plurality of possible restart positions defined along a restart path based on cutting progress made by the tool with respect to the plurality of possible restart positions, and the target state includes the restart position. (Appendix 66) 52. The method of claim 51, wherein the first mode comprises a semi-autonomous mode and the second mode comprises a guided haptic mode. (Appendix 67) 1. A method for guiding a tool supported by a manipulator of a surgical system, the manipulator being operable in a semi-autonomous mode in which the manipulator moves the tool along a tool path and is operable to reorient the tool in response to user forces and torques applied by a user to the tool while the tool is still on the tool path; receiving input from one or more sensors that measure forces and torques applied to the tool; obtaining a recommended orientation for the tool; generating one or more virtual constraints based on the preferred orientation and the current orientation of the tool; calculating a constraint force adapted to attract the tool from the current orientation to the preferred orientation based on the one or more virtual constraints; simulating the dynamics of the tool in a virtual simulation based on the inputs from the one or more sensors and the constraint forces; outputting a command posture based on the virtual simulation; commanding the manipulator to move the tool based on the commanded posture to provide haptic feedback to the user guiding the user to place the tool in the recommended orientation; A method comprising: (Appendix 68) 1. A method for guiding a tool supported by a manipulator of a surgical system, the manipulator supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user; receiving input from one or more sensors that measure forces and torques applied to the tool; acquiring a plurality of alignment points and one or more target planes for the tool; generating one or more virtual constraints based on relative positions of the plurality of registration points and the one or more target planes; calculating constraint forces adapted to attract the tool to 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 inputs from the one or more sensors and the constraint forces; outputting a command posture based on the virtual simulation; commanding the manipulator to move the tool based on the command orientation to provide haptic feedback to the user guiding the user to place the tool in the one or more target planes; A method comprising: (Appendix 69) 1. A method for controlling movement of a tool to create a plurality of features, each of the plurality of features having a different target state of the tool; 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 and determining which of the plurality of features a user has selected for creation; activating one or more guiding constraints from a plurality of guiding constraints based on the feature selected by the user; controlling movement of the tool based on the one or more guiding constraints, wherein the one or more guiding constraints function to generate haptic feedback to the user so that the user understands how to move the tool relative to the goal state associated with the feature selected by the user. A method comprising: (Appendix 70) activating the one or more guiding constraints includes generating the one or more guiding constraints based on the goal state associated with the feature selected by the user and the current state of the tool, and controlling the movement of the tool based on the one or more guiding constraints includes: calculating a constraint force adapted to attract the tool from the current state to 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 forces; outputting a command posture based on the virtual simulation; commanding a manipulator to move the tool based on the commanded orientation to provide haptic feedback to the user guiding the user to place the tool in the target state; and 69. The method of claim 69, comprising: (Appendix 71) activating the one or more guiding constraints includes generating the one or more guiding constraints based on the goal state associated with the feature selected by the user and the current state of the tool, and controlling the movement of the tool based on the one or more guiding constraints includes: calculating a constraint force adapted to repel the tool from the target state based on the one or more virtual constraints; simulating the dynamics of the tool in a virtual simulation based at least in part on the constraint forces; outputting a command posture based on the virtual simulation; commanding a manipulator to move the tool based on the commanded orientation to provide haptic feedback to the user guiding the user to position the tool away from the target state; and 69. The method of claim 69, comprising: (Appendix 72) 70. The method of claim 69, wherein 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 the position of a plane defined by a saw blade relative to a plurality of cutting planes in the known coordinate system. (Appendix 73) 70. The method of claim 69, wherein 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 the position of an axis defined by a shaft of a burr or drill relative to a plurality of cutting axes. (Appendix 74) Identifying the current state of the tool relative to the target state of the tool of the plurality of features in the known coordinate system comprises: determining an angle between a current orientation of the tool and a plurality of target orientations of the tool, determining a distance between a current position of the tool and a plurality of target positions of the tool, or determining both the angle and the distance; identifying a feature selected by the user from among the plurality of features based on the angle value, the distance value, or both the angle value and the distance value; 69. The method of claim 69, comprising: (Appendix 75) 70. The method of claim 69, comprising enabling one or more virtual boundaries for the tool based on the feature selected by the user. (Appendix 76) defining a selection region with respect to the plurality of features; the one or more virtual boundaries and the one or more guiding constraints associated with the feature selected by the user are enabled when the tool is within the selection area to create the feature selected by the user, and disabled when the tool is moved outside the selection area, allowing the user to select a new feature to create; 75. The method described in Appendix 75. (Appendix 77) 1. A method for controlling movement of a tool to create a plurality of features, each of the plurality of features having a different virtual boundary relative to the tool; determining a current state of the tool relative to the virtual boundaries of the plurality of features in a known coordinate system and determining which of the plurality of features a user has selected for creation; activating one or more guiding constraints from a plurality of guiding constraints based on the feature selected by the user; activating one or more boundary constraints from a plurality of boundary constraints based on the feature selected by the user; controlling movement of the tool based on the one or more guiding constraints and the one or more boundary constraints, wherein the one or more guiding constraints and the one or more boundary constraints function to generate haptic feedback to the user to assist in creating the feature selected by the user. A method comprising: (Appendix 78) Tools and a manipulator for supporting and moving the tool; Control system and A surgical system comprising: the control system a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; Equipped with Movement of the tool is controlled by the manipulator based on the constraint forces, and haptic feedback is provided to guide a user to place the tool in or away from the target state. Surgical system. (Appendix 79) Tools and a manipulator for supporting and moving the tool, wherein the manipulator is operable in a first mode in which the manipulator moves the tool along a tool path and in a second mode in which a user applies forces and torques to the tool to move it; Control system and A surgical system comprising: the control system a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool from the current state to the target state based on the one or more virtual constraints; Equipped with movement of the tool is controlled by the manipulator in the second mode based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool in the target state. Surgical system. (Appendix 80) Tools and a manipulator, wherein said manipulator is operable in a semi-autonomous mode to move said tool along a tool path, said tool being capable of moving in response to user forces and torques applied to said tool by a user while said tool is still on said tool path; Control system and A surgical system comprising: The control system includes: a guidance handler that obtains a preferred orientation of the tool and generates one or more virtual constraints based on the preferred orientation and a current orientation of the tool; a constraint solver that calculates constraint forces adapted to attract the tool from the current orientation to the preferred orientation based on the one or more virtual constraints; Equipped with movement of the tool is controlled by the manipulator based on the constraint forces, and haptic feedback is provided to the user to guide the user to place the tool in a recommended orientation. Surgical system. (Appendix 81) Tools and a manipulator for supporting and moving the tool; Control system and A surgical system comprising: the control system a guidance handler that acquires a plurality of alignment points and one or more target planes of the tool and generates one or more virtual constraints based on relative positions of the plurality of alignment points and the one or more target planes; a constraint solver that calculates constraint forces adapted to attract the tool to the one or more target planes based on the one or more virtual constraints; Equipped with movement of the tool is controlled by the manipulator based on the constraint forces, and haptic feedback is provided to guide a user to place the tool in the one or more target planes. Surgical system. (Appendix 82) 1. A method for guiding a tool supported by a manipulator of a surgical system, comprising: obtaining a target state of the tool; generating one or more virtual constraints based on the target state and a current state of the tool; calculating constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; controlling movement of the tool based on the constraint force and providing haptic feedback to guide a user to move the tool into or away from the goal state; A method comprising: (Appendix 83) 1. A method for guiding a tool supported by a manipulator of a surgical system, the manipulator operable in a first mode in which the manipulator moves the tool along a tool path and in a second mode in which the tool moves in response to user forces and torques applied to the tool by a user; obtaining a target state of the tool; generating one or more virtual constraints based on the target state and a current state of the tool; calculating a constraint force adapted to attract the tool from the current state to the target state based on the one or more virtual constraints; controlling movement of the tool in the second mode based on the constraint force and providing haptic feedback to the user to guide the user to place the tool in the target state; A method comprising: (Appendix 84) 1. A method for guiding a tool supported by a manipulator of a surgical system, the manipulator being operable in a semi-autonomous mode in which the manipulator moves the tool along a tool path, the tool being capable of moving to reorient the tool in response to user forces and torques applied by a user to the tool while the tool is still on the tool path; obtaining a recommended orientation for the tool; generating one or more virtual constraints based on the preferred orientation and the current orientation of the tool; calculating a constraint force adapted to attract the tool from the current orientation to the preferred orientation based on the one or more virtual constraints; controlling movement of the tool based on the constraint forces and providing haptic feedback to the user to guide the user to place the tool in the recommended orientation; A method comprising: (Appendix 85) 1. A method for guiding a tool supported by a manipulator of a surgical system, comprising: acquiring a plurality of alignment points and one or more target planes for the tool; generating one or more virtual constraints based on relative positions of the plurality of registration points and the one or more target planes; calculating constraint forces adapted to attract the tool to the one or more target planes based on the one or more virtual constraints; controlling movement of the tool based on the constraint forces and providing haptic feedback to guide a user to place the tool on the one or more target planes; A method comprising:

Claims

1. Tools and a manipulator that supports the tool and moves the tool in response to user forces and torques applied to the tool by the user; one or more sensors for measuring forces and torques applied to the tool; Control system and A surgical system comprising: the control system a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; a virtual simulator that simulates the dynamics of the tool in a virtual simulation based on the inputs from the one or more sensors and the constraint forces, and outputs a command posture; Equipped with the control system is configured to command the manipulator to move the tool based on the command posture, thereby providing haptic feedback to the user to guide the user to place the tool in or away from the target state. Surgical system.

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 allow 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 allow the user to reposition the tool away from the target location.

6. The surgical system of claim 1 , wherein the target state includes a target coordinate system, the tool includes a guided coordinate system, and the constraint force is adapted to attract the guided coordinate system to the target coordinate system.

7. The surgical system of claim 1 , wherein the guidance handler is configured to calculate the one or more virtual constraints for 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 comprises a user interface for enabling the one or more virtual constraints such that the constraint forces include force and torque components associated with attracting the tool to the target state.

9. The surgical system of claim 1 , wherein the guidance handler is configured to calculate the one or more virtual constraints based on a relationship between the current state and the goal state.

10. 2. The surgical system of claim 1, wherein each of the one or more virtual constraints has a value for a tuning parameter, and the guidance handler is configured to change the value of the tuning parameter based on a relationship between the current state and the goal state.

11. the one or more virtual constraints include a first virtual constraint having a tuning parameter at a first value and a second virtual constraint having a tuning parameter at a second value; 2. The surgical system of claim 1, wherein the first value is different from the second value and the calculated constraint force is adapted to attract or repel the tool more strongly as a result of the first virtual constraint compared to the second virtual constraint.

12. 2. The surgical system of claim 1, wherein the virtual simulator is configured to simulate the dynamics of the tool and generate the commanded position by representing the tool as a virtual rigid body having a virtual mass and applying the constraint forces to the virtual mass in the virtual simulation.

13. The control system includes: calculating an external force based on input from the one or more sensors; calculating a total force to be used in the virtual simulation based on the constraint force and the external force, wherein the external force may have a force component of sufficient magnitude and direction to overcome the constraint force; The surgical system of claim 1 , configured to perform the following:

14. The surgical system of claim 1 , wherein the tool comprises a burr or a drill, and the one or more virtual constraints include two virtual constraints defined to attract the burr or the drill into a desired orientation.

15. The surgical system of claim 1 , wherein the tool comprises a bar, and the one or more virtual constraints include three virtual constraints defined to attract the bar to a desired start position.

16. The surgical system of claim 1 , wherein the tool comprises a saw blade, and the one or more virtual constraints include three virtual constraints defined to attract the saw blade to a desired cutting plane.

17. 1. A non-transitory computer-readable medium containing instructions for guiding a tool supported by a manipulator of a surgical system, the manipulator supporting the tool and moving the tool in response to user forces and torques applied to the tool by a user; The instructions, when executed by one or more computers, receiving input from one or more sensors that measure forces and torques applied to the tool; obtaining a target state of the tool; generating one or more virtual constraints based on the target state and a current state of the tool; calculating, based on the one or more virtual constraints, constraint forces adapted to attract the tool to the target state or repel the tool from the target state; simulating the dynamics of the tool in a virtual simulation based on the inputs from the one or more sensors and the constraint forces; outputting a command posture based on the virtual simulation; Commanding the manipulator to move the tool based on the commanded orientation to provide the user with haptic feedback that guides the user to place the tool in or away from the goal state. A non-transitory computer-readable medium configured to:

18. 20. The non-transitory computer-readable medium of claim 17, wherein the goal 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.

19. 20. The non-transitory computer-readable medium of claim 18, 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.

20. The non-transitory computer-readable medium of claim 18 , further comprising allowing the user to reorient the tool away from the target orientation.

21. The non-transitory computer-readable medium of claim 18 , further comprising allowing the user to reposition the tool away from the target location.

22. 20. The non-transitory computer-readable medium of claim 17, wherein the goal state includes a goal coordinate system, the tool includes a guided coordinate system, and the constraint force is adapted to attract the guided coordinate system to the goal coordinate system.

23. 20. The non-transitory computer-readable medium of claim 17, further comprising calculating the one or more virtual constraints for one or more degrees of freedom based on a difference between the current state and the goal state.

24. 20. The non-transitory computer-readable medium of claim 17, further comprising enabling the one or more virtual constraints such that the constraint forces include force and torque components associated with attracting the tool to the target state.

25. The non-transitory computer-readable medium of claim 17 , further comprising calculating the one or more virtual constraints based on a relationship between the current state and the goal state.

26. 20. The non-transitory computer-readable medium of claim 17, comprising altering values ​​of tuning parameters of the one or more virtual constraints based on a relationship between the current state and the goal state.

27. setting a tuning parameter of a first virtual constraint of the one or more virtual constraints to a first value and setting a tuning parameter of a second virtual constraint of the one or more virtual constraints to a second value; 18. The non-transitory computer-readable medium of claim 17, wherein the first value is different from the second value and the calculated constraint force is adapted to attract or repel the tool more strongly as a result of the first virtual constraint compared to the second virtual constraint.

28. 20. The non-transitory computer-readable medium of claim 17, comprising simulating the dynamics of the tool to produce the commanded posture by representing the tool as a virtual rigid body having a virtual mass and applying the constraint forces to the virtual mass in the virtual simulation.

29. calculating an external force based on the input from the one or more sensors; calculating a total force to be used in the virtual simulation based on the constraint force and the external force, wherein the external force may have a force component of sufficient magnitude and direction to overcome the constraint force; 20. The non-transitory computer-readable medium of claim 17, comprising:

30. defining two virtual constraints of the one or more virtual constraints to attract the tool into a desired orientation; The non-transitory computer-readable medium of claim 17 , wherein the tool comprises a burr or a drill.

31. defining three virtual constraints of the one or more virtual constraints to attract the tool to a desired start position; The non-transitory computer-readable medium of claim 17 , wherein the tool comprises a bar.

32. defining three virtual constraints of the one or more virtual constraints to attract the tool to a desired cutting plane; The non-transitory computer-readable medium of claim 17 , wherein the tool comprises a saw blade.

33. Tools and a manipulator for supporting and moving the tool; Control system and A surgical system comprising: the control system a guidance handler that obtains a target state of the tool and generates one or more virtual constraints based on the target state and a current state of the tool; a constraint solver that calculates constraint forces adapted to attract the tool to the target state or repel the tool from the target state based on the one or more virtual constraints; Equipped with Movement of the tool is controlled by the manipulator based on the constraint forces, and haptic feedback is provided to guide a user to place the tool in or away from the target state. Surgical system.

Citation Information

Patent Citations

  • Apparatus and method for haptic rendering

    JP2009524149A

  • Robotic System and Method for Transitioning Between Operating Modes

    US20150265358A1

  • Robotic Surgical System And Method For Producing Reactive Forces To Implement Virtual Boundaries

    US20180353253A1