Robotic surgical system for guiding a tool along a path using hybrid
By adopting a hybrid automatic/manual control mode in the robot surgical system, combining force/torque sensors and predetermined tool paths, the problem of fatigue caused by continuous force application by users in the existing system and inaccurate control in automatic mode is solved, and efficient and precise movement of the tool along the tool path is achieved.
Patent Information
- Application Number
- CN202380064442.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-09
- Filing Date
- 2023-08-31
- Publication Date
- 2025-04-15
AI Technical Summary
The existing robotic surgical system needs to continuously apply force in manual mode, resulting in mental and physical fatigue; while in automatic mode, the user has less control over the tool and it is difficult to accurately guide the tool along the tool path.
A robot surgical system with a hybrid automatic/manual control mode is adopted to measure the force exerted by the user through a force/torque sensor, and combines a predetermined tool path and feed rate to automatically adjust the movement speed and direction of the tool to ensure the stable movement of the tool along the predetermined path.
It reduces the fatigue caused by the user's force exerting in manual mode, improves the tool control accuracy and stability in automatic mode, and realizes efficient and precise movement of the tool along the tool path.
Smart Images

Figure CN119836274A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and all benefits of U.S. Provisional Patent Application No. 63 / 405,083, filed on September 9, 2022, the entire contents of which are hereby incorporated by reference in their entirety. Technical Field
[0003] The present disclosure relates to systems and methods for guiding a surgical tool along a predetermined path using a hybrid automatic / manual control scheme. Background Art
[0004] Robotic surgical systems that perform surgical procedures are well known and typically include a manipulator and a surgical tool coupled to the manipulator. Typically, the surgical tool is used to remove tissue at a surgical site. Robotic surgical systems that can operate in different operating modes have been described.
[0005] One mode is a manual operation mode, whereby the robotic surgical system senses external forces / torques manually applied to the surgical tool by the user, and commands the positioning of the surgical tool based on the applied forces / torques to mimic the user's desired motion. Thus, in the manual mode, the robotic surgical system typically positions the surgical tool according to the user's intent and desire. However, in the manual mode, it may be mentally and physically tiring for the user to direct the movement of the surgical tool.
[0006] The robotic surgical system is also described as being operable in an automatic mode in which the robotic surgical system commands a manipulator to autonomously move a surgical tool along a predetermined path without force applied by a user. However, when operating in an automatic mode, the user may perceive that he or she has less control over the surgical tool.
[0007] In addition, techniques for assisting a user in guiding a surgical tool relative to a tool path have been described. One technique involves using an attractive force or gravity well to move a tool from a current position off the tool path to a position on the tool path. The magnitude and direction of the attractive force depends on the pose of the tool and the distance of the tool from the tool path. In addition, the boundaries of the attractive force are virtual and may not be easily identified by the user when moving the tool. In turn, the attractive force may result in unpredictable or inconsistent responses, which may cause some users to perceive and thus have less control over the tool.
[0008] Another technique involves using a manual guidance mode, as described in U.S. patent application publication US2020 / 0281676 A1, entitled “Systems and Methods for Controlling Movement of a Surgical Tool Along a Predefined Path,” in which a user applies forces / torques that are used to determine how far the tool is advanced along the tool path. In manual guidance mode, the tool is constrained to the tool path on 2DOF normal to the tool path, but is unconstrained on 1DOF tangent to the tool path. In effect, this enables the tool to move freely along the tool path based on manual force input, but the constraints guide the user by limiting the manual movement of the tool to along the tool path. However, in manual guidance mode, the user is still required to continuously apply forces / torques to the tool in order to move the tool along the path to the final destination. Therefore, just as with manual mode, the user may be mentally and physically fatigued using manual guidance mode to guide the movement of surgical tools.
[0009] There is a need in the art for mobile robotic systems and methods that address these challenges by providing a mode for controlling the movement of a surgical tool in a manner that utilizes the benefits of both manual and autonomous modes to guide the tool along a tool path. Summary of the invention
[0010] 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 is it intended to identify key features or essential features of the claimed subject matter.
[0011] According to a first aspect, a robotic surgical system is provided, which includes: a surgical tool; a manipulator configured to support the surgical tool, the manipulator including a plurality of links and joints; a force / torque sensor configured to measure the force / torque applied to the surgical tool by a user; and a control system configured to: obtain a predetermined tool path for the surgical tool; command the manipulator to perform automatic advancement of the surgical tool in a first path direction and along the predetermined tool path according to a predetermined feed rate; during the automatic advancement of the surgical tool, receive input from the force / torque sensor in response to the force / torque applied to the surgical tool by the user; evaluate the effect of the input from the force / torque sensor on the automatic advancement of the surgical tool to determine an effective feed rate and an effective path direction of the surgical tool relative to the predetermined tool path; and determine the commanded action of the manipulator and the surgical tool relative to the predetermined tool path based on the effective feed rate and the effective path direction.
[0012] According to a second aspect, a method for operating a robotic surgical system is provided, the robotic surgical system comprising: a surgical tool; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure a force / torque applied to the surgical tool by a user; and a control system, the method comprising causing the control system to perform the following steps: obtaining a predetermined tool path for the surgical tool; commanding the manipulator to perform automatic advancement of the surgical tool in a first path direction and along the predetermined tool path according to a predetermined feed rate; receiving input from the force / torque sensor in response to the force / torque applied to the surgical tool by the user during the automatic advancement of the surgical tool; evaluating the effect of the input from the force / torque sensor on the automatic advancement of the surgical tool to determine an effective feed rate and an effective path direction of the surgical tool relative to the predetermined tool path; and determining the commanded action of the manipulator and the surgical tool relative to the predetermined tool path based on the effective feed rate and the effective path direction.
[0013] According to a third aspect, a robotic surgical system is provided, which includes: a surgical tool; a manipulator configured to support the surgical tool; a force / torque sensor configured to measure the force / torque applied to the surgical tool; and a control system configured to: obtain a predetermined tool path for the surgical tool; command the manipulator to perform automatic advancement of the surgical tool in a first path direction and along the predetermined tool path according to a predetermined feed rate; during the automatic advancement of the surgical tool, receive input from the force / torque sensor in response to the force / torque applied to the surgical tool by a user; evaluate the effect of the input from the force / torque sensor on the automatic advancement of the surgical tool to determine an effective feed rate of the surgical tool relative to the predetermined tool path; and determine the commanded action of the manipulator and the surgical tool relative to the predetermined tool path based on the effective feed rate.
[0014] According to a fourth aspect, there is provided a method of operating the robotic surgical system of the third aspect.
[0015] According to a fifth aspect, a robotic surgical system is provided, comprising: a surgical tool; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure the force / torque applied to the surgical tool by a user; and a control system configured to: command the manipulator to perform automatic advancement of the surgical tool along a predetermined tool path according to a feed rate; and modify the feed rate based on the measured force / torque applied to the surgical tool.
[0016] According to a sixth aspect, there is provided a method of operating the robotic surgical system of the fifth aspect.
[0017] According to a seventh aspect, a robotic surgical system is provided, comprising: a surgical tool; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure the force / torque applied to the surgical tool by a user; and a control system configured to: command the manipulator to perform automatic advancement of the surgical tool along a predetermined tool path according to a first path direction; and command the manipulator to advance the surgical tool along a predetermined tool path according to a second path direction opposite to the first path direction based on the measured force / torque applied to the surgical tool.
[0018] According to an eighth aspect, there is provided a method of operating the robotic surgical system of the seventh aspect.
[0019] Any of the above aspects may be combined in whole or in part.
[0020] Any of the above aspects may be combined in whole or in part with any of the following embodiments:
[0021] The effective feed rate may be greater than the predetermined feed rate. The effective path direction may be the first path direction. The commanded action may include the automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the effective feed rate. The automatic advancement of the surgical tool according to the effective feed rate may be based on a temporary input from a force / torque sensor. The automatic advancement of the surgical tool according to the effective feed rate may be configured to continue in the absence of input from the force / torque sensor. The effective feed rate may be less than the predetermined feed rate. The effective path direction may be the first path direction. The commanded action may include the automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the effective feed rate or the predetermined feed rate. The effective path direction may be a second path direction opposite to the first path direction. The commanded action may include the advancement of the surgical tool in the second path direction and along the predetermined tool path according to the effective feed rate. The commanded action may include, for example, the attempted automatic advancement of the surgical tool in the first path direction while preventing the advancement of the surgical tool in the second path direction. The control system may be configured to detect the absence of input from the force / torque sensor. In response, the control system may command the manipulator to start or resume the automatic advancement of the surgical tool in the first path direction and according to a predetermined feed rate or according to a previously effective feed rate along the predetermined tool path. The predetermined tool path may include an end position. The control system may be configured to command the manipulator to perform the automatic advancement of the surgical tool in the first path direction and according to a predetermined feed rate or an effective feed rate along the predetermined tool path to guide the surgical tool to the end position. The surgical tool may be a saw. The end position may be configured to align the saw with a cutting plane associated with a target site. The surgical tool may be a cutting drill or a drill bit. The end position may be configured to align the cutting drill or drill bit with the starting point of the tool path associated with the target site, or with the target axis associated with the target site. The surgical tool may be configured to be enabled to remove tissue. The control system may be configured to deactivate the surgical tool during the automatic advancement of the surgical tool along the predetermined tool path. The control system may determine a virtual acceleration vector based on input from a force / torque sensor. The control system may evaluate the effect of the virtual acceleration vector on the automatic advancement of the surgical tool. The control system may determine an effective feed rate and effective path direction of the surgical tool relative to a predetermined tool path. To determine a virtual acceleration vector, the control system may model the surgical tool as a virtual rigid body including a virtual mass. The control system may calculate a force projection to the virtual rigid body based on the force / torque applied to the surgical tool. The control system may calculate a virtual acceleration vector based on the force projection and the virtual mass.In order to determine the effective feed rate and effective path direction of the surgical tool relative to the predetermined tool path, the control system can calculate the tool path direction based on the section of the predetermined tool path on which the surgical tool is currently located. The control system can generate an acceleration projection along the predetermined tool path by calculating the dot product of the tool path direction and the virtual acceleration vector. The control system can define virtual tool path constraints, which are configured to limit the movement of the surgical tool to along the predetermined tool path. The control system can be configured to simulate the dynamic characteristics of the surgical tool in a virtual simulation based on the virtual tool path constraints, the predetermined feed rate and / or the virtual acceleration vector, thereby evaluating the effect of the virtual acceleration vector on the automatic advancement of the surgical tool. The control system can command the manipulator to start automatic advancement in response to the force / torque sensor receiving input from the force / torque manually applied to the surgical tool by the user.
[0022] Any of the above-described embodiments may be combined in whole or in part. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Advantages of the present disclosure will be readily appreciated as the same will be better understood by referring to the following detailed description considered in conjunction with the accompanying drawings.
[0024] Figure 1 is a perspective view of a robotic surgical system according to one embodiment.
[0025] Figure 2 is a block diagram of an example control system for controlling a robotic surgical system.
[0026] Figure 3 is a functional block diagram of modules implemented by a control system according to one embodiment.
[0027] Figure 4 shows an example output of the boundary generator.
[0028] Figure 5 shows example output of the path generator.
[0029] Figure 6 is a flow chart of a method involving steps for mixed mode control of guiding a tool along a tool path according to one embodiment.
[0030] Figure 7 Examples of automated advancement of a tool (eg, a saw) along various tool paths for directing the saw to various cutting planes associated with the anatomy are shown.
[0031] Figure 8 is a diagram illustrating a tool on a segment of a tool path according to one example, wherein an external force (Fext) is applied to the tool.
[0032] Fig. 9 is a diagram showing a virtual rigid body model of a tool, where a series of calculations are performed to calculate the acceleration projection along the tool path based on the external forces (Fext).
[0033] Fig.10 is a block diagram of modules operable by a behavioral controller of a control system to implement aspects of a hybrid control mode.
[0034] Fig.11A is a simplified diagram of a robotic surgical system showing an example of automatic advancement of a tool along a tool path, wherein no manual force is applied to the tool during advancement.
[0035] Fig. 11B It shows that for Fig.11A An example of a graph of the corresponding feed rate of the tool for each time step.
[0036] Fig. 12A is a simplified diagram of a robotic surgical system showing an example of a hybrid control mode in which a positive manual input is applied to a tool by a user to accelerate the automatic advancement of the tool along a tool path.
[0037] Fig. 12B It shows that for Fig. 12A An example of a graph of the corresponding feed rate of the tool for each time step.
[0038] Fig.13A is a simplified diagram of a robotic surgical system illustrating an example of a hybrid control mode in which a user applies a positive manual input to move a tool in a forward direction and then the user releases the positive manual input to resume automatic advancement of the tool in the forward direction along the tool path.
[0039] Fig. 13B It shows that for Fig.13A An example of a graph of the corresponding feed rate of the tool for each time step.
[0040] Fig.14A is a simplified diagram of a robotic surgical system illustrating an example of a hybrid control mode in which a reverse manual input is applied to the tool by the user to decelerate the forward automatic advancement of the tool along the tool path.
[0041] Fig. 14B It shows that for Fig.14A An example of a graph of the corresponding feed rate of the tool for each time step.
[0042] Fig.15Ais a simplified diagram of a robotic surgical system showing an example of a hybrid control mode in which a reverse manual input is applied to the tool by the user to temporarily override the automatic advancement and move the tool in the opposite direction along the tool path.
[0043] Fig. 15B It shows that for Fig.15A An example of a graph of the corresponding feed rate of the tool for each time step.
[0044] Fig.16A is a simplified diagram of a robotic surgical system illustrating an example of a hybrid control mode in which a user applies a reverse manual input to move a tool in a reverse direction and then the user releases the reverse manual input to resume automatic advancement of the tool along the tool path in a forward direction.
[0045] Fig. 16B It shows that for Fig.16A An example of a graph of the corresponding feed rate of the tool for each time step.
[0046] Fig.17A is a simplified diagram of a robotic surgical system showing an example of a hybrid control mode in which a reverse manual input is applied to the tool by the user to temporarily counteract the automatic advancement of the tool so that the tool remains substantially stationary along the tool path.
[0047] Fig. 17B It shows that for Fig.17A An example of a graph of the corresponding feed rate of the tool for each time step.
[0048] Fig.18A is a simplified diagram of a robotic surgical system showing an example of a hybrid control mode in which external forces are applied to the tool through collision with an object to temporarily counteract the automatic advancement of the tool so that the tool remains substantially stationary along the tool path.
[0049] Fig.18B It shows that for Fig.18A An example of a graph of the corresponding feed rate of the tool for each time step. DETAILED DESCRIPTION
[0050] I. Example System Overview
[0051] refer to Figure 1 , a robotic surgical system 10 is shown. The system 10 is used to treat a surgical site or anatomical volume (A) of a patient 12, such as bone or soft tissue. Figure 1 , Patient 12 was undergoing a surgical procedure. Figure 1Anatomical structures in the system 10 include femur F and tibia T of patient 12. The surgical procedure may be related to tissue removal or other forms of treatment. Treatment may include cutting, coagulation, damaged tissue, other in situ tissue treatments, etc. In some examples, the surgical procedure includes partial or complete knee joint or hip replacement surgery, shoulder replacement surgery, spinal surgery or ankle surgery. In some examples, system 10 is designed to excise the material to be replaced by a surgical implant, and the surgical implant, such as hip joint and knee joint implant, includes unicompartmental knee implant, bicompartmental knee implant, multicompartmental knee implant or total knee joint implant. Some of these types of implants are shown in the U.S. Patent Application Publication 2012 / 0330429 named "Prosthetic Implant and Method of Implantation", and the disclosure of the patent application is incorporated herein by reference accordingly. System 10 and technology disclosed herein can be used for performing other surgical procedures or non-surgical procedures, or can be used for industrial applications or other applications utilizing a robotic system.
[0052] The system 10 includes a manipulator 14. The manipulator 14 has a base 16 and a plurality of links 18. A manipulator cart 17 supports the manipulator 14 such that the manipulator 14 is secured to the manipulator cart 17. The links 18 collectively form one or more arms of the manipulator 14. The manipulator 14 may have a tandem arm configuration (e.g., Figure 1 ), parallel arm configuration or any other suitable manipulator configuration. In other examples, more than one manipulator 14 can be used in a multi-arm configuration.
[0053] exist Figure 1 In the example shown, the manipulator 14 includes a plurality of joints J and a plurality of joint encoders 19 located at the joints J for determining position data of the joints J. For simplicity, only one joint encoder 19 is shown in FIG. Figure 1 , although other joint encoders 19 may be similarly shown. The manipulator 14 according to one example has six joints J1 to J6, which implement at least six degrees of freedom (DOF) of the manipulator 14. However, the manipulator 14 may have any number of degrees of freedom and may have any suitable number of joints J and may have redundant joints.
[0054] The manipulator 14 does not necessarily require joint encoders 19, but may alternatively or additionally use motor encoders on the motors present at each joint J. In addition, the manipulator 14 does not necessarily require rotational joints, but may alternatively or additionally use one or more translational joints. Any suitable combination of joint types is contemplated.
[0055] The base 16 of the manipulator 14 is a portion of the manipulator 14 that provides a fixed reference coordinate system for the manipulator 14 or other components of the system 10 in general. The origin of the manipulator coordinate system MNPL is defined at a fixed reference of the base 16. The base 16 may be defined relative to any suitable portion of the manipulator 14, such as one or more of the links 18. Alternatively or in addition, the base 16 may be defined relative to the manipulator cart 17, such as at a location where the manipulator 14 is physically attached to the manipulator cart 17. In one example, the base 16 is defined at the intersection of the axes of the joints J1 and J2. Therefore, although the joints J1 and J2 are moving parts in reality, the intersection of the axes of the joints J1 and J2 is still a virtual fixed reference pose that provides both a fixed position and orientation reference and does not move relative to the manipulator 14 and / or the manipulator cart 17. In other examples, the manipulator 14 can be a handheld manipulator, where the base 16 is a base portion of the tool (e.g., the portion held by a user's bare hand) and the tool tip is movable relative to the base portion. The base portion has a reference coordinate system that is tracked, and the tool tip has a tool tip coordinate system that is calculated relative to the reference coordinate system (e.g., via motors and / or joint encoders and forward kinematics calculations). The movement of the tool tip can be controlled to follow a path because its pose relative to the path can be determined.
[0056] The manipulator 14 and / or the manipulator cart 17 accommodates a manipulator controller 26 or other type of control unit. The manipulator controller 26 may include one or more computers, or any other suitable form of controller that guides the movement of the manipulator 14. The manipulator controller 26 may have a central processing unit (CPU) and / or other processors, a memory (not shown) and a storage device (not shown). The manipulator controller 26 is loaded with software as described below. The processor may include one or more processors for controlling the operation of the manipulator 14. The processor may be any type of microprocessor, multiprocessor and / or multi-core processing system. The manipulator controller 26 may additionally or alternatively include: one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits and / or other suitable hardware, software or firmware capable of implementing the functions described herein. The term processor is not intended to limit any embodiment to a single processor. The manipulator 14 may also include a user interface UI having one or more displays and / or input devices (e.g., buttons, keyboards, mice, microphones (voice activation), gesture control devices, touch screens, etc.).
[0057] Tool 20 is coupled to manipulator 14 and is movable relative to base 16 to interact with anatomical structures in certain modes. Tool 20 is a physical and surgical tool and in certain embodiments is or forms a part of an end effector 22 supported by manipulator 14. Tool 20 can be grasped by a user. One possible arrangement of manipulator 14 and tool 20 is described in U.S. Patent 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes", the disclosure of which is hereby incorporated herein by reference. Manipulator 14 and tool 20 may be arranged in alternative configurations. Tool 20 may be similar to the tool shown in U.S. Patent Application Publication 2014 / 0276949, entitled "End Effector of a Surgical Robotic Manipulator", filed on March 15, 2014, which is hereby incorporated herein by reference.
[0058] The tool 20 may include an energy applicator 24 designed to contact and remove tissue from the patient 12 at the surgical site. In one example, the energy applicator 24 is a file 25. The file 25 may be substantially spherical and include a spherical center, a radius (r), and a diameter. Alternatively, the energy applicator 24 may be a drill, a saw blade, an ultrasonic vibration tip, etc. The tool 20 and / or the energy applicator 24 may include any geometric features, such as circumference, circumference, radius, diameter, width, length, volume, area, surface / plane, range of motion envelope (along any one or more axes), etc. The geometric features may be considered to determine how to position the tool 20 relative to the tissue at the surgical site to perform the desired treatment. In some embodiments described herein, for convenience and ease of description, a spherical file with a tool center point (TCP) will be described, but it is not intended to limit the tool 20 to any particular form. In other examples, the tool 20 does not include an energy applicator 24. For example, the tool 20 may be a slotted cutting guide for a saw, a guide tube for receiving another tool, etc.
[0059] The tool 20 may include a tool controller to control the operation of the tool 20, such as controlling the power of the tool (e.g., controlling the power of the rotary motor of the tool 20), controlling the movement of the tool 20, controlling the irrigation / suction and / or similar operations of the tool 20. The tool controller may communicate with the manipulator controller 26 or other components. The tool 20 may also include a user interface UI having one or more displays and / or input devices (e.g., buttons, keyboard, mouse, microphone (voice activation), gesture control device, touch screen, etc.). For example, one of the user input devices on the user interface UI of the tool 20 may be a tool input (e.g., a switch or other form of user input device) having a first input state and a second input state (see Figure 1 ). The tool input can be actuated (e.g., pressed and held) by the user to be placed in a first input state, and can be released to be placed in a second input state. The tool 20 can have a grip on which the tool input is located. In some versions, the tool input is a presence detector that detects the presence of a user's hand, such as a momentary contact switch that switches between an on / off state, a capacitive sensor, an optical sensor, etc. The tool input is thus configured such that a first input state indicates that the user is actively engaging the tool 20 and a second input state indicates that the user has released the tool 20. The tool input can be a continuously activated device, i.e., an input that must be continuously actuated to allow the tool 20 to move in a manual mode or a semi-autonomous mode depending on which user input is actuated. For example, when the user continuously actuates the tool input and the manual mode is enabled, the manipulator 14 will move in response to the input forces and torques applied by the user, and the control system 60 will enforce the virtual boundary 71 to protect the patient's anatomy. When the tool input is released, input from the force / torque sensor S may be disabled so that the manipulator 14 is no longer responsive to the forces and torques applied to the tool 20 by the user.
[0060] The manipulator controller 26 controls the state (position and / or orientation) of the tool 20 (e.g., TCP) relative to a coordinate system such as the manipulator coordinate system MNPL. The manipulator controller 26 can control the (linear or angular) velocity, acceleration or other motion derivatives of the tool 20. In one example, the tool center point (TCP) is a predetermined reference point defined at the energy applicator 24. The TCP has a known or computable (i.e., not necessarily static) pose relative to other coordinate systems. The geometry of the energy applicator 24 is known in the TCP coordinate system or defined relative to the TCP coordinate system. The TCP can be located at the spherical center of the file 25 of the tool 20 so that only one point is tracked. The TCP can be defined in different ways depending on the configuration of the energy applicator 24. The manipulator 14 can use a joint / motor encoder or any other non-encoder position sensing method to enable the TCP's pose to be determined. The manipulator 14 can use joint measurements to determine the TCP pose and / or can use technology to directly measure the TCP pose. The control of the tool 20 is not limited to the center point. For example, any suitable primitive, grid, etc. can be used to represent the tool 20.
[0061] The system 10 also includes a navigation system 32. An example of a navigation system 32 is described in U.S. Pat. No. 9,008,757, filed on Sep. 24, 2013, entitled "Navigation System Including Optical and Non-Optical Sensors," which is hereby incorporated by reference. The navigation system 32 tracks the movement of various objects. Such objects include, for example, the manipulator 14, the tool 20, and anatomical structures (e.g., the femur F and the tibia T). The navigation system 32 tracks these objects to acquire state information of each object relative to a (navigation) localizer coordinate system LCLZ. A transformation may be used to transform coordinates in the localizer coordinate system LCLZ to the manipulator coordinate system MNPL and / or vice versa.
[0062] The navigation system 32 includes a cart assembly 34 that houses a navigation controller 36, and / or other type of control unit. A navigation user interface UI is in operative communication with the navigation controller 36. The navigation user interface includes one or more displays 38. The navigation system 32 is capable of displaying a graphical representation of the relative status of the tracked object to the user using the one or more displays 38. The navigation user interface UI also includes one or more input devices to input information into the navigation controller 36 or otherwise select / control certain aspects of the navigation controller 36. Such input devices include interactive touch screen displays. However, the input device may include any one or more of a button, a keyboard, a mouse, a microphone (voice activation), a gesture control device, etc.
[0063] The navigation system 32 also includes a navigation localizer 44 coupled to the navigation controller 36. In one example, the localizer 44 is an optical localizer and includes a camera unit 46. The camera unit 46 has an external housing 48 that houses one or more optical sensors 50. The localizer 44 may include its own localizer controller 49 and may also include a camera VC.
[0064] 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, and a second patient tracker 56. Figure 1 In the example shown, the manipulator tracker is coupled to the tool 20 (i.e., tracker 52A), the first patient tracker 54 is coupled to the femur F of the patient 12, and the second patient tracker 56 is coupled to the tibia T of the patient 12. In this example, the patient trackers 54, 56 are coupled to the skeletal parts. A pointer tracker PT is firmly attached to the pointer P, which is used to align the anatomical structure with the localizer coordinate system LCLZ. The manipulator trackers 52A, 52B may be attached to any suitable component of the manipulator 14 other than or in addition to the tool 20, such as the base 16 (i.e., tracker 52B), or any one or more links 18 of the manipulator 14. The trackers 52A, 52B, 54, 56, PT may be fixed to their respective components in any suitable manner. For example, the trackers may be rigidly fixed, flexibly connected (fiber optics), or not physically connected at all (ultrasound), as long as there is a suitable (supplementary) way to determine the relationship (measurement) of the respective tracker to the object associated with it.
[0065] 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, 56, PT may have passive markers, such as reflectors that reflect light emitted from the camera unit 46. Other suitable markers not specifically described herein may be utilized.
[0066] The locator 44 tracks the trackers 52A, 52B, 54, 56, PT to determine the state of each of the trackers 52A, 52B, 54, 56, PT, which respectively correspond to the state of the objects to which they are respectively attached. The locator 44 may perform known triangulation techniques to determine the state of the trackers 52, 54, 56, PT and the associated objects. The locator 44 provides the state of the trackers 52A, 52B, 54, 56, PT to the navigation controller 36. In one example, the navigation controller 36 determines the state of the trackers 52A, 52B, 54, 56, PT and transmits it to the manipulator controller 26. As used herein, the state of an object includes, but is not limited to, data defining the position and / or orientation of the tracked object or equivalents / derivations of the position and / or orientation. For example, the state may be the pose of the object, and may include linear velocity data, and / or angular velocity data, and the like.
[0067] The navigation controller 36 may include one or more computers, or any other suitable form of controller. The navigation controller 36 has a central processing unit (CPU) and / or other processors, a non-transitory memory (not shown), and a storage device (not shown). The processor may be any type of processor, microprocessor, or multiprocessor system. The navigation controller 36 is loaded with software. For example, the software converts the signal received from the locator 44 into data representing the position and orientation of the tracked object. The navigator controller 36 may additionally or alternatively include: one or more microcontrollers, field programmable gate arrays, systems on a chip, discrete circuits, and / or other suitable hardware, software, or firmware capable of implementing the functions described herein. The term processor is not intended to limit any implementation to a single processor.
[0068] Although one example of the navigation system 32 is shown as employing triangulation techniques to determine object states, the navigation system 32 may have any other suitable configuration for tracking the manipulator 14 , the tool 20 , and / or the patient 12 .
[0069] In another example, the navigation system 32 and / or the localizer 44 are based on ultrasound. For example, the navigation system 32 may include an ultrasound imaging device coupled to the navigation controller 36. The ultrasound imaging device images any of the aforementioned objects (e.g., the manipulator 14, the tool 20, and / or the patient 12) and generates a status signal to the navigation controller 36 based on the ultrasound image. The ultrasound image may be 2-D, 3-D, or a combination of both. The navigation controller 36 may process the image in near real time to determine the state of the object. The ultrasound imaging device may have any suitable configuration and may be different from Figure 1 A camera unit 46 is shown.
[0070] In another example, the navigation system 32 and / or the locator 44 are radio frequency (RF) based. For example, the navigation system 32 may include an RF transceiver coupled to the navigation controller 36. The manipulator 14, tool 20, and / or patient 12 may include an RF transmitter or repeater attached thereto. The RF transmitter or repeater may be passive or actively powered. The RF transceiver transmits an RF tracking signal based on the RF signal received from the RF transmitter and generates a status signal to the navigation controller 36. The navigation controller 36 may analyze the received RF signal to associate a relevant status therewith. The RF signal may have any suitable frequency. The RF transceiver may be positioned in any suitable location to effectively track an object using the RF signal. In addition, the RF transmitter or repeater may have any suitable structural configuration, which may be largely related to the embodiment of the present invention. Figure 1 The trackers 52A, 52B, 54, 56, PT shown are different.
[0071] In yet another example, the navigation system 32 and / or the locator 44 are electromagnetic based. For example, the navigation system 32 may include an EM transceiver coupled to the navigation controller 36. The manipulator 14, tool 20, and / or patient 12 may include EM components attached thereto, such as any suitable magnetic tracker, electromagnetic tracker, inductive tracker, etc. The tracker may be passive or actively powered. The EM transceiver generates an EM field and generates a status signal to the navigation controller 36 based on the EM signal received from the tracker. The navigation controller 36 may analyze the received EM signal to associate a relevant status therewith. Likewise, this example of the navigation system 32 may have an EM transceiver coupled to the navigation controller 36. Figure 1 The navigation system 32 is shown in different configurations.
[0072] The navigation system 32 may have any other suitable components or structures not specifically listed herein. In addition, any of the techniques, methods, and / or components described above with respect to the illustrated navigation system 32 may be implemented or provided for any of the other examples of the navigation system 32 described herein. For example, the navigation system 32 may use only inertial tracking or any combination of tracking techniques, and may additionally or alternatively include optical fiber-based tracking, machine vision tracking, and the like.
[0073] refer to Figure 2 The system 10 includes a control system 60 that includes, among other components, a manipulator controller 26, a navigation controller 36, and a tool controller 21. The control system 60 also includes Figure 3One or more software programs and software modules shown. A software module may be part of one or more programs that operate on a manipulator controller 26, a navigation controller 36, a tool controller 21, or any combination thereof to process data to assist in the control of the system 10. The software program and / or module includes computer-readable instructions stored in a non-transitory memory 64 on the manipulator controller 26, the navigation controller 36, the tool controller 21, or a combination thereof to be executed by one or more processors 70 of the controller 21, 26, 36. The memory 64 may be any suitable memory configuration, such as RAM, non-volatile memory, etc., and may be implemented locally or from a remote database. In addition, a software module for prompting a user and / or communicating with a user may form part of one or more programs and may include instructions stored in a memory 64 on the manipulator controller 26, the navigation controller 36, the tool controller 21, or any combination thereof. The user may interact with any of the input devices of the navigation user interface UI or other user interface UI to communicate with the software module. The user interface software may run on a device separate from the manipulator controller 26, the navigation controller 36, and / or the tool controller 21.
[0074] The control system 60 may include any suitable configuration of input, output, and processing devices suitable for implementing the functions and methods described herein. The control system 60 may include the manipulator controller 26, the navigation controller 36, or the tool controller 21, or any combination thereof, or may include only one of these controllers. These controllers may be controlled via, for example, Figure 2 The control system 60 may communicate via a wired bus or communication network as shown, via wireless communication, or in other ways. The control system 60 may also be referred to as a controller. The control system 60 may include one or more microcontrollers, field programmable gate arrays, systems on a chip, discrete circuits, sensors, displays, user interfaces, indicators, and / or other suitable hardware, software, or firmware capable of implementing the functions described herein.
[0075] refer to Figure 3 , the software used by the control system 60 includes a boundary generator 66. Figure 4 As shown, the boundary generator 66 is a software program or module that generates a virtual boundary 71 for constraining the movement and / or operation of the tool 20. The virtual boundary 71 can be one-dimensional, two-dimensional, or three-dimensional, and can include points, lines, axes, trajectories, planes, or other shapes, including complex geometric shapes. In some embodiments, the virtual boundary 71 is a surface defined by a triangular mesh. Such a virtual boundary 71 may also be referred to as a virtual object. The virtual boundary 71 may be defined with respect to an anatomical model AM such as a 3D skeletal model. Figure 4In the example of , the virtual boundary 71 is a planar boundary to depict five planes of the entire knee implant and is associated with the 3D model of the femur F. The anatomical model AM is aligned to one or more patient trackers 54, 56 so that the virtual boundary 71 becomes associated with the anatomical model AM. The virtual boundary 71 can be implant-specific, such as defined based on the size, shape, volume, etc. of the implant, and / or patient-specific, such as defined based on the patient's anatomical structure. The virtual boundary 71 can be a boundary created before surgery, during surgery, or a combination thereof. In other words, the virtual boundary 71 can be defined before the start of the surgical procedure, during the surgical procedure (including during tissue removal), or a combination thereof. In any case, the control system 60 obtains the virtual boundary 71 by storing / retrieving the virtual boundary 71 in / from the memory, obtaining the virtual boundary 71 from the memory, creating the virtual boundary 71 before surgery, creating the virtual boundary 71 during surgery, etc.
[0076] The manipulator controller 26 and / or navigation controller 36 tracks the state of the tool 20 relative to the virtual boundary 71. In one example, the state of the TCP is measured relative to the virtual boundary 71 in order to determine the haptic forces to be applied to the virtual rigid body model via the virtual simulation 88 so that the tool 20 maintains a desired positional relationship with the virtual boundaries 71 (e.g., does not move beyond them). The results of the virtual simulation 88 are commanded to the manipulator 14. The control system 60 controls / positions the manipulator 14 in a manner that simulates how a physical handpiece would respond in the presence of a physical boundary / obstacle. The boundary generator 66 may be implemented on the manipulator controller 26. Alternatively, the boundary generator 66 may be implemented on other components such as the navigation controller 36.
[0077] refer to Figure 3 and Figure 5, the path generator 68 is another software program or module run by the control system 60. In one example, the path generator 68 is run by the manipulator controller 26. The path generator 68 generates a tool path TP through which the tool 20 is to pass. 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, etc. The tool path TP may be defined relative to the manipulator 14 coordinate system MNPL, the locator coordinate system LCLZ, the coordinate system of the tool 20, the coordinate system of the anatomical structure, or any combination thereof. The tool path TP may be virtually attached to the coordinate system of the corresponding object so that if the object is to be moved, the tool path TP will move accordingly. The tool path TP may be implant-specific, such as defined based on the size, shape, volume, etc. of the implant, and / or may be patient-specific, such as defined based on the anatomical structure of the patient. The tool path TP may be associated with a virtual model of the anatomical structure, and the virtual model and the tool path may be registered to the anatomical structure using the navigation system 32. The control system 60 may generate or obtain the tool path TP by storing / retrieving the tool path TP in / from a memory, creating the tool path TP before an operation, creating the tool path TP during an operation, etc. The tool path TP may have any 3D shape or combination of shapes, such as circular, spiral / corkscrew, straight, curved, combinations thereof, etc.
[0078] In one embodiment, the tool path TP is defined as a guide or alignment path. In one example, the tool path TP is used to guide the tool 20 to move to a position where the tool 20 is positioned to begin a surgical procedure or step. For example, if the tool 20 is a saw blade, the tool path TP can be configured to guide the saw blade to align with a cutting plane associated with the anatomical structure. If the tool 20 is a cutting drill, the tool path TP can be configured to guide the cutting drill to a starting point when preparing for automatic cutting. The introduction path can be virtually connected from the starting point to another cutting path to remove tissue. The tool path TP can also enable the tool 20 to move along a predetermined motion path for the purpose of aligning components of the manipulator 14 to the navigation system 32. The navigation system 32 can be used to align the tool path TP to the anatomical structure so that the tool path TP is virtually fixed to the anatomical structure. In this way, the tool path TP position in space will be automatically updated to take into account any movement of the anatomical structure.
[0079] In another embodiment, Figure 5As shown, tool path TP is defined as a tissue removal path. An example of a tissue removal path described herein includes a milling path 72. The term "milling path" refers to the path of the tool 20 near the target site for milling the anatomical structure, and is not intended to require that the tool 20 be operable to mill the anatomical structure throughout the duration of the path. For example, as will be understood in further detail below, the milling path 72 may include a portion or section in which the tool 20 transitions from one position to another without milling. In addition, other forms of tissue removal along the milling path 72 may be adopted, such as tissue ablation, etc. The milling path 72 may be a predefined path created before surgery, during surgery, or a combination thereof. In other words, the milling path 72 may be defined before the start of the surgical procedure, during the surgical procedure (including during tissue removal), or a combination thereof.
[0080] One example of a system and method for generating a virtual boundary 71 and / or a milling path 72 is described in U.S. Pat. No. 9,119,655, entitled “Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes,” the disclosure of which is hereby incorporated herein by reference. In some examples, the virtual boundary 71 and / or the tool path TP may be generated offline, rather than on the manipulator controller 26 or the navigation controller 36. Thereafter, the virtual boundary 71 and / or the tool path TP may be used by the manipulator controller 26 at runtime.
[0081] refer to Figure 3 , two additional software programs or modules run on the manipulator controller 26 and / or the navigation controller 36. One software module executes behavioral control 74. Behavior control 74 is the process of calculating data indicative of the next command pose and / or orientation (e.g., pose) of the tool 20. In some cases, only the position of the TCP is output from the behavior control 74, while in other cases, both the position and orientation of the tool 20 are output. The outputs from the boundary generator 66, the path generator 68, and the force / torque sensor S can be fed as inputs to the behavior control 74 to determine the next command pose and / or orientation of the tool 20. The behavior control 74 can process these inputs as well as one or more virtual constraints described further below to determine the commanded pose.
[0082] The second software module performs motion control 76. One aspect of motion control is the control of the manipulator 14. The motion control 76 receives data defining the next command pose from the behavior control 74. Based on this data, the motion control 76 determines the next position of the joint angles of the joints J of the manipulator 14 (e.g., via inverse kinematics and Jacobian calculators) so that the manipulator 14 can position the tool 20 at, for example, the commanded pose as commanded by the behavior control 74. In other words, the motion control 76 processes the command pose that can be defined in Cartesian space into the joint angles of the manipulator 14 so that the manipulator controller 26 can correspondingly 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 angles of each joint J and continuously adjusts the torque output by each joint motor to ensure that the joint motors drive the associated joint J to the commanded joint angles as closely as possible.
[0083] 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 that operates separately and / or independently in any combination thereof. The term "software program" is used herein to describe computer executable instructions configured to implement the various capabilities of the described technical solutions. For simplicity, the term "software program" is intended to include 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 on the manipulator controller 26, the navigation controller 36, or any combination thereof, or may be implemented by the control system 60 in any suitable manner.
[0084] A clinical application 80 can be provided to manage user interactions. The clinical application 80 manages many aspects of user interactions and coordinates surgical workflows, including preoperative planning, implant placement, registration, visualization of bone preparation, and postoperative evaluation of implant coordination, etc. The clinical application 80 is configured to output to the display 38. The clinical application 80 can be run on its own separate processor or can be run together with the navigation controller 36. In one example, the clinical application 80 interacts with the boundary generator 66 and / or the path generator 68 after the user sets the implant placement, and then sends the virtual boundary 71 and / or the tool path TP returned by the boundary generator 66 and / or the path generator 68 to the manipulator controller 26 for execution. The manipulator controller 26 performs the tool path TP as described herein. The manipulator controller 26 can create certain sections (e.g., import sections) in addition when starting or restarting processing to smoothly return to the generated tool path TP. The manipulator controller 26 can also process the virtual boundary 71 to generate corresponding virtual constraints, as further described below.
[0085] The system 10 can be operated in a manual mode, such as described in U.S. Pat. No. 9,119,655, which is incorporated herein by reference. Here, the user manually guides the tool 20 and its energy applicator 24, and the manipulator 14 performs the movement of the tool and its energy applicator at the surgical site. The user physically contacts the tool 20 to move the tool 20 in the manual mode. In one version, the manipulator 14 monitors the force and torque applied by the user to the tool 20 to position the tool 20. For example, the manipulator 14 may include a force / torque sensor S that detects the force and torque applied by the user and generates a corresponding input (e.g., one or more corresponding input / output signals) used by the control system 60. In some embodiments, the user may be required to continuously grasp a trigger or switch on the end effector to activate the force / torque sensor S that detects the force and torque applied by the user.
[0086] The force / torque sensor S may include a 6-DOF force / torque transducer. The manipulator controller 26 and / or the navigation controller 36 receive input (e.g., signals) from the force / torque sensor S. In response to the forces and torques applied by the user, the manipulator 14 moves the tool 20 in a manner that simulates the movement that would have occurred based on the forces and torques applied by the user. The movement of the tool 20 in the manual mode may also be constrained relative to a virtual boundary 71 generated by the boundary generator 66. In some versions, the 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, wherein a virtual simulation 88 is performed on a virtual rigid body model of the tool 20 so that forces and torques can be virtually applied to the virtual rigid body in the virtual simulation 88 to ultimately determine how these forces and torques (and other inputs) will affect the movement of the virtual rigid body, as described below.
[0087] The system 10 can also operate in a semi-autonomous or automated mode, in which the manipulator 14 moves the tool 20 along the milling path 72 (e.g., the movable joint J of the manipulator 14 operates to move the tool 20 without the user applying force / torque on the tool 20). An example of operation in the automated mode is 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 the automated mode, the manipulator 14 is able to move the tool 20 without the force applied by the user. In other words, the user does not need to physically contact the tool 20 to move the tool 20. Instead, the user can use some form of remote control to control the start and stop of the movement. For example, the user can hold down a button of the remote control to start the movement of the tool 20, and release the button to stop the movement of the tool 20.
[0088] The system 10 can also be operated in a manual guidance mode, as described in U.S. patent application publication US2020 / 0281676 A1, entitled “Systems and Methods for Controlling Movement of a Surgical Tool Along a Predefined Path,” the contents of which are hereby incorporated by reference in their entirety. In the manual guidance mode, the user applies a force / torque to the force / torque sensor S, and the applied force / torque is used to determine how far to advance the tool 20 along the tool path TP. In the manual guidance mode, the tool 20 is constrained to the tool path TP in 2DOF normal to the tool path, but is unconstrained in 1DOF tangent to the tool path TP. In effect, this enables the tool 20 to move freely along the tool path TP based on manual input, but the constraints guide the user by limiting the manual movement of the tool 20 to along the tool path.
[0089] Described below is a Hybrid / Manual mode of operation which combines aspects of both Manual and Automatic modes.
[0090] II. Hybrid Automatic / Manual Tool Guidance
[0091] This article describes systems, methods, and techniques for guiding a tool 20 along a tool path TP using a hybrid automatic / manual mode that combines the benefits of a manual mode of operation and an automatic mode of operation. The system 10 commands the manipulator 14 to perform automatic advancement of the tool 20 along a predetermined tool path TP according to a predetermined feed rate. This predetermined feed rate can then be modified based on the measured force / torque applied to the tool 20. In turn, the modified feed rate mimics the user's intention, and the hybrid mode gives the user a "hands-on" method for dynamically increasing or decreasing the automatic advancement of the tool 20 as needed. The automatic advancement of the tool 20 can be such a default state that reduces the fatigue associated with the user having to manually and physically continuously guide the tool 20. The default state can be predetermined or set based on a user's previous manual input. At the same time, the user can intervene at any time during the automatic advancement to manually tune the speed of the tool 20 along the tool path TP by applying force to the tool 20. Additionally, the mixed mode control provides a predictable or consistent response to the user, giving the user confidence in having control over the tool 20 when applying force to the tool 20 because the tool 20 is constrained to the predetermined tool path TP.
[0092] In some cases, the hybrid mode can cause the automatic advancement to be temporarily slowed or stopped in response to a collision between the tool 20 and an object that collides with the tool 20 on the path TP. Once the object is removed from the path, the automatic advancement will continue. Therefore, the hybrid mode need not be limited to requiring user input. Whether or not user input is provided, the hybrid mode provides additional assurance for the automatic movement of the tool 20.
[0093] This hybrid mode may be beneficial for guiding a tool path TP that may be cumbersome or annoying for the user. As will be described below, the hybrid mode is beneficial for a tool path TP that involves guiding the tool 20 to an end position or endpoint EP or along a specific motion path. This endpoint EP or motion path may be relevant to the surgical procedure or may be used for non-surgical purposes.
[0094] refer to Figure 6 , an example of implementing the hybrid mode can be summarized as method 200. In step 202, the control system 60 obtains a predetermined tool path TP for the surgical tool 20. The tool path TP can be similar to any of the embodiments described above. In step 204, the control system 60 commands the manipulator 14 to perform automatic advancement of the surgical tool 20 in a first path direction (PD1) and along the predetermined tool path TP according to a predetermined feed rate PFR. The feed rate is the speed at which the tool 20 passes along the tool path TP. The predetermined feed rate PFR is a predefined speed for the automatic advancement of the tool 20 for each path segment. Assuming there is no external input or obstruction, the tool 20 will continue to be automatically advanced along the tool path TP according to the predetermined feed rate PFR. Automatic advancement can continue indefinitely, for example in a continuous path cycle, or can be automatically terminated once the tool 20 reaches the end point EP of the tool path TP. This automatic advancement can initially be performed in a semi-automatic or automatic mode, as described above.
[0095] The predetermined feed rate PFR can be a constant speed, or can be dynamically changed based on various variables or sources, as described in International Patent Application PCT / US21 / 65334, entitled "Robotic Systems and Methods for Mitigating UndesiredOriental Motion of Kinematic Components," the entire contents of which are hereby incorporated by reference herein. These variables include, but are not limited to: manual user adjustments to the feed rate, such as by using a control pendant, curvature of the path segment, and / or collision with a virtual boundary 71. In one form, adjustment of the PFR is performed by multiplying the PFR by any number of coefficients associated with each of these variables. Each coefficient can be between 0 and 1.0. For each iteration of determining the PFR, the coefficient value can change. Other aspects of the predetermined feed rate PFR are described below.
[0096] In step 206, during the automatic advancement of the surgical tool 20, the control system 60 receives input from the force / torque sensor S in response to the force / torque applied to the surgical tool 20. These forces / torques can be applied by the user manually grasping the tool 20 and applying external force to the tool 20. Thus, the force applied by the user implements various aspects of the manual operation mode described above. Therefore, the hybrid mode is implemented by the manual mode intervention of the automatic advancement. In one embodiment, the force applied by the user can be detected by the force / torque sensor S only in response to the user continuously grasping the tool 20 or the trigger or switch on the end effector while applying the force. This provides confirmation of the user's intention to apply force. In another embodiment, the force applied by the user can be detected by the force / torque sensor S without any confirmation trigger or switch on the tool 20, for example, by the user simply pressing or pulling the tool 20. In some cases, the control system 60 can apply a threshold or filter to the applied force to avoid movements that may be considered unintentional or unstable.
[0097] Alternatively, the force / torque may be applied by an object that collides with the tool 20 along the path TP. In either scenario, at step 208, the control system 60 may evaluate the effect of the input from the force / torque sensor S on the automated advancement of the surgical tool 20 to determine the effective feed rate EFR and effective path direction EPD of the surgical tool 20 relative to the predetermined tool path TP. Here, the control system 60 considers how the input from the force / torque sensor S may affect the feed rate and path direction of the tool 20 relative to the tool path TP. Details related to calculating the effect of the manual force input on the automated advancement will be described below.
[0098] At step 210, the control system 60 determines the commanded motions of the manipulator 14 and the surgical tool 20 relative to the predetermined tool path TP based on the effective feed rate EFR and the effective path direction EPD. Examples of these commanded motions are shown in FIG. Figure 6 . Any of these commanded actions may be implemented individually or may be combined. With respect to the effective feed rate EFR, the commanded action may be to increase the feed rate (212), reduce the feed rate (214), maintain the feed rate (216), or make the feed rate zero (218). For any of these commanded actions, the effective feed rate EFR may be a tuning or change of a predetermined feed rate PFR, or a replacement of a predetermined feed rate PFR. In other words, the new predetermined feed rate PFR may be derived from the effective feed rate EFR. When maintaining the feed rate (216), the effective feed rate EFR may be the same as the predetermined feed rate PFR, or may be ignored or below a threshold so as not to be considered to have an effect on the automatic advancement of the tool 20. With respect to the effective path direction EPD, in many examples, the effective path direction EPD will be the same as the first path direction PD1. However, in some examples, the effective path direction EPD is opposite to the first path direction PD1. Thus, the commanded action may be to maintain the path direction (220), to reverse the path direction (222), or to stop the tool 20 so that there is no directional movement of the tool 20 along the path TP. In any of these scenarios, the effective path direction EPD of the tool 20 is limited to a certain direction relative to the tool path TP, rather than a direction that deviates from the tool path TP. In some configurations, it may not be necessary to calculate how the input from the force / torque sensor S will affect the direction of the tool 20 relative to the tool path TP. For example, the control system 60 may limit the path direction to a forward direction while prohibiting any reverse directional movement of the tool 20 along the path TP. An example calculation involving determining the effect of the input from the force / torque sensor on the automatic advancement (feed rate and path direction) will be described below.
[0099] A. Example use case of mixed mode
[0100] The hybrid mode assists the user in guiding the tool 20 along the tool path TP to a specific end point EP or to guide the tool along a specific motion path.Hybrid control can be implemented for a variety of use cases.
[0101] In one example, if Figure 7As shown, the automatic advancement aspect of the hybrid mode can be used to align the saw blade with one or more cutting planes CPL1, CPL2 associated with the anatomical structure (A). The cutting plane CPL can be implemented as a virtual boundary 71 generated by the boundary generator 66 to constrain the movement of the saw along the cutting plane CPL. The cutting plane CPL can be aligned to the anatomical structure (A) using the navigation system 32. The cutting plane CPL can be implemented for a total knee replacement procedure and can include five or more incisions on the femur and one incision on the tibia. Several tool paths TP1, TP2 can be generated by the control system 60 between the current or specified starting point SP of the tool 20 away from the anatomical structure (A). In preparation for each cut, the tool 20 is commanded to automatically advance along the corresponding tool path TP until the tool 20 reaches the corresponding end point EP1, EP2. In this example, the end point EP is selected to align the plane of the saw blade with the corresponding cutting plane CPL at a specific distance (e.g., 100mm) from the anatomical structure (A). Therefore, in this example, the automatic advancement aspect of the hybrid mode control is not used to remove tissue, but rather to assist the user in guiding the tool 20 to the various cutting planes CPL. The control system 60 defines a predetermined feed rate PFR and a path direction PD for the tool 20 relative to each tool path TP. In one embodiment, the predetermined feed rate PFR is constant throughout the tool path TP. However, the predetermined feed rate PFR may be the same or different between tool paths TP. Moreover, the predetermined feed rate PFR may be the same or different for different portions or sections of one tool path TP. For example, for a path section at a portion of the tool path TP, the predetermined feed rate PFR may have a lower speed to smoothly ramp up the tool 20 speed until it eventually reaches the final speed for the remainder of the tool path TP. Moreover, the predetermined feed rate PFR may be configured to be faster or slower depending on the length of the tool path TP to avoid delays in moving the tool 20 to the end point EP1, or to provide a better user experience. Although Figure 7 Not shown, but during the automatic advancement to these different cutting planes (CP), the user can apply force to the tool 20 to increase or decrease the feed rate of the tool 20 according to their preference.
[0102] In some examples, the starting point SP of the tool 20 from which the tool path TP begins can be defined by a zone (Z), such as Figure 7As shown. The zone (Z) may be a virtual 3D area, such as a sphere, into which the tool 20 may virtually enter. The starting point SP may be a fixed position within the zone (Z), or may be defined by any current position of the tool 20 or TCP within the zone (Z). Once the tool 20 is detected within the zone (Z), the user may be prompted by the clinical application 80, for example on a user interface UI or display, to confirm the cutting plane CPL, the tool path TP, and / or the start of automatic advancement using a hybrid mode.
[0103] In another example, the hybrid mode can be used to guide the cutting drill to an end point EP relative to the anatomical structure (A). This end point EP can be the starting point of another tool path TP, which will be used to automatically mill the anatomical structure (A) using an automatic or semi-automatic mode. Alternatively, the end point EP can be a specific distance (e.g., 100 mm) from the anatomical structure (A) when the tool 20 is used to remove tissue using the manual mode after preparation. In either case, the hybrid mode enables the user to apply force to the tool 20 to change the feed rate of the tool 20 along the path. For example, the user may feel reluctant to allow a sharp cutting tool to be automatically advanced toward the anatomical structure (A), and the hybrid mode can be used during the automatic advancement to apply some control to selectively slow down the feed rate of the tool 20.
[0104] Hybrid mode can also be used to align a tool (such as a screwdriver or drill) or a catheter with a target trajectory relative to the anatomical structure (A). This technology may be valuable in preparing for pedicle cannulation or insertion, drilling a nail hole for receiving an implant in an anatomical structure, aligning an impactor or reamer for total hip surgery, etc. Similarly, depending on the use case, hybrid mode control can be used for different reasons. In this example of the target trajectory, the user can apply force during automatic advancement to selectively increase the feed rate, thereby allowing the tool 20 to reach the target trajectory faster.
[0105] For the above example involving an anatomical structure (A) and a cutting tool, the control system 60 can intentionally deactivate the tool 20 so that the tool 20 is not powered and cannot remove tissue during automatic advancement. Tool deactivation may be useful in cases where the tool path TP is used to assist the user in guiding the tool 20 toward the anatomical structure (A) in preparation for surgery. Deactivating the tool 20 in this manner can help avoid accidental injuries because the hybrid mode can involve the user selectively grasping the tool 20 and applying force to the automatically moving tool 20. For cases where the hybrid mode uses the tool path TP to remove tissue, the tool 20 will be in an active state.
[0106] In addition, the hybrid mode is useful for tool paths TP for non-surgical procedures. One example is a tool path TP involving navigation registration of a manipulator 14. In this scenario, the tool 20 moves automatically along a predetermined tool path TP (such as a pendulum or elliptical path). During movement along the tool path TP, a tracker 52A attached to or integrated with the tool 20 can be tracked by the navigation system 32. At the same time, a base tracker 52B can be tracked by the navigation system 32. Therefore, the relationship between the tool tracker 52A and the base tracker 52B is known. However, due to the manual setting of the base tracker 52B by the technician, the relationship between the base tracker 52B and the base 16 of the manipulator 16 may be unknown. In order to determine the relationship between the base tracker 52B and the base 16, the tracked data associated with the tool 20 is fused with the kinematic data from the movement of the manipulator 14 joints (J) to determine the transformation from the base tracker 52B to the base 16. Once this transformation is determined, the registration of the manipulator 14 is completed. Where hybrid mode is utilized, the user may intervene during the manipulator registration process to slow down the speed of automated tool movement along the path, thereby preventing the possibility of collision of the tool 20 and / or manipulator 14 with objects, including the manipulator itself. The user may also apply a force to the tool 20 to reverse the path direction, so that the navigation system 32 can recapture additional tracking data.
[0107] In some cases, a navigation pointer (P) tracked by a navigation system 32 can be used to dynamically or intraoperatively define a tool path TP. The user can move the pointer (P) to any position or move along a motion path. Then, the position or movement of the pointer tip is tracked by the navigation system 32, and the tool path generator 68 can generate a tool path TP or locate a point of the tool path TP based on the movement of the pointer tip. This pointer technology screenshot is used to identify the end point EP of the tool path. The end point EP can be similar to the example end point EP described above, a point on an anatomical structure, or any point desired by the user. This pointer technology can also be used to indicate the starting point of the tool path TP. In addition, the pointer (P) can be used to define any number of points between the starting point and the end point. For example, a user can use the pointer (P) to digitize six points in space. Then, the tool path generator 68 can interpolate these points to approximate or generate the tool path TP that the user intends to form along each point. In addition to the above use cases, other use cases of hybrid mode are possible.
[0108] B. Mixed Mode Initialization
[0109] Many techniques are considered to determine the user's intention to start the hybrid mode. In one example, once the tool 20 reaches the zone (Z) or starting point SP, the automatic advancement of the tool 20 in the hybrid mode can be automatically initiated. In some cases, the user may need to apply force / torque to the tool 20 to manually initiate the automatic advancement. Alternatively, the user may need to press a trigger or button of the tool 20 or the end effector and apply force to initiate the automatic advancement. The hybrid mode can also be initialized at the user's will using any type of user interface, such as a remote control or pendant console connected to the manipulator 14.
[0110] Furthermore, the hybrid mode automated propulsion may be initiated from any state of the tool 20 and may transition from / to any previous mode of operation. For example, automated propulsion may be initiated after the tool 20 is initially stationary, may transition from / to manual mode movement of the tool 20, or may transition from / to automatic or semi-automatic modes. Furthermore, the hybrid mode automated propulsion may transition to / from a manually guided mode.
[0111] Moreover, when automatic advancement in hybrid mode is enabled, the tool 20 may deviate from the tool path. In one example, the user can apply force / torque to the tool 20 in manual mode and when the tool leaves the tool path, and the system can gradually transition the user-applied force into hybrid advancement along the tool path. For example, the velocity vector from the user's applied force can be gradually blended to the desired velocity vector from the predetermined feed rate PFR for automatic advancement based on time and / or distance. As this blending continues, the tool 20 will move toward the tool path and can accelerate or decelerate based on the magnitude and direction of the vector and its gradual blending.
[0112] In some cases, the control system 60 can detect the direction of the force / torque manually applied to the tool 20 by the user in the manual mode, and determine whether the direction of the force / torque is toward the tool path TP or intersecting with the tool path TP. If so, the manipulator 14 can be controlled to move the tool 20 to the tool path TP, and then initialize the hybrid mode. In some examples, this movement is implemented using an attractive tactile sensation. This attraction can be implemented by the guide manipulator of the control system 60 obtaining the current state of the tool (deviation from the tool path) and the target state of the tool 20 (on the tool path) and generating one or more virtual constraints based on the current state and the target state. The control system 60 can implement a constraint solver 86 (described further below) to calculate a constraint force suitable for attracting the tool 20 from the current state toward the target state on the tool path TP based on one or more virtual constraints. The control system 60 implements a virtual simulator 88 to simulate the dynamic characteristics of the tool in the virtual simulation 88 based on input from one or more sensors and based on the constraint force to output the commanded posture CP. The control system 60 then commands the manipulator 14 to move the tool 20 to the path based on the commanded pose CP, thereby providing tactile feedback to the user that guides the user toward placing the tool 20 in a target state in preparation for mixed-mode advancement along the tool path TP. In one example, once an initial force on the tool is detected, the system can gradually increase the force of the virtual constraint to move the tool 20 to the path. The increase in the virtual constraint force can be implemented over a predetermined duration and / or can be based on the relative distance between the tool and the path. An example of an attractive tactile sensation that can be used to guide a tool to a tool path can be similar to the attractive tactile sensation described in U.S. patent application Ser. No. 17 / 701,989, entitled “Systems and Methods for Guiding Movement of a Tool,” the entire contents of which are incorporated herein by reference.
[0113] In other cases, the path generator 68 can dynamically generate an introduction path from the current state of the tool 20 (deviation path) to the starting point of the tool path TP utilized by the hybrid mode. The introduction path can be generated in response to user input, such as using any of the described user interfaces UI. The tool 20 can move along the introduction path using manual or automatic modes. Once the tool 20 reaches the starting point of the hybrid mode tool path TP, the tool 20 can immediately begin automatic advancement, or can pause at the starting point, waiting for user confirmation to initialize the hybrid mode advancement.
[0114] C. Mixed Mode Calculation Example
[0115] As described above, the hybrid mode involves receiving input from the force / torque sensor S in response to the force / torque applied to the tool 20 during the automatic advancement of the tool 20. The control system 60 evaluates the effect of the input from the force / torque sensor S on the automatic advancement of the tool 20 to determine the effective feed rate EFR and, optionally, the effective path direction EPD of the tool 20 relative to the predetermined tool path TP. Described in this section are example calculations involving evaluating the effect of the force / torque sensor S input on the automatic advancement of the tool 20.
[0116] Figure 8 An example is shown where the input from the force torque sensor S is represented as a vector Fext (shown relative to the tool 20 on the path TP). Figure 8 The position of Fext in is provided as an example only and may have different magnitudes and / or directions depending on the nature of the applied force / torque. In this example, it is assumed that Fext has a component in the positive direction along the tool path TP. Figure 8 , for simplicity, only one path segment PS of the tool path TP is shown. The tool 20 is currently located on the tool path TP so that the TCP is in the previously commanded pose CP1. The path segment PS is defined from the previously commanded pose CP1 to the next commanded pose CP2.
[0117] To evaluate the effect of Fext on the automated advancement of tool 20, control system 60 may be configured to determine a virtual acceleration vector (Av) based on force / torque sensor S input, and more specifically based on Fext. Virtual acceleration vector (Av) represents a virtual acceleration derived from Fext. Fig. 9 Example calculation steps involving a virtual rigid body VRB model regarding the tool 20 or TCP are shown. As described above, the virtual rigid body VRB is utilized in the virtual simulation 88 so that forces and torques can be virtually applied to the virtual rigid body VRB (in the virtual mass coordinate system VM). The virtual simulation 88 is used to determine how these forces and torques (and other inputs) will affect the movement of the virtual rigid body VRB. Alternatively or in addition, the TCP of the tool 20 can be evaluated by the virtual simulation 88 so that forces and torques can be virtually applied to the TCP (in the coordinate system of the TCP). In order to determine the virtual acceleration vector (Av), the control system 60 calculates the force projection Fext or converts it to the virtual rigid body VRB in the coordinate system VM. The control system 60 utilizes the known virtual mass (Vmass) of the virtual rigid body VRB to solve F=mA, where "F" is Fext, "m" is the virtual mass of the VRB (Vmass), and "A" is the virtual acceleration vector (Av). As Fig. 9The calculation result shown in the example is a virtual acceleration vector (Av) having the same direction as Fext but with a smaller magnitude. However, depending on Vmass and Fext, the virtual acceleration vector (Av) may alternatively have a different direction, or the same magnitude as Fext or a greater magnitude than it.
[0118] Once the virtual acceleration vector (Av) is determined, the control system 60 calculates the tool path direction PD based on the segment PS of the tool path TP on which the tool 20 is currently located, as shown in FIG. Figure 8 As shown. In this case, it is assumed that the tool path TP consists of several discrete path segments PS, each of which is linear. Therefore, the path direction PD can be calculated using a unit vector defined as from the start point to the end point of the path segment PS, or from the previously commanded pose CP1 to the next commanded pose CP2. In other cases, the path segment PS may be curved or curvilinear. In this case, the tool path direction PD can be derived using a similar unit vector (from the start point to the end point of the segment) or using any type of approximation, such as taking the average direction from the tangential component of the curved segment, approximating a line passing through the curved segment, etc. The path direction PD is applied or transformed to the VM coordinate system of the virtual rigid body VRB, as Fig. 9 shown.
[0119] Having obtained the virtual acceleration vector (Av) and the path direction PD, the control system 60 calculates the dot product of these vectors to generate the acceleration projection (Aproj), also as Fig. 9 The acceleration projection (Aproj) has a magnitude and a direction, both of which may affect the feed rate and path direction of the tool 20. The acceleration projection (Aproj) may be understood as the tool path component of the virtual acceleration derived from Fext.
[0120] Fig.10 A block diagram of the modules and processes executed by the control system 60 for implementing a hybrid control mode is shown. In this example, the behavior control 74 includes a path manipulator 82, a path constraint calculator 84, a constraint solver 86, and a virtual simulator 88. The path manipulator 82, the path constraint calculator 84, the constraint solver 86, and the virtual simulator 88 each include executable software stored in a non-transitory memory of any one or more of the aforementioned controllers and implemented by the control system 60.
[0121] In this version, the path manipulator 82 can receive several inputs: a predetermined tool path TP and a predetermined feed rate PFR associated with the tool path TP (or segment), Fext from the force / torque sensor S input, and the commanded pose CP and the previous advancement feed rate of the tool 20 or TCP. The predetermined feed rate PFR represents the default feed rate for automatic advancement of the tool 20 for each of the path segments including the current path segment. In some cases, a predetermined (first) path direction PD1 for automatic advancement can be input into the path manipulator 82. The predetermined path direction PD1 can be derived from the predetermined feed rate PFR, implicit in the PFR, or provided with data associated with the PFR.
[0122] The path manipulator 82 can process any number of these inputs to determine a target pose TP for the tool 20. The target pose TP has an origin located on the tool path TP and is the pose of the TCP that is expected to move the tool 20. Ideally, the next commanded pose CP is consistent with the target pose TP. However, in some cases, the next commanded pose CP may not be consistent with the target pose TP.
[0123] The path manipulator 82 implements a feed rate estimator 87 module or submodule to perform certain aspects of the hybrid control mode. Fig.10 At each iteration of the process shown in , which may be performed at any suitable frame rate (e.g., every 125 or 250 microseconds), the feed rate evaluator 87 evaluates the different feed rate inputs for the current path segment and applies predetermined rules to determine the (final) effective feed rate EFR that defines how far the tool should move along the current path segment PS. More specifically, the feed rate evaluator 87 obtains or calculates the initial feed rate of the tool 20 along the current path segment and determines whether to modify or tune the initial feed rate based on Fext. Depending on whether an external force / torque is applied to the tool 20, the path manipulator 82 may or may not receive an external force Fext input. Assuming that automatic advancement has previously begun and there is no previous or current input from the force / torque sensor S, the initial feed rate will be defaulted to a predetermined feed rate PFR (automatic speed). However, if there is a previous input from the force / torque sensor S, the initial feed rate may be based on a previous effective feed rate EFR (mixed mode speed), which may or may not be a modified / tuned version of the predetermined feed rate PFR. Prior to determining the location of the target pose TP, the effective feed rate EFR may be combined with other feed rate sources, such as those described above and in U.S. Pat. No. 9,566,122, which is incorporated herein by reference.
[0124] When the external force / torque is currently applied to the tool 20, Fext is input to the path manipulator 82 for the current iteration of the process. For the current time step, the path manipulator 82 calculates the acceleration projection (Aproj), as described above. The path manipulator 82 can integrate the acceleration projection (Aproj) to obtain the offset feed rate. In other words, the offset feed rate is derived from the acceleration projection (Aproj), which is derived from Fext. The path manipulator 82 can also double integrate the acceleration projection (Aproj) to obtain the displacement along the tool path TP and the target posture TP or the next commanded posture CP. The offset feed rate is another input of the feed rate evaluator 87. The offset feed rate is a potential offset relative to the initial feed rate. As will be described below, there are rules that can stipulate that the offset feed rate should not be applied to the initial feed rate. There are also situations where the offset feed rate can override or replace the initial feed rate. The impact of Fext on the initial feed rate can be calculated using distance, speed and / or acceleration or a combination thereof. For example, the initial acceleration and the offset acceleration may be used instead of the initial feed rate and the offset feed rate.
[0125] With the initial feed rate and the offset feed rate already obtained, the path manipulator 82 and / or the feed rate estimator 87 can calculate the effective feed rate EFR using any form of uniform acceleration equation, such as Δd=(Vo+Vf / 2) / t, where Vo is the velocity of the initial feed rate, Vf is the velocity of the offset feed rate, t is the current time step duration, and Δd represents the distance the tool 20 will travel along the path TP according to the effective feed rate EFR. Other acceleration equations can be utilized, such as Vf=Vo+at, where a is the acceleration projection (Aproj). In some embodiments, the offset feed rate can be implemented as a coefficient in a unit value range of -1 to 0 to +1 for scaling or modifying the initial feed rate. The coefficient value can be derived from a lookup table associated with the value of Fext.
[0126] In some cases, such as when automatic advancement is initiated and no external force is applied to the tool 20, the feed rate is gradually accelerated until the predetermined feed rate PFR is reached. Here, the acceleration component of Vf=Vo+at can be selected as the default acceleration value or range of values instead of the acceleration projection (Aproj). Once the predetermined feed rate PFR is reached, the acceleration component can be zeroed or removed from the equation until an external force is detected.
[0127] The offset feed rate, acceleration projection (Aproj), and / or Fext may be calculated such that positive values are in the positive path direction and negative values are in the negative path direction. Thus, the integration may be performed in a manner that produces the direction of the effective feed rate EFR or the effective path direction EPD. For example, a negative distance indicates movement backward along the tool path TP. In some cases, it may not be desirable to allow the user to move backward along the tool path TP. In this case, if a negative distance is calculated, it may be limited to zero or ignored.
[0128] Assuming Fext is applied, the path manipulator 82 will obtain the effective feed rate EFR and the effective path direction EPD. The path manipulator 82 then iteratively steps along the tool path TP in a time step, one path segment PS at a time, until the cumulative distance (e.g., path distance) stepped along the tool path TP is equal to the displacement derived from the effective feed rate EFR. This iterative process can include the path manipulator 82 repeatedly checking whether the distance of the next segment will exceed the EFR displacement. If the distance of the next segment exceeds the EFR displacement, the path manipulator 82 linearly interpolates within this path segment PS to determine the exact position of the EFR displacement along the path segment PS. This position becomes the origin of the next target pose TP. This iterative path interpolation process can also include smoothing filters, acceleration filters, etc. on the interpolated path points (time domain or space) before setting the result as the origin of the next target pose TP.
[0129] The target pose TP may then be sent to a path constraint calculator 84 to calculate three virtual constraints. In this example, these virtual constraints include x, y, z virtual constraints (more or fewer constraints are possible) to be applied to effectively move the tool 20 from the currently commanded pose CP of the tool 20 to the target pose TP. These three constraints are calculated based on the difference between the currently commanded pose and the target pose TP. Of course, in other versions, an orientation constraint may also be defined based on the difference between the current orientation and the desired orientation. The three virtual constraints defined by the path constraint calculator 84 are then input to a constraint solver 86 (possibly with boundary constraints and / or other constraints, such as Fig.10 ), so as to be processed by the constraint solver 86 to determine the final constraint force F c The virtual simulator 88 then performs a virtual simulation 88 to ultimately determine the next commanded pose CP. The constraint solver 86 calculates the constraint force F to be virtually applied to the tool 20 in the virtual simulator 88 based on three virtual constraints (x, y, z) that act to effectively counteract the component of the user force at the TCP of the tool path TP that is normal or tangential (which may otherwise cause the TCP of the tool 20 to move relative to the path TP). c . Binding force F cThe TCP of the tool 20 is constrained to move in the next commanded pose CP until the next iteration is immediately executed. In fact, the constraint force F c Mixed mode control is limited so that the tool 20 remains on the tool path TP.
[0130] The virtual simulator 88 can take into account the influence of other forces / constraints outside the x, y, z constraints. For example, additional constraints can be used so that the target pose is also encoded with the desired orientation on one or more of the rotational degrees of freedom. In this case, one or more of the axes for the target pose TP can be selected to give the desired orientation of the TCP coordinate system (for that point on the tool path TP). Therefore, more than three virtual constraints will be calculated by the path constraint calculator 84 for the position component and the orientation component. Therefore, the hybrid mode can assist the user in guiding the TCP of the tool 20 along the tool path TP while also guiding the orientation of the tool 20 on one or more degrees of freedom. The orientation defined by the path can be calculated / determined by the path generator 68 offline or during the procedure based on the surgical method, clinical visit, etc., and these orientations are passed to the path manipulator 82 as part of the tool path TP, so that when the TCP of the tool 20 is automatically advanced along the tool path TP, the orientation of the tool 20 is automatically changed in a desired / predetermined manner. Alternatively or in addition, a set of orientation constraints can be determined independently of the path constraint calculator 84, and these orientation constraints can be passed to the constraint solver 86 as part of the "other constraints" input. An example of this approach is a set of orientation constraints with 2-DOF (e.g., for a ball drill) to keep the drill shaft within a predetermined virtual hole, as described in U.S. Pat. No. 9,566,122, which is incorporated herein by reference. Other options for orientation control are possible, such as no orientation control, whereby the user can freely reorient the tool 20. Thus, two or three virtual constraints for TCP position can come from the path constraint calculator 84, and additional constraints can be provided by an independent orientation control source. Position and orientation constraints or separate constraints can have different stiffness / damping tunings to give the desired user interaction and feel. The constraint solver 86 solves the full set of constraints and outputs the commanded pose CP to the motion control 76.
[0131] The system also enables the user to redirect the tool 20 along the tool path TP without changing the effective feed rate or the predetermined feed rate. To this end, the user can press a switch or trigger on the end effector or tool while the end effector or tool 20 is advancing along the tool path TP. When pressing the switch or trigger, the user applies a force / torque to redirect the tool 20. Additionally, the force / torque can be applied without pressing the trigger / switch. The system can utilize the component of the force / torque that deviates from the tool path from Fext or is not tangential to the tool path in the virtual simulation to determine how to redirect the tool 20 while the tool 20 is advancing along the path. Virtual constraints can be used to keep the tool 20 on the tool path during this redirection. This redirection technology is conducive to enabling the user to ergonomically orient the tool as needed during advancement. In addition, the redirection during advancement may help avoid potential collisions between the tool axis and the environment. If the applied force / torque is large enough or above a threshold, the system can determine that the user intends to pull the tool 20 away from the tool path TP and can allow this to be done. This situation is described below.
[0132] The techniques described herein may utilize constraint equations and data, forward dynamics algorithms, rigid body calculations, constraint force calculations, and virtual simulations, such as those described in U.S. patent application publication US2020 / 0281676 A1, entitled “Systems and Methods for Controlling Movement of a Surgical Tool Along a Predefined Path,” the contents of which are incorporated by reference in their entirety.
[0133] D. Example mixed mode rules
[0134] The path manipulator 82 and / or the feed rate evaluator 87 may implement different rules or conditions that limit the hybrid control mode. The following rules are provided as examples only and are not necessarily limiting the scope of the present disclosure. These rules may or may not apply, depending on the circumstances.
[0135] One rule that can be set is the maximum speed (in Fig. 12BThe feed rate of the tool 20 in the hybrid mode can be limited so that the feed rate does not exceed the maximum speed. The maximum speed can be set to be greater than the predetermined feed rate PFR. Therefore, when the feed rate of the tool 20 is based on the predetermined feed rate PFR without the Fext input, the maximum speed will not be reached. Without the maximum speed limit, the tool 20 may theoretically move at an unstable or unsafe speed in response to an excessive input force Fext. Therefore, the maximum speed provides a speed limit for manual intervention of the user in the automatic advancement of the tool 20.
[0136] The path manipulator 82 and / or the feed rate evaluator 87 may implement another rule to adjust the speed "ramp up" to avoid abrupt switching of the feed rate based on Fext and provide smooth movement of the tool 20 in the hybrid mode. For example, certain initial feed rates derived from the predetermined feed rate PFR may have a speed (or default acceleration) to gradually increase the feed rate of the tool 20 until a constant speed is finally reached in order to automatically advance the remaining part of the tool path TP. Assuming that Fext is not applied initially, the default setting is to smoothly ramp up the feed rate according to this default acceleration. However, if Fext is applied, it may not be desirable to enable the user to override this smooth transition by applying too large Fext. Therefore, in one example, the modules 82, 87 evaluate whether the effective feed rate EFR will be greater than a predetermined threshold value of certain initial feed rates. For each relevant iteration, the threshold value may be a value, or for one or more iterations, the threshold value may change, i.e., depending on the speed of the initial feed rate. If the condition is met, the modules 82, 87 may determine that the offset feed rate should not be added to the initial feed rate. In practice, this means that the applied force Fext will be temporarily ignored to provide smooth tool motion during the speed ramp-up. This rule can be applied to any speed transition of the tool 20 and does not need to be limited to the initial portion of the tool path TP. For example, the speed transition may occur after the tool 20 changes direction, is released, or is held in a stationary position due to an externally applied force Fext. If the threshold is not met, the offset feed rate can be added to the initial feed rate to cause the speed of the tool 20 to accelerate at a faster rate than the default acceleration. In other examples, the effective feed rate EFR can be blended with the initial feed rate.
[0137] The path manipulator 82 and / or the feed rate evaluator 87 can evaluate whether the feed rate of the tool 20 has exceeded the predetermined feed rate PFR. If the predetermined feed rate PFR has not been exceeded, a default acceleration can be applied to gradually increase the feed rate of the tool 20 until the predetermined feed rate PFR is reached. However, if the predetermined feed rate PFR has been exceeded, the path manipulator 82 and / or the feed rate evaluator 87 can override the predetermined feed rate PFR using the effective feed rate EFR derived from Fext and the above calculations. In turn, this control enables the user to manually set the feed rate of the tool 20 above the predetermined feed rate PFR. If the effective feed rate EFR drops below the predetermined feed rate PFR, the system can restore the predetermined feed rate or can maintain the EFR based on the user's intention, the detected conditions and / or the user-defined settings.
[0138] E. Blending Mode Examples
[0139] Figures 11 to 18 show various examples of how the above calculations can be implemented to move the tool 20 in a hybrid mode. Some of these examples involve manually applied forces / torques of the sensor S, while others do not. For each example, a diagram of the tool 20 along the path TP is shown for different time steps. Accompanying each diagram is a chart showing the speed or feed rate of the tool 20 for the particular example shown. For ease of illustration, the manipulator 14, the navigation system 32, and the tool 20 are shown in simplified form. Any of the examples of Figures 11 to 18 can be used alone in a hybrid mode, or as a combination of actions. The hybrid mode can perform actions other than the actions shown in Figures 11 to 18.
[0140] 1. Automatic advancement (no manual input)
[0141] by Fig.11A and 11B Initially, a situation is shown in which the tool 20 is automatically advanced along the tool path TP in hybrid mode but in the absence of any current input from the force / torque sensor S. According to the hybrid mode, the tool 20 will automatically advance along the tool path TP according to a predetermined feed rate PFR in the absence of any external force Fext. For ease of understanding, the terms "forward" and "reverse" are used in this specification to describe the movement of the tool along the tool path TP. However, these relative terms may have different meanings depending on the perspective of the user, the tool, or the system. It is contemplated that, as described throughout this document, automatic advancement can be implemented to advance the tool in a forward or reverse direction, as is the default setting.
[0142] This example assumes that the tool 20 is initially at rest at T0. Therefore, Fig. 11BThe chart in shows the feed rate as 0. After T0, the tool 20 gradually increases the feed rate at a default acceleration until the predetermined feed rate PFR is reached at T1. The tool path direction is represented by PD1, that is, the default forward direction. Once the predetermined feed rate PFR is reached, the predetermined feed rate PFR is applied to each subsequent path segment. In this example, PFR is a constant speed. However, as described, PFR does not need to be constant over the entire tool path TP. For example, PFR can be defined as a ramp-down speed before reaching the end point EP. As described above, automatic propulsion can guide the tool 20 according to PFR until the end point is reached. Additionally, automatic propulsion can move the tool 20 continuously and indefinitely along a closed path (loop) according to PFR until a certain termination event is identified to stop moving. Although this example shows the automatic mode aspect of the hybrid mode, it does not include input from the force / torque sensor S. Although this example is important for understanding automatic propulsion, it is only a partial representation of the hybrid mode. The remaining examples show situations in which automatic propulsion is combined with input from the force / torque sensor S.
[0143] 2. Positive manual input for accelerating automatic propulsion
[0144] Fig. 12A and 12BA situation is shown in which a user applies a positive external force / torque to a force / torque sensor S during the automatic advancement of a tool 20 along a tool path TP. In other words, the applied force Fext has a component in the same direction as the automatic path direction PD1 of the tool 20. Therefore, the user manually enhances or accelerates the rate of automatic advancement. In this case, as described above, the effective feed rate EFR is calculated based on Fext as an input. Based on the force applied by the user, the effective feed rate EFR is greater than the predetermined feed rate PFR. In this case, the force applied by the user is applied only after the tool 20 moves according to the predetermined feed rate PFR. At T0, the tool is stationary, and at T1, the tool 20 reaches the predetermined feed rate PFR. At T2, a positive manual input from the user is applied to the tool 20, and an acceleration projection (Aproj) is calculated based on Fext, which the control system 60 uses to determine EFR. In fact, the application of the acceleration projection (Aproj) results in a change in the speed of the PFR reaching EFR. The speed of the tool 20 is carried out at the effective feed rate EFR between T2 and T3. At T3, a second user positive manual input is applied to the tool 20. In this example, the second manual input is more forceful than the first input. Therefore, another iteration of Fext is processed as input, and a second acceleration projection (Aproj) is calculated based on Fext, which the control system 60 uses to determine a second effective feed rate EFR2. The application of the second acceleration projection (Aproj) results in another change in the speed of EFR reaching EFR2. The speed of the tool 20 after T3 is at the second effective feed rate EFR2. In this example, the control system 60 further implements a maximum speed limit FR-max to limit the second effective feed rate EFR2. In other words, the second effective feed rate EFR2 is limited so that the speed does not exceed the maximum speed.
[0145] There are many practical reasons why it is beneficial to accelerate the automatic advancement feed rate in this way. For example, the user may desire to move the tool 20 to the end point EP faster than the default rate can provide. This can reduce time in the operating room. In other cases, the user can accelerate the automatic advancement to avoid a potential collision with the tool 20.
[0146] 3. Positive manual input release along the positive path direction
[0147] Fig.13A and Fig. 13BA situation is shown in which the user applies a positive external force / torque during automatic advancement of the tool 20 and then the user releases the tool 20 so that Fext is no longer applied. This example illustrates how the hybrid mode provides automatic advancement as a default control. At T1, the tool 20 automatically reaches a predetermined feed rate PFR without user input. At T2, the user applies a positive manual input to the tool 20 so that Fext has a component in the same direction as the path direction PD1 of the tool 20. The effective feed rate EFR is calculated based on Fext as input and is greater than the predetermined feed rate PFR. Therefore, the user temporarily accelerates the speed of automatic advancement. The speed of the tool 20 is at the effective feed rate EFR between T2 and T3. The user then releases the tool at T3, so that Fext is reduced to a zero input value. The path manipulator modules 82, 87 can identify situations where Fext is zero or unavailable.
[0148] In response to detecting that the tool 20 is released, the path manipulator module 82, 87 can output one of two different responses for the next time step T3. One response is to resume the predetermined feed rate PFR, and the other response is to maintain the effective feed rate EFR. In one example, Fig. 13B As shown, the previous predetermined feed rate PFR implemented before applying Fext is restored. Here, in response to the user releasing the tool 20, the feed rate will be decelerated to PFR because PFR is slower than the previous EFR. However, the restored predetermined feed rate PFR may or may not be the PFR implemented before the manual input. The path manipulator module 82, 87 can apply a default or predetermined deceleration to provide a smooth transition from EFR to PFR at T3. The path manipulator module 82, 87 can calculate the deceleration value by calculating the change in the speed between EFR and PFR over time. In addition, the path manipulator module 82, 87 can obtain the deceleration value based on a lookup table that provides various default deceleration values for the corresponding speed difference (e.g., EFR-PFR). As long as the user does not apply any manual force to the tool 20 after T3, the tool 20 will continue to automatically advance along the tool path TP according to the PFR until the condition or end point EP stops the tool 20.
[0149] like Fig. 13B As shown, the second response is to continue to advance the tool 20 according to the last effective feed rate EFR (without applying Fext), where EFR is the feed rate implemented in the previous time step (e.g., T2). Here, in response to the user releasing the tool 20, the feed rate will be maintained at EFR, which is effectively set by the user applying Fext. As long as the user does not apply any manual force to the tool 20 after T3, the tool 20 will continue to automatically advance along the tool path TP according to EFR until the condition or end point EP stops the tool 20.
[0150] As will be described below, the release and recovery example of FIG. 13 is additionally implemented in response to a negative Fext applied by a user in the direction opposite to the predetermined path direction PD1 (eg, as shown in FIG. 16 ).
[0151] Manually releasing the applied force and resuming the automatic advancement feed rate in this manner is beneficial for many practical reasons. The user may desire to move the tool 20 faster or slower in a temporary period before resuming automatic movement. For example, the user may temporarily slow down the feed rate because an object is blocking the tool path TP. Once the object is removed from the path TP, the user releases and resumes automatic advancement. In another example, the user may apply force to temporarily accelerate the feed rate to quickly avoid an upcoming obstacle, and then release and resume automatic advancement. In another example, the user may desire to temporarily apply force to accelerate the feed rate to pass through a portion of the tool path TP that the user considers to be lengthy or far from the anatomical structure. In another example, the user may temporarily slow down the feed rate to intentionally cause a delay for a certain surgical purpose. For example, the saw may be advanced along the tool path TP toward the cutting plane CPL. During this process, the user may realize that surgical components (such as cutting guides, retractors, or irrigation tools) may need to be adjusted or installed near the surgical site. In order to provide time for making such adjustments, the user may temporarily slow down the tool and then release it once such adjustments are completed.
[0152] 4. Reverse manual input for slowing down forward automatic propulsion
[0153] Fig.14A and 14BA situation is shown in which a user applies a reverse external force / torque to a force / torque sensor S during the automatic advancement of a tool 20 along a tool path TP. In other words, the applied force Fext has a component in the direction opposite to the automatic path direction PD1 of the tool 20. Therefore, the user effectively decelerates the rate of automatic advancement. In a sense, this example can be understood as hindering or resisting automatic advancement while still allowing the original advancement direction. During this process, the user will tactilely feel the resistance to the default positive advancement. The effective feed rate EFR is calculated based on negative Fext as input, and the effective feed rate EFR is less than the predetermined feed rate PFR, but is still positive. At T1, the tool 20 reaches the predetermined feed rate PFR during automatic advancement, and at T2, the user gently applies force by pulling the tool 20 against the path direction PD1. At T2, a negative acceleration projection (Aproj) is calculated based on negative Fext, which is used to calculate a negative offset feed rate for reducing the speed from PFR to EFR. However, the negative offset feed rate does not completely offset the initial feed rate. Thus, while negative Fext is applied, the tool 20 will move in the same path direction PD1 but at a slower feed rate.
[0154] Slowing down the automatic advancement feed rate in this way can provide many benefits to the user experience. For example, the user may desire to move the tool 20 to the end point EP more slowly than the default rate. Slowing down can also bring comfort to some users who want to feel the tool 20 before giving up control of the automatic advancement. In other cases, the user can slow down the automatic advancement to avoid a potential collision with the tool 20, or slow down the tool 20 to intentionally delay, thereby waiting for the removal of an undesirable condition or the completion of a surgical adjustment near the end point EP.
[0155] 5. Reverse manual input for overriding forward automatic propulsion
[0156] Fig.15A and 15BA situation similar to that of FIG. 14 is shown in which a user applies a reverse external force / torque to a force / torque sensor S during the automatic advancement of a tool 20 along a tool path TP. In other words, the applied force Fext has a component in the direction opposite to the automatic path direction PD1 of the tool 20. However, in this example, the magnitude of Fext is sufficient to overcome or override the automatic advancement. In other words, the user applies a manual force sufficient to reverse the direction of the tool 20 along the path. During this process, the user will tactilely feel the resistance to the default forward advancement. In this example, at T1, the tool 20 reaches a predetermined feed rate PFR during the automatic advancement, and continues at PFR until T4, where the user applies a force by pulling the tool 20 against the predetermined path direction PD1. In doing so, the user effectively reduces the automatic feed rate to 0, and immediately implements a negative feed rate (in the reverse direction) based on Fext. A negative acceleration projection (Aproj) is calculated based on negative Fext, which is used to calculate a negative offset feed rate for reducing the speed from PFR to EFR. Here, the negative offset feed rate completely cancels out the initial feed rate. In the example shown, EFR is negative and has a speed (in absolute value) less than the predetermined feed rate PFR. Additionally, the negative effective feed rate EFR may have a speed that may be equal to or greater than the predetermined feed rate PFR. Thus, while applying negative Fext, the tool 20 will move in the opposite direction or effective path direction PD2 according to EFR.
[0157] Reversal and override of automatic advancement also provide many benefits to the user experience. For example, a user may desire to move tool 20 along a portion of a tool path TP that was previously traversed. For example, this can be done during registration of manipulator 14 so that navigation system 32 can recapture tracking data that may have been missed or lost. In another example, the direction can be reversed to provide space or delay for certain surgical purposes. For example, the saw can be advanced along tool path TP toward cutting plane CPL. During this process, the user may realize that surgical components (such as cutting guides, retractors, or irrigation tools) may need to be adjusted or installed near the surgical site. In order to avoid damage from the saw or to provide space for such adjustments, the user can apply force to reverse the tool direction. Direction reversal can also be used to avoid potential collisions with tool 20.
[0158] 6. Reverse manual input release in the reverse path direction
[0159] Fig.16A and Fig. 16BA situation is shown in which the user applies a reverse external force / torque to the tool 20 and then the user releases the tool 20 so that Fext is no longer applied. This example provides another instance of how the hybrid mode provides automatic advancement as a default control. Before T1, the tool 20 may have been stationary or may have been advanced in the forward direction at a predetermined feed rate PFR. At T1, the user applies a reverse manual input to the tool 20 so that Fext has a component in the reverse path direction PD1 of the tool 20. After T1, the effective feed rate EFR is calculated based on Fext as input. In this example, it is assumed that Fext is applied in a consistent manner. During this period between T1 and T2, when the tool 20 is moved in the reverse direction, the user may feel resistance on the tool 20 because the predetermined feed rate PFR will want to advance the tool 20 in the forward direction (PD2). Based on the user's input, the tool 20 is advanced at the effective feed rate EFR between T1 and T2. The user then releases the tool at T2 so that Fext is reduced to a zero input value. The path handler modules 82, 87 may identify situations where Fext is zero or unavailable.
[0160] In response to detecting that the tool 20 is released at T2, the path manipulator module 82, 87 can output a response to resume or initiate the predetermined feed rate PFR. The predetermined feed rate PFR can be initiated for the first time here, or the PFR can be resumed based on a previously implemented PFR applied at some time before T1. Here, in response to the user releasing the tool 20 at T2, the feed rate will be accelerated to the PFR because the PFR is greater than the EFR. In accordance with this acceleration, the path direction will then change from the reverse direction PD1 to the forward direction PD2.
[0161] The path manipulator module 82, 87 can apply a default or predetermined acceleration to provide a smooth transition from EFR to PFR at T2. The path manipulator module 82, 87 can calculate the acceleration value by calculating the change in the change in speed between EFR and PFR over time. Additionally, the path manipulator module 82, 87 can obtain the value of the acceleration based on a lookup table that provides various default acceleration values for corresponding speed differences (e.g., PFR-EFR). As long as the user does not apply any manual force to the tool 20 after T2, the tool 20 will continue to automatically advance along the tool path TP according to the PFR at T3 and after T3 until the condition or end point EP stops the tool 20.
[0162] Another possibility is that after releasing the tool 20 at T2, the tool 20 may continue to advance automatically according to the last effective feed rate EFR (without applying Fext), where EFR is the feed rate implemented at some previous time step. For example, in response to the user releasing the tool 20, the feed rate may be set at a positive value of the reverse EFR, which is effectively set by the user applying Fext.
[0163] For many practical reasons, it is beneficial to pull back and manually release the applied force and resume the automatic advancement feed rate in this way. The user may expect to pull the tool 20 back in a temporary period before restarting or starting the automatic movement. For example, the user may expect to move the tool 20 away from an object that blocks the tool path TP. Once the object is removed from the path TP, the user releases and resumes the automatic advancement. In another example, the user may apply a force to reverse the tool direction to quickly avoid the upcoming obstacle, and then release and resume the automatic advancement. In another example, the user may expect to "feel" the path or resistance before restarting the automatic advancement to provide the user with confidence in the guidance provided by the system. In another example, the user may temporarily pull back and manually release the tool 20 to intentionally make room or cause a delay for certain surgical purposes. For example, the saw can be advanced along the tool path TP toward the cutting plane CPL. In the process, the user may realize that surgical components (such as cutting guides, retractors, or irrigation tools) may need to be adjusted or installed near the surgical site. In order to avoid damage from the saw or provide space for such adjustments, the user can apply a force to reverse the tool direction. In another example, the user may desire to pull back the tool 20 along a portion of the tool path TP that was previously traversed. This may be done, for example, during registration of the manipulator 14 to enable the navigation system 32 to recapture tracking data that may have been missed or lost.
[0164] 7. Reverse manual input to offset forward automatic advance
[0165] Fig.17A and 17BA situation similar to that of FIG. 15 is shown in which a user applies a reverse external force / torque to the force / torque sensor S during the automatic advancement of the tool 20 along the tool path TP. In other words, the applied force Fext has a component in the direction opposite to the automatic path direction PD1 of the tool 20. However, in this example, the component of Fext is just enough to offset the automatic advancement. In other words, the user applies a manual force on the tool 20 against the automatic advancement sufficient to keep the tool 20 stationary, e.g., negating the manual force in the tool direction. In this example, at T1, the tool 20 reaches a predetermined feed rate PFR during the automatic advancement, and continues at PFR until T2, where the user applies a force by pulling the tool 20 against the predetermined path direction PD1. In doing so, the user manually reduces the rate of automatic advancement to 0. However, because Fext is just enough to offset the automatic advancement, there is no negative feed rate (in the reverse direction) that is immediately implemented. A negative acceleration projection (Aproj) is calculated based on the negative Fext, which is used to calculate a negative offset feed rate for reducing the velocity of the PFR to the zero effective feed rate EFR. Here, the negative offset feed rate is just offset from the initial feed rate. Thus, while the negative Fext is applied, the tool 20 will remain stationary on the tool path TP. Of course, if the negative offset feed rate offsets and exceeds the initial feed rate, it is possible that the tool 20 will temporarily change direction and move in the opposite direction along the tool path TP.
[0166] In fact, due to the accuracy required in terms of continuously applying the precise Fext value for each time step, it may be challenging to keep the tool 20 stationary in this way. Therefore, as the iterations are processed quickly, with each iteration of evaluating Fext relative to the initial feed rate, the tool 20 can vibrate back and forth along the stationary position. In order to avoid such vibrations, the control system 60 or the path manipulator module 82, 87 can detect the presence of zero effective feed rate EFR within a threshold number of iterations (e.g., more than 10 iterations). If the threshold is met, the system can temporarily suspend hybrid mode control or temporarily stop automatic advancement. User confirmation can then be provided via the user interface to restart the hybrid mode. This temporary suspension and confirmation may be beneficial because, as a safety measure, the control system 60 can infer that the user has identified a problem that causes the user to keep the tool 20 stationary and prevent automatic advancement. In other examples, if the threshold is met, the control system 60 can reverse the direction of the tool 20 along the path TP until a predetermined safe distance from the "holding point" is reached.
[0167] 8. Used to offset the collision of objects that are automatically propelled forward
[0168] Fig.18A and Fig.18BA situation is shown in which a hybrid mode can respond to a collision between a tool 20 and an object (O) on a tool path TP that interferes with the automatic advancement of the tool 20. The object (O) in this example is assumed to be a stationary object and can be any surgical or non-surgical object, such as another tool (e.g., a cutting guide, a retractor, a tracker, or an irrigation tool), an anatomical structure (e.g., a bone, a cutting opening, etc.), etc. In this example, an external force Fext is applied to the tool 20 and provided as an input by a force / torque sensor S. However, in this example, Fext is not provided by the user's manual force. Instead, Fext is provided by a collision between an object (O) and the tool 20. The collision results in a negative Fext having a component in a direction opposite to the automatic path direction PD1 of the tool 20. As in the example of FIG. 17, in this example, the component of Fext is just enough to offset the automatic advancement. In other words, the collision results in a force on the tool 20 that is sufficient to keep the tool 20 stationary against the automatic advancement, such as a force that negates the direction of the tool. In this example, at T1, the tool 20 reaches a predetermined feed rate PFR during automatic advancement, and continues at PFR until T2, where the collision force pushes the tool 20 against the predetermined path direction PD1. In doing so, the collision reduces the rate of automatic advancement to 0. However, because Fext is just enough to offset the automatic advancement, there is no negative feed rate (in the reverse direction) that is immediately implemented. A negative acceleration projection (Aproj) is calculated based on the negative Fext, which is used to calculate a negative offset feed rate for reducing the speed of PFR to a zero effective feed rate EFR. Here, the negative offset feed rate just offsets the initial feed rate. Therefore, as long as the object (O) obstructs the tool path TP and assuming that the object (O) does not move, the tool 20 will remain stationary on the tool path TP. In some cases, the negative offset feed rate may offset and exceed the initial feed rate, resulting in a reverse direction of the tool 20 along the tool path TP.
[0169] In fact, due to the accuracy required in terms of continuously applying accurate Fext values for each time step, it may be challenging to keep the tool 20 stationary relative to the object (O). Therefore, as iterations are processed quickly, with each iteration of evaluating Fext relative to the initial feed rate, the tool 20 can vibrate back and forth along the stationary position. In order to avoid such vibrations, the control system 60 or the path manipulator module 82, 87 can detect the presence of zero effective feed rate EFR within a threshold number of iterations (e.g., more than 10 iterations). If the threshold is met, the system can temporarily suspend hybrid mode control or temporarily stop automatic advancement. User confirmation can then be provided via the user interface to restart the hybrid mode. This temporary suspension and confirmation may be beneficial because as a safety measure, the control system 60 can infer that there may be anti-collision advancement of the tool 20. In other examples, if the threshold is met, the control system 60 can reverse the direction of the tool 20 along the path TP until a predetermined safe distance from the collision point is reached.
[0170] 9. Manual input to exit hybrid control mode
[0171] During the hybrid control advancement of the tool 20, a situation may occur that causes the surgeon to suddenly attempt to pull the tool 20 away from the tool path TP. This situation can occur regardless of whether the manual force input requires continuous pressing of the trigger or switch on the tool 20 or the end effector. If this happens, the force / torque sensor S is exposed to relatively high forces and torques in response to the physician's efforts to shift the tool 20 away from the tool path TP. The force override module implemented by the behavior controller can provide input to the path manipulator 82 or the feed rate evaluator 87 based on this event in response to the response force / torque exceeding the threshold or high force / torque limit controlled by the force override controller. The magnitude and direction of the force / torque can be evaluated by the force override controller to determine the extent to which the applied force / torque deviates from the tool path TP. The force override module is configured to provide input to transition the manipulator 14 from the hybrid control mode to the manual mode. This may cause the path manipulator 82 or the feed rate evaluator 87 to output a zero speed feed rate and stop the automatic advancement of the tool 20. Using the manual mode, the user is then free to control the tool 20 to leave the tool path TP. Additionally, the user may hold the tool 20 on the tool path TP in manual mode.The user may restore the hybrid mode using any of the user interfaces UI or techniques described above.
[0172] Several embodiments have been described in the foregoing description. However, the embodiments discussed herein are not intended to be exhaustive or to limit the invention to any particular form. The terms used are intended to be descriptive rather than restrictive in nature. In view of the above teachings, many modifications and variations are possible, and the invention may be practiced in other ways than those specifically described.
Claims
1. A robotic surgical system comprising: surgical instruments; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure a force / torque applied to the surgical tool by a user; as well as A control system, the control system being configured to: obtaining a predetermined tool path for the surgical tool; commanding the manipulator to perform automatic advancement of the surgical tool in a first path direction and along the predetermined tool path according to a predetermined feed rate; receiving input from the force / torque sensor in response to a force / torque applied to the surgical tool by the user during the automated advancement of the surgical tool; evaluating the effect of the input from the force / torque sensor on the automated advancement of the surgical tool to determine an effective feed rate and effective path direction of the surgical tool relative to the predetermined tool path; and Commanded motion of the manipulator and the surgical tool relative to the predetermined tool path is determined based on the effective feed rate and effective path direction.
2. The robotic surgical system of claim 1, wherein: The effective feed rate is greater than the predetermined feed rate; The effective path direction is the first path direction; and The commanded action includes automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the effective feed rate.
3. The robotic surgical system of claim 2 , wherein the automatic advancement of the surgical tool according to the effective feed rate is based on temporary input from the force / torque sensor, and the automatic advancement of the surgical tool according to the effective feed rate is configured to continue in the absence of input from the force / torque sensor.
4. The robotic surgical system of claim 1, wherein: The effective feed rate is less than the predetermined feed rate; The effective path direction is the first path direction; and The commanded action includes automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the effective feed rate or the predetermined feed rate.
5. The robotic surgical system of claim 1, wherein: The effective path direction is a second path direction opposite to the first path direction; and The commanded action includes advancement of the surgical tool in the second path direction and along the predetermined tool path according to the effective feed rate.
6. The robotic surgical system of claim 5, wherein the commanded action further comprises simultaneously resisting advancement of the surgical tool in the second path direction through attempted automatic advancement of the surgical tool in the first path direction.
7. The robotic surgical system of claim 1, wherein the control system is configured to: detecting an absence of said input from said force / torque sensor; and In response, the manipulator is commanded to initiate or resume the automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the predetermined feed rate or according to a previously effective feed rate.
8. The robotic surgical system of claim 1 , wherein the predetermined tool path includes an end position, and the control system is configured to command the manipulator to perform the automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the predetermined feed rate or the effective feed rate to guide the surgical tool to the end position.
9. The robotic surgical system of claim 8, wherein the surgical tool is a saw and the end position is configured to align the saw with a cutting plane associated with a target site.
10. The robotic surgical system of claim 1, wherein the surgical tool is configured to be enabled to remove tissue, and wherein the control system is configured to deactivate the surgical tool during automated advancement of the surgical tool along the predetermined tool path.
11. The robotic surgical system of claim 1 , wherein the control system is configured to: determining a virtual acceleration vector based on the input from the force / torque sensor; and An effect of the virtual acceleration vector on the automated advancement of the surgical tool is evaluated to determine the effective feed rate and the effective path direction of the surgical tool relative to the predetermined tool path.
12. The robotic surgical system of claim 11, wherein to determine the virtual acceleration vector, the control system is configured to: modeling the surgical tool as a virtual rigid body including a virtual mass; calculating a force projection to the virtual rigid body based on the force / torque applied to the surgical tool; and The virtual acceleration vector is calculated based on the force projection and the virtual mass.
13. The robotic surgical system of claim 12, wherein to determine the effective feed rate and the effective path direction of the surgical tool relative to the predetermined tool path, the control system is configured to: calculating a tool path direction based on the segment of the predetermined tool path on which the surgical tool is currently located; and An acceleration projection along the predetermined tool path is generated by calculating a dot product of the tool path direction and the virtual acceleration vector.
14. The robotic surgical system of claim 11, wherein the control system is configured to: defining a virtual tool path constraint configured to restrict movement of the surgical tool to along the predetermined tool path; and The system is configured to simulate the dynamic characteristics of the surgical tool in a virtual simulation based on the virtual tool path constraints, the predetermined feed rate, and the virtual acceleration vector, thereby evaluating the impact of the virtual acceleration vector on the automated advancement of the surgical tool.
15. The robotic surgical system of claim 1, wherein the control system is configured to command the manipulator to initiate the automatic advancement in response to the force / torque sensor receiving the input from the force / torque manually applied to the surgical tool by the user.
16. A method of operating a robotic surgical system, the robotic surgical system comprising: surgical instruments; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure a force / torque applied to the surgical tool by a user; and a control system, the method comprising causing the control system to perform the following steps: obtaining a predetermined tool path for the surgical tool; commanding the manipulator to perform automatic advancement of the surgical tool in a first path direction and along the predetermined tool path according to a predetermined feed rate; receiving input from the force / torque sensor in response to a force / torque applied to the surgical tool by the user during the automated advancement of the surgical tool; evaluating the effect of the input from the force / torque sensor on the automated advancement of the surgical tool to determine an effective feed rate and effective path direction of the surgical tool relative to the predetermined tool path; and Commanded motion of the manipulator and the surgical tool relative to the predetermined tool path is determined based on the effective feed rate and effective path direction.
17. The method of claim 16, wherein the effective feed rate is greater than the predetermined feed rate and the effective path direction is the first path direction, and comprising causing the control system to: The commanded action is determined as automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the effective feed rate.
18. A method as claimed in claim 17, wherein the automatic advancement of the surgical tool according to the effective feed rate is based on temporary input from the force / torque sensor, and the commanded action includes continuing the automatic advancement of the surgical tool according to the effective feed rate in the absence of input from the force / torque sensor.
19. The method of claim 16, wherein the effective feed rate is less than the predetermined feed rate and the effective path direction is the first path direction, and comprising causing the control system to: The commanded action is determined as automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the effective feed rate or the predetermined feed rate.
20. The method of claim 16, wherein the effective path direction is a second path direction opposite to the first path direction, and comprising causing the control system to: The commanded motion is determined as advancement of the surgical tool in the second path direction and along the predetermined tool path according to the effective feed rate.
21. The method of claim 20, further comprising simultaneously preventing advancement of the surgical tool in the second path direction by the attempted automatic advancement of the surgical tool in the first path direction.
22. The method of claim 16, comprising causing the control system to: detecting an absence of said input from said force / torque sensor; and In response, the manipulator is commanded to initiate or resume the automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the predetermined feed rate or according to a previously effective feed rate.
23. The method of claim 16, wherein the predetermined tool path includes an end position, and comprising causing the control system to: The manipulator is commanded to perform the automatic advancement of the surgical tool in the first path direction and along the predetermined tool path according to the predetermined feed rate or the effective feed rate to guide the surgical tool to the end position.
24. The method of claim 16, wherein the surgical tool is configured to be activated to remove tissue, and comprising causing the control system to deactivate the surgical tool during the automatic advancement of the surgical tool along the predetermined tool path.
25. The method of claim 16, comprising causing the control system to: determining a virtual acceleration vector based on the input from the force / torque sensor; and An effect of the virtual acceleration vector on the automated advancement of the surgical tool is evaluated for determining the effective feed rate and the effective path direction of the surgical tool relative to the predetermined tool path.
26. The method of claim 25, comprising causing the control system to determine the virtual acceleration vector by: modeling the surgical tool as a virtual rigid body including a virtual mass; calculating a force projection to the virtual rigid body based on the force / torque applied to the surgical tool; and The virtual acceleration vector is calculated based on the force projection and the virtual mass.
27. The method of claim 26, comprising causing the control system to determine the effective feed rate and the effective path direction of the surgical tool relative to the predetermined tool path by: calculating a tool path direction based on the segment of the predetermined tool path on which the surgical tool is currently located; and An acceleration projection along the predetermined tool path is generated by calculating a dot product of the tool path direction and the virtual acceleration vector.
28. The method of claim 25, comprising causing the control system to: defining a virtual tool path constraint for restricting movement of the surgical tool to along the predetermined tool path; and The effect of the virtual acceleration vector on the automated advancement of the surgical tool is evaluated by simulating the dynamic characteristics of the surgical tool in a virtual simulation based on the virtual toolpath constraints, the predetermined feed rate, and the virtual acceleration vector.
29. The method of claim 16, comprising causing the control system to command the manipulator to initiate the automatic advancement in response to the force / torque sensor receiving the input from the force / torque manually applied to the surgical tool by the user.
30. A robotic surgical system comprising: surgical instruments; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure a force / torque applied to the surgical tool by a user; as well as A control system, the control system being configured to: commanding the manipulator to perform automatic advancement of the surgical tool along a predetermined tool path according to a feed rate; as well as The feed rate is modified based on the measured force / torque applied to the surgical tool.
31. The robotic surgical system of claim 30, wherein the control system is configured to command the manipulator to perform the automatic advancement of the surgical tool along the predetermined tool path according to the modified feed rate.
32. The robotic surgical system of claim 31 , wherein the control system is configured to command the manipulator to perform the automatic advancement of the surgical tool along the predetermined tool path according to the modified feed rate without additional force / torque being applied to the surgical tool by the user.
33. A robotic surgical system comprising: surgical instruments; a manipulator configured to support the surgical tool, the manipulator comprising a plurality of links and joints; a force / torque sensor configured to measure a force / torque applied to the surgical tool by a user; as well as A control system, the control system being configured to: commanding the manipulator to perform automatic advancement of the surgical tool along a predetermined tool path according to a first path direction; and Based on the measured force / torque applied to the surgical tool, the manipulator is commanded to advance the surgical tool along the predetermined tool path according to a second path direction opposite to the first path direction.
Citation Information
Patent Citations
Prosthetic implant and method of implantation
US20120330429A1
End Effector of a Surgical Robotic Manipulator
US20140276949A1
Systems and methods for controlling movement of a surgical tool along a predefined path
US20200281676A1
Systems and methods for guiding movement of a tool
US20220233251A1
Navigation system including optical and non-optical sensors
US9008757B2