Systems and methods for guiding the movement of a handheld medical robotic instrument
Through the combination of handheld medical robot system and computer programs, the time-consuming problem of physical cutting guide devices is solved, efficient and precise positioning and flexible control of surgical tools are achieved, and surgical efficiency is improved.
Patent Information
- Application Number
- JP2024542035
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-22
- Filing Date
- 2022-12-28
- Publication Date
- 2025-02-04
AI Technical Summary
In the prior art, the physical cutting guide device takes a long time to fix the surgical tool during surgery, affecting the surgical efficiency, and it is difficult to control the large robotic arms flexibly in the operating room.
The handheld medical robot system is adopted, combined with computer programs and control systems, and through multi-degrees of freedom movement and virtual mechanics guidance on the handheld device, precise guidance and position control of surgical tools are achieved.
It improves the positioning efficiency of surgical tools, reduces surgical time, and the flexibility and accuracy of handheld devices make the surgical process more efficient and controllable.
Smart Images

Figure 2025503705000001_ABST
Abstract
Description
[Technical field]
[0001] Physical cutting guides are used to constrain surgical tools when resecting tissue from a patient. In some cases, physical cutting guides constrain such surgical tools for the purpose of preparing a joint to receive a replacement implant. The time required to position and secure a physical cutting guide relative to the patient can account for a significant portion of the overall time required to perform a surgical procedure. [Background technology]
[0002] A navigation system (also referred to as a tracking system) can be used to properly align and secure the fixture as well as to track the position and / or orientation of the surgical tool used to resect tissue from the patient. A tracking system typically employs one or more trackers that are associated with the tool and the tissue being resected. A user can then view the display to determine the current position of the tool relative to the desired cutting path of the tissue to be removed. The display may be positioned in such a manner that the user must look away from the tissue and surgical site to visualize the progress of the tool. This may distract the user from focusing on the surgical site. Also, it may be difficult for the user to position the tool in the desired manner.
[0003] Robotic-assisted surgery typically relies on large robots with robotic arms capable of moving with six degrees of freedom (DOF). These large robots can be cumbersome to operate and maneuver in the operating room. Summary of the Invention
[0004] What is needed is a system and method that addresses one or more of these challenges.
[0005] The present teachings may include corresponding computer systems, apparatus, and computer programs stored on one or more computer storage devices, each configured to perform the operations of the devices and methods.
[0006] Advantages of the present disclosure will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings, in which: [Brief description of the drawings]
[0007] [Figure 1] FIG. 1 is a perspective view of a robot system. [Diagram 2] FIG. 13 is a perspective view of a robotic instrument used to cut one or more planes on the femur and tibia to receive a total knee implant. [Figure 3A] 1A-1C are diagrams of various pitch orientations of the robotic instrument. [Figure 3B] 1A-1C are diagrams of various pitch orientations of the robotic instrument. [Figure 3C] 1A-1C are diagrams of various pitch orientations of the robotic instrument. [Figure 4A] 1A-1C are diagrams of various roll orientations of a robotic instrument. [Figure 4B] 1A-1C are diagrams of various roll orientations of a robotic instrument. [Figure 4C] 1A-1C are diagrams of various roll orientations of a robotic instrument. [Figure 5A] FIG. 13 illustrates various z-axis translation positions of the robotic instrument. [Figure 5B] FIG. 13 illustrates various z-axis translation positions of the robotic instrument. [Figure 5C] FIG. 13 illustrates various z-axis translation positions of the robotic instrument. [Figure 6] FIG. 1 is a front perspective view of the robotic instrument showing one particular orientation of the tool support relative to the handpiece. [Figure 7] 1 is a block diagram of the control system, also showing various software modules. [Figure 8] FIG. 2 is a rear perspective view of the robotic instrument. [Figure 9] FIG. 13 is an exploded view showing the body of the tool support and associated articulation connections to a number of actuators. [Figure 10] FIG. 1 illustrates various areas in which robotic instruments are used. [Figure 11] FIG. 2 is a block diagram of certain modules operable by the control system. [Figure 12] FIG. 13 is a diagram of guide constraints and virtual forces. [Figure 13] FIG. 13 illustrates the output of a boundary generator for a surgical procedure on a femur. [Figure 14] FIG. 1 illustrates a virtual boundary based on a planned surgical implant. [Figure 15] FIG. 13 is a top view of a saw blade and a portion of a patient's anatomy relative to a particular virtual border. [Figure 16] FIG. 1 illustrates a portion of a navigation system relative to a patient's anatomy and a surgical robotic instrument, and potential transformation calculations. [Figure 17A] FIG. 2 is a block diagram of various portions of the control system. [Figure 17B] FIG. 2 is a block diagram of various portions of the control system. [Figure 17C] FIG. 2 is a block diagram of various portions of the control system. [Figure 17D] FIG. 2 is a block diagram of various portions of the control system. [Figure 17E] FIG. 2 is a block diagram of various portions of the control system. [Figure 18] FIG. 13 illustrates another application of guide constraints to attract a tool to a target plane. [Figure 19] FIG. 13 illustrates another application of guide constraints to attract a tool to a target plane. [Figure 20] FIG. 13 illustrates how the rigidity of guide constraints can change with distance. [Figure 21] FIG. 13 is a diagram of joint centering constraints and associated virtual forces. [Figure 22]FIG. 13 is a diagram showing an example of actuator control regarding joint centering behavior. [Figure 23A] FIG. 1 is a perspective view of the instrument showing the range of motion of the controlled tool as viewed in Cartesian space. [Figure 23B] FIG. 1 is a perspective view of the instrument showing the range of motion of the controlled tool as viewed in Cartesian space. [Figure 23C] FIG. 1 is a perspective view of the instrument showing the range of motion of the controlled tool as viewed in Cartesian space. [Figure 24] FIG. 1 is a perspective view of an example of a handheld robotic instrument. [Diagram 25] FIG. 13 illustrates a sample constraint equation. [Figure 26] FIG. 1 illustrates a sample forward dynamics algorithm for performing a virtual simulation. [Figure 27] FIG. 1 illustrates a sample forward dynamics algorithm for performing a virtual simulation. [Figure 28] FIG. 1 illustrates an example set of steps performed by a control system to solve constraints, perform forward dynamics, and determine a commanded attitude. [Figure 29A] 13A-13C illustrate movement of a tool in response to application of guide constraints to pull the tool to a target position and orientation. [Figure 29B] 13A-13C illustrate movement of a tool in response to application of guide constraints to pull the tool to a target position and orientation. [Figure 29C] 13A-13C illustrate movement of a tool in response to application of guide constraints to pull the tool to a target position and orientation. [Figure 29D] 13A-13C illustrate movement of a tool in response to application of guide constraints to pull the tool to a target position and orientation. [Figure 30A] FIG. 13 is a schematic diagram of a robotic instrument performing cutting relative to a guided motion. [Figure 30B] FIG. 13 is a schematic diagram of a robotic instrument performing cutting relative to a guided motion. [Diagram 31] FIG. 2 is a block diagram of a control system. [Diagram 32] FIG. 1 is a schematic diagram of a control implementation of a robotic surgical system using distance parameters. [Figure 33A] FIG. 1 is a schematic diagram of a control implementation of a robotic surgical system using virtual objects. [Figure 33B] FIG. 1 is a schematic diagram of a control implementation of a robotic surgical system using virtual objects. [Figure 33C] FIG. 1 is a schematic diagram of a control implementation of a robotic surgical system using virtual objects. [Diagram 34] FIG. 1 is a schematic diagram of a control implementation of a robotic system using boundaries. [Diagram 35] FIG. 1 is a schematic diagram of a control implementation of a robotic system using two boundaries. [Figure 36A] FIG. 1 is a schematic diagram of a control implementation of a robotic system using two different distance parameters. [Figure 36B] FIG. 1 is a schematic diagram of a control implementation of a robotic system using two different distance parameters. [Figure 37] FIG. 13 is an exemplary user interface including multiple disconnect icons. [Figure 38] 1 is a diagram of an exemplary user interface showing a first region and a second region of a bone. [Figure 39A] FIG. 1 is a schematic diagram of a control implementation of the robotic system that transitions the system to a home state. [Figure 39B] FIG. 1 is a schematic diagram of a control implementation of the robotic system that transitions the system to a home state. [Figure 39C] FIG. 1 is a schematic diagram of a control implementation of the robotic system that transitions the system to a home state. [Diagram 40] FIG. 13 is a schematic diagram of a control implementation of a robotic system that transitions an instrument to a home state, including the use of a virtual object. [Diagram 41]FIG. 13 is a schematic diagram of a control implementation of a robotic system that transitions an instrument to a home state, including the use of a virtual object. [Diagram 42] 1 is a graph depicting multiple time-based velocity thresholds used to control a robotic system. [Diagram 43] 1 is a graph depicting a function of a time-based tuning parameter used to control a robotic system. [Diagram 44] 1A-1C illustrate portions of a navigation system relative to a patient's anatomy and a surgical robotic instrument, as well as other examples of potential transformation calculations for a target trajectory. [Diagram 45] FIG. 2 is a front perspective view of the sterilization container. [Figure 46A] FIG. 1 illustrates the instrument operating in a sterilization mode to move the instrument into a sterile position. [Figure 46B] FIG. 1 illustrates the instrument operating in a sterilization mode to move the instrument into a sterile position. [Figure 47A] FIG. 1 shows an instrument being placed within the cavity of a sterile container to facilitate the sterilization process. [Figure 47B] FIG. 1 shows an instrument being placed within the cavity of a sterile container to facilitate the sterilization process. [Figure 48A] FIG. 13 shows the lid of the sterilization container being placed over the base of the sterilization container to facilitate the sterilization process. [Figure 48B] FIG. 13 shows the lid of the sterilization container being placed over the base of the sterilization container to facilitate the sterilization process. [Figure 49A] FIG. 13 illustrates the instrument operating in a sterilization mode to move the instrument to another sterilization position. [Figure 49B] FIG. 13 illustrates the instrument operating in a sterilization mode to move the instrument to another sterilization position. [Figure 50] FIG. 1 illustrates an instrument having a guidance array. [Figure 51] FIG. 13 illustrates a sterile container defining a second cavity configured to receive a guidance array. [Figure 52]FIG. 13 shows a sterile container with a guidance array received within a second cavity. [Figure 53] FIG. 13 illustrates a representation of a pointer instrument contacting a bone. [Figure 54] FIG. 1 illustrates an example display of a robotic system having indicators. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] (overview) Referring to FIG. 1, a robotic system 10 is shown. The robotic system 10 is shown performing a total knee procedure on a patient 12 to resect a portion of the femur F and tibia T of the patient 12 so that the patient 12 can receive a total knee implant IM. The robotic system 10 may be used to perform other types of surgical procedures, including procedures involving removal of hard / soft tissue, or other forms of treatment. For example, the procedures may include cutting tissue, drilling tissue, coagulating tissue, inserting implants, cauterizing tissue, stapling tissue, suturing tissue, and the like. In some examples, the surgical procedures may include knee surgery, hip surgery, shoulder surgery, spine surgery, and / or ankle surgery (one or more of these techniques) and may include removing tissue to be replaced by a surgical implant, such as a knee implant, a hip implant, a shoulder implant, a spinal implant such as a pedicle screw, and / or ankle implant. The robotic system 10 and techniques disclosed herein may be used to perform other procedures, surgical or non-surgical, and may be used in industrial applications or other applications where robotic systems are utilized. Aspects of planning axes and various boundaries for spinal surgery are described in International Publication No. WO2021062373, which is incorporated herein by reference.
[0009] 1 and 2, the robotic system 10 includes an instrument 14. In some examples, a user holds and supports the instrument 14 in their hands (as shown in FIG. 1). In some other examples, the user may hold the instrument 14 in their hands while the instrument is at least partially or fully supported by an auxiliary device, such as a passive arm (e.g., a link-type arm with a locking joint, a weight-balanced arm), an active arm, etc. As best shown in FIGS. 1 and 2, the instrument 14 includes a handheld portion 16 that is supported by the user.
[0010] The instrument 14 may be freely moved and supported by a user without the aid of a guide arm / assistance device, and may be configured to be held by a human user such that the weight of the tool is supported by only one or both hands of the user during a procedure, for example while performing physical removal of material or cutting of material. In other words, the instrument 14 may be configured to be held such that the user's hands are supporting the instrument 14 against the force of gravity. The instrument 14 may weigh 8 pounds or less, 6 pounds or less, 5 pounds or less, or 3 pounds or less. The instrument 14 may have a weight that complies with ANSI / AAMI HE75:2009.
[0011] In embodiments where the weight of the instrument is configured to be supported by the user without the aid of a guide arm or auxiliary device, the hand-held portion does not have a rigid reference to the ground and moves relative to the ground during control of the actuator assembly. This can be contrasted with a robotic arm that features a base that is coupled to a table, cart, imager, or other component that remains stationary during the procedure. Since the hand-held portion of the instrument may move relative to the ground, the pose of the hand-held portion is dynamic and may need to be considered during control of the hand-held robotic instrument in order to achieve optimal operation, i.e., optimal range of motion, optimal balance and center of gravity relative to the user's hand, and optimal feel to the user to avoid giving the user sensations that may distract the user from positioning the hand-held portion in an ideal way to complete the procedure. This is due to the fact that the control system of the instrument cannot assume that the base, i.e., the hand-held portion, is in a fixed position when calculating navigation transformations between the various moving / deformable components of the system, including but not limited to the tool, tool platform, actuator assembly, and / or the hand-held portion.
[0012] Another complication introduced in handheld medical robotic instruments configured to have their weight supported by a user without the use of a guide arm or auxiliary device is that the reaction forces transmitted through the kinematic chain of the instrument are not transmitted at least in part to the guide arm / auxiliary device, but are ultimately transmitted only to the user's hand. Since in a handheld robotic system the reaction forces must be borne by the user, the control system of the handheld robotic instrument needs to carefully control the actuator assemblies to ensure that these reaction forces do not impair the usability of the system. If the control system results in significant reaction forces being applied to the user's hand at undesirable times and / or in undesirable directions, these reaction forces can affect the user's behavior and move the user's hand and therefore the robotic instrument into undesirable positions, orientations, and / or postures. For example, if there is a mismatch between the virtual world and the real world with respect to bones, tools, tool supports, and / or hand-held parts, the mismatch can lead the control system to control the actuator assemblies in such a way that they apply reaction forces to the user's hand.
[0013] The tool 14 also includes a tool support 18 that receives the tool 20. In some examples, when the tool 20 is a saw blade 380, the tool support 18 may be referred to as a blade support. The method of operating the tool 14 may include the user hanging the weight of the tool 14 without any assistance from a passive or robotic arm. Alternatively, the weight of the tool 14 may be supported by using a counterbalanced passive arm, an auxiliary device, or an active robotic arm, such that the user does not have to support the entire weight of the tool. In such a case, the user may still grasp the handpiece 16 to interact with and / or guide the tool 14. The passive arms and contents of U.S. Patent No. 9,060,794 to Kang et al. are incorporated herein by reference. Additionally, in some examples, the robotic system 10 may not have a robotic arm with two or more joints in series.
[0014] The tool 20 couples to the tool support 18 to interact with anatomical structures in certain operations of the robotic system 10, which are described further below. The tool 20 may also be referred to as an end effector. The tool 20 may be removable from the tool support 18 so that a new / different tool 20 can be attached when needed. The tool 20 may be permanently fixed to the tool support 18. The tool 20 may include an energy applicator designed to contact tissue of the patient 12. In some examples, the tool 20 may be a saw blade, as shown in FIGS. 1 and 2, or other types of cutting attachments. In such examples, the tool support may be referred to as a blade support. It should be understood that in any case where a blade support is mentioned, it may be replaced with the term "tool support" and vice versa. However, other tools may be contemplated, such as those described in U.S. Patent No. 9,707,043 to Bozung, which is incorporated herein by reference. In some examples, the tool 20 may be a twist drill bit, a screwdriver, a tap, an ultrasonic vibrating tip, a bur, a stapler, a rotary cutting tool, etc. The tool 20 may include a blade assembly and a drive motor that induces an oscillatory motion of the blade, as shown in U.S. Patent No. 9,820,753 to Walen et al. or U.S. Patent No. 10,687,823 to Mac an Tulle et al., both of which are incorporated herein by reference. Such drive components may include a transmission TM coupled to the drive motor M that converts the rotational motion from the drive motor M into an oscillatory motion of the tool 20.
[0015] The systems and methods described in PCT application PCT / US2020 / 042128, entitled “Robotic Handheld Surgical Instrument Systems and Methods,” filed July 15, 2020, are also incorporated by reference herein.
[0016] An actuator assembly 400 including one or more actuators 21, 22, 23 moves the tool support 18 in three degrees of freedom relative to the hand-held portion 16 to provide robotic motion that assists in positioning the tool 20 in a desired position and / or orientation (e.g., in a desired pose relative to the femur F and / or tibia T during resection) while the user is holding the hand-held portion 16. The actuator assembly 400 may include actuators 21, 22, 23 arranged in parallel, series, or a combination thereof. In some examples, the actuators 21, 22, 23 move the tool support 18 in more than two degrees of freedom relative to the hand-held portion 16. In some examples, the actuator assembly 400 is configured to move the tool support 18 in at least two degrees of freedom, such as pitch and z-axis translation, relative to the hand-held portion 16. In some examples as shown herein, the actuators 21, 22, 23 move the tool support 18 and its associated tool support coordinate system TCS in only three degrees of freedom relative to the hand-held portion 16 and its associated base coordinate system BCS. For example, the tool support 18 and its tool support coordinate system TCS may rotate about its y-axis to provide pitch motion, rotate about its x-axis to provide roll motion, and translate along an axis Z that coincides with the z-axis of the base coordinate system BCS to provide z-axis translation motion. Permitted motions in pitch, roll, and z-axis translation are indicated by arrows in FIG. 2 and the schematic diagrams of FIGS. 3A-3C, 4A-4C, and 5A-5C, respectively. FIG. 6 shows one example of the orientation of the tool support 18 and the orientation of the handpiece 16 within the range of motion of the instrument 14. In some examples not shown, the actuators may move the tool support 18 with four or more degrees of freedom relative to the handpiece 16.
[0017] The actuator assembly 400 may be configured as a parallel manipulator configuration. As shown throughout this application, a parallel manipulator configuration uses actuators 21, 22, 23 to support a single platform (i.e., tool support 18), which are controlled and operated by a control system 28. The actuators 21, 22, 23 are separate, independent linkages that operate simultaneously and directly connect the tool support 18 and the handpiece 16. In some examples, as shown throughout this application, geometric parallelism is not required to be a parallel manipulator. Other actuator assembly configurations are also contemplated, such as those described in U.S. Pat. No. 9,707,043, entitled "Surgical instrument including housing, a cutting accessory that extends from the housing and actuators that establish the position of the cutting accessory relative to the housing," which is incorporated herein by reference.
[0018] Returning to FIG. 2, a constraint assembly 24 having a passive linkage 26 may be used to constrain the movement of the tool support 18 relative to the handpiece 16 in the remaining three degrees of freedom. The constraint assembly 24 may include any suitable linkage (e.g., one or more links having any suitable shape or configuration) for constraining movement as described herein. In the example shown in FIG. 2, the constraint assembly 24 operates to limit the movement of the tool support coordinate system TCS by constraining the rotation of the base coordinate system BCS about the z-axis to constrain the yaw movement, constraining the translation of the base coordinate system BCS along the x-axis to constrain the x-axis translation, and constraining the translation of the base coordinate system BCS along the y-axis to constrain the y-axis translation. The actuators 21, 22, 23 and constraint assembly 24 are controlled to effectively mimic the function of a physical cutting guide, such as a physical saw cutting guide, in certain circumstances as further described below.
[0019] With reference to FIG. 7, an instrument controller 28, or other type of control unit, is provided for controlling the instrument 14. The instrument controller 28 may include one or more computers or any other suitable form of controller that directs the operation of the instrument 14 and the movement of the tool support 18 (and tool 20) relative to the handpiece 16. The instrument controller 28 may have a central processing unit (CPU) and / or other processors, memory, and storage devices (not shown). The instrument controller 28 is loaded with software, as described below. The processor may include one or more processors that control the operation of the instrument 14. The processor may be any type of microprocessor, multiprocessor, and / or multicore processing system. The instrument controller 28 may additionally or alternatively include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein. The term processor is not intended to limit any embodiment to a single processor. The instrument 14 may also include a user interface UI having one or more displays and / or input devices (e.g., triggers, push buttons, foot switches, keyboards, mice, microphones (voice activated), gesture control devices, touch screens, etc.).
[0020] The control system 60 further includes one or more software programs and modules. The software modules may be part of one or more programs operating in the navigation controller 36, the instrument controller 28, or both to process data to assist in the control of the robotic system 10. The software programs and / or modules include computer readable instructions stored in a non-transitory memory 64 of either or both of the navigation controller 36 and the instrument controller 28 for execution by one or more processors 70 of the controllers 28, 36. The memory 64 may be any suitable configuration of memory, such as RAM, non-volatile memory, and may be implemented locally or from a remote database. Additionally, software modules that prompt or communicate with a user may form part of one or more programs and / or include instructions stored in the memory 64 of the navigation controller 36, the instrument controller 28, or both. The user may communicate with the software modules by interacting with any of the input devices of the navigation user interface UI or other user interface UI. The user interface software may execute on a device separate from the navigation controller 36 and / or the instrument controller 28.
[0021] The tool controller 28 controls the operation of the tool 20, such as by controlling power to the tool 20 (e.g. to a drive motor M of the tool 20 which controls the cutting motion) and by controlling the movement of the tool support 18 relative to the hand-held portion 16 (e.g. by controlling the actuators 21, 22, 23). The tool controller 28 controls the state (e.g. position and / or orientation) of the tool support 18 and tool 20 relative to the hand-held portion 16. The tool controller 28 can control the velocity (linear or angular), acceleration, and / or other derivatives of the movement of the tool 20 relative to the hand-held portion 16 or relative to the anatomical structure caused by the actuators 21, 22, 23.
[0022] 2, the tool controller 28 may include a control housing 29 attached to the tool support 18 and / or handpiece 16, or a combination thereof, within which are located one or more control boards 31 (e.g., one or more printed circuit boards and associated electronic components). The control board 31 may include a microcontroller, field programmable gate array (FPGA), drivers, memory, sensors, or other electronic components that control the actuators 21, 22, 23 and drive motor M (e.g., via a motor controller). The tool controller 28 may also include an off-board control console 33 in data and power communication with the control board 31. The sensors S, actuators 21, 22, 23 and / or drive motor M described herein may provide signals to the control board 31, which may send data signals to the console 33 for processing, which may feed back control commands (e.g., current commands, torque commands, speed commands, angle commands, position commands or combinations thereof, along with various control and configuration parameters) to the control board 31 to power and control the actuators 21, 22, 23 and / or drive motor M. It is contemplated that the processing may be performed on the control board of the control housing. In some examples, the processing of the control algorithms may be distributed between the console and the control housing. In one example, position and speed control calculations may be performed in the console, and current control may be performed in a field programmable gate array located in the control housing. Of course, it is contemplated that a separate control housing is not required and / or that the processing may be performed in any number of different locations.
[0023] In some versions, the console 33 may include a single console that powers and controls the actuators 21, 22, 23 and the drive motor M. In some versions, the console 33 may include one console that powers and controls the actuators 21, 22, 23 and another console that powers and controls the drive motor M. Such a single console that powers and controls the drive motor M may be as described in U.S. Pat. No. 7,422,582, filed Sep. 30, 2004, entitled "Control Console to which Powered Surgical Handpieces are Connected, the Console Configured to Simultaneously Energize more than one and less than all of the Handpieces," which is incorporated herein by reference. A flexible circuit FC, also known as a flex circuit, may interconnect the actuators 21, 22, 23 and / or other components with the instrument controller 28. For example, the flexible circuit FC may be provided between the actuators 21, 22, 23 and the control board 31. Additionally or alternatively, there may be other forms of connections, wired or wireless, between the components. Also, PCT application PCT / US2022 / 013115, filed January 30, 2022, is incorporated herein by reference.
[0024] Referring briefly again to FIG. 1 , the robotic system 10 further includes a navigation system 32. One example of the navigation system 32 is described in U.S. Patent No. 9,008,757, filed September 24, 2013, entitled “Navigation System Including Optical and Non-Optical Sensors,” which is incorporated herein by reference. The navigation system 32 tracks the movements of various objects, such as instruments 14, tools 20, and anatomical structures, such as the femur F and tibia T, or other bony structures, such as one or more vertebrae, pelvis, scapula, humerus, or combinations thereof. The navigation system 32 tracks these objects to collect state information of each object relative to a (navigation) localizer coordinate system LCLZ. As used herein, state of an object includes, but is not limited to, data defining the position and / or orientation of a tracked object (e.g., its coordinate system), or equivalents / derivatives of the position and / or orientation. For example, the state may be the pose of the object and / or may include linear velocity data, angular velocity data, etc.
[0025] The navigation system 32 may include a cart assembly 34 that houses a navigation controller 36 and / or other types of control units. A navigation user interface UI is in operative communication with the navigation controller 36. The navigation user interface UI includes one or more displays 38. The navigation system 32 may use the one or more displays 38 to display a graphical representation of the relative state of the tracked objects to the user. The navigation user interface UI further includes one or more input devices for inputting information into the navigation controller 36 or for otherwise selecting / controlling certain aspects of the navigation controller 36. Such input devices include interactive touch screen displays. However, the input devices may include any one or more of push buttons, pointers, foot switches, keyboards, mice, microphones (voice activation), gesture control devices, etc. In some examples, a user may use buttons located on a pointer to navigate and make selections through icons and menus of the user interface UI to configure the surgical robotic system 10 and / or advance a workflow.
[0026] The navigation system 32 also includes a 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 outer casing 48 that houses one or more optical sensors 50. The localizer 44 may include its own localizer controller 49 and may further include a video camera VC. In certain configurations, the localizer may be coupled to a handheld robotic instrument.
[0027] The navigation system 32 includes one or more trackers. In some examples, the trackers include a pointer tracker PT, a tool tracker 52, a first patient tracker 54, and a second patient tracker 56. In the illustrated example of FIG. 1, the tool tracker 52 is rigidly attached to the instrument 14, the first patient tracker 54 is rigidly affixed to the femur F of the patient 12, and the second patient tracker 56 is rigidly affixed to the tibia T of the patient 12. In this example, the patient trackers 54, 56 are rigidly affixed to bone portions. The trackers 52, 54, 56 and the pointer tracker are registered to their respective objects (e.g., bones, tools) and the navigation system 32 either manually, automatically, or a combination thereof. In some examples, the pointer tracker PT is rigidly affixed to the pointer 57 and is used to register anatomical structures to one or more coordinate systems, including the localizer coordinate system LCLZ, or for other calibration and / or registration functions. In one example, the pointer 57 may be used to register the patient trackers 54, 56 to the bones to which the trackers 54, 56 are attached, respectively, and to register the tool tracker 52 (and optionally 53) to the tool support 18, the tool 20, the hand-held portion 16, or combinations thereof. In some examples, the pointer tracker PT may be used to register the TCP of the instrument 14 to the tracker 52 relative to the tracker coordinate system. In this way, as the localizer 44 is moved from position to position, the registration of the instrument 14 is located relative to the tool tracker 52. However, other means of registration of the trackers 52, 54, 56 are contemplated and may be implemented together with or separately from the pointer tracker PT. Other tracker positions are also contemplated.
[0028] Throughout this specification, various transformations such as "bone to tracker" or "instrument TCP to tracker" are described, i.e., transformations relative to the "tracker coordinate system" and not to the LCTZ coordinate system. The localizer coordinate system may be used as an intermediate coordinate system during registration and bone preparation, since all tracked objects are measured relative to the LCTZ. During registration, the various localizer reference poses are finally mathematically combined, and the registration results are stored "relative to the tracker" so that the registration remains valid if the camera (i.e., the LCTZ) moves.
[0029] The tool trackers 52 may be affixed to any suitable component of the instrument 14, and in some versions may be attached directly to the handpiece 16, the tool support 18, the tool 20, or a combination thereof. The trackers 52, 54, 56, PT may be secured to their respective components in any suitable manner, such as by fasteners, clamps, or the like. For example, the trackers 52, 54, 56, PT may be rigidly fixed, flexibly connected (fiber optics), or not physically connected at all (ultrasound), so long as there is a suitable (complementary) way to determine the relationship (measurement) of their respective trackers to the associated object. Any one or more of the trackers 52, 54, 56, PT may include an active marker 58. The active marker 58 may include a light emitting diode (LED). Alternatively, the trackers 52, 54, 56, PT may have passive markers, such as reflectors, that reflect light emitted from the camera unit 46. Printed markers, or other suitable markers not specifically described herein, may also be utilized.
[0030] Various coordinate systems may be employed for tracking purposes. For example, the coordinate systems may include a localizer coordinate system LCLZ, a tool support coordinate system TCS, a base coordinate system BCS, a coordinate system associated with each of the trackers 52, 54, 56, PT, one or more coordinate systems associated with the anatomical structures, one or more coordinate systems associated with pre-operative and / or intra-operative images (e.g., CT images, MRI images, etc.) and / or models (e.g., 2D or 3D models) of the anatomical structures (e.g., implant coordinate systems), and a TCP (Tool Center Point) coordinate system, etc. In some examples, the robotic system 10 does not rely on pre-operative or intra-operative imaging to create 2D and / or 3D models of the target bone. Rather, the robotic system may be used in an imaging-free system that uses the pointer tracker PT to register the target anatomical structures and capture various anatomical landmarks, and the target anatomical structures are then processed by the control system 60 to morph the nominal bone model to match the captured data. In another example, pre-operative and intra-operative imaging is used to image the target area of the patient, and the 2D and / or 3D images are converted into a 3D model of the target bone. It is also contemplated that the surgical robotic system 10 may use a combination of imaging and non-imaging procedures in creating the 3D model of the target area. One exemplary system is described in U.S. Patent No. 8,617,174, which is incorporated herein by reference. Coordinates in various coordinate systems may be transformed to other coordinate systems using transformations in establishing relationships between the coordinate systems, for example, via registration, calibration, geometric relationships, measurements, etc.
[0031] As shown in FIG. 2, in some examples, the TCP is a predetermined reference point or origin of a TCP coordinate system defined at the distal end of the tool 20. The geometry of the tool 20 may be defined relative to either or both of the TCP coordinate system and the tool support coordinate system TCS. The tool 20 may include one or more geometric features, such as perimeter, circumference, radius, diameter, width, length, height, volume, area, surface / plane, range of motion envelope (along any one or more axes), etc., defined relative to either or both of the TCP coordinate system and the tool support coordinate system TCS and stored in non-volatile memory of the control board 31 in the control housing 29 of the instrument 14, the navigation system 32, the instrument controller 28, or a combination thereof. The tool center point (TCP) is a predetermined reference point and corresponding coordinate system defined on the tool 20 in one example. The TCP has a known or calculable (i.e., not necessarily static) orientation relative to the other coordinate systems. The TCP coordinate system includes an origin and a set of axes (e.g., x-axis, y-axis, z-axis) that define the orientation of the TCP. By tracking the TCP (or knowing the pose of the TCP), the system 10 may calculate the position and orientation of the tool 14 based on the pose of the TCP and the known positional relationship between the TCP and features of the tool 14. In some examples, the tool 20 has a cutting surface (e.g., in the case of a saw blade), which is described for convenience and ease of illustration, but is not intended to limit the tool 20 to any particular form. In other examples, the tool 20 has an axis. The tool 20 can be virtually represented using points, other primitives, meshes, other 3D models, etc. The origin of the TCP coordinate system may be located at the spherical center of the bur 25 of the tool 20, the tip of the drill bit, or the distal end of the saw blade 27, such that the TCP coordinate system is tracked relative to an origin on the distal tip of the tool 20. Alternatively, the TCP may be tracked using multiple tracked points. The TCP may be defined in various ways depending on the configuration of the tool 20. The instrument may employ joint / motor encoders, or any other non-encoder position sensing method, so that the control system 60 may determine the attitude and / or position of the TCP relative to the handpiece 16 and BCS.The tool support 18 may use articulation measurements to determine the pose of the TCP and / or techniques may be employed to directly measure the pose of the TCP. Control of the tool 20 is not limited to a center point. For example, any suitable primitive, mesh, etc. may be used to represent the tool 20. It should be understood that the TCP may alternatively be defined as a point as opposed to a coordinate system. The TCP coordinate system allows any necessary reference points or geometric aspects of the tool to be calculated after the pose of the saw blade or other tool is determined.
[0032] The TCP coordinate system, the tool support coordinate system TCS, and the coordinate system of the tool tracker 52 can be defined in various ways depending on the configuration of the tool 20. For example, the pointer 57 may be used to register (calibrate) the attitude of the tool support coordinate system TCS to the coordinate system of the tool tracker 52, determine the attitude of the TCP coordinate system to the coordinate system of the tool tracker 52, and / or determine the attitude of the TCP coordinate system to the tool support coordinate system TCS, together with the tool support 18 and / or the calibration divot CD in the tool 20. Other techniques may be used to directly measure the attitude of the TCP coordinate system, such as by mounting and fixing one or more additional trackers / markers directly to the tool 20. In some versions, the trackers / markers may also be mounted and fixed to the handheld 16, the tool support 18, or both. In cases where the handheld includes a tracker, the attitude of the handheld relative to the localizer coordinate system LCTZ may be measured directly. In yet another alternative, an intermediate tool support coordinate system TCS may be used to define the TCP relative to the tool tracker.
[0033] Because the tool support 18 is movable with multiple degrees of freedom relative to the handpiece 16 via the actuators 21, 22, 23, the instrument 14 may employ encoders, Hall effect sensors (having analog or digital output), and / or any other position sensing method to measure the orientation of the TCP coordinate system and / or the tool support coordinate system TCS relative to the base coordinate system BCS. In one exemplary configuration, the instrument 14 may determine the orientation of the TCP coordinate system and / or the tool support coordinate system TCS relative to the base coordinate system BCS using measurements from sensors that measure the actuation of the actuators 21, 22, 23, as described further below.
[0034] The localizer 44 monitors the trackers 52, 54, 56, PT (e.g., their coordinate systems) to determine a state of each of the trackers 52, 54, 56, PT, which state corresponds to a state of the object to which they are respectively attached. The localizer 44 may perform known techniques to determine the state of the trackers 52, 54, 56, PT and associated objects (such as tools, patients, tool supports, and handhelds). The localizer 44 provides the state of the trackers 52, 54, 56, PT to the navigation controller 36. In some examples, the navigation controller 36 determines and communicates the state of the trackers 52, 54, 56, PT to the instrument controller 28.
[0035] 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 processor, memory, and storage (not shown). The processor may be any type of processor, microprocessor, or multiprocessor system. The navigation controller 36 is loaded with software. The software converts signals received from, for example, the localizer 44 into data representative of the position and / or orientation of the object being tracked. The navigation controller 36 may additionally or alternatively include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein. The term processor is not intended to limit any embodiment to a single processor.
[0036] Although one example of the navigation system 32 is shown to determine the status of the object, the navigation system 32 may have any other suitable configuration for tracking the instrument 14, the tool 20, and / or the patient 12. In another example, the navigation system 32 and / or the localizer 44 are ultrasound-based. For example, the navigation system 32 may include an ultrasound imaging device coupled to the navigation controller 36. The ultrasound imaging device images any of the objects described above, e.g., the instrument 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 2D, 3D, or a combination of both. The navigation controller 36 may process the image in near real-time to determine the status of the object. The ultrasound imaging device may have any suitable configuration and may be different from the camera unit 46 as shown in FIG. 1.
[0037] In another example, the navigation system 32 and / or the localizer 44 are radio frequency (RF) based. For example, the navigation system 32 may include an RF transceiver coupled to the navigation controller 36. The instrument 14, the tool 20, and / or the patient 12 may be fitted with an RF emitter or transponder. The RF emitter or transponder may be passively or actively energized. The RF transceiver transmits an RF tracking signal and generates a status signal to the navigation controller 36 based on the RF signal received from the RF emitter. The navigation controller 36 may analyze the received RF signal and associate a relative status therewith. The RF signal may be at any suitable frequency. The RF transceiver may be positioned at any suitable location to effectively use the RF signal to track the object. Additionally, the RF emitter or transponder may have any suitable structural configuration that may be much different than the trackers 52, 54, 56, PT shown in FIG. 1.
[0038] In yet another example, the navigation system 32 and / or the localizer 44 are electromagnetic based. For example, the navigation system 32 may include an EM transceiver coupled to the navigation controller 36. The instrument 14, the tool 20, and / or the patient 12 may be fitted with EM components, such as any suitable magnetic, electromagnetic, inductive, etc. trackers. The trackers may be passively or actively energized. The EM transceiver generates an EM field and generates a status signal to the navigation controller 36 based on the EM signals received from the trackers. The navigation controller 36 may analyze the received EM signals and associate a relative status therewith. Again, such examples of the navigation system 32 may have a structural configuration different from that of the navigation system 32 shown in FIG. 1.
[0039] The navigation system 32 may have any other suitable components or structure not specifically described herein. Additionally, any of the techniques, methods and / or components described above with respect to the illustrated navigation system 32 may be implemented or provided for any of the other examples of the navigation system 32 described herein. For example, the navigation system 32 may utilize inertial tracking alone or any combination of tracking techniques, and may additionally or alternatively include fiber optic based tracking, machine vision tracking, etc.
[0040] With reference to FIG. 7 , the robotic system 10 includes a control system 60 comprising, among other components, an instrument controller 28 and a navigation controller 36. The control system 60 further includes one or more software programs and software modules. The software modules may be part of one or more programs operating on the instrument controller 28, the navigation controller 36, or a combination thereof to process data to assist in the control of the robotic system 10. The software programs and / or modules include computer readable instructions stored in a memory 64 on the instrument controller 28, the navigation controller 36, or a combination thereof for execution by one or more processors 70 of the controller 28. The memory 64 may be any suitable configuration of memory, such as non-transitory memory, RAM, non-volatile memory, etc., and may be implemented locally or from a remote database. Additionally, software modules that prompt and / or communicate with a user may form part of one or more programs and include instructions stored in a memory 64 on the instrument controller 28, the navigation controller 36, or a 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 modules. The user interface software may run on a device separate from the instrument controller 28 and / or the navigation controller 36. The instrument 14 may communicate with the instrument controller 28 via a power / data connection, which may provide a pathway for inputs and outputs used to control the instrument 14 based on position and orientation data generated by the navigation system 32 and transmitted to the instrument controller 28, as shown as a BUS / COMM connection 37 in FIG.
[0041] The control system 60 may include any suitable configuration of input devices, output devices, and processing devices suitable for performing the functions and methods described herein. The control system 60 may include the instrument controller 28, the navigation controller 36, or a combination thereof, and / or only one of these controllers, or additional controllers. The controllers may communicate via a wired bus or communication network, such as shown in one example as the BUS / COMM connection 37 in FIG. 7, via wireless communication, or in other manners. The control system 60 may also be referred to as a controller. The control system 60 may include one or more microcontrollers, field programmable gate arrays, systems-on-chips, discrete circuits, sensors, displays, user interfaces, indicators, and / or other suitable hardware, software, or firmware capable of performing the functions described herein.
[0042] (Instruments) In one exemplary configuration, the instrument 14 is best shown in Figures 8 and 9. The instrument 14 comprises a hand-held portion 16 for holding by a user, a tool support 18 movably coupled to the hand-held portion 16 for supporting a tool 20, an actuator assembly 400 having a number of actuators 21, 22, 23 operatively interconnecting the tool support 18 and the hand-held portion 16 to move the tool support 18 relative to the hand-held portion 16 in at least three degrees of freedom, and a constraint assembly 24 having a passive linkage 26 operatively interconnecting the tool support 18 and the hand-held portion 16.
[0043] The hand-held portion 16 includes a grip 72 that a user grasps to allow the user to manipulate, navigate, and / or grip the instrument 14. The hand-held portion 16 may be configured with ergonomic features, such as a textured or mixed material coating to prevent the user's hand from slipping when wet and / or bloody, such as a grip that the user's hand holds. The hand-held portion 16 may include a contoured taper to match the contours of a user's hand and / or fingers to accommodate users with different hand sizes. The hand-held portion 16 also includes a base 74 to which the grip 72 is attached by one or more fasteners, adhesives, welding, etc. In the illustrated version, the base 74 includes a sleeve 76 having a generally hollow cylindrical shape. Extending from the sleeve 76 are articulated supports 77, 78, 79. The actuators 21, 22, 23 may be movably coupled to the base 74 at the articulated supports 77, 78, 79 via articulations, which will be described further below.
[0044] The tool support 18 includes a tool support body 80 to which the tool tracker 52 may be fixedly or removably mounted via one or more tracker mounts secured to the tool support 18 at one or more mounting locations 82. In one example, the tool tracker 52 is integral with the tool support 18. In another example, the tool tracker 52 is removably mounted at one or more mounting locations 82. The tool 20 is removably coupled to the tool support 18 in the illustrated version. In particular, the tool support 18 includes a tool coupler, such as a head 84 to which the tool 20 is mounted, as described in U.S. Pat. No. 9,820,753 to Walen et al., which is incorporated herein by reference. The head 84 may be configured to utilize a sagittal saw blade as well as an oscillating saw blade. A drive motor M for driving the movement of the tool 20 is disposed in the tool support 80 (e.g., to drive the oscillation of the saw blade in some versions). The tool 20 may be attached to and released from the head 84 in the manner disclosed in U.S. Patent No. 9,820,753 to Walen et al., which is incorporated herein by reference. As best shown in FIG. 9, the tool support 18 also includes a number of actuator mounts 86, 88, 90 to which the actuators 21, 22, 23 are to be movably coupled to the tool support 18 via articulations, as described further below. The actuator mounts 86, 88, 90 may include brackets or the like suitable for mounting the actuators 21, 22, 23 such that the tool support 18 can move with at least three degrees of freedom relative to the handpiece 16.
[0045] The actuators 21, 22, 23, in the version shown, comprise motorized linear actuators extending between the base 74 and the tool support 80. When actuated, the effective lengths of the actuators 21, 22, 23 change to modify the distance between the tool support 80 and the base 74 along the corresponding axis of the actuators 21, 22, 23. Thus, in response to individual inputs provided by the control system 60 to each actuator 21, 22, 23, respectively, the control system 60 commands the actuators 21, 22, 23 to operate in concert to modify their effective lengths and move the tool support 18 in at least three degrees of freedom relative to the handpiece 16 to a target pose. In the version shown, three actuators 21, 22, 23 are provided, which may be referred to as a first actuator 21, a second actuator 22 and a third actuator 23, or a front actuator 21, 22 and a rear actuator 23. The first actuator 21, the second actuator 22, and the third actuator 23 are adjustable in effective length along the first active axis AA1, the second active axis AA2, and the third active axis AA3 (see FIG. 9). The first actuator 21, the second actuator 22, and the third actuator 23 are independently adjustable in effective length to adjust one or more of the pitch orientation, the roll orientation, and the z-axis translational position of the tool support 18 relative to the handpiece 16, as described above. In some examples, more actuators may be provided. The actuators may include rotary actuators in some examples. The actuators 21, 22, 23 may comprise a linkage having one or more links of any suitable size or shape. The actuators 21, 22, 23 may have any suitable configuration to enable movement of the tool support 18 relative to the handpiece 16 in at least three degrees of freedom. For example, in some versions, there may be one front actuator and two rear actuators, or some other arrangement of actuators.
[0046] In this version, the actuators 21, 22, 23 are coupled to the base 74 and the tool support 80 via a number of active joints. The active joints include a set of first active joints 92 that couple the actuators 21, 22, 23 to the tool support 80 at actuator mounts 86, 88, 90. In one version, as shown in FIG. 9, the first active joints 92 include an active universal joint. The universal joint includes a first pivot pin 94 and a joint block 96. The first pivot pin 94 pivotally connects the joint block 96 to the actuator mounts 86, 88, 90 via a through bore 98 in the joint block 96. A set screw 100 may secure the first pivot pin 94 to the actuator mounts 86, 88, 90. The universal joint may also include a second pivot pin 104. The joint block 96 has a cross bore 102 for receiving a second pivot pin 104. The second pivot pin 104 has a through bore 103 for receiving the first pivot pin 94, such that the first pivot pin 94, the joint block 96 and the second pivot pin 104 form a universal joint cross. The first pivot pin 94 and the second pivot pin 104 of each universal joint define intersecting pivot axes PA. The second pivot pin 104 pivotally connects the pivot yokes 106 of the actuators 21, 22, 23 to the joint block 96. As a result, the actuators 21, 22, 23 can move with two degrees of freedom relative to the tool support 80. Other types of active joints are also contemplated, such as active spherical joints including balls with slots that receive pins.
[0047] 9, the active joints also include a pair of second active joints 108 that couple the front two actuators 21, 22 to the base 74 of the hand-held part 16. In the version shown, the second active joints 108 are supported on articulation supports 77, 78. Each of the second active joints 108 includes a swivel yoke 110 arranged to pivot relative to the base 74 of the hand-held part 16 about a swivel axis SA. Each swivel yoke 110 has a swivel head 112 and a post 114 extending from the swivel head 112 and pivotally engaging the base 74 at one of the articulation supports 77, 78. A nut 115 is threadably connected to one end of the post 114 to capture the post 114 in the base 74 while allowing each swivel yoke 110 to rotate freely within its respective articulation support 77, 78.
[0048] Each of the second active joints 108 includes a carrier 116 pivotally coupled to one of the swivel yokes 110. The carrier 116 has an internally threaded through bore 117 that receives the lead screws 150 of the front two actuators 21, 22, as described further below. Each of the carriers 116 also includes opposing trunnions 118 that seat in pockets in the swivel yoke 110, thereby allowing the carrier 116 to pivot about a pivot axis PA (see FIG. 9 ) relative to the swivel yoke 110. In some versions, for each of the second active joints 108, the swivel axis SA intersects with the pivot axis PA to define a single vertex about which the actuators 21, 22 move in two degrees of freedom.
[0049] A cover is fastened to the swivel head 112 and defines one of the pockets, while the swivel head 112 defines the other pocket. During assembly, the carrier is first positioned with one of the trunnions disposed in the pocket in the swivel head 112, and the cover is fastened onto the other trunnion such that the carrier is captured between the cover and the swivel head 112 and can pivot relative to the swivel yoke 110 via the trunnion and the pocket. Due to the configuration of the swivel yoke 110 and the associated carrier, i.e. the carrier can pivot about the swivel axis SA and pivot about the pivot axis PA, the second active joint 108 allows two degrees of freedom of movement of the front two actuators 21, 22 relative to the base 74. Other joint arrangements between the front two actuators 21, 22 and the base 74 are also possible.
[0050] The active joint also includes a third active joint 124 that couples the rear (third) actuator 23 to the base 74 of the handpiece 16. In the version shown, the third active joint 124 is supported on the joint support 79. The third active joint 124 comprises a pivot housing 126 fixed to the joint support 79 of the base 74.
[0051] The third active joint 124 comprises a carrier pivotally coupled to the pivot housing 126 via a trunnion. Fasteners having pockets are attached to either side of the pivot housing 126 via through bores to engage the trunnions. The fasteners are arranged so that the carrier can pivot via the trunnions located in the pockets after assembly. The carrier has an internally threaded through bore that receives the lead screw 150 of the rear actuator 23, as described further below. Due to the configuration of the pivot housing 126 and associated carrier, i.e., the associated carrier can only pivot (e.g., not swivel) about the pivot axis PA, the third active joint 124 allows only one degree of freedom of movement of the rear actuator 23 relative to the base 74. Other joint arrangements between the rear actuator 23 and the base 74 are also possible.
[0052] Each of the actuators 21, 22, 23 comprises a housing. The housing comprises a canister and a cap threadably connected to the canister. A pivot yoke 106 forming part of the first active joint 92 is fixed to the housing such that the housing and the pivot yoke 106 can move together relative to the tool support 18 via the first active joint 92. The cap captures an annular shoulder of the pivot yoke 106 to secure the pivot yoke 106 to the canister.
[0053] In some versions, the pivot yoke 106 and the canisters include one or more alignment features for aligning each pivot yoke 106 with its respective canister in a predefined relative orientation. Such alignment features may include mating portions, keys / keyways, etc. During assembly, the pivot yoke 106 may first be secured to the canister in its predefined relative orientation, and then a cap may be screwed onto the canister (e.g., via mating male and female threads) to capture the pivot yoke 106 to the canister in the predefined relative orientation. This predefined relationship may be useful to prevent rolling of the pivot yoke 106 relative to the canister when routing and / or aligning the flex circuit FC, and / or for other purposes.
[0054] Each of the actuators 21, 22, 23 also includes a motor disposed within the respective housing. The motor has a casing disposed within the housing and a motor winding assembly disposed within the casing. The motor winding assembly may also be aligned in a predefined relative orientation to the canister, such as via a set screw or other alignment mechanism such as those described above. Each motor also has a rotor secured to a lead screw 150. The lead screw 150 is supported for rotation within the housing by one or more bushings and / or bearings. The rotor and associated lead screw 150 are configured to rotate relative to the housing upon selective energization of the motor. The lead screws 150 have fine pitch and lead angles to prevent backdriving (i.e., they are self-locking). As a result, loads on the tool 20 do not easily backdrive the motor. In some examples, the lead screw 150 has 8 to 36 class 3 threads that provide a lead of 0.02 inches to 0.03 inches per revolution. Other thread types / sizes may be employed.
[0055] Each of the actuators 21, 22, 23 may be controlled by a separate motor controller. The motor controller may be separately wired to each of the actuators 21, 22, 23 to individually steer each actuator 21, 22, 23 to a given target position. In some examples, the motor controller is a proportional integral derivative (PID) controller. In some examples, the motor controller may include cascaded control loops for position, velocity, and torque (current). Additionally and / or alternatively, the motor controller may include only a torque (current) control loop. In another example, the position control loop may directly feed into the torque (current) control loop. Each of these control stages may be implemented as a PID controller, a state space controller, and / or may utilize alternative or additional control techniques (e.g., velocity feedforward, torque feedforward, etc.). In some cases, the torque (current) control loop is implemented using field oriented control and space vector modulation. The stages of the control loop may be distributed among various components of the system. In some examples, the position and velocity loops are implemented in the instrument controller and the torque control loop is implemented directly on the control board 31 as part of the control housing 29 on the instrument 14, mitigating the effects of data communication latency from the instrument 14 via a connection to the console 33 since the current control loop does not require any data feedback via the console 33. The position and velocity control loops are less sensitive to communication latency and therefore may be implemented in the console 33. In some examples, the motor controller may be integrated with or form part of the instrument controller 28. For ease of explanation, the motor controller will be described herein as being part of the instrument controller 28.
[0056] The power supply provides, for example, a 32 VDC power signal to the motors via the console 33. The 32 VDC signal is applied to the motors via the tool controller 28. The tool controller 28 selectively provides a power signal to each motor to selectively activate the motors. This selective activation of the motors positions the tool 20. The motors may be any suitable type of motor, such as a brushless DC servo motor, a permanent magnet synchronous motor, or other forms of DC motor. The power supply also provides power to the tool controller 28 to energize components internal to the tool controller 28. In some examples, the actuator motors may be three-phase brushless motors. The actuator motors may be DC motors. The actuator motors may be permanent magnet synchronous motors. Each of the actuator motors may be configured to have a sinusoidal back EMF configured to achieve mechanical cogging limitations to limit torque ripple and allow smooth and specific motion. However, other motor types are contemplated. It should be understood that the power supply may provide other types of power signals, such as, for example, 12 VDC, 24 VDC, 40 VDC, etc. The instrument may use electronic switches, e.g., MOSFETs or GaN FETs, to pulse width modulate the voltage signal to the three-phase motor on and off at a high frequency, e.g., typically at a rate of at least 16 kHz and up to 256 kHz or more.
[0057] In one possible implementation, one or more sensors S (see also FIG. 7) send signals back to the instrument controller 28 so that the instrument controller 28 can determine the current position and / or angle (i.e., measured position) of the associated actuators 21, 22, 23. The level of these signals may vary as a function of the rotational position of the associated rotor. In one implementation, the sensors S may resolve with high resolution the rotational position of the rotor within a given turn. These sensors S may be Hall effect sensors that output analog and / or digital signals based on sensed magnetic fields from the rotor or from other magnets (e.g., two-pole magnets) located on the lead screw 150. A low voltage signal, e.g., 5VDC, for energizing the Hall effect sensors may be provided by a motor controller associated with the motor with which the Hall effect sensors are associated. In some examples, two Hall effect sensors are located in a housing and spaced 90 degrees apart from each other around the rotor to sense the joint position so that the instrument controller 28 can determine the position and count incremental turns of the rotor. In some versions, the Hall effect sensor outputs a digital signal representing the incremental count. Various types of motors and sensor arrangements are possible. In some examples, the motor is a brushless DC servo motor and may have two or more internal Hall effect sensors arranged at 90 degrees, 120 degrees, or any other suitable interval from each other around the rotor. The sensor S may also include an absolute or incremental encoder that may be used to detect the rotational position of the rotor and count the turns of the rotor. Other types of encoders may be used as the sensor or sensors. The sensors may be located on the actuator and its surrounding components at any suitable location suitable for determining the position of each actuator being adjusted, such as a housing, nut, screw, etc. In yet another configuration, sensorless motor control may be utilized. In such an embodiment, the position of each rotor may be determined by measuring the back-emf and / or inductance of the motor. One suitable example may be found in U.S. Pat. No. 7,422,582, which is incorporated herein by reference in its entirety.
[0058] In some examples, the sensors and / or encoders may measure position feedback for joint position control and / or to determine the position of the tool support 18 relative to the handpiece 16 when used with a kinematic model of the instrument 14. In some examples, the sensors and / or encoders rely on multi-turn measurements that are accumulated revolution by revolution and used to determine the absolute position of the actuators 21, 22, 23 along their axes, along with the known pitch (i.e., the number of turns per inch of the lead screw). Additionally or alternatively, the sensors and / or encoders may be used to determine the "electrical angle of the rotor" used for electronic commutation of the motor. For example, the sensors and / or encoders may be used to determine the rotor position and apply appropriate energization signals to achieve optimal (efficient) torque generation. In this example, the sensors and / or encoders may utilize single-turn or sub-turn measurements over each electrical revolution (within one electrical revolution). The number of electrical revolutions is equal to the number of mechanical revolutions divided by the number of poles (e.g., the number of pole pairs) of the motor. However, it is also contemplated that a sensorless method may be implemented.
[0059] In some examples, the output signals from the Hall effect sensors are sent to the instrument controller 28. The instrument controller 28 monitors the received signals for changes in their levels. Based on these signals, the instrument controller 28 determines the joint position. The joint position may be considered as the degree of rotation of the rotor from an initial position or home position. The rotor can rotate 360 degrees multiple times. Thus, the joint position can be greater than 360 degrees. A scalar value, called a count, represents the joint position from the home position. The rotor rotates in both clockwise and counterclockwise directions. Each time the signal levels of the signals (analog or digital) undergo a defined state change, the instrument controller 28 increments or decrements the count to indicate a change in the joint position. Each time the rotor rotates completely 360 degrees, the instrument controller 28 increments or decrements the value of the count by a fixed number of counts. In some examples, the count is incremented or decremented by 100-3000 for each 360 degree rotation of the rotor. In some examples, such as when incremental encoders are used to monitor joint position, there are 1,024 positions (counts) per 360 degree rotation of the rotor. Internal to the instrument controller 28, there is a counter associated with each actuator 21, 22, 23. The counter stores a value equal to the cumulative number of incremented or decremented counts. The count value can be positive, zero, or negative. In some versions, the count value defines the incremental movement of the rotor. Thus, the rotors of the actuators 21, 22, 23 may first be moved to known positions, referred to as their home positions (described further below), and then the count value may be used to define the current position of the rotor.
[0060] As mentioned above, the carriers have internally threaded through bores that threadably receive the lead screws 150 such that each of the lead screws 150 can rotate relative to a corresponding one of the carriers to adjust the effective length of a corresponding one of the plurality of actuators 21, 22, 23, thereby changing the count measured by the instrument controller 28. Each of the housings and corresponding carriers are constrained in at least one degree of relative motion to allow the lead screws 150 to rotate relative to the carrier. More specifically, the lead screws 150 are allowed to rotate relative to the carrier for the following reasons: That is, the pivot yoke 106 cannot rotate about the associated active axes AA1, AA2, AA3 (i.e., the pivot yoke 106 is limited in such rotational movement by the configuration of the first active joint 92), and the carrier cannot rotate about the associated active axes AA1, AA2, AA3 (i.e., the carrier is limited in such rotational movement by the configurations of the second active joint 108 and the third active joint 124).
[0061] The lead screws 150 are secured to stops 152, such as threaded fasteners or shoulders formed on the lead screws 150. The stops 152 are sized to abut the carrier 116 at the end of travel of each lead screw 150.
[0062] As mentioned above, the actuators 21, 22, 23 have an active adjustable length to allow movement of the tool support 18 relative to the handpiece 16. One example of this active length is labeled "EL" on the third actuator 23, where the active length EL is measured from the pivot axis PA to the center of the associated first active joint 92. As each actuator 21, 22, 23 is adjusted, the active length EL changes by changing how far the lead screw 150 is threaded into or out of its associated carrier, thereby changing the distance from the center of the associated carrier to the center of the associated first active joint 92. The actuators 21, 22, 23 are adjustable between a minimum and a maximum active length EL. The active length EL of each actuator 21, 22, 23 can be represented / measured in any suitable manner to indicate the distance between the tool support 18 and the handpiece 16 along the active axes AA1, AA2, AA3 that change to cause various movements of the tool support 18 relative to the handpiece 16.
[0063] The constraint assembly 24 cooperates with the actuators 21, 22, 23 to constrain the movement provided by the actuators 21, 22, 23. The actuators 21, 22, 23 provide three degrees of freedom of movement, while the constraint assembly 24 constrains three degrees of freedom of movement. In the illustrated version, the constraint assembly 24 includes a passive linkage 26 as well as a passive linkage joint 156 that couples the passive linkage 26 to the tool support 18.
[0064] In one version, as shown in FIG. 9 , the passive link joint 156 includes a passive link universal joint. The universal joint includes a first pivot pin 158 and a joint block 160. The first pivot pin 158 pivotally connects the joint block 160 to a passive link fixture 162 of the tool support 80 via a through bore 164 in the joint block 160. A set screw 166 may secure the first pivot pin 158 to the passive link fixture 162. The universal joint also includes a second pivot pin 170. The joint block 160 has a cross bore 168 that receives the second pivot pin 170. The second pivot pin 170 pivotally connects a passive link pivot yoke 172 of the passive linkage 26 to the joint block 160. The second pivot pin 170 has a through bore 171 that receives the first pivot pin 158 such that the first pivot pin 158, the joint block 160 and the second pivot pin 170 form a universal joint cross. The first pivot pin 158 and the second pivot pin 170 define an intersecting pivot axis PA. As a result, the passive linkage 26 can move with two degrees of freedom relative to the tool support body 80. Other types of passive linkage joints are also contemplated, such as a passive linkage spherical joint that includes a ball having a slot that receives a pin.
[0065] Passive linkage 26 includes a shaft 174 fixed to passive linkage pivot yoke 172. Passive linkage 26 also includes a sleeve 76 of base 74 configured to receive shaft 174 along a constraining axis CA. Passive linkage 26 is configured to allow shaft 174 to slide axially relative to sleeve 76 along constraining axis CA, and to constrain radial movement of shaft 174 relative to constraining axis CA during actuation of one or more of actuators 21, 22, 23.
[0066] The passive coupling 26 further comprises a key that constrains rotation of the shaft 174 relative to the sleeve 76 about the constraint axis CA. The key fits into opposing keyways in the shaft 174 and the sleeve 76 to lock the shaft 174 against rotation to the sleeve 76. Other arrangements for preventing relative rotation between the shaft 174 and the sleeve 76 are contemplated, such as an integrated key / slot arrangement. The passive coupling 26 operatively interconnects the tool support 18 and the hand piece 16 independent of the actuators 21, 22, 23. The passive coupling is passively adjustable in effective length EL along the constraint axis CA during actuation of one or more of the actuators 21, 22, 23. The sleeve 76, shaft 174 and key 176 represent one combination of links for the passive coupling 26. Other sizes, shapes and numbers of links connected in any suitable manner may be employed for the passive coupling 26.
[0067] In the version shown, the passive linkage joint 156 can pivot about two pivot axes PA relative to the tool support 18. Other configurations are possible, including robotic handheld instruments that do not include passive linkage mechanisms.
[0068] Also, in the illustrated version, the first active joint 92 and the passive link joint 156 define pivot axes PA disposed in a common plane, although non-parallel pivot axes PA, parallel pivot axes PA disposed in different planes, combinations thereof, and / or other configurations are also contemplated.
[0069] In some versions, the head 84 of the tool support 18 is positioned such that it lies on a tool face TP (e.g., blade face) that is parallel to the common plane when the tool 20 is coupled to the tool support 18. In some examples, the tool face TP is spaced 2.0 inches or less, 1.0 inches or less, 0.8 inches or less, or 0.5 inches or less from the common plane CP.
[0070] In the illustrated version, the actuators 21, 22, 23 are arranged such that the active axes AA1, AA2, AA3 are in a tilted configuration with respect to the constraint axis CA in all positions of the actuators 21, 22, 23, including when they are in their home positions. Tilting the axes AA1, AA2, AA3 generally tapers the actuator arrangement to allow for a slimmer and more compact base 74 and associated grip 72. Other configurations are contemplated, including those in which the active axes AA1, AA2, AA3 are not in a tilted configuration with respect to the constraint axis CA. Such configurations may include those in which the actuator axes AA1, AA2, AA3 are parallel to one another in their home positions.
[0071] Further configurations of actuators, active joints and constraint assemblies are possible. It is contemplated that the described control techniques may be applied to other mechanical configurations not mentioned, particularly configurations that control a tool or saw blade relative to the handpiece in more than one degree of freedom. In some versions, the constraint assembly may not be present and the tool support 18 of the instrument 14 may be able to move in additional degrees of freedom relative to the handpiece 16. For example, the instrument may include linear actuators, rotary actuators, or combinations thereof. The instrument may include two, three, four, five, six or more different actuators arranged in parallel, series, or combinations thereof.
[0072] (Visual Guidance) As shown in FIG. 10, the guidance array 200 may be optionally coupled to the tool support 18. Additionally or alternatively, the guidance array 200 may be optionally attached to the handpiece 16 or other portions of the instrument 14. In the illustrated version, the guidance array 200 includes at least a first visual indicator 201, a second visual indicator 202, and a third visual indicator 203. Each of the visual indicators 201, 202, 203 includes one or more illumination sources coupled to the instrument controller 28. In some versions, the illumination sources include one or more light emitting diodes (e.g., RGB LEDs) that can be operated in different states, such as on, off, flashing / blinking at different frequencies, illuminating at different intensities, different colors, and combinations thereof. In the version shown in FIG. 10, each of the visual indicators 201, 202, 203 includes an upper portion 204 and a lower portion 206 (upper segment 204, lower segment 206). It is further contemplated that each of the visual indicators 201, 202, 203 may be divided into more than two portions 204, 206, such as three or more, four or more, or even ten or more portions. For example, each of the visual indicators 201, 202, 203 may be divided into three portions, with each portion including one or more LEDs. The visual indicators 201, 202, 203 may have a generally spherical shape, including hemispherical, transparent or translucent domes, with the upper portion 204 and lower portion 206 being individually controllable / illuminated as desired. It is contemplated that the visual indicators 201, 202, 203 may have shapes other than a sphere, such as a cylinder, a ring, a square, a polygon, or other shapes capable of conveying visual cues to the user. One or more light emitting diodes may be associated with each dome. The visual indicators 201 , 202 , 203 may be secured to the tool support 18 or hand portion 16 via one or more mounting brackets 205 .
[0073] In some examples where a guidance array is not used, the visual indicators 201, 202, 203 may comprise separate portions of a display screen, such as separate areas on an LCD or LED display mounted to the tool support 18 or hand portion 16. A display screen may also be included as part of a navigation system in addition to or as an alternative to having a display screen mounted to the instrument.
[0074] Further alternatively, the visual guidance in the second mode may comprise a mechanical guide coupled to the handpiece, the blade support, or both.
[0075] In some configurations, there may be one, two, three, or four portions of the display screen, each corresponding to a different visual indicator. Each portion of the display screen may correspond to a different visual graphic. As described below, each of the visual indicators (or portions of the display screen) may be based on actuator information. In some cases, a single visual indicator may be based on actuator information from two or more actuators. Additionally, as described throughout, the visual indicators may be used in a first mode in which the visual indicator indicates where the user should position the tool, and in a second mode in which the visual indicator indicates where the user should position the handpiece.
[0076] For example, the visual indicators 201, 202, 203 may be configured to output a first indication (first visual graphic) based on a first commanded position of the first actuator 21, 22, 23 and a second indication (second visual graphic) based on a second commanded position of the first actuator 21, 22, 23, where the first indication is different from the second indication and the first commanded position is different from the second commanded position. As explained above, the visual indicators 201, 202, 203 may be controlled based on any suitable type of actuator information. In other words, the visual graphic displayed on the display screen may be based on the commanded position, the previous commanded position, the simulated commanded position, the current measured position, the previous measured position, the available travel, the actuator limits (such as hard or soft stops), the required distance from the current position to the commanded position, or a combination thereof.
[0077] In some configurations, the tool controller 28 is configured to control the lighting of the upper portion 204 and the lower portion 206 such that the upper portion 204 and the lower portion 206 are operated in different states to indicate a desired direction of movement of the tool 20. It is further contemplated that the tool controller 28 may be configured to control the lighting of multiple portions in different states or with different indicia. For example, as described further below, these different states may indicate to a user (1) how the user should move the hand portion 16 to place the tool 20 (e.g., a saw blade) in a desired orientation (e.g., on a desired cutting plane / desired cutting trajectory), or (2) how the user should move the hand portion 16 so that the actuators 21, 22, 23 move in a preferred direction, such as closer to their home positions, while the control system 60 simultaneously operates to keep the tool 20 in a desired orientation.
[0078] In the first mode, a guidance array or display screen (on the instrument or as part of the navigation system) may be used when the instrument is far enough away from the bone that the guide constraints are inactive and the joint centering constraints are active. In this configuration, the user wants to achieve a good initial alignment of the blade / tool / handheld to be close to the center of joint movement when entering the resection zone / region, and to use visual indicators to ensure limited abrupt movements in the blade / tool support and actuators when the guide constraints are first enabled, and to allow the actuators to "reach" the target plane or trajectory or other target virtual object when enabled.
[0079] In the second mode, since each of the actuators has a limited range of motion / travel, it is often important for the user to position the handpiece so that the actuators can reach the target plane, trajectory, or other target. If one of the actuators reaches its joint limit, the control system must prevent further movement in that direction, in which case the system will not be able to align the blade to the cutting plane (the control system will typically shut off the saw drive motor to prevent improper resection) or the system will not align the tool to the planned trajectory. Therefore, it may be important to provide continuous feedback to the user so that the handpiece can be properly positioned so that the actuator assembly can reach the target plane or trajectory. Without continuous feedback, the user will not realize how close they are to operating at the limit of their range of motion until one of the motors reaches a joint limit and the saw drive motor is shut off, ultimately lifting the blade off the plane, which may annoy the user, prolong the surgical procedure, etc. The objective is to provide intuitive, live handle alignment feedback to minimize / reduce the occurrence of any actuator reaching a joint limit. A guidance array, a display screen, or a mechanical guide may be suitable for this purpose.
[0080] During some operational modes, the instrument controller 28 is configured to automatically control / adjust (e.g., change its state) the guidance array 200 to visually indicate to the user the desired changes in pitch orientation, roll orientation, and z-axis translation of the tool 20 to achieve a desired attitude of the tool 20 while the user moves the tool 20 via the handhold 16. In some versions, the guidance array 200 is coupled to the tool support 18 or to the handhold 16 in a manner that intuitively represents the plane of the tool 20. For example, the three visual indicators 201, 202, 203 may generally represent the plane of the tool 20, since three points define a plane. In some cases, each of the indicators 201, 202, 203 corresponds to one of points P1, P2, P3 that have a known position relative to the plane of the tool 20 (e.g., located in the tool plane and defined in the TCP coordinate system, the tool support coordinate system TCS, or any other suitable coordinate system). The points associated with the visual indicators 201 , 202 , 203 may be defined at other suitable locations within the plane of the tool 20 or at locations having a known relationship to the plane of the tool 20 .
[0081] In general, the guidance array 200 using one or more visual indicators 201, 202, 203 may be positioned and its state controlled to visually indicate to a user the desired changes in motion (e.g., amount of movement) to alter the pitch, roll, and translation of the tool 20, and the desired changes in pitch, roll, and translation of the tool support coordinate system TCS to achieve a desired attitude. More specifically, the instrument controller 28 is configured to illuminate the guidance array 200 in a manner that allows the user to distinguish between the desired changes in pitch orientation, the desired changes in roll orientation, and the desired changes in translation. The instrument controller 28 may be configured to illuminate or control a display screen for the guidance array 200 in a manner that allows the user to indicate the amount of movement required to move the tool 20 to a desired plane. The desired plane may be a plane or a plane segment. The changes in pitch, roll, and translation are, for example, relative to a target plane TP.
[0082] In another configuration, the guidance array 200 using one or more visual indicators 201, 202, 203 may be positioned and state controlled to visually indicate to the user the desired changes in motion (e.g., displacement) to alter the pitch, roll, and translation of the handpiece 16, as well as the desired changes in pitch, roll, and translation of the base coordinate system BCS to achieve a desired attitude. More specifically, the instrument controller 28 is configured to illuminate the guidance array 200 or display screen in a manner that allows the user to distinguish between the desired changes in pitch orientation, the desired changes in roll orientation, and the desired changes in translation. The instrument controller 28 is configured to illuminate the guidance array 200 in a manner that allows the user to indicate the displacement required to move the handpiece 16 so that the tool 20 is on a desired plane or target trajectory. The changes in pitch, roll, and translation are, for example, relative to a target plane TP.
[0083] The instrument controller 28 may switch the operation of the guidance array 200 and / or visual indicators 201, 202, 203 (or display screen) from a mode in which the guidance array / visual indicators indicate a desired change in the movement of the tool 20 to indicating a desired change in the movement of the hand-held portion 16 based on an input signal, such as an actuation of an input device (e.g., a foot switch, a trigger, a mouse click or a touch screen press on the navigation UI 38, etc.). Alternatively, the instrument controller 28 may be configured to switch between these modes based on the position of the tool 20 and the position of a reference location of the bone in a known coordinate system, such as the trackers 54, 56. The reference location may be a point, surface, or volume in a coordinate system used to locate the instrument 14 relative to a goal condition, such as a target object. In certain embodiments, the reference location is the planned entry point 71a of the bone. For example, the reference location may be a surface of the bone, a point in the bone, an imaginary or virtual point in the known coordinate system, a volume in the coordinate system, or a combination thereof. The location and / or orientation of the reference location is known with respect to the patient tracker through registration and appropriate planning steps. The instrument controller 28 may switch modes / operate differently based on a distance parameter calculated between two objects, such as the distance between a tool and the reference location. The distance parameter may be a distance (e.g., how far apart two objects are), a magnitude (the direction of the distance relative to an object), or both. In some examples, the instrument controller 28 may switch modes if the distance parameter has a direction away from the bone and a magnitude greater than a first threshold. Other visualization and guidance systems and methods are contemplated, such as those described in PCT application PCT / US2021 / 014205, filed January 20, 2021, and PCT application PCT / US2022 / 013108, filed January 20, 2022.
[0084] (Control Overview) 7 and 11, the behavior controller 186 and the motion controller 188 may be operated on the tool controller 28 and / or the navigation controller 36. The control system 60 calculates data indicative of appropriate commands for the multiple actuators. In one embodiment, the behavior controller 186 functions to output a next commanded position and / or orientation (e.g., pose) for the tool relative to the handpiece. During operation, the tool 20 is effectively moved toward a goal state using the multiple actuators. These effects may be generated in one or more degrees of freedom to move the tool 20 toward the goal state. Thus, a goal state may be defined such that the tool 20 is moved in only one degree of freedom, or such that the tool 20 is moved in two or more degrees of freedom. Thus, a goal state may include a target position, a target orientation, or both, defined as a target coordinate system TF (also referred to as a target frame TF). The target coordinate system TF may be defined relative to the coordinate system of the anatomical structure tracker or the target bone, although other coordinate systems may be used. As shown in FIG. 12, the target position may include one or more position components, e.g., a target x-position, a target y-position, and / or a target z-position, relative to the x-axis, y-axis, and / or z-axis of the target coordinate system TF relative to a reference coordinate system, such as an anatomical structure tracker or a bone. In some cases, the target position is expressed as the origin of the target coordinate system TF relative to a reference coordinate system, such as an anatomical structure tracker or a bone. It should be understood that the reference coordinate system and the patient coordinate system may be the same or different. In some examples, the reference coordinate system may be the same as the patient coordinate system. The target orientation may include one or more orientation components, e.g., a target x-orientation, a target y-orientation, and / or a target z-orientation, relative to the x-axis, y-axis, and / or z-axis of the target coordinate system TF relative to a reference coordinate system, such as an anatomical structure tracker or a bone. In some cases, the target orientation is expressed as the orientation of the x-axis, y-axis, and z-axis of the target coordinate system TF relative to a reference coordinate system, such as an anatomical structure tracker or a bone. The target pose refers to a combination of one or more position components and one or more orientation components.In some cases, the target pose may include a target position and a target orientation in fewer than all six degrees of freedom of the target coordinate system TF. For example, in one particular configuration, the target pose may be defined by a single position component and two orientation components. In some cases, the target position and / or the target orientation may also be referred to as a starting position and / or a starting orientation. In another configuration, the target pose may be defined as a fixed axis relative to a known coordinate system.
[0085] 11, the goal state is an input to the behavior controller 186. The goal state may be a target position, a target orientation, or both, at which the tool 20 is adjusted to a target plane or a target trajectory. In some examples, only the position of the TCP is output from the behavior controller 186, while in other examples, the position and orientation of the tool 20 are output. In some examples, the command pose output of the behavior controller 186 may include a position, an orientation, or both. In some examples, the output from one or more sensors, such as the boundary generator 182 and the optional force / torque sensor S, may be provided as inputs to the behavior controller 186 to determine the next commanded position and / or orientation for the tool relative to the handpiece. The behavior controller 186 may process these inputs along with one or more virtual constraints, which are described further below, to determine the command pose.
[0086] The motion controller 188 performs motion control of the multiple actuators. One aspect of motion control is the control of the tool support 18 relative to the handpiece 16. The motion controller 188 receives data from the behavior controller 186, such as data defining a next commanded pose. Based on these data, the motion controller 188 determines (e.g., via inverse kinematics) command joint positions for each of the multiple actuators coupled to the tool support 18, such that the tool 20 is positioned at the commanded pose output by the behavior controller. In other words, the motion controller 188 processes a commanded pose, which may be defined in Cartesian space, into command joint positions for the multiple actuators coupled to the tool support 18, so that the tool controller 28 can accordingly command the actuators 21, 22, 23 to move the tool support 18 to the commanded joint positions corresponding to the commanded pose of the tool relative to the handpiece. In one version, the motion controller 188 adjusts the joint positions of the actuators and continuously adjusts the torque output by each actuator 21, 22, 23 to ensure that the actuators 21, 22, 23 bring the instrument into the commanded pose as much as possible. Alternatively and / or additionally, the motion controller 188 may output the commanded joint positions to a separate set of motor controllers (e.g., one for each actuator 21, 22, 23) that handle joint-level position control. In some examples, the motion controller 188 (or motor controllers) may use feedforward control to improve dynamic tracking and transient response. In such cases, in addition to the commanded joint positions, the motion controller 188 may also calculate feedforward joint velocities (or commanded joint velocities) and potentially feedforward joint torques (and / or motor currents). This data is then used in the control loops of the motor controllers to more optimally drive the actuators 21, 22, 23.
[0087] Although position control is described in detail, it should be understood that similar control implementations may be used with joint angle control. Additionally, the motion controller may use joint angle control as well as joint position control. In some instances, joint angle may be exchanged for joint position. Depending on the joint type, actuator type, or both on the instrument, joint angle, joint position, or both may be used. For example, the motion controller may determine a commanded joint angle based on a commanded pose for one or more actuators.
[0088] With reference to FIG. 7, software utilized by the control system 60 and running on the instrument controller 28 and / or navigation controller 36 may include a boundary generator 182. The boundary generator 182 is a software program or module that generates a virtual boundary 184 for constraining the movement and / or motion of the tool 20. The virtual boundary 184 may be one-dimensional, two-dimensional, or three-dimensional and may include points, lines, axes, trajectories, planes, or shapes including other complex geometric shapes. The virtual boundary may also be a plane or line defined perpendicular to the planned trajectory. In some embodiments, the virtual boundary 184 is a surface defined by a mesh of triangles. The virtual boundary 184 may also be referred to as a virtual object. The virtual boundary 184 may be defined in the implant coordinate system with respect to an anatomical model AM, such as a 3D bone model. The anatomical model AM is associated with the actual patient's anatomy by mapping the anatomical model AM to the patient's anatomy via registration or other processes.
[0089] The virtual boundary 184 may be represented by pixels, point clouds, voxels, triangular meshes, other 2D or 3D models, combinations thereof, and the like. U.S. Patent Application Publication No. 2018 / 0333207 and U.S. Patent No. 8,898,043 are incorporated herein by reference, and any of their features may be used to facilitate the planning or execution of a surgical procedure. An example of a system and method for generating the virtual boundary 184 is described in U.S. Patent No. 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," the disclosure of which is incorporated herein by reference. In some examples, the virtual boundary 184 may be generated offline, rather than on the instrument controller 28 or navigation controller 36. The virtual boundary 184 may then be utilized by the instrument controller 28 at run time.
[0090] There are various options as to how the location and / or shape of the boundaries, including those that provide posterior protection, can be determined. As mentioned above, the boundaries may be "implant-specific", i.e., a predefined shape that is stored in a database based on the type / size of the implant for each planar cut, and its orientation relative to the bone is adjusted based on the surgeon's input as part of the implant positioning workflow (i.e., the boundaries may be defined in the implant coordinate system and move with the placement of the implant). Alternatively, the boundaries may be "patient-specific", i.e., calculated automatically or manually based on pre-operative images such as CT scans. The boundaries may be "drawn" by the user (via a touch screen or mouse) as an overlay superimposed on a representation of the bone (real or generated) on a GUI, either pre-operatively or intra-operatively. Another option is that the boundaries are fixed shapes that are interactively placed or generated by the surgeon. For example, it may be desirable to have the user use a navigated pointer to select the desired cut depth at which to place the posterior protection boundary (by placing the tip of the pointer on the bone at the corresponding location). When two boundaries are generated or created, a closer boundary, a "re-enable boundary," may be automatically generated by applying a position offset (e.g., to move).
[0091] The anatomical model AM and the associated virtual boundary 184 are registered to one or more patient trackers 54, 56. Thus, the anatomical model AM (and associated actual patient anatomy) and the virtual boundary 184 fixed to the anatomical model AM may be tracked by the patient tracker 54, 56. The virtual boundary 184 may be implant specific, e.g., defined based on the implant size, shape, volume, etc., and / or patient specific, e.g., defined based on the patient anatomy. The implant specific virtual boundary may have a specific size boundary, e.g., a 1:1 implant specific boundary for the particular implant used. In other cases, the boundary may be larger or smaller than the actual dimensions of the implant (e.g., 2:1, 1:2, etc.). The implant specific boundary for a particular implant may be formed arbitrarily. In some examples, the implant specific boundary may be offset beyond the implant size by a fixed or set amount. The virtual boundary 184 may be a boundary that is generated preoperatively, intraoperatively, or a combination thereof. In other words, the virtual boundary 184 may be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. In either case, the control system 60 obtains the virtual boundary 184 by storing / retrieving the virtual boundary 184 in memory, retrieving the virtual boundary 184 from memory, generating the virtual boundary 184 pre-operatively, generating the virtual boundary 184 intra-operatively, etc. In other words, one or more virtual boundaries may be obtained from the planned orientation of the implant, the planned size, shape, volume of the implant, etc. The implant coordinate system and the anatomical model coordinate system may be considered interchangeable throughout this description.
[0092] The virtual boundary 184 may be used in a variety of ways. For example, the control system 60 may control certain movements of the tool 20 to stay inside the boundary, control certain movements of the tool 20 to stay outside the boundary, control certain movements of the tool 20 to stay on the boundary (e.g., stay on a point, trajectory, and / or plane), control certain operations / functions of the tool 14 based on the relationship (e.g., space, velocity, etc.) of the tool 14 to the boundary, and / or control energization of the drive motor M of the tool 14. Other uses of the boundary 184 are also contemplated. With reference to FIG. 13, in a potential embodiment, the virtual boundary 184 may include a generally planar mesh located distal to the cut, i.e., the distal boundary DB. This virtual boundary 184 may be associated with a 3D bone model. This virtual boundary may be used to control the saw drive motor M. In another example, the boundary generator 182 provides the virtual boundary 184 for purposes of controlling multiple actuators. In this example, the virtual boundary may be used to generate constraints that affect the movement of a virtual mass and a virtual saw blade / tool in the virtual simulation. In such an embodiment, the virtual boundary may establish a virtual cutting guide (e.g., a virtual saw cutting guide). The virtual boundary 184 may also be provided to define various operation / control regions as described below, either for control of a saw drive motor or control of multiple actuators. The virtual boundary 184 may be one dimensional (1D), two dimensional (2D), three dimensional (3D), and may include shapes including points, lines, axes, trajectories, planes (infinite planes or planar segments bounded by anatomical or other boundaries), volumes, or other complex geometric shapes.
[0093] 10 and 14, the pose of the implant (IM) may be planned relative to the femur F in the implant coordinate system. This planned pose of the implant may then be defined relative to one of the patient trackers 54, 56 through various navigation transformations, and the pose of the implant may be the basis of a planned virtual object, such as a target plane (TP) or a virtual boundary. The target plane may be a representation of what cuts need to be made on the bone to achieve the planned pose of the implant. In other words, the target plane (TP) may be aligned with the plane where the planned implant is intended to contact the bone. In some examples, the position of the target plane (TP) may need to be adjusted to account for the thickness of the saw blade. In one example, at the distal tip of the saw blade, the TCP coordinate system may be placed at a point half the thickness of the saw blade at the center of the saw blade. The position of the cutting plane may be adjusted by half the thickness of the saw blade in a direction based on which side of the saw blade is abutting the bone during a particular cut. By cutting along the target plane, the bone that is subsequently removed from the femur will allow the planned implant to properly seat in the bone. The target plane TP may take the form of a target state, as described below. Alternatively, the target plane TP may be generated as a form of virtual boundary that may be used to control multiple actuators.
[0094] The control system 60 will ultimately function to keep the tool 20 on the desired cutting plane in some versions. The virtual boundary 184, which may be used to control the actuators, may also be a volume boundary, such as one with a thickness equal to and / or slightly greater than the blade thickness, to constrain the saw blade to stay within the boundary and on the desired cutting plane. The desired cutting plane may therefore be defined by a virtual planar boundary, a virtual volume boundary, or other form of virtual boundary. In some examples, the cutting slot of the virtual boundary 184 needs to be offset to account for the thickness of the saw blade, so that the slot boundary (corresponding to the side of the saw blade that will contact the bone for that cut) is aligned with the final desired implant-bone surface, and the other boundary is offset by the full blade thickness. In another example, a slightly larger thickness is used for the slot boundary, such that the vertical centerline of the cutting slot is offset by half the thickness of the saw blade. The virtual boundary 184 may also be referred to as a virtual object. The virtual boundary 184 may be defined with respect to the anatomical model AM in an implant coordinate system, such as a 3D bone model (see FIG. 10 , which shows the anatomical model AM virtually superimposed on the actual femur F for their registration). In other words, points, lines, axes, trajectories, planes, volumes, etc. associated with the virtual boundary 184 may be defined in a coordinate system that is fixed with respect to the coordinate system of the anatomical model AM, such that tracking of the anatomical model AM (e.g., via tracking of the associated anatomical structure to which it is registered) also enables tracking of the virtual boundary 184.
[0095] The anatomical model AM is registered to the first patient tracker 54 such that a virtual boundary 184 is associated with the anatomical model AM and the associated coordinate system. The virtual boundary 184 may be implant specific, e.g., defined based on the size, shape, volume, etc. of the implant, and / or patient specific, e.g., defined based on the patient's anatomy. The implant specific boundary may be larger or smaller than the physical dimensions of the implant. The virtual boundary 184 may be a boundary that is generated pre-operatively, intra-operatively, or a combination thereof. In other words, the virtual boundary 184 may be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. The virtual boundary 184 may be provided in many ways, such as by being generated by the control system 60, or by being received from another source / system, etc. The virtual boundary 184 may be stored in a memory for retrieval and / or updating.
[0096] In some cases, such as when preparing a femur F to receive a total knee implant IM (see FIG. 1), the virtual boundary 184 includes multiple planar boundaries that can be used to define multiple cut planes (e.g., five cut planes) for the total knee implant IM, and are associated with cut planes based on a 3D model of the distal end of the femur F and / or a 3D model of the tibia. These multiple virtual boundaries 184 and / or target planes can be activated one at a time by the control system 60 to control the multiple actuators to cut one plane at a time. Each of these cut planes may be a target plane for the control system. An exemplary virtual boundary 184 is shown in FIG. 13 for illustrative purposes. Although FIG. 13 shows the target planes aligned with the implant boundary, it should be understood that this is a schematic representation and the target planes may be slightly offset from the planned implant boundary. Other shapes and configurations are possible. FIG. 13 shows a series of cuts with respective desired target planes. Each of the distal ends of the femur shows an entry portion that provides access to the femur. The entry portion continues into a cutting slot defined along one of five target cutting planes TP 73A-73E. In other cases, the virtual boundary may be a planned trajectory for insertion of a rotary tool into a bone, such as into a femur or vertebra, such as for insertion of a drill bit or tap. Again, multiple virtual trajectories may be active one at a time to control multiple actuators to drill one trajectory at a time.
[0097] In the case where the virtual boundary is used to control the saw drive motor (or other drive motor), referring to Figs. 13 and 15, the virtual boundary 184 may represent a boundary that may be used to define the in-plane cutting depth or width (DB, LB) of the saw or tool when preparing the knee for a total knee implant or other surgical procedure. The in-plane cutting depth or width (DB, LB) for the saw may not be a hard boundary, but may be a feature of the 3D boundary model. Those distal boundaries DB may be generally perpendicular to the target cutting plane or target trajectory, and may optionally be contoured to the patient's anatomical features (distal surface of the femur, ligaments, arteries, soft tissue, etc.). This may avoid inadvertent cutting of critical structures. The virtual boundary 184 used to control the drive motor may include one or more lateral boundaries (LB). These lateral boundaries (LB) may function to prevent cutting beyond the target depth in the lateral direction. In some examples, the cutting slot defined by the depth and lateral boundaries in the 3D boundary may be used for secondary error mitigation functions, such as turning off the drive motor M if the saw blade does not stay sufficiently on plane (in the event of sudden fast movement of the instrument and / or bone, or as mitigation against another system failure) or if the tool does not stay on track. The boundaries for controlling the saw drive motor may be selectively activated based on a selected target plane. Similarly, the boundaries for controlling the tool drive motor may be activated based on a selected target axis.
[0098] In some cases, the virtual boundary that defines the cutting depth may be based on a pose of the planned virtual object, such as a fixed boundary offset, such as a 5 mm plane offset, and perpendicular to each planned cutting plane (TP) or target trajectory. Referring again to FIG. 13, five TPs are aligned with each plane where the planned implant is intended to contact the bone, and a distal boundary DB is implemented for each cut as perpendicular to the TP and offset a predetermined distance from the distal end of the plane where the planned implant contacts the bone. In some versions, the control system 60 may evaluate whether the saw blade violates the depth boundary DB by more than a threshold amount and command the tool controller 28 to stop operation of the drive motor M. In some examples, the tool controller 28 may not stop operation of the drive motor M, but may rely on user-controlled start, stop, and / or speed control of the drive motor M.
[0099] 35 and 53, in certain cases, the location of one or more boundaries, such as DB in FIG. 35, can be set using a pointer PT or other instrument. During the bone registration process, the system can prompt the user to position the pointer PT or other instrument to set the location of the boundary. The control system 60 can position the pointer PT using the localizer 44 and set the boundary DB based on the determined location. This boundary can be used by the control system 60 to control a tool drive motor M, such as a saw drive motor. The boundary 35 can be associated with one of the target planes TP and can be configured as a three-dimensional object, such as a rectangular solid, that intersects with the target plane TP. The method can include positioning the pointer PT to contact a surface of the tibia T to define the boundary DB. Of course, the pointer PT can also be positioned to contact other anatomical structures to define other desired boundaries. As a further alternative, the pointer PT does not necessarily need to contact the patient's anatomical structures in certain cases to set the desired boundary.
[0100] The application may digitize a point to represent the allowable posterior depth of the bone resection and prompt the user to engage a control surface, such as a button on the pointer PT, when the pointer PT is properly positioned. The selected boundary may be displayed as a line on the image of the bone on the proposed cut plane at a depth corresponding to the user-selected point. With reference to FIG. 35, the control system 60 may model this boundary using a rectangular box DB whose front surface is aligned with the selected point. If the saw blade 20 or other tool penetrates the box DB beyond a prescribed threshold, the control system 60 will turn off the saw drive motor. In some implementations, the control system 60 may actually place the boundary DB more conservatively, such as forward of the selected point, to account for mechanical tolerances of the blade mechanism or to account for turn-off delay of the drive motor M. The boundary DB may be located at least 0.25 mm, at least 0.5 mm, or at least 1 mm forward of the selected point. Alternatively, the leading edge of the boundary DB may be located 0.1 mm to 1.5 mm forward of the selected point.
[0101] The application may allow the user to disable one or more boundaries associated with control of the drive motor M through an interaction with the user interface UI, such as by turning off an icon. This may allow the user to first remove most of the bone using the boundaries enabled by default, and then disable the drive motor boundaries to remove the remaining bone.
[0102] In some cases, the tool controller 28 controls a motor parameter of the drive motor M with a first value and a second value, where the first value is different from the second value, and the tool controller 28 may change operation from the first value to the second value based on the position of the tool 20 and the position of a reference position related to the bone, such as a virtual boundary, or based on a calculated distance parameter.
[0103] As the tool 20 advances into the cut or hole in the bone, the instrument controller 28 may permit activation of the drive motor M using navigation data of the tool 20 relative to a reference position or based on the tool's pose relative to the bone. Additionally, the instrument controller 28 may turn off the drive motor M based on whether the tool 20 reaches a certain pose, distance parameter value, or position relative to a reference point or boundary associated with the bone. In some cases, a user may find it difficult to perceive the depth of the tool 20 within the bone while performing a surgical procedure due to limited line of sight due to soft tissue, unremoved bone, and other surgical instruments used in the procedure. A user may also have difficulty perceiving the depth of the tool 20 due to adjacent anatomical structures exerting pressure on the saw blade 20 or tool. Controlling the drive motor M based on the pose or position of the tool 20 may enable a user to more precisely control the depth of the cut.
[0104] In some examples, when the instrument controller 28 changes the operating mode by changing a parameter of the drive motor M, the instrument 14, the input device, the navigation system 32, the instrument controller 28, or a combination thereof, may provide an audible indicator, a tactile indicator, or both, that the mode has changed. In one example, the input device may be a foot switch that controls the speed of the drive motor M and vibrates when the instrument mode has been changed. In another example, when the mode and / or control behavior has been changed to accelerate or decelerate the drive motor M, the user may perceive an audible indicator, such as a change in volume, pitch, vibration, or a combination thereof, of the motor speed of the drive motor M indicating that the instrument mode and / or control behavior has changed.
[0105] As described above, the tool controller 28 and / or navigation controller 36 track the state of the tool 20, such as the position and / or orientation of the saw blade relative to the virtual boundary 184. In one example, this may be described as monitoring the state of the TCP measured relative to the virtual boundary 184 for purposes of controlling the tool drive motor M. In other words, the control system may control the saw drive motor M based on the state of the TCP measured relative to the virtual boundary 184, such as slowing down or stopping the saw drive motor M if any aspect of the tool's virtual model VM violates the virtual boundary 184 by an amount that exceeds a threshold. In some examples, the tool pose (TCP coordinate system) may be utilized to evaluate whether any aspect of the tool 20 violates the virtual boundary 184 by an amount that exceeds a threshold. The tool controller 28 may have a model of the blade (e.g., a CAD model or a simplified model using geometric primitives) that can be evaluated for violations of the virtual boundary 184. In some examples, the extent of the tool 20 may be modeled with an array of discrete spheres located around the periphery of the displacement volume at the tip of the tool 20, where the diameter of the spheres corresponds to the thickness of the tool 20, and the location is defined relative to the TCP coordinate system. Additionally, the virtual boundary 184 may be an open-ended surface or a closed surface. When the virtual boundary 184 is configured as a closed surface, the virtual boundary 184 may function as a "keep out" boundary, where the instrument 14 may be operated "outside" the virtual boundary, but is shut off after exceeding the virtual boundary by a threshold amount. Similarly, the virtual boundary of a closed surface may function as a "keep in" boundary, where the instrument 14 is only operated within the virtual boundary 184, and is shut off if the instrument is "away" from the virtual boundary 184 by an amount greater than the threshold amount.
[0106] In another example, the state of the TCP is measured relative to a virtual boundary 184 for purposes of determining forces to be applied to a virtual rigid body model via a virtual simulation to keep the tool 20 in a desired positional relationship relative to (e.g., not move beyond) the virtual boundary 184. The results of the virtual simulation are processed in controlling a number of actuators coupled to the tool support 18. The boundary generator 182 may be implemented on the tool controller 28. Alternatively, the boundary generator 182 may be implemented on another component, such as the navigation controller 36.
[0107] The boundary generator 182, the behavior controller 186, and the motion controller 188 may be subsets of the software program 378. Alternatively, each may be a software program operating individually and / or independently in any combination thereof. In this specification, the term "software program" is used to describe computer executable instructions configured to perform various functions of the described technical solution. For simplicity, the term "software program" is intended to encompass at least any one or more of the boundary generator 182, the behavior controller 186, and / or the motion controller 188. The software program 378 may be implemented in the instrument controller 28, the navigation controller 36, or both, or may be implemented by the control system 60 in any suitable manner.
[0108] A clinical application 190 may be provided to handle user interaction. The clinical application 190 handles many aspects of user interaction and coordinates surgical workflow, including pre-operative planning, implant placement, registration, visualization of bone preparation, and post-operative evaluation of implant fit. The clinical application 190 is configured to output to the display 38. The clinical application 190 may run on its own separate processor or may run in parallel with the navigation controller 36. In one example, the clinical application 190 interfaces with the boundary generator 182 after the implant placement is set by the user, and then transmits the virtual boundary 184 and / or tool plane TP returned by the boundary generator 182 to the instrument controller 28 for execution. The instrument controller 28 executes the target plane TP or target trajectory as described herein. The instrument controller 28 may also process the virtual boundary 184 to generate corresponding virtual constraints, as described further below.
[0109] 16, an exemplary control is described with respect to various transformations. The TCP is located by tracking the tool 20 with a tool tracker 52 (TT) with respect to the localizer coordinate system LCLZ (LCLZ-TT transformation) and using registration or calibration data to determine the transformation between the tool tracker 52 and the TCP of the tool 20, such as a saw blade (TT-TCP transformation). Similarly, the patient is tracked using a patient tracker (shown as 54), resulting in a transformation from the localizer coordinate system LCLZ to the patient tracker coordinate system (LCLZ-PT transformation).
[0110] As described with respect to FIG. 11, through the bone registration process, a transformation from bone to patient tracker 54, 56 is established (bone to patient tracker). Through the implant planning process, a transformation from bone to implant / anatomical model is established (bone to IM transformation). Then, a transformation from patient tracker 54 to planned implant (patient tracker to IM) is calculated. The planned implant (IM) may be related to a target plane (IM to TP transformation) or a target trajectory (see FIG. 44, further described below) given the position and size of the planar section of the selected implant component. Referring again to FIG. 16, using a combination of registration data and planning information, a transformation is calculated between the patient tracker 54, 56 and each planned virtual object, such as each target plane (PT-TP transformation) or each target trajectory (PT-trajectory transformation).
[0111] The position and / or orientation of the tool support 18, and therefore the TCP, may be related to the tool tracker 52 (tool support to tool tracker transformation calculated via a registration or calibration process). As explained above, in some embodiments, a transformation between the hand-held part 16 and the TCP (BCS-TCP) is calculated based on the position of each actuator. Since a commanded pose can be determined relative to the BCS for a particular control implementation, the transformation between the BCS and the TCP is utilized to relate the various coordinate systems back to the hand-held part 16. Conceptually, the commanded pose is an update to the BCS-to-TCP transformation, which in this example results in the TCP being aligned with the planned virtual object (target plane TP). Alternatively, the pose of the hand-held part 16 may be determined directly in some examples by using the hand-held part tracker 53 directly coupled to the hand-held part 16. This may eliminate the need to utilize the TCP coordinate system and perform a transformation between the BCS and the TCP based on the position of each actuator.
[0112] The initial pose of the TCP relative to the base coordinate system BCS may be determined based on a known geometric relationship between the tool support and the hand-held part 16 when the actuators 21, 22, 23 are in their home position / center point or other predetermined position. Additionally and / or alternatively, the initial pose may be "seeded" into the virtual simulation by measuring it using the encoders, calculating forward kinematics to obtain the measured pose of the TCP relative to the BCS, and using that pose to initialize the virtual simulation. This relationship changes as the actuators 21, 22, 23 are adjusted, and the associated changes may be determined based on the kinematics of the robot system 10 (e.g., establishing a dynamic transformation between these coordinate systems). Thus, the pose of the tool 20 as in the home position and its relationship to the pose of the hand-held part 16 is known to the robot system 10. Thus, when the tool 20 is moved by the user and its pose is tracked using the tool tracker 52, the robot system 10 also tracks the pose of the hand-held part 16 and its base coordinate system BCS. In some examples, the position of the tool 20 relative to the tool support 18 is assumed to be known as a result of a previous calibration process. After the home positions / center points and maximum travel of each of the actuators 21, 22, 23 have been established, control is based on position and / or orientation data from the navigation controller 36 and the measured position data of the actuators. The home position may be calculated in other manners. When all the actuators are in their home positions, this collectively defines the home state of the tool. The home state may involve the orientation of the handpiece relative to the orientation of the tool support, i.e. may be defined in Cartesian coordinate space, or the home state of the tool may be defined in actuator space (position) or joint space (angle) of multiple actuators and / or joints.
[0113] Since both the patient tracker 54, 56 and the tool tracker 52 are reported by the localizer 44 with respect to the localizer coordinate system LCLZ, providing LCLZ-PT and LCLZ-TT, respectively, these transformations can be processed together to determine a transformation (TT-PT) between the tool tracker 52 and the patient tracker 54, 56. From there, a base coordinate system to patient tracker (BCS-PT) transformation can be calculated by the control system 60 to calculate the position of the patient tracker 54, 56 relative to the hand-held portion 16. Since the target plane TP for the patient trackers 54, 56 is known, the control system 60 can calculate a base coordinate system BCS to target plane TP (BCS-TP) transformation, resulting in the pose of the target plane (BCS) in the coordinate system of the hand-held portion 16. In one example, the BCS-TP may be used directly to calculate a command pose BCS-TCP that places the TCP on the target cutting plane TP, which may then be commanded to the actuators 21, 22, 23 to move the tool 20 to the desired pose. In some examples, the BCS-TCP calculation may be used to generate constraints to pull the TCP to the TP within the virtual simulation VM. Although target plane transformations are described throughout, it should be understood that transformations that relate to a target trajectory instead of a target plane are also contemplated herein.
[0114] In some examples, digital filters may be applied directly to input data received from a localizer, directly to input data received from forward kinematics (e.g., directly to the motion controller 188), or to any intermediate combination of the transformations described above. In some examples, a moving average filter may be used, although other digital filtering techniques may be applicable.
[0115] The instrument controller 28 may control one or more actuators 21, 22, 23 by sending a command signal to each actuator 21, 22, 23 to adjust the tool 20 towards a target state in at least one degree of freedom. The instrument controller 28 may send a command signal to each actuator 21, 22, 23 to move the actuators 21, 22, 23 from a first set of positions to a set of command positions that bring the tool 20 to the target state. In some examples, the command positions may be determined by the instrument controller 28 in conjunction with the navigation system 32 based on the pose of the hand-hand portion 16 and a target state in a known coordinate system (i.e., defined relative to the patient trackers 54, 56), such as the pose of a virtual object (target cutting plane or target trajectory), and send a signal to the actuators 21, 22, 23 to adjust to the command positions.
[0116] The second software module is the motion controller 188. One function of the motion controller 188 is the control of the tool 14. The motion controller 188 may receive data from the behavior controller 186 defining a target state 380 of the saw blade 20, such as a next commanded pose. Based on these data, the motion controller 188 determines (e.g., via inverse kinematics) a next commanded joint position of the rotor 148 of each actuator 21, 22, 23, such that the tool 14 can position the tool 20 as commanded by the behavior controller 186, e.g., control the tool to the commanded pose. In other words, the motion controller 188 processes the commanded pose, which may be defined in a Cartesian coordinate space, into actuator positions (such as commanded joint positions) of the tool 14, so that the tool controller 28 can accordingly command the motors 142 to move the actuators 21, 22, 23 of the tool 14 to the commanded positions, such as the commanded joint positions corresponding to the commanded pose. In one version, the motion controller 188 adjusts the joint position of each motor 142 and continuously adjusts the torque output by each motor 142 to ensure as much as possible that the motor 142 drives the associated actuator 21, 22, 23 to the commanded joint position. In another version, the tool controller adjusts the joint position of each motor 142 and continuously adjusts the torque output by each motor 142 to ensure as much as possible that the motor 142 drives the associated actuator 21, 22, 23 to the commanded joint position.
[0117] The overall length over which the actuators 21, 22, 23 can adjust the tool support 18 relative to the handpiece 16 may be known to the tool controller 28. In some examples, the overall length over which the actuators 21, 22, 23 can be adjusted is known to the tool controller 28, which may send command signals to the actuators 21, 22, 23 to move measured distances from position to position (e.g., by commanding a desired amount of linear movement via command rotations). The measured positions may be known positions or may be the distance between the current positions of the actuators 21, 22, 23 and the actuator limits. Each position to which the actuators 21, 22, 23 move may be a measured distance from the positive and negative limits of the actuator movement (i.e., the position between the ends of the lead screw). The tool controller 28 may command the actuators 21, 22, 23 to and from positions as described below. The tool controller may command the actuators 21, 22, 23 to a position to reach a desired adjustment of the tool 20. The tool controller 28 may control the actuators 21, 22, 23 to move linearly the calculated distance to adjust the tool 20 towards the desired pose. In other examples, such as when absolute encoders are used, the tool controller may send signals to the actuators 21, 22, 23 to place each actuator 21, 22, 23 at a commanded position based on the known positions of the actuators 21, 22, 23 between the respective actuator travel limits determined by the absolute encoders. Alternatively, in one example, incremental encoders may be used in conjunction with a homing procedure performed during system setup, as described in U.S. Patent Application Publication No. 2017 / 0156799, which is incorporated herein by reference. A homing procedure may be used to place the actuators 21, 22, 23 and joints in their centered positions and then determine the absolute offset of the incremental encoders.By determining the offset of the incremental encoder, the incremental encoder can act as a forward moving absolute encoder.
[0118] In some versions, the tool controller 28 determines, for each actuator 21, 22, 23, the difference between the commanded position of the actuator and the measured position. The tool controller 28 outputs a target current (proportional to the torque of the actuator) and varies the voltage to adjust the current in the actuator from the initial current to the target current. The target current causes movement of the actuators 21, 22, 23, moving each actuator 21, 22, 23 towards the commanded joint position, and therefore moving the tool towards the commanded pose. This may occur after the command pose is converted to a joint position. In one example, the measured position of each joint may be derived from a sensor S described above, such as an encoder.
[0119] Throughout this description, unless otherwise specified, any example of a pose may be a current commanded pose, a current measured pose, a past measured pose, or a past commanded pose. Each of these poses may be different from each other, but depending on the frequency of the control cycle, the position and / or orientation difference between these poses may be minimal in each control iteration. Furthermore, any example of a position may be a current commanded position, a current measured position, a past measured position, or a past commanded position.
[0120] A variety of control methods may be used to control the actuators to position the tool at a desired location, such as a target plane or a target trajectory, including, but not limited to, impedance control, admittance control, position control, or hybrid control using a number of different control implementations. Although an admittance control implementation is described in detail, it should be understood that other methods may be used. In an admittance control mode, the control system receives a force input (virtual or measured) and commands a position (or motion) output. For example, for admittance control, the system models the force and / or torque at a specific location on a virtual mass and operates to change the attitude of the virtual mass to achieve a desired target state of the tool. In an impedance control mode, the control system receives a position (or motion) input and commands a force or torque output. For example, the impedance control system may measure, sense, and / or calculate the position (i.e., position, orientation, velocity, and / or acceleration) of the tool and apply the appropriate corresponding torque to each of the actuators to achieve a desired target state of the tool. Position control may also be used to control multiple actuators to implement a certain behavior. It should be understood that modifications to both the behavior controller and the motion controller may be required to implement these control schemes.
[0121] In some versions, once the procedure begins, the instrument controller 28 can mitigate the effect of the user's ability to position the tool 20 away from the desired pose (e.g., outside or away from the virtual boundary 184 or planned virtual object (TP)). For example, in some embodiments, as soon as the navigation system 32 provides an indication that the tool 20 is moving out of the desired cutting plane or away from the bone a predetermined distance / at a predetermined orientation, the instrument controller 28 immediately terminates the application of energization signals to the drive motor M, preventing the tool 20 from chipping the bone and minimizing soft tissue damage. In other examples, the drive motor M can be slowed or stopped using a motor brake, as described, for example, in U.S. Pat. No. 7,998,157, entitled "Surgical tool system with a powered handpiece and a console, the console able to provide energization signals to the handpiece in either a motor drive mode or a direct drive mode," which is incorporated herein by reference. In some embodiments of this feature, the allowable deviation from the desired orientation of the tool 20 may change as the depth of the cut increases.
[0122] The boundary generator 182, the behavior controller 186, and the motion controller 188 may be subsets of software programs. Alternatively, each may be a software program operating separately and / or independently in any combination thereof. In this specification, the term "software program" is used to describe computer-executable instructions configured to perform various functions of the described technical techniques.
[0123] 12, the target coordinate system TF may be any coordinate system whose origin and axes define a target state, and the target state may be specified with respect to any other coordinate system desired to monitor the state of the tool 20 relative to the target state of the tool 20. The target state may be tracked in a patient tracker coordinate system (e.g., the coordinate system of the patient trackers 54, 56), a localizer coordinate system LCLZ, a base coordinate system BCS, a virtual mass coordinate system VM, a TCP coordinate system, etc. The target state may be initially defined with respect to an implant coordinate system (IM) for the patient, which may be fixed with respect to the patient's anatomy and fixed with respect to one or more patient trackers. For purposes of this disclosure, the target state may include a desired pose of the saw blade.
[0124] The current state of the tool 20 may be defined by a guided coordinate system GF (also referred to as a guided frame GF). The guided coordinate system GF may be linked to other coordinate systems, or the current state may be transformed to any other coordinate system to enable tracking of the current state relative to the target state. The current state may be tracked in a tracker coordinate system (e.g., the tool tracker coordinate system (TT)), a localizer coordinate system LCLZ, a base coordinate system BCS, a virtual mass coordinate system VM, a TCP coordinate system, etc. In some of the versions described herein, the current state of the tool 20 is first defined by a TCP coordinate system (e.g., for ease of illustration, the TCP coordinate system and the guided coordinate system GF are shown as being the same). Both the guided coordinate system GF and the target coordinate system TF may be transformed to a common coordinate system for tracking purposes. The target state may be defined preoperatively, intraoperatively, or both.
[0125] As explained above, a command pose is often set to control the actuators. This command pose may be the desired relationship between the BCS and the TCP, i.e., the desired relationship between the tool support and the handpiece. The command pose is determined based on the pose of the handpiece 16 in a known coordinate system and a target state in the same coordinate system (e.g., a coordinate system related to the patient tracker 54, 56), such as the pose of a planned virtual object, e.g., the target pose of the saw blade inferred from the pose of the planned implant. The command pose may result in the tool 20 being on a desired plane or aligned with a planned virtual object, such as a planned trajectory. As mentioned above, the tool controller 28 may use inverse kinematics to convert the command pose into a command position for each of the actuators, and then send a command command to the actuators 21, 22, 23 to move to the command position, thereby changing the relative pose of the tool support 18 and the tool 20.
[0126] It is contemplated that the control system 60 may be configured to control other types of instruments and actuator assembly configurations, such as drills, burrs, probes, guides, etc., or combinations thereof. For example, the present teachings may be implemented to control the instruments described in U.S. Pat. No. 9,707,043, entitled "Surgical instrument including housing, a cutting accessory that extends from the housing and actuators that establish the position of the cutting accessory relative to the housing," which is incorporated herein by reference. For example, as shown in FIG. 44, an alternative example of an instrument is shown having a tool 20 as a drill or burr. Exemplary control is described with respect to various transformations. The TCP is located by tracking the tool 20 with the tool tracker 52 (TT) with respect to the localizer coordinate system LCLZ (LCLZ-TT transformation) and using registration data or calibration data to determine a transformation between the tool tracker 52 and the TCP of the tool 20, such as a drill / burr (TT-TCP transformation). Similarly, the patient is tracked using a patient tracker (shown as 54), resulting in a transformation from the localizer coordinate system LCLZ to the patient tracker coordinate system (LCLZ-PT transformation).
[0127] As described with respect to FIG. 11, through the bone registration process, a transformation from bone to patient tracker 54, 56 is established (bone to patient tracker). Through the implant planning process, a transformation from bone to implant / anatomical model is determined (bone to IM transformation). Then, a transformation from patient tracker 54 to planned implant (patient tracker to IM) is calculated. The planned implant (IM) may be associated with a target trajectory given the positions of the selected implant components (IM to trajectory transformation). Then, referring again to FIG. 44, using a combination of registration data and planning information, a transformation is calculated between patient tracker 54, 56 and each planned virtual object, such as each target trajectory (PT-TTRAJ transformation).
[0128] The position and / or orientation of the tool support 18, and therefore the TCP, may be related to the tool tracker 52 (tool support to tool tracker transformation calculated via a registration or calibration process). As explained above, in some embodiments, a transformation between the hand-held portion 16 and the TCP (BCS-TCP) is calculated based on the position of each actuator. Since a commanded pose can be determined relative to the BCS for a particular control embodiment, the transformation between the BCS and the TCP is utilized to relate the various coordinate systems back to the hand-held portion 16. Conceptually, the commanded pose is an update to the transformation from the BCS to the TCP, which in this example results in the TCP being aligned with the planned virtual object (target trajectory TTRAJ). Alternatively, the pose of the hand-held portion 16 may be determined directly, in some examples, by using the hand-held portion tracker 53 directly coupled to the hand-held portion 16. This may eliminate the need to utilize the TCP coordinate system and perform a transformation between the BCS and the TCP based on the position of each actuator.
[0129] The initial pose of the TCP relative to the base coordinate system BCS may be determined based on the known geometric relationship between the tool support and the hand-held part 16 when the actuators 21, 22, 23 are in their home position / center point or other predetermined position. Additionally and / or alternatively, an initial pose may be "seeded" into the virtual simulation by measuring it using the encoders, calculating forward kinematics to obtain the measured pose of the TCP relative to the BCS, and initializing the virtual simulation using that pose. This relationship changes as the actuators 21, 22, 23 are adjusted, and the associated changes may be determined based on the kinematics of the robot system 10 (e.g., establishing a dynamic transformation between these coordinate systems). Thus, the pose of the tool 20, such as in the home position, and its relationship to the pose of the hand-held part 16 is known to the robot system 10. Thus, when the tool 20 is moved by the user and its pose is tracked using the tool tracker 52, the robot system 10 also determines the pose of the hand-held part 16 and its base coordinate system BCS. In some examples, the position of the tool 20 relative to the tool support 18 is assumed to be known as a result of a prior calibration process. After the home positions / center points and maximum travel of each of the actuators 21, 22, 23 have been established, control is based on position and / or orientation data from the navigation controller 36 and the measured position data of the actuators.
[0130] Since both the patient tracker 54, 56 and the tool tracker 52 are reported by the localizer 44 with respect to the localizer coordinate system LCLZ, respectively, providing LCLZ to PT and LCLZ to TT, these transformations may be processed together to determine a transformation (TT to PT) between the tool tracker 52 and the patient tracker 54, 56. From there, a base coordinate system to patient tracker (BCS to PT) transformation may be calculated by the control system 60 to calculate the position of the patient tracker 54, 56 relative to the hand-held portion 16. Since the target trajectory TTRAJ for the patient tracker 54, 56 is known, the control system 60 may calculate a base coordinate system BCS to target trajectory TTRAJ (BCS to TTRAJ) transformation to result in the pose of the target trajectory in the coordinate system of the hand-held portion 16 (BCS). In one example, the BCS to TTRAJ may be used directly to calculate the TCP from the BCS of a commanded attitude that places the TCP on the target trajectory TTRAJ, which may be commanded to the actuators 21, 22, 23 to move the tool 20 to the desired attitude. In some examples, the BCS to TCP calculation may be used to generate constraints to pull the TCP to the TTRAJ within the virtual simulation VM.
[0131] The instrument controller 28 may control one or more actuators 21, 22, 23 by sending a command signal to each actuator 21, 22, 23 to adjust the tool 20 toward a target state in at least one degree of freedom. The instrument controller 28 may send a command signal to each actuator 21, 22, 23 to move the actuators 21, 22, 23 from a first set of positions to a set of command positions that will bring the tool 20 to a target state to align the tool 20 with a target trajectory. In some examples, the command positions may be determined by the instrument controller 28 in conjunction with the navigation system 32 based on the pose of the handpiece 16 and the target state in a known coordinate system (i.e., defined relative to the patient trackers 54, 56), such as the pose of the virtual object (target trajectory), and send a signal to the actuators 21, 22, 23 to adjust to the command positions. Other control systems and methods are contemplated, such as those described in PCT application PCT / US2021 / 49440, filed September 8, 2021.
[0132] (Virtual Constraints) In some embodiments, the control system uses one or more virtual constraints to calculate the command pose. In general, a virtual constraint is a restriction and / or encouragement to the motion of a rigid body in a certain direction that is taken into account by the control system 60 along with other motion-related information as part of the virtual simulation. Each virtual constraint can be thought of as acting along a certain direction, called the constraint's direction. These unidirectional constraints may be combined to generate multi-degree-of-freedom constraints that may act, for example, to align or repel two coordinate systems with each other in the virtual simulation. A virtual constraint can both restrict or encourage motion in a certain direction. A constraint does not "restrict" motion in a directional sense (attract / repel), but rather affects motion in a certain manner based on the relative motion or attitude of two tracked objects / coordinate systems in the virtual simulation, rather than allowing free (unconstrained) motion. All active virtual constraints are added to a constraint solver, which determines a set of parameters describing each virtual constraint and calculates forces. The resulting force may be represented as a six degree of freedom force / torque vector that represents the balance or equilibrium of various virtual constraints, each acting along a potentially separate constraint direction. It should be noted that in the present teachings, when the term "force" is used, it may refer to a generalized force / torque vector in which linear force and / or rotational torque components are defined in one or more degrees of freedom. For example, a "force" may refer to a six degree of freedom force / torque vector in a given coordinate system that defines a single force in a single direction, a single torque about a single axis, or any combination thereof, such as a force consisting of x, y, and z components and a moment consisting of torque components about the x, y, and z axes.
[0133] In some examples, each virtual constraint does not have equal forces, and depending on the position of the rigid body acted upon by the virtual constraint, the virtual constraint may be adjusted to be flexible. For example, depending on the patient's anatomy and the position of the instrument 14 relative to the target cutting plane or target trajectory, the virtual constraint may be adjusted to be flexible. The virtual constraints are not infinitely rigid, instead, each of the virtual constraints has tuning parameters to adjust the stiffness of the virtual constraint, for example, by incorporating spring and damping parameters into the virtual constraint. Such parameters may include a constraint force blend parameter (C) and an error reduction parameter (ε). The virtual forces may then be applied to a virtual rigid body (representing the tool 20 or the blade support 18) in the virtual simulation. A six degree of freedom forward dynamics calculation is performed to determine the resulting virtual rigid body motion. The simulation is performed in time steps, and the results are used as the command pose.
[0134] The values of the adjustment parameters may be larger (e.g., more rigid) for the position constraints than for the orientation constraints, or vice versa. Thus, the calculation of the virtual constraints leads to direct control of the movement parameters of the tool support moving relative to the handpiece. The adjustment parameters may be determined, for example, as described in PCT application PCT / US2020 / 053548, entitled "Systems and Methods For Guiding Movement Of A Tool," filed September 30, 2020, which is incorporated herein by reference.
[0135] The state of the virtual constraints may be controlled during operation of the tool. For example, the state of the virtual constraints may change based on a relationship between a first state and a second state (e.g., a current state and a goal state of the tool). For example, the state may be configured as a function of a distance parameter between a position of the tool and a position of the reference position such that the state changes during use. In another example, the state may be configured as a function of an angle parameter between a position of the tool and a position of the reference position such that the state changes during use. The state of each virtual constraint may be an active state, an inactive state, one that includes a first value for an adjustment parameter, and / or one that includes a second value for an adjustment parameter. In some examples, the value of the state may be defined by a lookup table. Thus, a particular constraint may be activated and / or deactivated based on the state of the tool.
[0136] In an example where the tool is a saw blade, determining the state of the saw blade relative to the target state of the saw blade for multiple cutting planes may include determining an angle between the current orientation of the saw blade and multiple target orientations of the saw blade, determining a distance between the current position of the saw blade and multiple target positions of the saw blade, or determining both the angle and the distance. Determining the current state of the saw blade relative to the target state of the saw blade may include determining a position of a plane defined by the saw blade relative to the multiple cutting planes in a known coordinate system. Thus, when the saw blade is positioned adjacent a particular target cutting plane, the state of one or more virtual constraints may be changed, and the control system may be further updated to update the target pose to reflect the selected cutting plane. Similar techniques may be implemented to control an instrument when a rotary cutting tool is used to align with one or more target trajectories.
[0137] The virtual constraints may be activated when a user input device is used or when the robotic system 10 automatically activates the virtual constraints. Additionally or alternatively, a user may be able to manually set the virtual constraints (e.g., change one or more parameters of the virtual constraints, activate / deactivate the virtual constraints, etc., via one or more of the user interfaces UI). The user may utilize the clinical application 190 for this purpose. The virtual constraints may also be triggered when certain surgical steps are being performed (e.g., cutting a desired section of tissue, etc.) or when the robotic system 10 detects or otherwise recognizes certain conditions.
[0138] 10, the state of the virtual constraints may be changed depending on what area the tool is located in relative to the planned cut or surgical site. These areas may be defined by virtual objects 184 (see spherical object shown) in one or more known coordinate systems.
[0139] In one example of changing the state of a virtual constraint, spring and damping parameters may be adjusted during operation. In some versions, values for the adjustment parameters may change based on a relationship between the current state of the tool and a goal state. For example, the adjustment parameters may be configured to be more stiff as the tool 20 approaches the goal state, or the adjustment parameters may be configured to be less stiff as the tool 20 approaches the goal state. The adjustment parameters may be different for different constraints. For example, the virtual constraints may include a first virtual constraint having a first value for the adjustment parameter and a second virtual constraint having a second value for the adjustment parameter, where the first value is greater than the second value, such that the resulting constraint force F cis adapted to move the tool more as a result of the first virtual constraint compared to the second virtual constraint. The values of the adjustment parameters may be larger (e.g., stiffer) for the position constraint than for the orientation constraint, or vice versa.
[0140] The tuning parameters may also be set to remain constant regardless of the distance / angle from the current state of the tool to the target state of the tool, to rise / fall exponentially with distance; to change linearly with the distance between the current state and the target state; to change with the constraint direction; to change as a function of time; to take into account gravity effects; or a combination of these. With reference to Figures 18-20, the tuning parameters for one constraint associated with one degree of freedom may be set based on a relationship associated with another degree of freedom, e.g., the stiffness of a y-axis constraint may change based on the distance along the x-axis between the current state and the target state. The tuning parameters may also change depending on the direction the tool 20 needs to move to reach the target state, e.g., moving in one direction along the x-axis is more stiff than moving along the opposite direction along the x-axis. The tuning parameters may also be set to adjust the constraint force F c The final constraint force F is calculated based on the virtual constraint, such as by increasing / decreasing the stiffness depending on the magnitude of F or any component of F. c The virtual constraints may be scaled depending on the force, the velocity, and the time required for the virtual constraints to be adjusted. Fixed values for one or more virtual forces may also be added to the virtual simulation in some cases. The tuning parameters for the virtual constraints may be set preoperatively, set intraoperatively, updated intraoperatively, and combinations thereof. The tuning parameters and their values, their correlation to specific relationships, and the manner in which they may be scaled may be stored in one or more lookup tables in any suitable memory in the control system 60 for later retrieval.
[0141] Changing the stiffness of one or more adjustment parameters of one or more constraints as a function of time and distance may provide advantageous actuator behavior in response to one or more events. For example, if the line of sight to the tracker is temporarily interrupted, sudden and violent actuator movements in the user's hand that may be distracting to the user may be minimized by slowly increasing the stiffness when the tracker returns to the line of sight of the camera. Instead, the stiffness may be increased slowly when the tracker of the instrument returns to the line of sight. This control of the adjustment parameters based on a function of time and distance may also be useful when the handheld instrument transitions between different control regions, as described below. As described above, one or more virtual constraints may be automatically activated. Additionally or alternatively, the user may be able to manually set the virtual constraints (e.g., change one or more parameters of the virtual constraints, activate / deactivate the virtual constraints, etc., via one or more of the user interfaces UI). The user may utilize the clinical application 190 for this purpose. Virtual constraints may also be triggered when a particular surgical step is being performed (e.g., cutting a desired section of tissue), or when the robotic system 10 detects or otherwise recognizes a particular condition.
[0142] Each virtual constraint also has configuration settings, which may include information about tuning parameters such as a constraint force blend parameter (C) and an error reduction parameter (ε), upper and / or lower force limits, and / or upper and lower constraint distance offsets. The upper and lower force limits are used to determine the constraint force F, as described further below. c, which refers to the force limits calculated for each virtual constraint that are finally solved by the constraint solver 189 to generate . A virtual constraint may be a two-sided constraint (e.g., the forces calculated to satisfy the constraint may be positive or negative) and may apply attractive forces in either direction regardless of which side of the guided coordinate system GF is located (in each degree of freedom) of the target coordinate system TF. The force limits may be set high in the positive and negative directions (e.g., -100000 / +100000 Newtons) or to any desired limits. Alternatively, a virtual constraint may be a one-sided constraint (e.g., the forces calculated to satisfy the constraint may only act in one direction, i.e., they can only be either positive or negative depending on the direction configured by the force limits). Furthermore, constraints may be configured to be "attractive" which applies forces in a direction toward satisfying the constraint criteria, or "repulsive" which applies forces away from satisfying the constraint criteria. The upper and lower constraint distance offsets dictate when the constraint is active. For virtual constraints, upper and lower constraint distance offsets may be set such that the constraint is active whenever the current state differs from the goal state.
[0143] When the control system is subjected to a higher force associated with one or more of the virtual constraints, the higher force may lead to a higher acceleration rate for the rigid bodies affected by the virtual constraints in the simulation. The output of the virtual simulation as a commanded pose of the tool commands the actuators 21, 22, 23 accordingly, causing higher forces and higher accelerations as seen in the virtual simulation, resulting in a higher acceleration of the tool support 18 relative to the handpiece 16. The higher force may be based on a value calculated for that particular constraint, a value of the tuning parameter, or a combination thereof. For example, the virtual constraints may include a first virtual constraint having a first value for the tuning parameter and a second virtual constraint having a second value for the tuning parameter, the first value being greater than the second value, thereby resulting in a higher constraint force F cThe virtual forces and / or torques embodied in are adapted to move the tool stronger as a result of the first virtual constraint compared to the second virtual constraint.
[0144] 11 and 17A-17E are control diagrams of a process implemented to perform calculation of a command pose using one or more virtual constraints. FIG. 11 is a simplified control diagram, and FIGS. 17A-17E are more detailed. In these versions, the behavior controller 186 may be connected to a constraint generator 384. The constraint generator 384 may include a boundary handler 389 that sends boundary constraints to the behavior controller 186, and a guide handler 385 that sends guide constraints to the behavior controller 186. The behavior controller 186 may include a constraint solver 189 and a virtual simulator 388. The motion constraint handler 390 sends joint centering constraints, kinematic motion constraints, workspace constraints, and joint limit constraints to the behavior controller 186 to be added to the constraint solver 386 and the virtual simulator 388. In some examples, the motion constraint handler 390 is part of the motion controller 188. The virtual simulator (shown as "sim" in FIG. 11 and as Virtual Forward Dynamics in FIGS. 17A-17E) may simulate virtual dynamics on the tool 20 based on the constraint forces and potentially additional forces including damping, inertial and external sensed forces. The constraint generator 384, constraint solver 189, and virtual simulator 388 each include executable software stored in non-transitory memory of any one or more of the aforementioned controllers and implemented by the control system 60. The constraint forces may be applied to a virtual mass coordinate system VM in which the virtual simulation is performed on a virtual rigid body model of the tool 20 such that forces and torques (among other inputs) are virtually applied to the virtual rigid body in the virtual simulation to ultimately determine how those forces and torques affect the motion of the virtual rigid body, as described below. The virtual forces and torques that may be applied to the virtual rigid body in the virtual simulation are adapted to move the tool 20 towards a goal state. The virtual forces and torques affect the overall motion of the tool 20 towards the virtual object, i.e., the goal state.
[0145] In one example, as shown in FIG. 11, the behavior controller 186 does not utilize external force sensor inputs to the virtual simulation. The use of virtual constraint-based control provides several advantageous results even in the absence of external force sensors. The modeling of the constraint system and virtual forces in the virtual simulation allows for easy blending of constraints tied to different outcomes. The constraint system also allows for tuning the parameters for each constraint in an intuitive manner. Furthermore, the use of velocity constraints provides higher responsiveness (e.g., higher stiffness) for a given sample rate due to improved numerical stability over other numerical integration or simulation methods. However, as described, the use of external force sensors or other approximations of external forces, such as current-based estimates of external forces, may be used with the systems and methods described herein.
[0146] (Guide constraints) One type of virtual constraint is referred to herein as a guide constraint. Guide constraints are defined to ultimately influence the movement of the tool 20 toward the goal state. Guide constraints have configurable spring and damping characteristics, as described further below, so that guide constraints are not infinitely stiff. More specifically, in some versions, guide constraints are defined as "soft constraints" so that they do not completely prevent movement that violates the constraint, such as movement due to forces and torques applied by other constraints in opposite directions relative to the goal state.
[0147] One or more guide constraints may be used by the control system 60 to guide the tool support 18, including up to three guide constraints related to the target position and up to three guide constraints related to the target orientation. As will be explained in more detail below, the control system 60 calculates a constraint force F that satisfies or attempts to satisfy the guide constraints (and other virtual constraints, if used). c The constraint force F cincorporate virtual forces and torques therein to move the tool 20 to the target state. Each of the guide constraints is considered a one-dimensional virtual constraint. The control system may utilize multiple one-degree-of-freedom constraints to align the guided frame to the target frame. As previously mentioned, the guide constraints are "two-sided" constraints in that they can apply attractive forces in either direction, regardless of which side of the target frame TF the guided frame GF is on (in each degree of freedom). In some versions, the guide constraints are velocity impulse constraints, where forces and / or torques are calculated to apply a virtual impulse to an object in the virtual simulation to cause a change in the object's velocity according to the desired constraint parameters. In some versions, these constraints are similar to those used in the impulse modeling described in U.S. Pat. No. 9,119,655, which is incorporated herein by reference.
[0148] In Fig. 12, guide constraints GC associated with a target pose in at least one degree of freedom are exemplarily depicted as being defined in the target coordinate system TF. The final calculated constraint forces Fc resulting from these guide constraints GC (and other active virtual constraints) are shown as including forces incorporating virtual spring and damping properties that guide the TCP of the tool 20 to the target pose. The guide constraints may be based on the pose of the guided coordinate system GF (e.g. defined with respect to the virtual mass coordinate system VM) and the pose of the target coordinate system TF (e.g. defined with respect to the patient tracker). The poses (in at least one degree of freedom) of the guided coordinate system GF and the target coordinate system TF are used to calculate the current state of the saw blade and the target state of the saw blade, respectively, or the current state of the tool and the target state of the tool, respectively.
[0149] Each guide constraint has a constraint direction defined along or about the x-, y-, or z-axis of the target coordinate system. A constraint direction is a direction in which the constraint can effectively apply a force. For the case of a rotational constraint, a constraint direction is an axis about which the constraint can effectively apply a torque. The constraint direction may be defined in the guided coordinate system (GF), or the constraint direction may be defined with any known relationship to either the target coordinate system (TF) or the guided coordinate system (GF). In one example, three translational guide constraints and three rotational constraints may be used to perfectly align the position and orientation of the guided frame with the target frame. However, no more than two translational constraints may be used, and no more than two rotational constraints may be used.
[0150] In one example, the guide constraints are calculated in three degrees of freedom: one position and two orientations. The position guide constraint is defined in elevation, and the orientation constraints are defined in pitch and roll, which are used to align the saw blade with the target plane TP. The orientation is calculated by comparing the orientation of the target pose (TF) with the guided frame on the saw blade. The roll (rotation around the X axis) and pitch (rotation around the Y axis) are used to define how much the saw blade needs to be rotated until the XY plane of the saw blade (guided coordinate system) is parallel to the XY plane of the target pose (target coordinate system). For this example, the three constraint directions are along the z axis of the TF (elevation), around the x axis of the TF (roll), and around the y axis of the TF (pitch). In another example for other virtual objects, two position guide constraints and two orientation guide constraints may be used.
[0151] Alternatively, any number of degrees of freedom in the guided coordinate system may be used to align the saw blade or other tool to the target pose, such as a 1-degree-of-freedom position (point on a plane), a 3-degree-of-freedom position and orientation as described above, a 4-degree-of-freedom position and orientation, or a full 6-degree-of-freedom pose, which would include guide constraints to align 3 positions and 3 orientations.
[0152] Guide constraints (and other virtual constraints, if used) are primarily defined by three runtime parameters: a constraint Jacobian Jp that maps each one-dimensional guide constraint into the coordinate system utilized for the virtual simulation (e.g., between the target coordinate system TF and the virtual mass coordinate system VM); a desired velocity Vdes (or Vp2) along or around the applicable constraint direction defined by the target coordinate system TF (e.g., the desired velocity may be zero when the patient is immobile and the associated goal state defined for the patient is not moving, but may be non-zero when the patient is moving, since the goal state may be tied to the patient); and a constraint distance Δd, which is how close the guided frame GF is to the goal frame TF along or around the applicable constraint direction defined by TF and determines whether the constraint is violated or not. In some cases, Δd refers to the distance / angle of the current state from the goal state, and a guide constraint is violated whenever the current state does not match the goal state for the relevant degree of freedom.
[0153] It should be understood that when other constraints besides the guide constraints are utilized, the constraint solver is ultimately tasked with providing a solution for the constraint forces F that satisfy or attempt to satisfy all virtual constraints, and thus the other constraints may affect the magnitude and / or direction of the constraint forces.
[0154] (Joint centering constraint) The joint centering constraint is another virtual constraint representing virtual forces and / or torques utilized in the virtual simulation to affect the movement of the tool support 18 relative to the centering position of each of the actuators. The joint centering constraint is used to implement a specific limit on the movement of the tool support 18 relative to the hand-piece, which is taken into account by the control system 60 to maximize the amount of movement of the tool support 18 available relative to the hand-piece 16. In one example, the specific limit of movement for the tool 20 may be to return the joint to its center position (or another joint position determined by the user, the control system 60, or both) when no other constraints are active. Alternatively, the joint centering constraint may facilitate positioning of the tool support 18 relative to the hand-piece 16 for optimal balance for a particular surgical procedure, such as for a particular cut in a total knee procedure, or for a particular trajectory in a particular bone drilling procedure. The joint centering constraint may have configurable spring and damping characteristics so that the joint centering constraint is not infinitely stiff, as will be further described below. More specifically, in some versions, the joint centering constraints are defined as "soft constraints" such that they do not completely prevent motion that violates the constraint, such as motion due to forces and torques applied in opposite directions by other constraints.
[0155] The joint centering constraints may be used by the control system 60 to move the tool support 18. As described in more detail below, the control system 60 may operate to calculate constraint forces Fc that satisfy or attempt to satisfy the joint centering constraints. The constraint forces Fc incorporate virtual forces and torques therein to move the tool support 18 towards the centering position. The joint centering constraints are considered to be one-dimensional virtual constraints. In some versions, the joint centering constraints are velocity impulse constraints where forces and / or torques are calculated to apply a virtual impulse to an object in the virtual simulation to cause a change in the velocity of the object according to the desired constraint parameters. If other constraints than the joint centering constraints are utilized, the constraint solver may ultimately calculate constraint forces Fc that satisfy or attempt to satisfy all virtual constraints. c It should be understood that the task is to provide a solution for θ = θ ...
[0156] In FIG. 21, the joint centering constraints are illustratively represented in the joint space of each actuator (along the translational axis of the actuators 21, 22, 23). The constraint direction of the joint centering constraint is along the translational axis of that actuator 21, 22, 23 and therefore may only apply linear forces along that direction. The resulting constraint force of each joint centering constraint is illustrated as including a linear force incorporating spring and damping characteristics acting along the translational axis of the corresponding actuator that guides the actuator position to the centered position. It should be understood that the joint centering constraints may be defined in other coordinate systems as well. It should also be understood that all or less than all of the actuators in the instrument may utilize the joint centering constraint.
[0157] The joint centering constraint is defined by three main runtime parameters: the constraint Jacobian Jp, which maps the one-dimensional joint centering constraint to the coordinate system utilized for the virtual simulation (e.g., between the joint motion and the virtual mass coordinate system VM); the previous command joint position, which is the command position used to control each actuator in the previous control iteration; and the joint centering position, which is the set joint position to which the actuator is desired to return when no other constraints are active. It should be understood that the current measured position of the actuator can also be used for the joint centering constraint. The previous command position may provide less lag in control and improved stability. The joint centering constraint may be two-sided, and always pulls the joint to the centering position when active.
[0158] The joint centering position may be a position where each of the rotors 148 has a relatively large amount of travel along its respective lead screw. In other words, the joint centering position may be considered as a "home" or "idle" position of each of the actuators as described above. By setting the joint centering position for each actuator at a home position, which is the center position of the rotor along the lead screw, the tool support can achieve a maximum range of motion. Alternatively, the joint centering position may be set at a position other than the home position for one or more of the actuators. This position may be considered a secondary joint centering position. The secondary joint centering position may be different for each of the actuators 21, 22, 23. It should be understood that when an actuator is located at a secondary joint centering position, one or more of the actuators 21, 22, 23 may only be capable of a portion of the travel in one direction that the same actuator would have if the joint centering position was the home position. In one example, the first joint centering position is a "home position" and the second joint centering position is a position other than the home position. Without being limiting, when the actuator is in the second joint centering position, the actuator may have less than 50 percent, less than 40 percent, or less than 30 percent of the range of motion in a particular direction that the same actuator would have if set in a joint centering position equivalent to home. However, for certain surgical procedures or for certain users, it may be useful to bias the joint centering position away from the center position of the actuator to provide more movement in certain (potentially difficult) directions, to improve ergonomics, or to account for how the instrument is held. It should be understood that each actuator may have presets for a number of different joint centering positions, or preferred balance arrangements.A group of joint centering positions (a set of joint centering positions for all actuators) that correspond to preferred grip / balance situations may be aggregated together, and these centering positions may be selectable by a user using one or more user input devices.
[0159] When each actuator 21, 22, 23 is in a first joint centering position (home position), the amount of adjustability of the actuators 21, 22, 23 is typically maximized symmetrically to facilitate the user to keep the tool 20 in a desired position, i.e., the joint centering positions are typically set to the center or "home" positions of the actuators. Depending on the particular geometry and configuration of the instrument 14, various levels of adjustability are possible. In some examples, when all actuators 21, 22, 23 are in their first joint centering positions, the tool 20 may be adjusted in pitch orientation by approximately ±18 degrees relative to the joint center position, assuming zero change in roll orientation and no z-axis translation. In some examples, when all actuators 21, 22, 23 are in their centering positions, the tool 20 may be adjusted in roll orientation by approximately ±33 degrees relative to the centering position, assuming zero change in pitch orientation and no z-axis translation. In some examples, when all actuators 21, 22, 23 are in their first joint centering positions, the tool 20 may be adjusted in z-axis translation by about ±0.37 inches relative to the first joint centering position, assuming zero change in pitch and roll orientation. The tool 20 may of course adjust pitch, roll, and z-axis translation simultaneously, sequentially, or combinations thereof during operation.
[0160] The joint centering constraint may be used to "freeze" one or more actuators into the freehand / unguided mode at the location of one or more actuators to prevent unnecessary actuation and movement and to prevent the actuators from generating excessive heat due to movement, such as when the instrument 14 is a significant distance away from the target bone. The freehand / unguided mode may be useful for performing some types of procedures, such as cutting a portion of the patella or other anatomical structure. When the actuators 21, 22, 23 are frozen from further movement in the freehand / unguided mode, the instrument 14 behaves much like a conventional cutting instrument without any movement of the tool support 18 relative to the handpiece 16. The virtual boundary 184 may also be deactivated in the unguided mode. The freehand / unguided mode may be entered by any suitable input device (e.g., push button, foot switch, etc.) of any suitable user interface. In some versions, the user may select this tool behavior (i.e., activate joint centering constraints with specific joint centering positions and / or change the joint centering positions) by actuating an input device and selecting a freehand / non-guided mode in which the instrument controller 28 instructs the tool pose to be held in place or frozen. In some examples, to freeze the tool 20 at a specific pose, the instrument controller 28 may enable the joint centering constraints and set the centering positions for each actuator 21, 22, 23 to the joint positions corresponding to the desired tool pose (e.g., by performing inverse kinematics on the desired tool pose to obtain the corresponding joint positions). Alternatively, in other examples, the joint centering positions may be left at zero (i.e., home positions) or reset to zero. Additionally, the joint centering positions may be set to the current positions of the actuators at the time the mode is requested by the user, as determined using encoders or other actuator position feedback. As explained above, the joint centering positions are adjustable.The secondary joint centering position may be set using a user input device or may be set automatically.
[0161] The instrument controller 28 may automatically control the state or behavior of the joint centering constraint. For example, the state of the joint centering constraint may be controlled based on the state of the tool and the goal state. Alternatively, the state of the joint centering constraint may be controlled based on the position of the tool 20 and the position of the reference position relative to the bone in a known coordinate system. The state of the joint centering constraint may include values of the joint centering positions for each of the actuators 21, 22, 23 and / or adjustment parameters of the joint centering constraint. For example, the instrument controller 28 may automatically enable the joint centering position constraint with a specific joint centering position for each of the actuators when the tool 20 is removed from the incision based on the state of the tool 20 and the reference position relative to the bone determined by the navigation system 32 so that the user may resume the procedure with the same grip on the handpiece 16 for the tool 20 for maintaining a comfortable grip, control, convenience, familiarity with the anatomical structure, unexpected anatomical structure, or a combination thereof. In such an example, the joint centering positions are set to the positions of each actuator 21, 22, 23 measured at a time prior to removal of the saw blade 380 from the kerf.
[0162] Also, although the joint centering positions have been described in terms of joint centering constraints, it should be understood that the joint centering position control described above may be utilized without the use of virtual constraints, such as with an actuator position control system. In such an embodiment, the control system may simply control the position of each actuator to a set joint centering position. When joint centering behavior is utilized without implementing a constraint solver, the state of the joint centering operation may be controlled in the same manner as the joint centering constraints.
[0163] The instrument controller 28 may be configured to control the state of the joint centering constraint based on a distance parameter (e.g., distance; magnitude) calculated between the position of the tool 20 and the position of the reference position relative to the bone. The distance parameter may be a direction, a magnitude, or both. In some cases, the controller may switch to a different state when the distance parameter has a direction away from the bone and a magnitude greater than a first threshold, such as 15 cm.
[0164] As explained above, the joint centering position is adjustable. The secondary joint centering position may be set using a user input device or may be set automatically. In certain configurations, the activation of the secondary joint centering position and the joint centering constraint may be based on the state of the plane defined by the saw blade for multiple cutting planes in a known coordinate system or the state of the axis defined by the tool for multiple planned trajectories.
[0165] More specifically, the secondary joint positions and activation of the joint centering constraints may be based on the angle between the current saw blade orientation and multiple target saw blade orientations, the distance between the current saw blade position and multiple target saw blade positions, or both, and determine one of multiple cutting planes selected by the user based on the angle value, the distance value, or both the angle value and the distance value. Thus, a specific secondary centering position for each of the actuators may be selected to optimize the orientation of the tool support relative to the handpiece for the purpose of improving usability. Similar implementations may be used for trajectories for other types of surgical tools.
[0166] An example of controlling joint centering behavior is described below with reference to FIGS. 23A-C. In this example, a virtual boundary or distance parameter may be used to distinguish between regions IV and V and regions immediately adjacent to the bone. In this example, referring first to FIGS. 23A and 23B, the control system is configured to automatically save the current joint position that may be used later as a joint centering position when the tool moves from a first region (region IV) to a second region (region V). As seen in FIG. 23A, the tool is on the cutting plane and the guide constraints are actively aligning the tool 20 to the cutting plane. The control system 60 analyzes the current joint position as the tool 20 moves from region IV to region V, takes a "snapshot" of the joint position, turns off the guide constraints, and allows the tool 20 to return to its centered position via its previously configured joint centering constraints (FIG. 23B). When returning from region V to region IV, the joint centering constraints are reset to the values at the "snapshot" (e.g., restoring the alignment) so that the tool is aligned to the exit position (FIG. 23C). The guide constraints may not be enabled until the tool 20 is within the zone defined by the area immediately adjacent to the bone entry. The restored joint positions may be implemented to realign the user to the ergonomic start position for the handle, previously captured upon exiting the cut. The guide constraints may be reactivated when the blade pose (such as the blade VM) is close to the bone (considering a threshold distance from the blade VM to the reference coordinate system / reference position).
[0167] It should be understood that a joint centering constraint may be active simultaneously with a guide constraint, a joint limit constraint, or a workspace constraint. In such a situation, the constraint solver attempts to balance the forces exerted from each of the virtual constraints when calculating how the actuator should be controlled, e.g., when calculating the commanded pose. Thus, in certain instances, despite activation of a joint centering constraint with a particular joint centering position, the actuator may not actually be controlled to that joint centering position because other constraints may have a higher priority. The priority of various constraints may be adjusted through the use of various tuning parameters, such as stiffness or damping. Of course, it is contemplated that different virtual constraints need not be active at the same time.
[0168] In one example, the virtual guide constraint may be activated when the TCP transitions from region II to region I. The virtual joint centering constraint may be activated when the TCP transitions from region III to region II. Similarly, the joint centering constraint may be deactivated when the TCP transitions from region II to region I. Of course, any number of regions may be defined having any particular shape. It is contemplated that the virtual joint limit constraint may be active in all three regions. As described throughout, these regions may be defined as virtual objects of various shapes or as distance parameters relative to a reference position.
[0169] In some examples, the control system 60 modifies each of the virtual forces (virtual constraints) using adjustment parameters based on the pose of the tool 14, the pose of the blade support or tool support, the pose of the hand-held part, the commanded joint position of at least one of the actuators, the measured position of at least one actuator 21, 22, 23, the previous commanded position of at least one actuator 21, 22, 23, the previous measured position of at least one actuator 21, 22, 23, or a combination thereof. In some examples, the control system 60 generates guide constraints based on the target pose of the saw blade 380 or tool and the measured pose of the hand-held part 16. The control system 60 also generates a centering position of at least one actuator 21, 22, 23 and a joint centering constraint based on the position of at least one of the actuators 21, 22, 23. The control system 60 calculates the constraint forces based on the guide constraint forces and the joint centering constraint forces by virtually simulating the dynamics of the virtual saw blade or tool based on the constraint forces. In some examples, the control system 60 can also determine external forces applied to the tool 14, such as on the blade support or tool support, the handpiece, or between the blade / tool support and the handpiece, and use the external forces in the calculations to determine constraint forces to apply to the virtual rigid body in the virtual simulation. The external forces may be measured in one or more degrees of freedom and modeled as force / torque vectors. The result of the virtual simulation is a command pose that can ultimately be used to determine command joint positions for each of the multiple actuators 21, 22, 23. The centering position may be between the midpoint of the actuator range and the joint limit of that actuator.
[0170] In the virtual simulation, each of the virtual constraints may be modified with an adjustment parameter. Each adjustment parameter may cause the respective virtual constraint to have an increased effect on the constraint forces in the virtual simulation. In one example, the joint centering constraint may have an adjustment parameter with a first value and the guide constraint may have an adjustment parameter with a second value, each of the adjustment parameters causing the respective virtual constraint to have an increased effect on the final calculated constraint forces. In one example, the adjustment parameter of the joint centering constraint is less than the adjustment parameter of the guide constraint, thereby biasing the virtual simulation and subsequent commanded poses and commanded joint positions in a direction in which the constraint forces move the tool 20 to the target pose while moving at least one of the actuators away from the joint centering position, e.g., the midpoint / home position. The control system 60 may further activate the joint limit constraint based on the position and position limits of at least one of the actuators. The joint limit constraint may be solved along with other virtual constraints (e.g., guide constraint, joint centering constraint) to determine the constraint forces. In one example, the joint centering constraint adjustment parameter has a first value, the guide constraint adjustment parameter has a second value, and the joint limit constraint adjustment parameter has a third value that is greater than the values of the guide constraint adjustment parameter and the joint centering constraint parameter. By having the joint limit constraint adjustment parameter greater than the guide constraint adjustment parameter and the joint centering constraint adjustment parameter, the virtual simulation ensures that the constraint forces applied to the virtual saw blade are more likely to satisfy the joint limit constraint. In this example, the joint limit constraint has the highest value, so that the virtual forces applied to the virtual saw blade are guided to positions within the joint limits, resulting in a commanded position that does not exceed the joint limit position. One such adjustment parameter that may be used in this example is constraint stiffness.
[0171] (Joint limit constraints) The joint limit constraint is another virtual constraint that represents virtual forces and / or torques utilized in the virtual simulation to affect the movement of the tool support 18 when controlling multiple actuators. The joint limit constraint is used by the control system 60 to implement certain limits in the movement of the tool support 18 intended to prevent the actuators 21, 22, 23 from moving outside their range of motion. The joint limit constraint may also enforce a threshold of movement that is considered too close to the actuator travel limit. As explained further below, the joint limit constraint has configurable spring and damping characteristics. However, joint limits such as soft stops and hard stops are still operable to prevent the tool from overextending or retracting.
[0172] The joint limit constraints may be used by the control system 60 to guide the tool support 18. As described in more detail below, the control system 60 operates to calculate constraint forces Fc that satisfy or attempt to satisfy the virtual constraints (including the joint limit constraints). The constraint forces Fc have virtual forces and torques incorporated therein to move the tool support 18 and the tool 20 in a manner intended not to violate the actuator joint limits. The joint limit constraints are considered one-dimensional virtual constraints. For example, the joint limit constraints may be one-sided, thus allowing a "push away" from the joint limits but not a pull towards them. In some versions, the joint limit constraints are velocity impulse constraints where forces and / or torques are calculated to apply a virtual impulse to an object in the virtual simulation to cause a change in the object's velocity according to the desired constraint parameters. It should be understood that when other constraints are utilized in addition to the joint limit constraints, the constraint solver is ultimately tasked with providing a solution for the constraint forces F that satisfy or attempt to satisfy all virtual constraints, and thus the other constraints may affect the magnitude and / or direction of the constraint forces.
[0173] The joint limit constraints are defined primarily by three parameters: the previous commanded joint position, the position of the joint limit, and the constraint Jacobian Jp, the same as that used for the joint centering constraint, which relates the joint motion to the motion of the virtual mass. The joint limit constraints utilize a calculation of the position difference between the joint limit position and the previous commanded position. In some implementations, the joint limit constraints may be calculated based on the current measured position instead of the previous commanded position.
[0174] The joint limit constraints are determined and calculated as forces to prevent the actuators 21, 22, 23 from extending and / or retracting beyond their respective physical and virtual limits. The instrument controller 28 analyzes previous commanded positions along each active axis AA1, AA2, and AA3 to determine the joint limit constraints. The joint limit constraints are balanced with joint centering constraints, guide constraints, workspace constraints, and / or other virtual constraints when calculating the commanded pose. The joint limit constraints may be based on joint limits (soft stops), which may be software enabled stops set at count values just short of the end of travel measured during the homing procedure. The soft stops may be software preprogrammed values. The soft stops may be a combination of count values and preprogrammed values.
[0175] (Workspace constraints) The workspace limit constraint is another virtual constraint that represents virtual forces and / or torques utilized in the virtual simulation to affect the motion of the tool support 18 when controlling multiple actuators. The workspace limit constraint is used by the control system 60 to implement certain limits on the motion of the tool support 18 intended to prevent the tool 20 from moving outside its workspace. The workspace limit constraint exerts forces along directions defined in Cartesian space, not in joint space (as is the case for joint limit constraints). The workspace limit constraint has configurable spring and damping properties, as described further below, so that the workspace constraint is not infinitely stiff. More specifically, in some versions, the workspace limit constraint is defined as a "soft constraint" such that the workspace constraint inhibits but does not prevent motions that violate it, such as motions due to forces and torques applied in opposite directions by other constraints.
[0176] The workspace limit constraints may be used by the control system 60 to prevent movement of the tool support 18 and the tool 20 to various locations outside the defined workspace. As described in more detail below, the control system 60 operates to calculate constraint forces Fc that satisfy or attempt to satisfy the virtual constraints (including the workspace constraints). The constraint forces Fc incorporate virtual forces and torques therein to move the tool support 18 and the tool 20 in a manner intended not to violate the workspace limits. The workspace limit constraints are considered one-dimensional virtual constraints in that they can only apply forces in a single direction (i.e., "push away" from the workspace limits, but do not pull towards them). In some versions, the workspace limit constraints are velocity impulse constraints in which forces and / or torques are calculated to apply a virtual impulse to an object in the virtual simulation to cause a change in the object's velocity according to the desired constraint parameters. As described above, the workspace limit constraints may include one or more adjustment parameters that can be adjusted manually or automatically (based on various positional or angular relationships described throughout).
[0177] The workspace limit constraints may be based on the tool pose and a predefined Cartesian coordinate space, typically defined with respect to the BCS coordinate system. The pose of the tool 16 may be calculated as described above. As described in more detail below, the control system 60 operates to calculate constraint forces Fc that satisfy or attempt to satisfy the workspace limit constraints (and other virtual constraints, if used). The constraint forces Fc incorporate virtual forces and torques therein to move the tool 20 such that the workspace limit constraints are not violated. Each workspace limit constraint has a constraint direction that points inward toward the allowed workspace region along the normal to the workspace boundary at the point where the tool 20 contacts the workspace boundary. Typically, the constraint directions are defined in the BCS coordinate system, although other coordinate systems may be used. The constraint directions are directions in which the workspace constraints can effectively apply forces. A constraint Jacobian Jp may then be determined that relates the movement of the tool 20 along the constraint directions to the movement of the virtual mass VM. In addition to this, the workspace limit constraints may also utilize a calculation of penetration depth (i.e., how much the workspace limit has been violated along the constraint direction) by comparing the tool pose with the applicable workspace limit boundary being contacted by the tool.
[0178] It should be understood that when other constraints than the workspace limit constraints are utilized, the constraint solver is ultimately tasked with providing a solution for the constraint forces F that satisfies or attempts to satisfy all virtual constraints, and thus the other constraints may affect the magnitude and / or direction of the constraint forces.
[0179] As best shown in Figures 3A-5C and 23, the multiple actuators 21, 22, 23 are capable of moving the tool support 18 and tool 20 relative to the handpiece 16 in at least three degrees of freedom including pitch, roll, and translation along axis Z (vertical translation). These individual degrees of freedom are best shown in Figures 3A-3C (pitch), 4A-4C (roll), and 5A-5C (z-axis). Figure 23 shows one exemplary predetermined Cartesian space shown as a volume in the shape of a cube. Other shapes of the predetermined Cartesian space may be implemented as volumes such as an octahedron, an asymmetric octahedron, a sphere, a cube, a cylinder, etc. Notably, in some examples, the Cartesian space when defined as a volume may be asymmetric in shape such that it is asymmetric about the plane position between the tool support 18 and the handpiece when each of the actuators is in the home position, such that the Cartesian volume is larger above the plane than below the plane. In this example, the volume may be defined by multiple Cartesian points. This volume may be smaller than the dexterous workspace (smaller than all reachable configurations). Alternatively, the predetermined orthogonal space may be defined separately in each degree of freedom. For example, the orthogonal space may be defined using multiple orthogonal points. The predetermined orthogonal space may also be defined by one or more orientations based on any one, two, or three of the axes (x, y, and z) along or about which the saw blade 380 is displaceable.
[0180] The tool may be controlled such that the range of motion of the blade support relative to the handpiece may be greater in pitch than in roll. Alternatively or additionally, the tool may be controlled such that the range of motion of the blade support relative to the handpiece may be greater in elevation than in roll. In one potential embodiment, the tool may be controlled using a combination of joint limit constraints and workspace constraints. In addition, one or more other virtual constraints may be used simultaneously with the joint limit constraints and workspace constraints, such as guide constraints and / or joint centering constraints. The constraint solver may be configured to calculate constraint forces adapted to move the virtual saw blade based on the joint limit constraints and workspace constraints (and other virtual constraints being utilized). The dynamics of the virtual saw blade are simulated based on the constraint forces and output a command pose. Based on the command pose, the system determines a command joint position for each of the multiple actuators based on the command pose. Each of the multiple actuators is then controlled using the command position.
[0181] The use of workspace constraints (defined in Cartesian coordinates) in combination with joint limits (defined in joint space) may provide advantages with respect to control of the instrument. Implementing both constraints may provide additional options for avoiding singularities in the control, provide additional robustness in the design by avoiding weak poses that may damage one or more flex circuits, and / or provide additional options for avoiding mechanical interference. For example, the control system 60 may implement workspace constraints to limit the amount of roll of the blade support 18 relative to the handpiece 16 by making the workspace constraints and joint limit constraints more restrictive in pitch, z-axis elevation, or both than the workspace constraints and joint limit constraints. By setting the workspace limit for roll higher than the other controlled degrees of freedom (pitch and elevation), the limited roll may be less than the mechanical capability. In some cases, the workspace constraint in the roll direction may have the same amount of mechanical movement or less than the other controlled degrees of freedom in the pitch and z-axis directions.
[0182] Alternatively, the range of motion of the multiple actuators may be controlled without constraints. In such an embodiment, joint limit behavior is determined based on the actuator positions and limit positions, and a workspace limit is determined based on the tool pose and a predetermined Cartesian space. The control system 60 is then configured to limit each of the multiple actuators 21, 22, 23 based on the saw blade 380 pose, the joint limit positions, and the predetermined Cartesian space.
[0183] The workspace limits may also be used for reasons other than forming a workspace constraint. For example, the workspace limits defined for the instrument may be used to control the drive motor. The control system may control the tool drive motor based on the workspace limits, the attitude of one of the surgical tool, the handpiece, and the tool support, optionally taking into account the motor status. Furthermore, the control system may vary the workspace limits based on the attitude of the surgical tool, the handpiece, and the tool support, and one of the boundaries and / or motor status. This may be considered as an alternative to setting actuator limits based on similar factors. Such an implementation is control in Cartesian space versus control in joint space. Thus, throughout, it is contemplated that discussion of joint limits may be substituted within the workspace limits, and such alternatives are expressly contemplated.
[0184] (Kinematic movement constraints) Kinematic motion constraints may be used by the control system to control the degrees of freedom that are not controlled by the multiple actuators, i.e., the uncontrolled degrees of freedom. In one example, if the tool includes three controlled degrees of freedom and three uncontrolled degrees of freedom, kinematic motion constraints may be used in the three uncontrolled degrees of freedom (yaw, x-translation, and y-translation). Since the virtual simulator models the virtual constraints using a virtual mass that is subjected to forces in six degrees of freedom, kinematic motion constraints are utilized to ensure that the virtual mass model in the virtual simulator remains consistent with the physically related kinematic pose of the tool 20 and prevent the tool 20 from moving away in the virtual simulation in the uncontrolled degrees of freedom. Kinematic motion constraints are used to measure the difference in yaw, x-translation, and y-translation between the kinematic pose and the virtual mass. The constraint forces calculated based on these kinematic motion constraints are calculated to cancel the differences, whether they are positive or negative, thus it is a two-sided constraint. Kinematic motion constraints are calculated in Cartesian space. The joint limit constraints ensure that the actuators do not exceed their joint thresholds, while the kinematic motion constraints are always active and ensure that the uncontrolled degrees of freedom are aligned in the coordinate system of the virtual mass.
[0185] (boundary constraints) The control system may also utilize one or more boundary constraints. The boundary constraints may be based on one or more virtual boundaries described above along with the pose of the tool. The boundary constraints may function for constraint generation and actuator control (described herein), drive motor control, and may be used together, separately, or a combination thereof. The boundary constraints may result in a force on a virtual mass that prevents the tool from crossing the virtual boundary. It should be understood that the boundary constraints may utilize any of the virtual boundaries described above with respect to the control of the drive motor. It should be understood that in the case of boundary constraints, the virtual boundary is utilized to control multiple actuators rather than controlling the saw drive motor. In some examples, the boundary constraints or other boundary control methods may utilize collision detection.
[0186] In one example, the boundary may be defined as a mesh of triangles, and a collision detection algorithm may be used to determine which parts of the mesh may be contacted by the tool 20. First, the control system 60 performs wide-phase collision detection to generate a list of candidate triangles located within the area of the tool 20. Then, for each of the candidate triangles, narrow-phase collision detection is performed to check whether the tool 20 touches the triangle and how much penetration depth (along the triangle normal) the tool 20 reaches through the boundary. Boundary constraints may be generated only for triangles that are in contact with the tool, i.e., output triangles from the narrow-phase collision detection. In some cases, the tool 20 may be modeled using an array of primitive geometric shapes, such as discrete spheres (with a diameter equal to the thickness of the tool) or discrete swept spheres (capsule shaped) placed along the periphery of the tool 20. The collision detection process may be repeated for each of the primitive elements (e.g., discrete spheres) to look for collisions with the mesh triangles. Boundary constraints may be generated for each contact between a geometric primitive of the tool and a mesh triangle.
[0187] Typically, the boundaries are defined relative to the patient tracker 54, 56, although other reference coordinate frames may be used. After the control system 60 determines the points of the boundary mesh that contact the geometric primitives or VM of the tool 20, the boundary constraints may be calculated. A one degree of freedom, one-sided (force applied away from the boundary) boundary constraint may be calculated for each resulting narrow phase triangle. The direction of the boundary constraint is along the triangle normal. The boundary penetration depth may also be measured along this boundary constraint direction. A constraint Jacobian Jp is calculated to map the motion of the tool 20 along the triangle normal (boundary constraint direction) to the motion of the resulting virtual mass. For any boundary constraint attached to the anatomy tracker (i.e., having a relative velocity with respect to the tool 20), V desired may need to be calculated. V desired may be the projection onto the constraint direction of the relative velocity between the bone and the tool 20. In another example, when the tool is completely beyond the boundary, this is handled by the control of the drive motor M, rather than via the boundary constraint generation (and resulting actuator control).
[0188] If constraints other than the boundary constraints are used, the constraint solver finally calculates a constraint force F that satisfies or attempts to satisfy all the virtual constraints. c It should be understood that the task is to provide a solution for θ = θ ...
[0189] (external force) In one version, the instrument 14 may be configured to calculate, estimate, or measure forces and torques applied to the instrument 14 by a user or by bones to affect or influence the tool 20. For example, the instrument 14 may detect and measure forces and torques applied to the tool 20 by a user or bones and generate corresponding inputs (e.g., one or more corresponding input / output signals) that are used by the control system 60. The forces and torques applied by the user may be used to determine and facilitate the control of multiple actuators, such as an external force F. ext By including external force / torque measurements in the virtual simulation, forces applied by the user or bones can be brought into the virtual simulation. This can allow virtual constraints to be consistent with physically applied forces. For example, guide constraints have a certain stiffness and damping. External forces (F ext When the virtual simulation includes the virtual alignment, the tool may be positioned in such a way that the user "feels" the alignment of the guide constraints. This may allow the control of the tool to be more responsive to the forces applied by the user (i.e., a balance may be found in the virtual simulation between the applied user / bone forces and the stiffness of the guide constraints). If the user applies large forces, the guide constraints may be partially overridden by the user, if desired, based on their adjustment parameters. This may be used to limit the binding or resistance of the tool to the user in the case of small misalignments between the saw blade and the cutting surface, or the tool and the planned trajectory, and the virtual alignment allows the small errors to be resolved (balanced out) without exerting high forces or positive feedback felt by the user through the handle when the blade or tool cannot fully reach its target pose. extWithout the measurement, the rigidity of the virtual constraint may find a balance with the forces applied by other virtual constraints without taking into account the physical forces applied by the user or bones to the blade. If the external force is not included in the virtual simulation, the force applied by the user is not considered in determining the commanded pose. For example, this external force may be used in the calculation of the commanded pose by including it in the constraint solver in combination with the other virtual constraints described above and then applying the external force to the virtual rigid body in the virtual simulation. The external force F ext may include other forces and torques, such as gravity compensation forces, backdrive forces, and other virtual forces, apart from those applied by the user or by the bone, as described in U.S. Patent No. 9,119,655, which is incorporated herein by reference. Thus, the forces and torques applied by the user are expressed as the external force F ext and in some cases, the external forces F that affect the overall motion of the tool 20. ext , may be completely defined. In some examples, the instrument may include a force / torque sensor S implemented as a six degree of freedom force / torque transducer positioned on the handpiece, the tool platform, or between the two components. In other examples, linear force sensors on each of the actuators 21, 22, 23, or torque sensors on each of the actuator motor outputs may also be used. Additionally, instead of force / torque sensors, the motor current may be used as a low fidelity approximation of the motor torque. Each of these joint space force / torque measurements may be converted to an equivalent force / torque acting on the virtual mass VM using an appropriate Jacobian based on the kinematics of the manipulator. The instrument controller 28 and / or the navigation controller 36 may receive inputs (e.g., signals) from the force / torque sensor. In some versions, the external forces are expressed in a force / torque coordinate system F Tto another coordinate system, such as a VM coordinate system. In such a method, the method may include sensing an amount of current supplied to each of a plurality of actuators, estimating an amount of an external force applied between the blade support and the hand grip based on an output of the one or more current sensors, and calculating a constraint force adapted to move the virtual saw blade toward a target pose based on the amount of the estimated external force.
[0190] In an alternative embodiment, the external force can be considered as the amount of external force applied to the tool support and handpiece. The estimated amount of external force can be a force or a torque. The estimated force or torque can be calculated in one or more degrees of freedom. Referring to FIG. 54, in such an embodiment, the control system can control the display screen to display an indicator 300 based on the amount of estimated external force applied. The indicator 300 can indicate that excessive "resistance" of the tool may be occurring, which may indicate a blade-to-tool registration error. Exemplary blade registration techniques are described in PCT application PCT / US2021 / 064328, which is incorporated herein by reference in its entirety.
[0191] Alternatively, the control system 60 can be configured to control the drive motor M based on the amount of the estimated external force applied. For example, the control system 60 can slow down or disable the drive motor M based on the amount of the estimated external force applied.
[0192] The control system 60 can control the indicator 300 or the drive motor M based on the amount of the applied estimated external force and the force threshold. For example, the control system 60 can control the indicator 300 or the drive motor M when the amount of the applied estimated external force exceeds a force / torque threshold in one or more degrees of freedom.
[0193] Additionally, the control system 60 can control the indicator 300 and / or the drive motor M based on the estimated amount of applied force, the force threshold, and the error counter. The error counter is configured to trip any time the estimated amount of force exceeds the threshold for more than a minimum time interval. When the error counter exceeds a given number, such as an error counter threshold, such as three instances, the control system 60 can control the indicator 300 and / or the drive motor M to inform the user that an excessive amount of blade drag is occurring.
[0194] Alternatively, the control system may control the indicator 300 and / or the drive motor M based on the estimated amount of force and a time threshold, such as 5 or 10 seconds. More specifically, the control system 60 may be configured to control the indicator 300 and / or the drive motor M when the estimated amount of external force exceeds a force threshold in one or more degrees of freedom for longer than a time threshold, such as longer than 5 or 10 seconds.
[0195] The control system 60 may utilize different force thresholds, error counter thresholds, and / or time thresholds for each degree of freedom, such as a different threshold for the pitch degree of freedom, a different threshold for the elevation degree of freedom, and / or a different threshold for the roll degree of freedom.
[0196] The indicator 300 may be a visual, tactile, or audible indicator and may be generated by a speaker, a display screen, a light, a vibration motor, etc. The indicator may be mounted on the instrument 14 or located elsewhere, such as part of the navigation system 32 or the console 33. The indicator 300 may take the form of a display screen or an icon on an application associated with the user interface UI of the control system 60.
[0197] In an example where the indicator 300 is a display screen or an icon, the control system 60 can be configured to control a user interface to prompt a user to check the tool-to-instrument registration based on the applied external force. In another example, the control system 60 can control the user interface UI to initiate a tool-to-instrument registration workflow based on the amount of estimated applied external force.
[0198] As described above, the estimated amount of external force may be estimated by using at least one of a force sensor, a torque sensor, and / or a current sensor configured to detect an amount of current applied to each of the multiple actuators.
[0199] (operation) The control of the instrument 14 takes into account the latest position and / or orientation of the anatomical structures (e.g., femur F or tibia T) and the instrument 14, which are transmitted from the navigation controller 36 to the instrument controller 28 through a data connection. Using these data, the instrument controller 28 determines the pose (i.e., position and / or orientation) of the target plane or target trajectory and / or virtual boundary 184 in the desired coordinate system. The relative pose of the tool 20 (e.g., TCP) with respect to the target plane and / or virtual boundary 184 is also calculated. The instrument controller 28 updates the navigation system 32 (including the display 38) with the position and / or orientation of the tool 20 with respect to the anatomical structures to which the tool 20 is to be applied. An indication of the position of the target plane and / or virtual boundary 184 may also be presented.
[0200] The relative position of the tool 20 with respect to the target plane and / or virtual boundary 184 is evaluated by the tool controller 28 to determine whether an action needs to be taken, i.e., to move the tool 20, change the speed (such as the vibration speed) of the tool 20, stop the operation of the tool 20, etc. Command data packets are transmitted from, for example, the tool controller 28 to the motor controllers. These command data packets include command positions (or target positions of the actuators) for the rotors 148 of the motors 142, where each command position may be a positive or negative number representing a target accumulated encoder count for the associated rotor 148, or other representation of the actuator position. The tool controller 28 generates and transmits these command data packets to each motor controller at a rate of one packet every 0.05 milliseconds to one packet every 4 milliseconds. In some examples, each motor controller receives a command data packet at least once every 0.125 milliseconds. The tool controller 28 may also selectively adjust the cutting speed of the tool 14 based on the relative position of the tool 20 with respect to one or more of the virtual boundaries 184. For example, the drive motor M, which controls the vibration of the tool 20 and the corresponding cuts, may be disabled by the instrument controller 28 whenever the tool 20 is in an undesirable relationship to the virtual boundary 184, such as, for example, when the tool 20 is out of the target plane by an amount that exceeds a threshold, when the tool 20 penetrates the virtual boundary 184 by more than a threshold, etc. It is also contemplated that the control system 60 may control the drive motor M based on whether the optical tracking system maintains line of sight to the tool tracker 52 and / or the patient tracker 54, 56. For example, the control system 60 may stop the drive motor M if line of sight is lost for a predetermined amount of time.
[0201] During use, in one potential embodiment, the control system 60 determines the pose (current pose) of the tool 20 using the navigation system 32, with the tool tracker 52 located on the tool support 18. The instrument controller 28 may also determine the current position of each of the actuators 21, 22, 23 based on the output encoder signals from one or more encoders disposed on each of the actuators 21, 22, 23. Once the current positions of each of the actuators 21, 22, 23 are received, the instrument controller 28 may use forward kinematics to calculate the current pose (TCP) of the tool relative to the hand-carrying section 16 (BCS). The localizer data may be used to determine the relative pose between the patient trackers 54, 56 and the tool tracker 52. The aforementioned poses, along with additional calibration and registration data, may be combined to calculate the pose of the hand-carrying section 16 relative to a desired coordinate system, such as the patient tracker coordinate system (e.g., the current pose of the base coordinate system BCS).
[0202] In some examples, the current pose of the hand-held part is determined using the navigation system 32 by a tracker 53 located on the hand-held part 16. The pose of the BCS relative to the desired coordinate system (e.g., patient tracker) may be determined directly using the localization data along with additional calibration and registration data. In one example, the instrument includes two trackers on the instrument 14, a hand-held tracker 53 on the hand-held part 16 and a tool tracker 52 located on the tool support 18, as shown in FIG. 24. The navigation system 32 determines the pose of the BCS relative to the desired coordinate system (e.g., patient tracker) from the tracker 52 on the hand-held part 16 and the positions of the trackers 54, 56 on the desired coordinate system (e.g., patient anatomy).
[0203] Once the tool controller 28 has obtained the pose of the hand-held part 16 in the desired coordinate system, the tool controller 28 may control the actuators 21, 22, 23. In an embodiment, the tool controller 28 may determine a commanded pose of the tool 20 based on the current pose of the hand-held part 16 and based on the position and / or orientation of the planned virtual object of interest as the target plane. The tool calculates a pose of the TCP with respect to the BCS (commanded pose) that results in the TCP being on the desired plane or aligned with the planned virtual object. This commanded pose may be calculated, optionally, using virtual constraints (guiding constraints, joint centering constraints, joint limit constraints, workspace constraints). The tool controller 28 may use inverse kinematics to convert the commanded pose to a commanded position for each of the actuators 21, 22, 23 and then send a command command to the actuators 21, 22, 23 to move to the commanded position, thereby changing the pose of the tool support 18 and the tool 20 with respect to the hand-held part.
[0204] As seen in Figures 17A-17E, the control system determines the instrument movement and energization of the drive motor M based on certain conditions and parameters. Starting with Figure 17D, one or more trackers 54, 56 are placed on the patient's anatomy (e.g., femur, tibia) and one or more trackers 52 are placed on the instrument 14. The localizer 44 captures the position of each tracker 52, 54, 56 and processes the position information into a common coordinate system (Figure 17B). Data is then passed from the localizer 44 to the clinical application 190 and the constraint generator 384.
[0205] The clinical application 190 is used to calculate the registration and planning transformations used by the control system to command the tools. In Figure 17A, the clinical application receives pose information of the device tracker 52 and the patient trackers 54, 56 from the localizer 44. The clinical application 190 may also use the localizer data associated with the pointer tracker PT, the device tracker 52 and the patient trackers 54, 56 to calculate device command transformations based on handpiece settings and registration, bone registration, implant planning, and bone preparation.
[0206] Within the clinical application 190, the tool tracker 52 and pointer tracker PT information are processed with the handpiece settings and registration information to generate a tool tracker to TCP (tool tracker-TCP) transformation. This may be calculated by combining the results of two registration steps: 1) registration of the tool support 18 to the tool tracker 52, and 2) registration of the tool support 18 to the tool (TCP). The resulting tool tracker-TCP transformation (i.e., the instrument registration result) is forwarded to the constraint generator 384. The position information from the localizer 44 is used to calculate a bone-to-patient tracker transformation with the bone registration data, and is inverted to yield a patient tracker-bone transformation, relating the patient tracker position to the bone. Using one or more of the user interfaces UI, the user may adjust the size and position of the desired implant with respect to the on-screen bone model to enable the clinical application to generate the bone-to-implant transformation based on the bone position relative to the planned position and / or orientation of the implant. Based on the known geometry and size of the selected implant, the clinical application looks for a transformation of the planned pose of the implant to the desired one or more target cutting planes TP, implant-target plane transformation, or the desired one or more target trajectories. A virtual boundary may be calculated based on the selected implant. The patient tracker-bone transformation and the bone-to-implant transformation (B-IM) are combined to result in a patient tracker 54, 56 to implant pose transformation (patient tracker-IM), which is the combined result of bone registration and implant planning, and is forwarded to the constraint generator 384. The IM-to-TP transformation may be used to generate guide constraints, and the boundary may be used to generate boundary constraints (if used) using the boundary generator. The boundary information may also be sent to the drive command handler 192.
[0207] To finally determine the hand-held to localizer transformation, three transformations are utilized: a) the hand-held to TCP transformation, the forward kinematics result received from the motion controller 188; b) the tool support to TCP transformation, the tool registration result received from the clinical application 190; and c) the tool tracker to localizer transformation received from the localizer 44. The localizer to patient tracker transformation may also be received from the localizer 44. The hand-held to patient tracker transformation may then be calculated based on a) the hand-held to localizer transformation, and b) the localizer to patient tracker transformation. It should be understood that the tool tracker coordinate system and the tool support coordinate system may be used interchangeably with each other since the pose of the tool support may be fixed relative to the TCP using a known calibrated and / or registered transformation.
[0208] As mentioned above, the constraint generator 384 receives position data of the patient trackers 54, 56 and device trackers from the localizers, registration and planning transformations from the clinical application 190, and additional data inputs from the behavior controller 186 and the motion controller 188, including the motion constraint handler 390 (described further below), to calculate the guide constraints and / or any boundary constraints. The constraint generator 384 processes the received data to create a set of constraints to be solved to calculate a command pose for the tool 20. As mentioned above, the guide constraints are virtual constraints that are defined to result in virtual forces and torques that are utilized in a virtual simulation to move the tool 20 to a target state. Once the constraint generator 384 has determined the set of active constraints to be solved, the information is forwarded to the behavior controller 186.
[0209] The behavior controller 186 calculates data indicative of a next commanded position and / or orientation (e.g., pose) for the tool 20. In some examples, the behavior controller 186 calculates the next commanded pose based on solving a set of constraints and running a virtual simulation. An output from a motion constraint handler 390 of the motion controller 188 may be provided as an input to the behavior controller 186 to determine the next commanded position and / or orientation for the tool 20. As seen in FIG. 17B, the behavior controller 186 processes various virtual constraints to determine the commanded pose. The constraint solver 189 takes in constraints generated by the motion constraint handler 390 of the motion controller 188, such as joint limit constraints and joint centering constraints, as well as workspace constraints and kinematic motion constraints. The constraint solver 189 also takes in constraints from the constraint generator 384, such as boundary constraints from the guide constraints and boundary handler 385. The constraint solver 189 is further subject to inertial and damping forces, which are processed by the behavior controller 186 and added back to the constraint solver 189. These constraints are applied to the constraint solver 189, which generates constraint forces that are summed with all virtual forces, such as inertial and damping forces, and optionally external forces. The summed virtual forces are then processed using virtual forward dynamics. The pose and velocity output from the virtual forward dynamics are then sent to calculate the inertial and damping forces in the behavior controller 186, and are also forwarded to the motion controller 188 as commanded pose and velocity commands for the tool support (hand-held to TCP). The commanded pose (hand-held to TCP) is also sent back to the constraint generator 384 for use in generating the constraints.
[0210] The motion controller 188 controls the motion of the tool support 18, specifically the TCP coordinate system. The motion controller 188 receives data defining the next command pose from the behavior controller 186. Based on this data, the motion controller 188 determines the next position of each of the actuators (e.g. via inverse kinematics and Jacobian calculator) so that the tool support can assume a pose relative to the handpiece as commanded by the behavior controller 186, e.g. at a command pose. In other words, the motion controller 188 processes a command pose of the tool support relative to the handpiece, which may be defined in Cartesian coordinates, into command joint positions of the multiple actuators 21, 22, 23, so that the tool controller 28 can command the actuators accordingly. In one version, the motion controller 188 continuously adjusts the torque output by each actuator 21, 22, 23 to adjust the position of the tool support relative to the handpiece and ensure as much as possible that the actuators 21, 22, 23 move the tool support 18 relative to the handpiece 16 so that the command pose can be reached.
[0211] Once the hand-held part-TCP relationships enter the motion constraint handler 390 of the motion controller 188, they are used to calculate the workspace constraints and the kinematic motion constraints. These constraints are calculated using the relationships between the hand-held part and the TCP in the Cartesian coordinate system of the command pose. Once the workspace constraints and the kinematic motion constraints have been calculated, the data from the motion constraint handler 390 is passed back to the behavior controller 186 and forwarded to the constraint solver 384.
[0212] Data from the handpiece to the TCP is also transformed using an inverse kinematics calculation. After an inverse kinematics correction is performed resulting in a set of command joint positions, this data is further processed to calculate joint limit constraints and joint centering constraints. These constraints are calculated in joint space. The joint limit constraints may be calculated based on the previous command or measured joint positions of each actuator, a constraint Jacobian Jp that maps the one-dimensional joint limit constraints to a coordinate system used for the virtual simulation (e.g., between the joint motion and the virtual mass coordinate system VM), and one or more limit positions. The joint centering constraints are calculated based on the constraint Jacobian Jp that maps the one-dimensional joint centering constraints to a coordinate system used for the virtual simulation (e.g., between the joint motion and the virtual mass coordinate system VM), the previous command or measured joint positions, and the joint centering positions. Once the joint limit constraints and joint centering constraints are calculated, the data is sent back to the constraint solver 189 in the behavior controller 186.
[0213] Additionally, the inverse kinematics data transformation generates command joint positions (Joint Pos Cmd) and joint velocity commands (Joint Vel Cmd) for each of the actuators, and sends the processed data to the joint position-velocity controllers (one for each actuator) and actuation command handler 192 to be processed to determine the joint movement velocity overrides.
[0214] The motion controller 188 sends the command position of each actuator to the drive command handler 192, which may compare one or more commanded or measured positions of each actuator with respective joint thresholds to determine whether an override to the drive motor M is required (see box identified as joint position velocity override). In other words, once the control system 60 determines a command position for each actuator to move the TCP to the target pose, it may control the actuation of the drive motor M based on one or more positions of the multiple actuator tools. The position of the one or more actuators may be based on a command joint position of at least one actuator, a measured position of at least one actuator, a previous command position of at least one actuator, a previous measured position of at least one actuator, or a combination thereof. In one example, the drive motor M is controlled based on a command position of at least one of the actuators 21, 22, 23. The command joint position of at least one actuator 21, 22, 23 is compared to an actuator motor override limit value of at least one actuator 21, 22, 23. The motor override limit may be a single value or a set of values that define the outer boundaries of a range. Although monitoring of one actuator is demonstrated in this example, the control system may monitor the commanded position and actuator motor override limit of each actuator 21, 22, 23. The upper and lower limits of the actuator motor override limit may be values that correspond to the actuator's position relative to the operating range of each actuator. The upper limit may correspond to a maximum amount of movement allowed in a first direction before the drive motor parameter is adjusted, and the lower limit may correspond to a maximum amount of movement allowed in a second opposite direction before the drive motor parameter is adjusted. More specifically, the control system 60 controls the motor parameter of the drive motor M with a first value and a second value based on whether the commanded joint position maintains the actuator position between the upper and lower limits of the motor override limit.The control system 60 may control one or more motor parameters of the drive motor M, which may be speed, torque, actuation time, current, or a combination thereof. In one example, the motor parameter controlled by the control system 60 is a motor speed, with a first value being zero (the drive motor M is off) and a second value being greater than zero (the drive motor M is on). The control system 60 switches the motor parameter between a first value and a second value based on the commanded positions of the actuators 21, 22, 23. When the commanded positions of the actuators 21, 22, 23 place the actuators within the upper and lower motor override limits, the control system 60 may command a second value of the drive motor parameter to allow the drive motor M to be actuated and / or continue to be energized. If the commanded actuator position is between the lower and upper motor override limits, the override of the joint velocity command is not changed.
[0215] In some examples, the drive motor override may be implemented as a look-up table or function that is evaluated based on the received actuator position (P) data. In an example of a joint position velocity override, this causes the velocity of the drive motor to be proportionally reduced as the joint position approaches its motor override limit. In some examples, there may be no change when the actuator position is within the lower and upper motor override limits. In other examples, the drive motor M velocity may be proportionally reduced when one or more of the actuators 21, 22, 23 are in a position between the 80% travel range and the 95% travel range, or may be completely disabled above 95%, thereby providing continuous and gradual feedback to the user that the tool 20 is approaching an operating limit (lower and upper motor override thresholds). In such an embodiment, there may be multiple lower motor override thresholds and multiple upper motor override thresholds, each corresponding to a motor parameter (such as motor speed). In some cases, the drive motor M speed may not be reduced completely to zero, but rather to a certain low speed, which may alert the surgeon, but allow the surgeon discretion as to whether to proceed. If the commanded position of the actuators 21, 22, 23 causes the actuators to be outside the upper and lower motor override limits, the control system 60 may command a first value of the drive motor parameter to prevent the drive motor M from operating and / or continuing to be energized. The motor override limits for each actuator may be different from the joint thresholds for each actuator discussed above. For example, the motor override limits may define a narrower range than the range defined as the joint thresholds, and the range of the motor override limits may be entirely within the range of the joint thresholds.
[0216] The joint position and velocity controller 194 processes the data from the motion controller 188 and is used to process the commanded joint position command (Joint Pos Cmd) and the joint velocity command (Joint Vel Cmd) to determine the joint torque command (Joint Torque Cmd) for each of the actuators. The calculation of the joint torque command may be done through a closed loop control algorithm such as PID control. The joint torque command is sent to the surgical instrument where each of the current controllers corresponding to each actuator interprets the joint torque command into a current. The current controller then selectively applies the voltage required to drive the commanded current to each actuator motor, causing each actuator to move the tool support towards the commanded position. The applied torque (or current) may move and accelerate each of the actuators in the corresponding direction. The amount and speed at which the actuators move / accelerate may depend on mechanical loads, friction, other external factors, or a combination of these. By monitoring each of the actuator position feedback over time, the commanded torque (current) is adjusted by the position-velocity controller to closely track the commanded position of each actuator. As the actuator motors adjust the tool support, each motor encoder collects rotational and / or position data for each rotor and sends the joint position data back to the current controller, which then processes each actuator's joint position data into joint velocity measurements (Joint Vel Meas) and joint position measurements (Joint Pos Meas) and sends the joint velocity measurement data and the joint position measurement data through the joint position-velocity controller to the motion controller 188. The motion controller 188 then transforms each actuator's joint position and velocity measurement data using forward kinematics to generate the pose and velocity relationship between the TCP and the handpiece 16. The handpiece-TCP relationship is then sent to the constraint generator 384, which can use this data to generate various virtual constraints.
[0217] In addition, and referring to FIG. 31, the joint velocity and joint position measurements may be used in a PID control loop. For example, the PID loop may calculate an error between a command position of the joint and a measured position of the joint, which may be used with the PID loop to control the command velocity of the joint. The command velocity of the joint may be compared to the measured velocity of the joint to determine an error. The error may be used in the PID loop to control a command current. The command current may be compared to a measured current to determine an error. The error may be used in the PID loop to output a command joint voltage.
[0218] The drive command handler 192 is the part of the control system that calculates and determines certain parameters for controlling the drive motor M (FIG. 17C). The drive command handler 192 receives input command signals from one or more input devices to operate the drive motor M. One example of an input device is a trigger on the handheld portion of the instrument, as seen in FIG. 17E. Another example, also shown in FIG. 17E, is a foot switch. In another example, the drive command handler has a trigger source select that can be used to multiplex between multiple user input devices (such as buttons, triggers, and foot switches). In some examples, the trigger source select evaluates trigger source changes only when both input devices are inactive, and evaluates which input device becomes active first. The selected input device may then determine the percentage of active triggers. In other examples, potentially one input device may have a higher priority than the other. When one or more of the input devices are actuated, a command signal is sent to the actuation command handler 192, which analyzes the rate at which the input device is actuated (e.g., how far a trigger is depressed by the user), the actuation command handler 192 analyzes the command rate at the maximum allowable speed output from the bone preparation portion of the clinical application, and modifies the command signal according to the received data.
[0219] The drive command handler 192 may also utilize results from collision detection performed in the constraint generator 384 or other components of the control system. In the illustrated configuration, the constraint generator 384 compares the position and / or orientation of the tool to the boundaries. Specifically, as described above, collision detection determines whether the tool violates the boundaries by more than a threshold amount. The collision detection step further processes this position information to determine a boundary velocity override signal. As described above, any number of suitable boundaries may be used for this collision detection step, such as a distal boundary or a lateral boundary. The boundary may also be implemented as a distance between the tool and a reference position on the bone. Based on this comparison, the instrument controller 28 may modify motor parameters that may be used to slow or stop the drive motor M.
[0220] In this example, a separate global inside / outside check using techniques such as ray casting or voxel lookup determines whether the tool 20 is completely beyond the boundary. It should be understood that the drive motor control for the boundary may use the penetration depth calculated above to determine whether any part of the blade penetrates more than a threshold for when the tool is in contact with the boundary. In an example where the tool 20 is modeled using discrete geometric primitives (e.g., spheres), the inside / outside check would evaluate whether any of these spheres are located beyond the boundary. Once the control system 60 evaluates whether the tool 20 is beyond the boundary, constraints may be generated and the tool support pose updated in a manner that prevents the tool from violating the boundary. However, the boundary may be violated if the user continues to move the tool beyond the boundary after a joint limit is reached, if the handpiece 16 is moved too quickly, if a bone moves too quickly, or if the tool 20 advances beyond the boundary in an uncontrolled degree of freedom. In this example, the global inside / outside check fails and the drive motor M may be turned off or modified as described above.
[0221] In addition to the boundary velocity override and joint position velocity override functions, the command signal is sent to determine if an error handling override condition is met (if the command is within the expected range for normal processing). If the error handling condition is also met, then a drive velocity command is sent from the drive command handler 192 to the drive velocity controller.
[0222] It should be understood that the boundary velocity override (controls the driver motor velocity based on the boundary), the joint position velocity override (controls the driver motor velocity based on the actuator position), and the error processing override may all be active at the same time, each providing a partial override. For example, the boundary velocity override may reduce the velocity by 10%, i.e., multiply the input by 0.9, and then the next block may reduce the velocity by another 20%, i.e., multiply its (already reduced) input by 0.8, in which case the resulting output velocity is 0.9 x 0.8 = 0.72 times the original requested velocity command. In other words, the override scaling factor (gain from input to output) applied by each block is independent of what the other override blocks have determined. In addition to this (cascaded multiplication) approach, there are other possible ways to combine multiple override sources, such as using only the most restrictive override.
[0223] The drive speed controller processes the drive speed command signal and determines a drive torque command which is sent to a current controller in the handpiece. The current controller converts the drive torque command into a command current and selectively applies the voltage required to drive the command current to the drive motor M to operate (e.g., cut) the tool. The drive motor encoder monitors the operation of the drive motor and sends an encoder signal related to the operation of the drive motor back through the current controller in the instrument. The current controller converts the encoder data into a drive speed measurement and sends the converted feedback data to the drive speed controller.
[0224] As shown in FIGS. 17A-17C, two inputs to the constraint generator 384 include the current state (localizer data, kinematic data) and the goal state (cutting plane for the localizer tracker). The constraint generator 384 takes the goal state for the tool 20 and generates one or more guide constraints based on the goal state and the current state of the handpiece. The current state may be defined based on the previous commanded pose CP since the previous commanded pose CP is relative to the current pose of the tool 20. The goal state may be defined in an anatomical coordinate system, or an anatomical tracker coordinate system, or the like, and transformed to a common coordinate system with the current state. Other inputs to the constraint generator 384 include configuration and tuning parameters for the guide constraints. The constraint generator 384 defines one or more guide constraints based on the relationship between the current state and the goal state, and the configuration and tuning parameters. The guide constraints are output from the constraint generator 384 to the constraint solver 189.
[0225] Various virtual constraints may be provided to the constraint solver 189, including, but not limited to, guide constraints, joint limit constraints, joint centering constraints, kinematic motion constraints, boundary constraints, and other inputs such as external sensed forces. These constraints may be turned on / off by the control system 60. For example, in some cases, neither joint centering constraints nor boundary constraints may be generated. Similarly, in some instances and in certain operating modes, guide constraints may not be generated. All of the virtual constraints utilized in the behavior control 186 may affect the motion of the tool 20.
[0226] The constraint solver 189 calculates constraint forces Fc to be virtually applied to the tool 20 in the virtual simulator 388 based on the virtual constraints provided to the constraint solver 189. If guide constraints are active, the constraint forces Fc include force and / or torque components adapted to move the tool 20 from a current state towards a goal state based on one or more virtual constraints. If only guide constraints are input to the constraint solver 189, the constraint forces Fc are considered to be virtual forces calculated to satisfy the guide constraints. However, if other constraints such as boundary constraints, joint centering constraints, and / or joint limit constraints are utilized, the constraint solver 189 is ultimately tasked with providing a solution for the constraint forces Fc that satisfies all constraints as far as possible based on their respective tuning parameters, although the other constraints may also affect the magnitude / direction of the constraint forces Fc.
[0227] As described below, to solve for Fp, the equations shown in Figure 26 are converted into a matrix equation where each row represents a single one-dimensional constraint. The constraint data is placed into the constraint equations along with other information known to the constraint solver 189, such as the external force Fcgext, the damping force Fdamping (if applied), the inertial force Finertial, the virtual mass matrix M, the virtual mass velocity Vcg1, and the time step Δt (e.g., 125 microseconds). The result, Fp, is a force vector expressed in constraint space, where each component of Fp is a scalar constraint force or torque acting along or about the constraint direction corresponding to that row of the constraint equations.
[0228] The virtual mass matrix M is a combination of a 3×3 mass matrix and an inertia matrix. The damping force Fdamping and the inertial force Finertial are calculated by the virtual simulator 388 based on the virtual mass velocity Vcg1 (e.g., the velocity of the virtual mass coordinate system VM) output by the virtual simulator 388 in the previous time step. The virtual mass velocity Vcg1 is a six-degree-of-freedom velocity vector including linear and angular velocity components. The damping force Fdamping is a six-degree-of-freedom force / torque vector calculated as a function of the virtual mass velocity Vcg1 and a damping coefficient matrix (the linear and rotational coefficients may not be equal). Damping is applied to the virtual mass to improve stability. The inertial force Finertial is also a six-degree-of-freedom force / torque vector calculated as a function of the virtual mass velocity Vcg1 and the virtual mass matrix M. The damping force Fdamping and the inertial force Finertial may be determined in a manner described in U.S. Pat. No. 9,566,122 to Bowling et al., which is incorporated herein by reference.
[0229] The constraint solver 189 may be configured with any suitable algorithmic instructions for solving the simultaneous constraint equations (e.g., an iterative constraint solver, a Projected Gauss-Seidel solver, etc.) to provide a solution that satisfies the simultaneous equations (e.g., satisfies the various constraints). In some cases, not all constraints may be satisfied simultaneously. For example, if the motion is over-constrained by the various constraints, the constraint solver 189 will essentially find an "optimal" solution given the relative stiffness / damping of the various constraints. The constraint solver 189 solves the simultaneous equations and ultimately outputs the constraint forces Fc.
[0230] If a projected Gauss-Seidel solver is utilized, the constraint solver 189 constructs the A and b matrices based on the constraints, solves the simultaneous equations using the projected Gauss-Seidel method to obtain the resulting force vector Fp, and takes the output of the projected Gauss-Seidel method and transforms it from the constraint space to the virtual mass frame VM using an aggregate constraint Jacobian Jp for the complete set of constraints. For example, using the equation Fc=Jp·T·Fp, where Fc is the constraint force, the aggregate action of the components of Fp is transformed into a force / torque vector Fc that is applied to the virtual mass frame VM.
[0231] The use of the projected Gauss-Seidel method for solving systems of equations with multiple constraints is shown, for example, in "Constraint based physics solver" (v1.02) by Marijn Tamis and Giuseppe Maggiore, dated June 15, 2015, found at http: / / www.mft-spirit.nl / files / MTamis_ConstraintBasedPhysicsSolver.pdf, or in "Comparison between Projected Gauss-Seidel and Sequential Impulse Solvers for Real-Time Physics Simulations" (v1.01) by Marijn Tamis, dated July 1, 2015, found at http: / / www.mft-spirit.nl / files / MTamis_PGS_SI_Comparison.pdf, both of which are incorporated herein by reference in their entirety.
[0232] The projected Gauss-Seidel method addresses the Linear Complementarity Problem (LCP). The inequality associated with LCP arises because some constraint types (e.g., one-sided constraints such as boundary constraints, joint limit constraints, and workspace limit constraints) can only push (apply force) in one direction, e.g., positive constraint forces. If the force calculated for such a constraint is negative (or, more broadly, outside its tolerance range) for a given iteration of the constraint solver 189 and is invalid, the given constraint needs to be truncated (or alternately limited / capped at its upper or lower tolerance value) and the remaining constraints solved until a suitable result (i.e., convergence) is found. In this way, the constraint solver 189 determines the active set of constraints for a given time step and solves for that value. Other constraint types can apply forces in both positive and negative directions, e.g., two-sided constraints. Such constraints include guide constraints, joint centering constraints, and kinematic motion constraints. Such two-sided constraints, when enabled, are normally active and are not truncated / limited during the iterations of the constraint solver 189 .
[0233] The constraint forces Fc calculated by the constraint solver 189 include three components of force along the x-, y-, and z-axes of the VM coordinate system, and three components of torque about the x-, y-, and z-axes of the VM coordinate system. The virtual simulator 388 utilizes the constraint forces Fc in its virtual simulation, along with the external forces Fcgext (if used), the damping forces Fdamping, and the inertial forces Finertial (which may all include six components of force / torque). In some cases, these components of force / torque are first transformed to a common coordinate system (e.g., the virtual mass coordinate system VM) and then summed to define a total force FT. The resulting six degrees of freedom forces (i.e., forces and torques) are applied to the virtual rigid body, and the resulting motion is calculated by the virtual simulator 388. The virtual simulator 388 thus functions to effectively simulate how various constraints, among others (e.g., external forces), affect the motion of the virtual rigid body. The virtual simulator 388 performs forward dynamics to calculate the resulting six-degree-of-freedom attitude and velocity of the virtual body based on a given total force F applied to the virtual body. In one example, the virtual simulator 388 includes a physics engine, which is executable software stored in non-transitory memory of any one or more of the aforementioned controllers 28, 36 and implemented by the control system 60.
[0234] For the virtual simulation, the virtual simulator 388 models the tool 20 as a virtual rigid body in a virtual mass coordinate system VM, with the origin of the virtual mass coordinate system VM located at the center of mass of the virtual rigid body and the coordinate axes aligned with the principal axes of the virtual rigid body. The virtual rigid body is a dynamic object and is a rigid representation of the tool 20 for the purpose of the virtual simulation. The virtual rigid body is free to move according to six degrees of freedom (6-DOF) in Cartesian space according to the virtual simulation. The virtual simulation may be computationally processed without a visual or graphical representation. Thus, it is not required that the virtual simulation display the dynamics of the virtual rigid body. In other words, the virtual rigid body does not need to be modeled in a graphics application running on the processing unit. The virtual rigid body may exist only for the virtual simulation.
[0235] The virtual rigid body and its properties (mass, inertia matrix, center of mass, principal axes, etc.) are modeled using applied forces and torques (e.g., a total force F T ) from the virtual rigid body. This governs how the tool 20 moves (e.g., accelerates in translation and rotation) in response to current conditions. By adjusting the properties of the virtual rigid body, the control system 60 can adjust how the tool 20 reacts. For as realistic a motion as possible, it may be desirable for the properties of the virtual rigid body to be modeled reasonably close to the actual properties of the tool 20, although this is not essential. For control stability reasons (taking into account finite acceleration of the actuator assembly, control latency, etc.), the virtual mass and inertia may be modeled to be somewhat higher than those of the instrument.
[0236] The virtual rigid body may correspond to a component that may be on or in the tool 20. Additionally or alternatively, the virtual rigid body may extend partially beyond the physical tool 20. The virtual rigid body may take into account the tool 20 with or without the tool support 18. Furthermore, the virtual rigid body may be TCP-based. In one example, the center of mass of the virtual rigid body is understood as the point around which the virtual rigid body would rotate if a virtual force were applied to another point of the virtual rigid body and the virtual rigid body is not otherwise constrained. The center of mass of the virtual rigid body may be close to, but not necessarily the same as, the actual center of mass of the tool 20. The center of mass of the virtual rigid body may be empirically determined. Once the tool 20 is attached to the tool support 18, the location of the center of mass may be reconfigured to suit the preferences of the individual practitioner. In some instances where external forces are not used in the virtual simulation, the exact numerical properties and units of the virtual mass (e.g., center of mass location, mass, inertia matrix) are somewhat arbitrary, since in such cases the virtual simulation does not interact with physical forces measured from the real world. In such cases, for computational simplicity, it may be desirable to simply place the virtual mass on the TCP, set the mass to 1, and set the inertia matrix to an identity matrix. Although other options are possible, more realistic properties for the virtual rigid body may be set, if desired, to allow for tuning of the constraints in physically reasonable units. In any case, the constraint tuning parameters should take into account the properties selected for the virtual mass.
[0237] The virtual simulator 388 virtually applies forces and / or torques to the virtual rigid body in the virtual simulation, i.e., a total force F at the center of mass of the virtual rigid body in the virtual mass coordinate system VM. T By virtually applying the force and torque components from the external force F, the rigid body dynamics of the tool 20 are effectively simulated. Thus, the virtually applied force / torque to the virtual rigid body is expressed as cgext (which may be based, for example, on input from one or more sensors), the damping force F damping , inertia force Finertial , and / or (constraint force F c Constraining forces F related to various constraints (due to being embodied in c may include forces / torques related to the forces / torques from
[0238] The Jacobian of a rigid body can be used to transform velocities and forces from one coordinate system (reference frame) to another on the same virtual rigid body, F ext To convert the forces and torques of the virtual mass coordinate system VM (e.g., F used in the constraint equations), cgext ) may be utilized herein. And the virtual simulator 388 may be utilized to derive the damping force F damping and inertial force F inertial internally and for use by the constraint solver 189 in that system of equations at the next time step. damping and inertial force F inertial If used, F ext may also be fed to the constraint solver. These forces may then be summed and input along with the constraint forces to obtain a sum calculation.
[0239] Total force F T To simulate the motion of the virtual rigid body as it moves under the application of force F, a virtual forward dynamics algorithm, as shown in Figures 26 and 27, may be utilized in the virtual simulation. In effect, the virtual forward dynamics algorithm solves the equation F=ma (or a=F / m) in six degrees of freedom, integrates the acceleration to derive the velocity, which is then integrated again to determine the new pose, as shown in more detail in Figure 27. The control system 60 applies virtual forces and / or torques (e.g., a total force F T) into the virtual simulator 388, and these virtual forces and / or torques are applied to the virtual rigid body at its center of mass (e.g., CG) in the virtual simulation 388 when the virtual rigid body is in an initial pose with an initial velocity. The virtual rigid body is moved to a final pose with a final velocity having a different state (i.e., position and / or orientation) in Cartesian space in response to the control system 60 satisfying the input virtual forces and / or torques. The next commanded pose CP to be sent to the instrument controller 28 is based on the final pose calculated by the virtual simulator 388. Thus, the virtual simulator 388 applies a total force F to the virtual rigid body using virtual forward dynamics, as shown in FIG. T It operates to determine the next commanded attitude CP by simulating the effect of adding
[0240] It should be noted that although the virtual simulation is performed with six degrees of freedom, the actuator assembly may be controllable with fewer than six degrees of freedom, such as three degrees of freedom. In such situations, kinematic motion constraints may be used to constrain the uncontrolled degrees of freedom so that the simulation can be performed meaningfully (i.e., to keep the VM coordinate system aligned to the physical tool).
[0241] A speed limit may be imposed on the virtual rigid body in the simulation. In some cases, the speed limit may be set high so as not to generally affect the simulation, or may be set to any desired value. In some cases, the speed limit may be implemented by non-linearly calculating a damping force to be applied to the virtual rigid body, where the amount of damping increases significantly above a threshold speed. The virtual rigid body is in an initial pose (initial state) and has an initial velocity at the start of each iteration (e.g., each time step / interval dt) of the virtual simulation. The initial pose and initial velocity may be defined as the final pose and final velocity output by the virtual simulator 388 at the previous time step.
[0242] Virtual simulator 388 then calculates and outputs the next commanded pose CP based on the virtual simulation. In this embodiment, control system 60 is configured to command tool support 18 to move tool 20 based on the commanded pose CP, which ideally causes movement of tool 20 in a manner that guides tool 20 to the target state and in accordance with other virtual constraints.
[0243] 28 summarizes the various steps performed by the motion controller 186. These include steps performed by the constraint solver 189 and the virtual simulator 388 as described above. In step 350, an external force F ext is (optionally) calculated based on readings obtained from the force / torque sensor S or alternative sensing methods. In step 352, constraint data relating to the various virtual constraints is provided to a constraint solver 189.
[0244] In steps 354 to 358, rigid body calculation is performed by the virtual simulator 388 to obtain the inverse mass matrix M of the virtual rigid body. -1 , inertia force F inertial , and damping force F damping In steps 360-364, the constraint solver 189 performs the constraint force calculation described above, utilizing the output from the rigid body calculation performed in steps 354-358 and the constraint data provided in step 352, ultimately determining the constraint force F c In step 366, the constraint force F c is the external force F transformed into the virtual mass coordinate system VM. ext (F cgext ), damping force F damping , and the inertial force F inertial and the total force F T In step 368, the total force F Tare applied to the virtual body in the virtual simulation performed by the virtual simulator 388 to determine the new pose and velocity of the virtual body in step 370, and finally convert the new pose and velocity to TCP in step 372. TCP ) is output by the virtual simulator 388 in step 374.
[0245] (applied on knee) 29A-29D show the application of the guide. In this example, the control system 60 activates the guide constraints and virtual constraints to place the TCP of the tool 20 in the target pose. The localizer LCLZ detects the tool tracker 52 and the patient tracker 54. The localizer LCLZ monitors the position of the instrument 14 relative to the target anatomy. The clinical application uses the implant plan to determine the target cutting plane TP relative to the patient tracker 54 and provides it to the control system. When a particular cut is selected, position information related to the position of the instrument 14 and the patient anatomy is received from the localizer LCLZ. The control system 60 further uses the positions of the device tracker and the patient tracker and the encoder data of the joint positions of each actuator 21, 22, 23 to determine the pose of the base coordinate system BCS of the hand part 16 relative to the patient tracker 54. The control system 60 determines a set of virtual constraints that will move the tool support 18 and the saw blade 20, 380 towards the target pose. In this example, the control system will attempt to position the saw blade 20, 380 at the target pose TP while balancing multiple virtual forces to keep the actuators 21, 22, 23 within their operating limits. The control system 60 generates several guide constraints based on the position data. The guide constraints are used in three degrees of freedom to guide the tool support 18 towards the target state, namely a position constraint along the z-axis of the target coordinate system TF to guide the origin of the guided coordinate system GF to the origin of the target coordinate system TF, and two orientation constraints about the x-axis and y-axis of the target coordinate system TF to guide the z-axis of the guided coordinate system GF to align with the z-axis of the target coordinate system TF. In addition, joint limit constraints, typically with much greater stiffness than the guide constraints, are calculated to ensure that the actuators 21, 22, 23 are not commanded to positions outside their travel limits.
[0246] In some cases, only one, two, three, four or more guide constraints may be used. Also, more than six guide constraints may be used, such as when more than one guide constraint is defined for any degree of freedom. The progression from FIG. 29A to FIG. 29D shows, for purposes of illustration, how the guided coordinate system GF is aligned with the target coordinate system TF in three degrees of freedom. In the progression from FIG. 29A to FIG. 29D, the TCP of the tool 20 is shown moving towards the goal state (in this case towards the origin of the target coordinate system TF). At each time step, the constraint force F c is calculated, effectively guiding the tool support 18 to apply forces and torques that ideally move the saw blade 380 towards the goal state, taking into account guide constraints, joint limit constraints, workspace constraints, joint centering constraints, kinematic motion constraints, or a combination thereof. In one example, when the TCP is in this position, only the guide constraints and the joint limit constraints are active. The virtual constraints may be dynamic, with their tuning parameters adjusted at each time step. For example, some of the virtual constraints may have stronger spring and / or damping characteristics and other virtual constraints may have weaker spring and / or damping characteristics as the current state approaches the goal state (e.g., the guided coordinate system GF approaches the target coordinate system TF). In one example, the guide constraints have stronger spring and / or damping characteristics as the current state approaches the goal state. Thus, the constraint force F c The force and / or torque components (which may have stronger spring and / or damping characteristics) may increase in magnitude as the guided frame GF approaches the target frame TF.
[0247] In one example, the control system determines a target pose of the saw blade 380 in at least one degree of freedom relative to a known coordinate system, such as the patient's anatomy. The control system 60 also determines a pose of the hand-held portion 16 in the same coordinate system, i.e., relative to the patient's anatomy. The control system 60 then processes position information of the saw blade 380 and the hand-held portion 16 to calculate one or more guide constraints based on the target pose of the saw blade 380 and the pose of the hand-held portion 16. Once the one or more guide constraints are generated, constraint forces are calculated by the control system 60 and adapted to move the virtual saw blade in the virtual simulation. The virtual simulation simulates the dynamics of the virtual saw blade based on the constraint forces and calculates a command pose based on the virtual simulation. The command pose is output from the virtual simulation and used to determine command joint positions of each of the actuators 21, 22, 23. The control system 60 transmits command joint position signals to each of the actuators 21, 22, 23 to energize the actuators 21, 22, 23 to move the tool support 18 and the saw blade 380 to the target orientation.
[0248] 18-20 show another example of a guide used in positioning the tool 20 (e.g., with a saw blade 380) in a target state. In this example, the control system 60 activates guides and associated guide constraints to assist the user in positioning the TCP of the tool 20 in a target pose with at least one degree of freedom relative to a desired cutting plane 73c for a total knee replacement, including positioning the TCP in a target orientation and elevation that aligns the tool 20 with the desired cutting plane 73c. In this case, the origin of the target coordinate system TF is offset from the desired cutting plane 73c by at least half the blade thickness to account for the blade thickness. At least one guide constraint is calculated and utilized in at least one degree of freedom to move the tool support 18 toward the target pose. In one example, three guide constraints are utilized in three degrees of freedom to move the saw blade to the target state, i.e., one position constraint along the z-axis of the target coordinate system TF and two orientation constraints about the x- and y-axes of the target coordinate system TF.
[0249] At each time step, the constraint force F c is calculated to effectively guide the tool support 18 to apply forces and torques that ideally move the saw blade 380 towards the goal state, taking into account active virtual constraints (e.g., guide constraints, joint limit constraints, joint centering constraints, kinematic motion constraints, and / or workspace constraints). The virtual constraints may be dynamic, with their adjustment parameters adjusted at each time step. With reference to FIG. 20, for example, the guide constraints may have greater stiffness the closer the current state is to the goal state (e.g., the closer the guided coordinate system GF is to the target coordinate system TF in the x-axis direction (see x-distance)). Thus, with reference to FIG. 20, the stiffness associated with the adjustment parameters for the guide constraints may increase in magnitude as the x-distance decreases.
[0250] Alignment of the tool 20 to the desired cutting planes assists the user in making precise cuts along the femur and / or tibia, for example, to make room for a total knee implant. Referring again to FIG. 13, guide constraints may be used to align the tool 20 to each of five target cutting planes 73A-73E that may be required for the femur. The guide constraints may similarly remain active during the cutting process such that the blade is maintained at the target state.
[0251] The guide constraint calculations can also be used to control the tool drive motor M. Such an implementation can reduce the computational burden on the control system 60 since the control system 60 has already calculated the guide constraints for purposes of determining commanded joint positions for each of the multiple actuators 21, 22, 23. As described above, the guide constraints include at least one guide constraint direction and at least one guide constraint error measured along each guide constraint direction. The control system 60 can control the tool drive motor M based on the guide constraint directions and the guide constraint errors.
[0252] As discussed above, each guide constraint has a direction defined along or about an x-axis, y-axis, or z-axis of the target coordinate system. The control system 60 may utilize fewer than six guide constraints to control the tool drive motor M. For example, the control system 60 may use exactly two or only three guide constraints to control the tool drive motor M. This may include one guide constraint for a translational degree of freedom, such as elevation, and two guide constraints for orientation degrees of freedom, such as pitch and roll.
[0253] The control system 60 can control the tool drive motor M using the guide constraint error in a selected degree of freedom, referred to above as the constraint distance Δd, where Δd is how close the guide frame GF is to the target frame TF along or around the applicable constraint direction defined by TF, and indicates whether the constraint is violated.
[0254] Control system 60 may control drive motor M based on guide constraint error thresholds in addition to guide constraint errors. Control system 60 may utilize different guide constraint error thresholds for each degree of freedom, such as a guide constraint error threshold for the elevation degree of freedom that is different from the guide constraint error thresholds for the pitch and / or roll degrees of freedom. This may represent a greater tolerance for deviations from the target plane TP and / or axes in the various degrees of freedom.
[0255] The guide constraint error threshold may be expressed as a tolerance range of values. In some examples, the tolerance range may be -0.5 to 0.5 (translation guide constraint error threshold) or -5 to 5 (orientation guide constraint error threshold). In some implementations, the error range is asymmetric, e.g., asymmetric about a median value of 0. For example, the translation guide constraint error threshold may be -0.3 to 0.5. This may represent a greater tolerance in one of the directions of a selected degree of freedom than in the other direction. For example, for the elevation degree of freedom, a range of -0.3 to 0.5 may represent a greater tolerance for error above the target cut plane than below the cut plane (into the bone). However, other asymmetric ranges are also contemplated.
[0256] The control system 60 can vary motor parameters of the drive motor M when the guide constraint error or other error values exceed a threshold or range for any selected degree of freedom, such as slowing down or stopping the drive motor M. This situation can occur when the saw blade 20 deviates from the target plane TP in one or more degrees of freedom by more than a tolerance (angle and / or distance) that exceeds a set threshold, such as a set error range.
[0257] The control system 60 may further take into account the status of the drive motor M when considering appropriate guide constraint error thresholds, such as guide constraint error ranges. For example, the control system 60 may select a first guide constraint error range when the drive motor M is in a permissive state and a second guide constraint error range when the drive motor M is in a restricted state, the first guide constraint error range being different from the second guide constraint error range. The control system 60 may ultimately control the tool drive motor M based on the selected guide constraint error thresholds and guide constraint errors. This may prevent the drive motor from cycling on and off when the error value is near the outer boundary of the error range.
[0258] Although it has been described above that the guide constraint error may be used to control the drive motor, alternative error calculations may also be used. In such a case, the control system would be configured to determine an error value between the state of the surgical tool and the target pose of the surgical tool in at least one degree of freedom, and control the tool drive motor based on the error threshold and the error value in a manner similar to that described with respect to the guide constraint-based drive motor control. Such an embodiment may be useful when the robotic system does not utilize guide constraints to control a handheld robotic system. As described above with respect to the guide constraint control of the drive motor, the control system may be configured to determine error values in multiple degrees of freedom based on the target pose of the surgical tool, such as a previously commanded pose of the surgical tool, and the pose of the surgical tool, and error thresholds for each of those degrees of freedom. The control system may slow down or stop the motor when the error value exceeds a threshold in a first degree of freedom, or the control system may slow down or stop the motor when the error value exceeds a different threshold in a second degree of freedom. Similar to the guide constraint error calculation, the control can utilize the motor status in selecting an appropriate error range for controlling the drive motor based on the error between the state of the surgical tool and the target pose of the surgical tool.
[0259] This approach to controlling the drive motor can have several advantages. Primarily, this control approach provides the user with more flexibility, allowing the user to position the handpiece in more orientations / positions relative to the blade / tool platform without shutting off the drive motor, as long as the blade remains close to the plane, i.e., within an error threshold in one or more degrees of freedom. This allowed flexibility provides the user with the ability to position the handpiece in multiple ways to continue cutting despite obstacles that the user's hands may encounter, such as a patient tracker, retractor, or parts of the patient's anatomy that may get in the way. Furthermore, because the control system continues to control the multiple actuators while the saw blade is cutting, the system provides an accurate cut of the target plane. Because the bone part being cut may be relatively soft and a tool such as a saw blade may flex during the cutting process, continued control of the multiple actuators by the control system while the blade is in the cut can prevent errors from accumulating as the blade progresses through the cut due to this flexing and / or multiple minor corrections in the position and / or orientation of the blade during cartilage resection. Additionally, by continuing to control the multiple actuators to align with the target plane while the blade is cutting, the control system prevents errors when the bone portion is finally removed because the blade is no longer constrained by the presence of the bone portion that previously constrained the blade in place.
[0260] By controlling the drive motor based on the error between the target pose and the tool pose, as opposed to controlling the drive motor based on the actuator position, the control system will continue to enable cutting when one or more of the actuators reach a range of motion limit, i.e., a joint limit. More specifically, in this embodiment of the control system, the control system allows the saw drive motor to operate when the position of one or more of the actuators matches the joint limit of that actuator. This provides the ability to continue operating the drive motor even when the actuator can no longer reposition the saw blade in one or more degrees of freedom, thus allowing the instrument to continue cutting bone regardless of the position of the hand piece. However, as described above, if the blade is too far from the plane in one or more degrees of freedom, the control system will shut down. This embodiment allows the saw drive motor to operate when the position of one or more of the actuators matches the joint limit of that actuator. The allowing step may be further defined as allowing the saw drive motor to operate without considering the position of one or more of the actuators. The position of the actuator may be a measured position, a commanded position, a previously measured position, or a previously commanded position. Other control logic can be applied in combination with this control approach to control the tool drive motor, such as controlling the tool drive motor when the saw blade violates the distal boundary, controlling the tool drive motor when the tool is clear of the bone, and / or controlling the tool drive motor based on errors in one or more degrees of freedom and error thresholds.
[0261] Additionally, the virtual boundary 184 may optionally be utilized to control the operation of the drive motor M. As the drive motor M is actuated to oscillate the saw blade 380 during a cut, the actuation signal to the drive motor M may be stopped and / or altered based on the state of the saw blade 380 relative to the virtual boundary 184. The virtual boundary 184 may prevent the user from improperly cutting the patient's anatomy, and in particular may prevent the saw blade 380 from cutting a portion of the patient's anatomy (e.g., a ligament) that is not intended to be affected. Looking to FIG. 18, as the saw blade 380 is advanced along the target cutting plane, one or more motor parameters of the drive motor are controlled. In one example, the motor parameter is the speed of the drive motor (and thus the cutting speed of the saw blade 380) based on the position of the saw blade 380 relative to the virtual boundary 184. However, other motor parameters, such as torque, operating time, current, acceleration, or combinations thereof, are also contemplated. A virtual boundary, such as the one shown in FIG. 13, corresponds to a particular cut end point depending on which cut the user is trying to make to fit the implant to the patient's anatomy. In other examples, the virtual boundary 184 may be a mesh, a point, a plane, or a combination thereof, as described above. The virtual boundary may be based on the anatomy, the planned implant, image data, etc. As the saw blade 380 progresses through the patient's anatomy, the position data of the instrument 14 relative to the patient tracker, and subsequently the target plane, are updated in real time. When the saw blade 380 reaches the virtual boundary 184, the motor parameter (motor speed) may be set to 0 or reduced. When the motor parameter has a value of 0, the drive motor M is stopped to prevent the user from cutting beyond the virtual boundary 184.
[0262] In another example, the drive motor M is controlled based on the tool's attitude relative to the boundary 184 in at least one uncontrolled degree of freedom in which the actuators 21, 22, 23 cannot adjust the tool support 18. The controlled degrees of freedom are the directions of movement controlled by the actuator assemblies 400 and are based on the arrangement of the actuators 21, 22, 23. In some configurations, the arrangement of the actuator assemblies 400 may provide six controlled degrees of freedom, five controlled degrees of freedom, four controlled degrees of freedom, three controlled degrees of freedom, or at least one controlled degree of freedom. For example, the actuator assemblies 400 are arranged to control pitch (FIGS. 3A-3C), roll (FIGS. 4A-4C), and z-axis translation (elevation angle relative to the handpiece 16 (FIGS. 5A-5C)). The instrument 14 can adjust the tool support 18 and tool 20 relative to the handpiece in these directions of movement. If a degree of freedom is not controlled, the actuators 21, 22, 23 cannot be adjusted in that particular direction. For example, in some configurations, the actuators 21, 22, 23 are arranged to control pitch, roll, and z-axis translation (elevation angle relative to the handpiece 16), so the yaw of the tool support 18 cannot be adjusted. As another example, if the actuators 21, 22, 23 are arranged to control pitch, roll, and z-axis translation (elevation angle relative to the handpiece 16), linear translation along the longitudinal axis (x-translation) is an uncontrollable degree of freedom, since the actuator assembly 400 does not control translational movement along the longitudinal axis. Thus, in degrees of freedom that are not controllable by the actuator assembly, such as x-axis translation, a virtual boundary may be established to control the boundary. This may be configured as a boundary for controlling the tool depth described above. As mentioned above, the boundary for controlling the depth may be approximately perpendicular to the target plane. As such, the boundary may not be used to control the actuators, but the boundary may be used to control the drive motor.In some examples, both the uncontrolled and controlled degrees of freedom may be used as inside / outside checks to control the drive motor M. The control system 60 may use the controlled degrees of freedom as a mitigation for secondary errors, such as when the saw blade does not stay on the plane due to an error or failure. In this example, both the controlled and uncontrolled degrees of freedom, along with the boundary, control the energization of the drive motor M. Thus, the actuator assembly will not function to prevent the tool from being positioned by the user beyond this boundary, but the control system 60 will prevent the user from activating the drive motor M when the TCP indicates that the distal end of the tool is beyond the boundary. It should be understood that the virtual boundary may also be used to control the drive motor in the controlled degrees of freedom.
[0263] The control system may calculate appropriate motion parameters for moving the tool support relative to the handpiece. The motion parameters may be calculated based on the command pose. Based on the determined motion parameters, the control system may calculate appropriate signals to send to each of the multiple actuators. In one example, the control system may output a joint velocity command based on the determined motion parameters and the command position for that actuator. It should be appreciated that in some examples, the tool support moves relative to the handpiece at variable speeds. The movement of each actuator may be based on a force applied to the tool support by each of the multiple actuators.
[0264] With reference to FIGS. 30A and 30B, once the cut is established, the control system 60 may automatically adjust the value of one or more motion parameters of the tool 20 relative to the handpiece 16 using one or more virtual constraints as the user cuts the target cutting plane relative to the patient's anatomy (e.g., the bone to be cut). In one example, while approaching the cut, the guide constraint is enabled and the tool is automatically aligned to the target plane. The control system 60 keeps the guide constraint active once the tool contacts the bone and penetrates beyond the defined depth boundary, distance parameter relative to the reference position / reference coordinate system. At the moment the tool passes the specified depth, the control system 60 senses the current position of the actuator, sets the current position of the actuator as the new joint centering position, enables the joint centering constraint, and disables the guide constraint. This causes the system to enter a freehand mode with the "saw blade to handle" alignment frozen as it was when the tool first entered and advanced through the bone. The user may continue cutting, but because the guide constraints are inactive, the control system 60 will not automatically correct the alignment while the blade remains in the bone beyond the prescribed depth. Even though the instrument is frozen in a fixed position, the blade still remains approximately on the cutting plane because the slot in the bone created by the initial cut mechanically constrains the blade movement to remain in that cutting plane. When the user begins to move the blade towards the bone exit, the system will revert to a guide constraint active mode when the depth becomes less than a previously set value (e.g., the blade orientation relative to the reference position / reference coordinate system reaches a threshold). At this point, the joint centering constraint is disabled and the guide constraint is re-enabled to resume aligning the blade relative to the plane. By disabling the guide constraints and enabling the joint centering constraints, the tool prevents or reduces the likelihood of binding the blade in the bone. When a certain cutting depth is reached in hard bone, the blade is effectively constrained up and down by the slot in the bone created during the initial cutting entry.Any error in the accuracy of the blade alignment (due to inaccuracies in the calibration, chipping or diving of the blade due to alignment, etc.) would prevent the robotic system from returning the blade to the cutting surface as the top and bottom of the blade would not remove bone, and the already machined surface of the bone would prevent the blade from returning to the cutting surface. As a result, the control system would be restricted from restoring the blade alignment when penetrating deeper into the bone, requiring the user to apply increased force to complete the cut if binding occurs. Such an approach would ensure that guide constraints are enabled upon bone approach (within a threshold of the reference position / reference coordinate system) and initial cut penetration, ensuring that the initial cut penetration performed in the bone is as accurate as possible, and that this alignment would continue until a certain depth is reached that is sufficient to mechanically constrain further (deeper) movement of the blade.
[0265] In this example, the guide constraint may have a virtual force approaching zero, meaning that the guide constraint may be disconnected and / or its adjustment parameters adjusted as the saw blade is established in the cut (FIG. 30B). The articulation centering constraint that directs the rotor 148 toward a center point on the lead screw of each actuator 21, 22, 23 may also be disconnected and / or the centering position may be reset to the current position of the actuators 21, 22, 23 once a defined cutting depth is reached while the saw blade 380 cuts into the patient's anatomy (FIG. 30B). The control system 60 may automatically vary the adjustment rate of the actuators 21, 22, 23 based on distan...
Claims
1. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting a surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion for moving the tool support in a plurality of degrees of freedom relative to the hand-held portion to position the surgical tool; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: Determining a state of the surgical tool in a known coordinate system; determining a position and / or orientation of a reference coordinate system relative to the known coordinate system; activating a guide mode based on a first relationship criterion between the state of the surgical tool and the reference coordinate system; deactivating the guide mode based on a second relationship criterion between the state of the surgical tool and the reference coordinate system. It is configured as follows: the first relationship criterion and the second relationship criterion are different; Handheld medical robotic system.
2. The handheld medical robotic system of claim 1 , wherein the guide mode is defined as a mode operable to control the plurality of actuators to align the surgical tool with a virtual object.
3. The handheld medical robotic system of claim 2 , wherein the guide mode includes activation of a guide constraint configured to control the plurality of actuators to align the surgical tool with the virtual object.
4. The control system includes: a constraint solver that calculates constraint forces adapted to move the virtual surgical tool towards a target pose based on the guide constraints; a virtual simulator for simulating dynamics of the virtual surgical tool in a virtual simulation based on the constraint forces and outputting a command pose; 4. The handheld medical robotic system of claim 3, further comprising: a control system configured to control each of the actuators based on the command pose.
5. The handheld medical robot system of any one of claims 1 to 4, wherein the reference coordinate system coincides with the known coordinate system.
6. 6. The handheld medical robot system of claim 1, wherein the first relationship criterion is based on a first virtual object and the second relationship criterion is based on a second virtual object, the first virtual object and the second virtual object are different, and poses of the first virtual object and the second virtual object are defined in the reference coordinate system.
7. 7. The handheld medical robotic system of claim 6, wherein the first virtual object is smaller than the second virtual object, and the first virtual object and the second virtual object each define a volumetric region.
8. 8. The handheld medical robotic system of claim 7, wherein the first relationship criterion is based on the pose of the surgical tool and based on the first virtual object, and the second relationship criterion is based on the pose of the surgical tool and based on the second virtual object.
9. The handheld medical robotic system of any one of claims 1 to 8, wherein the first relationship criterion is based on determining a first distance parameter based on the state of the surgical tool and the reference coordinate system, and the second relationship criterion is based on determining a second distance parameter based on the state of the surgical tool and the reference coordinate system, and the first distance parameter is different from the second distance parameter.
10. The handheld medical robot system of any one of claims 6 to 8, wherein the first virtual object is based on a mesh.
11. The handheld medical robotic system of any one of claims 1 to 10, wherein the reference coordinate system is defined relative to a patient tracker.
12. The handheld medical robotic system of any one of claims 1 to 11, wherein the reference coordinate system is based on a target pose of the surgical tool.
13. The handheld medical robotic system of any one of claims 1 to 12, wherein the state of the tool is a posture of the tool.
14. 14. The handheld medical robotic system of claim 1, wherein the control system is further configured to control each of the plurality of actuators to return the instrument to a home state based on a third relationship criterion between the state of the surgical tool and the reference coordinate system.
15. The handheld medical robotic system of claim 14 , wherein the control system determines the third relationship criterion based on whether the guided mode is activated.
16. The handheld medical robotic system of any one of claims 1 to 15, wherein the surgical tool is a saw blade.
17. The handheld medical robotic system of any one of claims 1 to 16, wherein the instrument weighs less than 6 pounds.
18. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising: a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion for moving the tool support in a plurality of degrees of freedom relative to the hand-held portion to align the surgical tool; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target orientation of the surgical tool and an orientation of one of the surgical tool, the handpiece, and the tool support in a known coordinate system; controlling each of the plurality of actuators based on the target orientation of the surgical tool and an orientation of one of the surgical tool, the handpiece, and the tool support; Determine the motor status, selecting one of a first drive motor control criterion and a second drive motor control criterion based on the motor status, the first drive motor control criterion including an actuator position or a joint angle of at least one actuator or joint of the actuator assembly, and the second drive motor control criterion being boundary based; Controlling the tool drive motor based on the selected drive motor control criteria The handheld medical robotic system is configured to:
19. 20. The handheld medical robotic system of claim 18, wherein the control system is configured to select the first drive motor control criterion when the motor status is in a limit state, in which the tool drive motor is limited from operating.
20. 20. The handheld medical robotic system of claim 19, wherein the control system is configured to select the second drive motor control criterion when the motor status is in a permissive state, in which the tool drive motor is permitted to operate.
21. The handheld medical robot system of any one of claims 18 to 20, wherein the first drive motor control criterion includes an actuator position or joint angle and an actuator or joint threshold.
22. 22. The handheld medical robotic system of claim 18, wherein the control system is configured to determine a transition of the motor status, and the control system is configured to select one of the first drive motor control criterion and the second drive motor control criterion based on the transition.
23. The handheld medical robotic system of any one of claims 18 to 21, wherein the second control motor criterion is based on the boundary and the pose of the surgical tool.
24. 24. The handheld medical robotic system of claim 20, wherein when the second drive motor control criterion is selected, the control system is configured to transition the tool drive motor from the allowed state to the restricted state based on the boundary and the pose of the surgical tool.
25. The handheld medical robotic system of any one of claims 18 to 24, wherein the boundary is based on a planned pose of an implant.
26. 26. The handheld medical robotic system of claim 25, wherein the target pose of the tool is based on the planned pose of the implant.
27. The handheld medical robotic system of any one of claims 24 to 26, wherein the first drive motor control criterion is based on an actuator position or joint angle of at least one actuator or joint of the actuator assembly and a first actuator or joint threshold, and the control system is configured to control the tool drive motor based on the actuator position or joint angle of the at least one actuator or joint of the actuator assembly and the first actuator threshold.
28. 28. The handheld medical robotic system of claim 27, wherein the first actuator or joint threshold is further defined as a range of values.
29. 29. The handheld medical robotic system of claim 27 or 28, wherein the first actuator or joint threshold is a first actuator threshold, and the control system is configured to control the tool drive motor based on the actuator position and the first actuator threshold.
30. The handheld medical robot system of any one of claims 27 to 29, wherein the control system configured to control the drive motor is further configured to transition the drive motor to the permissible state based on a threshold value of the first actuator or joint and an angle value of the actuator position or joint when the motor status is in the restricted state.
31. The handheld medical robotic system of any one of claims 27 to 30, wherein the control system configured to control the drive motor is further configured to transition the drive motor to the permissible state when the motor status is in the restricted state and the actuator position or joint angle value is within a threshold range of the first actuator or joint.
32. The handheld medical robotic system of any one of claims 27 to 31, wherein the instrument weighs less than 6 pounds.
33. The handheld medical robotic system of any one of claims 27 to 32, wherein the surgical tool is a saw blade.
34. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support coupled to the hand-held portion with a tool drive motor for driving movement of the surgical tool; and an actuator assembly operatively interconnecting the tool support and the hand-held portion and including a plurality of actuators for moving the tool support to move the surgical tool in a plurality of controlled degrees of freedom relative to the hand-held portion to position the surgical tool in a desired orientation, the actuator assembly being unable to reposition the surgical tool in at least one uncontrolled degree of freedom; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: determining a state of the surgical tool and a target pose of the surgical tool in a known coordinate system; controlling the plurality of actuators to position the surgical tool in the plurality of controlled degrees of freedom based on the state of the tool and the target pose of the surgical tool; determining a motor status of the tool drive motor; selecting a boundary based on the motor status; controlling the tool drive motor based on the state of the surgical tool in the at least one uncontrolled degree of freedom and based on the selected boundary. The handheld medical robotic system is configured to:
35. 35. The handheld medical robotic system of claim 34, wherein the motor status is selected from a permissive state and a restricted state, in which the tool drive motor is permitted to operate and in which the tool drive motor is restricted from operating, the boundary being further characterized as a first boundary, the control system configured to select from the first boundary and a second boundary, the control system configured to select the second boundary when the tool drive motor is in the restricted state and the control system configured to select the first boundary when the tool drive motor is in the permissive state.
36. 36. The handheld medical robotic system of claim 35, wherein the control system is configured to control the tool drive motor by stopping the tool drive motor based on the state of the surgical tool in the at least one uncontrolled degree of freedom and based on the selected boundary.
37. The handheld medical robotic system of any one of claims 34 to 36, wherein the instrument weighs less than 6 pounds.
38. The handheld medical robotic system of any one of claims 34 to 37, wherein the surgical tool is a saw blade.
39. 39. The handheld medical robotic system of claim 35, wherein the first boundary is defined by a first virtual object and the second boundary is defined by a second virtual object, the first virtual object and the second virtual object being different.
40. 40. The handheld medical robotic system of claim 39, wherein the first virtual object is a first plane, the second virtual object is a second plane, and the first plane is parallel to the second plane.
41. 41. The handheld medical robotic system of claim 40, wherein the control system is configured to control the tool drive motor by transitioning the tool drive motor from the allowed state to the restricted state based on the state of the tool and the first virtual object, and the control system is configured to control the tool drive motor by transitioning the tool drive motor from the restricted state based on the state of the tool and the second virtual object.
42. The handheld medical robotic system of any one of claims 35 to 41, wherein the first boundary is based on a planned pose of an implant.
43. 43. The handheld medical robotic system of claim 42, wherein the target pose of the tool is based on a planned pose of the implant.
44. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support coupled to the hand-held portion with a tool drive motor for driving movement of the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and for moving the tool support to move the surgical tool in a plurality of controlled degrees of freedom relative to the hand-held portion to position the surgical tool in a desired orientation, the actuator assembly being unable to reposition the surgical tool in at least one uncontrolled degree of freedom; A localizer; a control system coupled to the plurality of actuators and the localizer; and Equipped with The control system includes: determining a state of the surgical tool and a target pose of the surgical tool in a known coordinate system; controlling the plurality of actuators to position the surgical tool in the plurality of controlled degrees of freedom based on the state of the surgical tool and the target pose of the surgical tool; determining a motor status of the tool drive motor; Selecting a distance parameter for the motor status; controlling the tool drive motor based on the state of the surgical tool in the at least one uncontrolled degree of freedom and the selected distance parameter. The handheld medical robotic system is configured to:
45. 45. The handheld medical robotic system of claim 44, wherein the motor status is selected from a permissive state and a restricted state, in which the tool drive motor is permitted to operate and in which the tool drive motor is restricted from operating, the distance parameter is characterized as a first distance parameter, the control system is configured to select the first distance parameter when the tool drive motor is in the permissive state and the control system is configured to select a second distance parameter when the tool drive motor is in the restricted state, and the first distance parameter and the second distance parameter are different.
46. 46. The handheld medical robotic system of claim 45, wherein the control system is configured to control the tool drive motor by stopping the tool drive motor based on the state of the surgical tool in the at least one uncontrolled degree of freedom and based on the selected distance parameter.
47. The handheld medical robotic system of any one of claims 44 to 46, wherein the instrument weighs less than 6 pounds.
48. The handheld medical robotic system of any one of claims 44 to 47, wherein the surgical tool is a saw blade.
49. The handheld medical robotic system of any one of claims 45 to 48, wherein the first distance parameter is based on a planned pose of an implant.
50. 50. The handheld medical robotic system of claim 49, wherein the target pose of the tool is based on the planned pose of the implant.
51. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user, a tool support coupled to the hand-held portion with a tool drive motor for driving movement of the surgical tool, and an actuator assembly operatively interconnecting the tool support and the hand-held portion and including a plurality of actuators for moving the tool support to move the surgical tool with a plurality of degrees of freedom relative to the hand-held portion to position the surgical tool in a desired orientation; a first tracker coupled to the tool; a second tracker coupled to the patient; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: determining a pose of one of the surgical tool, the handpiece, and the tool support based on the first tracker, and determining a pose of a portion of a patient's anatomy based on the second tracker; controlling the plurality of actuators to position the surgical tool based on the orientation of one of the surgical tool, the handpiece, and the tool support and the orientation of the portion of the patient's anatomy; determining that a blocking event has occurred for one of the first tracker and the second tracker; Controlling the tool drive motor based on the interruption event The handheld medical robotic system is configured to:
52. 52. The handheld medical robotic system of claim 51, wherein the control system is configured to control the tool drive motor such that the tool drive motor is placed in a limiting state in which operation of the tool drive motor is restricted.
53. 53. The handheld medical robotic system of claim 52, wherein the control system is configured to control the tool drive motor such that the tool drive motor is placed in a permissible state in which the tool drive motor is permitted to operate.
54. 54. The handheld medical robotic system of claim 53, wherein the control system is further configured to select a first time period or a second time period based on a motor status, and to control the tool drive motor based on the block event and based on the selected one of the first time period and the second time period.
55. 55. The handheld medical robotic system of claim 54, wherein the control system is configured to select the first time period when the motor status is in the permissive state and to select the second time period when the motor status is in the restricted state, the first time period being different from the second time period.
56. 56. The handheld medical robotic system of claim 55, wherein the first tracker and the second tracker include optical tracking elements.
57. 57. The handheld medical robotic system of claim 55 or 56, wherein the first period of time is longer than the second period of time.
58. 58. The handheld medical robotic system of claim 55, wherein the control system is configured to transition the tool drive motor from the permissive state to the restricted state when the interruption event has a duration that exceeds the first period of time.
59. 59. The handheld medical robotic system of any one of claims 55 to 58, wherein the control system is configured to transition the tool drive motor from the restricted state to the permissive state in the absence of an interruption event for a duration exceeding the second period of time.
60. The handheld medical robotic system of any one of claims 56 to 59, wherein the optical tracking element is an LED.
61. The handheld medical robotic system of any one of claims 51 to 60, wherein the instrument weighs less than 6 pounds.
62. The handheld medical robotic system of any one of claims 51 to 61, wherein the surgical tool is a saw blade.
63. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user, a tool support coupled to the hand-held portion with a tool drive motor for driving movement of the surgical tool, and an actuator assembly operatively interconnecting the tool support and the hand-held portion and including a plurality of actuators for moving the tool support to move the surgical tool with a plurality of degrees of freedom relative to the hand-held portion to position the surgical tool in a desired orientation; a first tracker coupled to the instrument; a second tracker coupled to the patient; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: determining a pose of one of the surgical tool, the handpiece, and the tool support based on the first tracker and determining a pose of a portion of a patient's anatomy based on the second tracker in a known coordinate system; controlling the plurality of actuators to position the surgical tool based on the orientation of one of the surgical tool, the handpiece, and the tool support and the orientation of the portion of the patient's anatomy; Determine the motor status, determining a tracking status of at least one of the first tracker and the second tracker; selecting one of a first drive motor control criterion and a second drive motor control criterion based on the motor status and the tracking status, the first drive motor control criterion comprising a first time period and the second drive motor control criterion comprising a second time period, the first time period being different from the second time period; Controlling the tool drive motor based on the selected drive motor control criteria. The handheld medical robotic system is configured to:
64. 64. The handheld medical robotic system of claim 63, wherein the control system is configured to select the first drive motor control criterion when the motor status is in a permissive state, the tracking status is blocked for at least one of the first tracker and the second tracker, and in the permissive state, the tool drive motor is permitted to operate.
65. 65. The handheld medical robotic system of claim 64, wherein the control system is configured to select the second drive motor control criterion when the motor status is in a limit state and the tracking status is not blocked for both the first tracker and the second tracker, and in the limit state the tool drive motor is limited from operating.
66. The handheld medical robotic system of any one of claims 63 to 65, wherein the first period of time is shorter than the second period of time.
67. 66. The handheld medical robotic system of claim 65, wherein the control system is configured to control the tool drive motor based on the duration that the tracking status has been interrupted and the first time period.
68. 68. The handheld medical robotic system of claim 67, wherein the control system is configured to set the tool drive motor to a limited state when the duration that the tracking status is interrupted exceeds the first period.
69. 69. The handheld medical robotic system of any one of claims 65 to 68, wherein the control system is configured to control the tool drive motor based on the duration the tracking status is uninterrupted and the second time period.
70. 70. The handheld medical robotic system of claim 69, wherein the control system is configured to set the tool drive motor to a permissive state when the duration that the tracking status is uninterrupted exceeds the second period of time.
71. The handheld medical robotic system of any one of claims 63 to 70, wherein the instrument weighs less than 6 pounds.
72. The handheld medical robotic system of any one of claims 63 to 70, wherein the surgical tool is a saw blade.
73. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and for moving the tool support relative to the hand-held portion in a plurality of degrees of freedom; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: determining a position of one of the surgical tool, the handpiece, and the tool support, and a target position of the surgical tool; controlling the plurality of actuators to position the surgical tool based on a posture of one of the surgical tool, the handpiece, and the tool support and the target posture of the surgical tool; receiving an input signal indicating a desire to move the plurality of actuators to a home state of the appliance; determining an initial state of the instrument based on the input signal; Controlling the system based on the initial state of the instrument The handheld medical robotic system is configured to:
74. 74. The handheld medical robotic system of claim 73, wherein the control system is configured to provide an indication to the user based on the initial state.
75. 75. The handheld medical robotic system of claim 74, wherein the indication is a tactile alert, a visual alert, or an audio alert.
76. The handheld medical robotic system of any one of claims 73 to 75, wherein the control system is configured to control the tool drive motor based on the initial state of the instrument.
77. The handheld medical robotic system of any one of claims 73 to 76, wherein the control system is configured to control the system based on the initial state and a first virtual object.
78. 78. The handheld medical robotic system of claim 77, wherein the control system is configured to determine a distance based on an orientation of one of the surgical tool, the handpiece, and the tool support, and to control the system based on the initial state and the distance.
79. The handheld medical robotic system of any one of claims 73 to 78, wherein the control system is configured to control the system based on the initial state of the instrument and based on determining a degree of alignment of the tool support relative to the hand-held portion based on the initial state and the home state of the instrument.
80. 80. The handheld medical robotic system of claim 79, wherein the degree of alignment is calculated by determining a position of at least one actuator of the plurality of actuators in the initial state of the instrument and a position of the at least one actuator corresponding to the home state.
81. 81. The handheld medical robotic system of claim 79 or 80, wherein the degree of alignment is calculated based on a posture of the surgical tool, the tool support, or the hand-held portion while the instrument is in the initial state and a posture of the surgical tool, the tool support, or the hand-held portion while the instrument is in the home state.
82. The handheld medical robotic system of any one of claims 79 to 81, wherein the control system is configured to provide an indication to the user based on the degree of alignment.
83. 83. The handheld medical robotic system of claim 82, wherein the indication is a tactile alert, a visual alert, or an audio alert.
84. The handheld medical robotic system of any one of claims 79 to 83, wherein the control system is configured to control the tool drive motor based on the input signal and the degree of alignment.
85. 85. The handheld medical robotic system of any one of claims 79 to 84, wherein the control system is configured to set the tool drive motor to a limited state based on the degree of alignment and an alignment threshold at the time the control system receives the input signal.
86. 86. The handheld medical robotic system of claim 85, wherein the control system is configured to set the tool drive motor to the limiting state if the degree of alignment at the time the control system receives the input signal exceeds the alignment threshold.
87. The handheld medical robotic system of any one of claims 73 to 86, wherein the home state of the instrument is defined by each of the actuators being in an intermediate position.
88. The handheld medical robotic system of any one of claims 73 to 87, wherein the home state of the instrument is defined by each of the actuators being at a position between 40% and 60% of their range of motion.
89. The handheld medical robotic system of any one of claims 79 to 88, wherein the control system is configured to control the system based on the degree of alignment and the virtual object.
90. 90. The handheld medical robotic system of claim 89, wherein the control system is configured to determine a distance based on a posture of the surgical tool, the handpiece, or the tool support, and control the system based on the distance.
91. The handheld medical robotic system of any one of claims 79 to 90, wherein the initial state of the instrument is calculated based on a commanded or measured pose of the tool support or the hand-held part.
92. The handheld medical robotic system of any one of claims 79 to 90, wherein the instrument weighs less than 6 pounds.
93. The handheld medical robotic system of any one of claims 79 to 92, wherein the surgical tool is a saw blade.
94. 1. A handheld medical robotic system for use with a surgical tool, the handheld medical robotic system comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and for moving the tool support with respect to the hand-held portion in a plurality of degrees of freedom; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target pose of the surgical tool in a known coordinate system; determining a position of one of the surgical tool, the handpiece, and the tool support in the known coordinate system; generating a guide constraint based on the target pose of the surgical tool, the pose of the handpiece or tool support, and a guide constraint adjustment parameter, the guide constraint adjustment parameter having a first value; generating a joint centering constraint based on a position of at least one actuator of the plurality of actuators, a centering position of at least one actuator of the plurality of actuators, and a joint centering adjustment parameter, the joint centering adjustment parameter having a second value; determining commanded joint positions for each of the plurality of actuators based on the guide constraints while the system is operating in a guided mode; determining a commanded joint position based on the joint centering constraint when transitioning from the guided mode to the non-guided mode; wherein the value of the joint centering adjustment parameter is different from the value of the guide constraint adjustment parameter.
95. 95. The handheld medical robotic system of claim 94, wherein the joint centering adjustment parameters affect the stiffness or damping of the joint centering constraints.
96. 96. The handheld medical robotic system of claim 94 or 95, wherein the target pose of the surgical tool is defined by a position in a first degree of freedom, a first angle, and a second angle in the known coordinate system.
97. The handheld medical robotic system of any one of claims 94 to 96, wherein the surgical tool is a saw blade.
98. The handheld medical robotic system of any one of claims 94 to 97, wherein the instrument weighs less than 6 pounds.
99. Further comprising an input device, The handheld medical robotic system of any one of claims 94 to 98, wherein the control system is configured to transition from the guided mode to the non-guided mode based on receipt of an input signal provided by the input device.
100. Further comprising an input device, The handheld medical robotic system of any one of claims 94 to 99, wherein the control system is configured to transition from the non-guided mode to the guided mode based on receipt of an input signal provided by the input device.
101. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and for moving the tool support relative to the hand-held portion in a plurality of degrees of freedom; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: configured to determine a pose of one of the surgical tool, the handpiece, and the tool support, and a target pose of the surgical tool, in a known coordinate system; In a guide mode, the control system controls the plurality of actuators to position the surgical tool based on a posture of one of the surgical tool, the handpiece, and the tool support and the target posture of the surgical tool; receiving an input signal to transition between the guided mode and a non-guided mode in which the device is in a home state; responsive to receiving the input signal, determining a velocity based on the target orientation of the surgical tool and an orientation of the surgical tool, the handpiece, or the tool support; controlling the plurality of actuators to move at a first velocity based on the velocity and a first velocity threshold during a first time period; Controlling the plurality of actuators to move at a second velocity based on the velocity and a second velocity threshold during a second time period. It is structured as follows: the first speed threshold is greater than or less than the second speed threshold; Handheld medical robotic system.
102. 102. The handheld medical robotic system of claim 101, wherein the velocity is a commanded velocity or a measured velocity.
103. 103. The handheld medical robotic system of claim 101 or 102, wherein the instrument weighs less than 6 pounds.
104. The handheld medical robotic system of any one of claims 101 to 103, wherein the surgical tool is a saw blade.
105. The handheld medical robotic system of any one of claims 101 to 104, wherein the first velocity and the second velocity are defined relative to a Cartesian coordinate reference frame.
106. The handheld medical robotic system of any one of claims 101 to 105, wherein the first and second speed thresholds are obtained based on a speed limit function that is a function of acceleration of the surgical tool.
107. The handheld medical robotic system of any one of claims 101 to 106, wherein the second speed threshold provides a force that prevents the handheld portion of the instrument from moving suddenly in a user's hand.
108. 1. A handheld medical robotic system for use with a surgical tool, comprising: a hand-held instrument comprising a hand-held portion to be held by a user, a blade support movably coupled to the hand-held portion for supporting the surgical tool, the blade support including a saw drive motor, and an actuator assembly operatively interconnecting the blade support and the hand-held portion, the actuator assembly including a plurality of actuators; A localizer; Control system and It is equipped with The control system includes: Determining a target orientation of the saw blade in a known coordinate system; Determining a state of the saw blade in the known coordinate system; determining values of adjustment parameters based on receiving an input signal to transition between a non-guided mode in which the instrument is in a home state and a guided mode in which the plurality of actuators are controlled to align the saw blade based on guide constraints; generating the guide constraints based on the target pose of the saw blade and the pose of the hand piece or the tool support and based on the values of the adjustment parameters; calculating constraint forces adapted to move a virtual saw blade based on the guide constraints; Simulating dynamics of the virtual saw blade in a virtual simulation based on the constraint forces, and outputting a command pose based on the virtual simulation; Each of the actuators is controlled based on the command attitude. The handheld medical robotic system is configured to:
109. 109. The system of claim 108, wherein the value of the tuning parameter is defined by a function of time.
110. 110. The system of claim 109, wherein the function is initiated based on receipt of the input signal that transitions between the non-guided mode and the guided mode.
111. 111. The system of claim 109 or 110, wherein the function is defined such that the value of the tuning parameter varies over time.
112. 112. The system of claim 111, wherein the function causes the tool support to move slower at a first time than at a second time, the second time being after the first time, and the first time being after receipt of the input signal.
113. The system of any one of claims 108 to 112, wherein the instrument weighs less than 6 pounds.
114. The system of any one of claims 108 to 113, wherein the surgical tool is a saw blade.
115. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting a surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion for moving the tool support with a plurality of degrees of freedom relative to the hand-held portion to position the surgical tool; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a state of the surgical tool; determining a position and / or orientation of the patient; activating a guide mode based on a first relationship criterion between the state of the surgical tool and the state of the patient or patient anatomy; Deactivating a guide mode based on a second relationship criterion between the state of the surgical tool and the patient. It is configured as follows: the first relationship criterion and the second relationship criterion are different; Handheld medical robotic system.
116. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and for moving the tool support with respect to the hand-held portion in a plurality of degrees of freedom; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target pose of the surgical tool in a known coordinate system; determining a position of one of the surgical tool, the handpiece, and the tool support in the known coordinate system; generating guide constraints based on the target pose of the surgical tool and the pose of the surgical tool, the handpiece, or the tool support, the guide constraints including at least one guide constraint direction and at least one guide constraint error measured along each guide constraint direction; determining commanded joint positions for each of the plurality of actuators based on the guide constraints; Controlling the tool drive motor based on the guide constraint direction and the guide constraint error The handheld medical robotic system is configured to:
117. 117. The handheld medical robotic system of claim 116, wherein the control system is configured to generate a second guide constraint based on the target pose of the surgical tool and the pose of the hand-held portion or the tool support, the guide constraint being a first guide constraint, the guide constraint direction being a first guide constraint direction, the guide constraint error being a first guide constraint error, the first guide constraint direction being in a first degree of freedom and the second guide constraint having a second guide constraint direction in a second degree of freedom different from the first degree of freedom, and the control system is configured to control the tool drive motor based on the first guide constraint and the second guide constraint.
118. The handheld medical robotic system of claim 117, wherein the control system is configured to control the tool drive motor based on the guide constraint error and a guide constraint error threshold.
119. The handheld medical robotic system of claim 118, wherein the first guide constraint direction is within a first degree of freedom, the first degree of freedom being a translational degree of freedom or an orientation degree of freedom.
120. 120. The handheld medical robotic system of claim 119, wherein the first degree of freedom is a translational degree of freedom and the guide constraint error threshold is a translational threshold.
121. 121. The handheld medical robotic system of claim 119 or 120, wherein the control system is configured to control the tool drive motor based on the guide constraint error, and the guide constraint error threshold is an error range.
122. The handheld medical robotic system of claim 21 , wherein the error range is asymmetric about a central value of zero.
123. The handheld medical robotic system of any one of claims 120 to 122, wherein the translation threshold is further defined as a first translation threshold and a second translation threshold, and the control system is configured to select one of the first translation threshold and the second translation threshold based on the orientation of one of the surgical tool, the handheld portion, and the tool support in the known coordinate system, and the first translation threshold and the second translation threshold are different.
124. The handheld medical robotic system of any one of claims 116 to 123, wherein the control system is configured to receive a planned pose of the implant in the known coordinate system, and the target pose of the surgical tool is based on the planned pose of the implant.
125. 125. The handheld medical robotic system of claim 124, wherein the target pose of the surgical tool is defined by a position in a first degree of freedom, a first angle, and a second angle in the known coordinate system.
126. 126. The handheld medical robotic system of claim 124 or 125, wherein the surgical tool is a saw blade.
127. The handheld medical robotic system of any one of claims 116 to 126, wherein the guide constraint direction is a unit vector describing a rotation axis or a translation direction.
128. 128. The handheld medical robotic system of claim 127, wherein the guide constraint error is an angle about the rotation axis or a distance about the translation direction.
129. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a blade support including a saw drive motor and coupled to the hand-held portion for supporting a saw blade; and an actuator assembly including a plurality of actuators operatively interconnecting the blade support and the hand-held portion for moving the blade support with a plurality of degrees of freedom relative to the hand-held portion to position the saw blade; A localizer; A second instrument; and a control system coupled to the plurality of actuators, the localizer, and the saw drive motor; and It is equipped with The control system includes: receiving a planned orientation of the surgical implant; determining a plurality of target cutting planes based on the planned orientation of the surgical implant; determining a position of the second instrument; determining a boundary associated with one of the plurality of target cutting planes based on the position of the second instrument; controlling the saw drive motor based on the established boundary; Controlling the plurality of actuators to align the saw blade with one of the target cutting surfaces. The handheld medical robotic system is configured to:
130. The handheld medical robotic system of claim 129, wherein the boundary is a three-dimensional object.
131. The handheld medical robotic system of claim 130, wherein the three-dimensional object intersects one of the target cutting planes.
132. The handheld medical robotic system of any one of claims 129 to 131, wherein the second instrument is a pointer.
133. 1. A method for virtually planning a virtual boundary of a surgical instrument relative to a bone of a patient, comprising: receiving a planned orientation of a surgical implant relative to the bone in a known coordinate system; determining a plurality of target cutting planes based on the planned orientation of the surgical implant in the known coordinate system; determining the pose of the bone; positioning a pointer at a desired location relative to the bone for a cutting depth limit; determining a position of the pointer; setting a boundary associated with one of the plurality of target cutting planes based on the position of the pointer; The method comprising:
134. 134. The method of claim 133, wherein the boundary is a three-dimensional object.
135. 135. The method of claim 134, wherein the three-dimensional object intersects one of the target cutting planes.
136. 136. The method of claim 134 or 135, wherein the three-dimensional object is perpendicular to one of the target cutting planes.
137. The method of any one of claims 133 to 136, wherein the step of positioning a pointer is further defined as positioning the pointer to contact a surface of the tibia.
138. 1. A handheld medical robotic system for use with a tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion for moving the tool support in a plurality of degrees of freedom relative to the hand-held portion to align the tool; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target pose of the tool and a pose of the handpiece in a known coordinate system; Estimating the amount of an external force applied between the tool support and the handpiece; and controlling an indicator based on the amount of the estimated external force applied. It is configured as follows: The estimated amount of applied force is a force or a torque.
139. The handheld medical robotic system of claim 138, wherein the control system is configured to control the indicator based on the estimated amount of external force and a force threshold.
140. The handheld medical robotic system of claim 138 or 139, wherein the control system is configured to control the indicator based on the estimated amount of external force, a force threshold, and an error counter.
141. The handheld medical robotic system of any one of claims 138 to 140, wherein the control system is configured to control the indicator based on an amount of the external force and based on a time threshold.
142. The handheld medical robotic system of any one of claims 139 to 141, wherein the estimated amount of external force includes a first force component and a second force component, the first force component having a first direction and the second force component having a second direction, the first direction being different from the second direction, the force threshold includes a first force threshold and a second force threshold, and the control system is configured to control the indicator based on the first force component and the first force threshold, control the indicator based on the second force component and the second force threshold, or control the indicator based on the first force component, the second force component, the first force threshold, and the second force threshold.
143. The handheld medical robotic system of claim 142, wherein the first direction and the second direction are defined in the known coordinate system.
144. 144. The handheld medical robotic system of any one of claims 139 to 143, wherein the estimated amount of external force includes a first force component and a second force component, the first force component corresponds to a first actuator of the plurality of actuators and the second force component corresponds to a second actuator of the plurality of actuators, the first actuator being different from the second actuator, the force threshold includes a first force threshold and a second force threshold, and the control system is configured to control the indicator based on the first force component and the first force threshold, control the indicator based on the second force component and the second force threshold, or control the indicator based on the first force component, the second force component, the first force threshold, and the second force threshold.
145. The handheld medical robotic system of any one of claims 137 to 144, wherein the indicator is selected from a visual indicator, an audible indicator, or a tactile indicator.
146. The handheld medical robotic system of any one of claims 137 to 144, wherein the instrument includes one or more current sensors configured to detect an amount of current supplied to each of the plurality of actuators, and the control system is configured to estimate an amount of external force applied between the tool support and the hand-held portion based on an output of the one or more current sensors.
147. A handheld medical robotic system according to any one of claims 137 to 146, wherein the instrument includes one or more force or torque sensors configured to detect an amount of applied force or torque, and the control system is configured to estimate an amount of the external acting force applied between the tool support and the hand-held portion based on the output of the one or more force or torque sensors.
148. 1. A handheld medical robotic system for use with a tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support comprising a tool drive motor and a surgical tool, the tool support coupled to the hand-held portion for supporting the tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion for moving the tool support in a plurality of degrees of freedom relative to the hand-held portion to align the tool; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target pose of the tool and a pose of the handpiece in a known coordinate system; Estimating the amount of an external force applied between the tool support and the handpiece; Controlling a user interface based on the amount of the applied external force. It is configured as follows: The estimated force quantity is a force or a torque.
149. 149. The handheld medical robotic system of claim 148, wherein the control system is configured to control the user interface to prompt a user to check tool-to-instrument registration based on the amount of the estimated external force applied.
150. The handheld medical robotic system of claim 148 or 149, wherein the control system is configured to control the user interface to initiate a tool-to-instrument registration workflow based on the amount of the estimated external force to be applied.
151. 1. A handheld medical robotic system for use with a tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion for moving the tool support in a plurality of degrees of freedom relative to the hand-held portion to align the tool; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target pose of the tool and a pose of the handpiece in a known coordinate system; determining a target pose of the tool and a pose of the handpiece in a known coordinate system; Estimating the amount of an external force applied between the tool support and the handpiece; Controlling a drive motor based on the amount of applied force estimated. It is configured as follows: The estimated amount of applied force is a force or a torque.
152. 1. A handheld medical robotic system for use with a saw blade, comprising: an instrument comprising a hand-held portion to be held by a user, a blade support coupled to the hand-held portion, the blade support including a saw drive motor for driving movement of the saw blade, and an actuator assembly including a plurality of actuators operatively interconnecting the blade support and the hand-held portion and adapted to move the blade support to move the saw blade in a plurality of degrees of freedom relative to the hand-held portion to position the saw blade in a desired orientation; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: Determining a first target orientation of the saw blade in a known coordinate system; determining a position of one of the saw blade, the handpiece, and the blade support at a first time; determining a treatment status based on the first target orientation of the saw blade and the orientation of one of the saw blade, the hand piece, and the blade support at the first time; Limiting ability to select a second target position of the saw blade based on the treatment status. The handheld medical robotic system is configured to:
153. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support coupled to the hand-held portion with a tool drive motor for driving movement of the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and adapted to move the tool support to move the surgical tool in a plurality of controlled degrees of freedom relative to the hand-held portion to place the surgical tool in a desired orientation, the actuator assembly being unable to reposition the surgical tool in at least one uncontrolled degree of freedom; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: determining a state of the surgical tool and a target pose of the surgical tool in a known coordinate system; controlling the plurality of actuators to position the surgical tool in the plurality of controlled degrees of freedom based on the state of the surgical tool and the target pose of the surgical tool; determining a motor status of the tool drive motor; selecting a guide constraint error threshold for the motor status; and controlling the tool drive motor based on a guide constraint error threshold, a guide constraint direction, and a guide constraint error. The handheld medical robotic system is configured to:
154. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user, a tool support coupled to the hand-held portion with a tool drive motor for driving movement of the surgical tool, and an actuator assembly operatively interconnecting the tool support and the hand-held portion and including a plurality of actuators for moving the tool support to move the surgical tool relative to the hand-held portion to position the surgical tool in a desired orientation in one or more degrees of freedom; A localizer; a control system coupled to the plurality of actuators and the localizer; and It is equipped with The control system includes: determining a state of the surgical tool and a target pose of the surgical tool in a known coordinate system; controlling the plurality of actuators to position the surgical tool based on the state of the surgical tool and the target pose of the surgical tool; determining a motor status of the tool drive motor; determining an error value between the state of the surgical tool and the target pose of the surgical tool in at least one degree of freedom; selecting an error threshold for the at least one degree of freedom based on the motor status; Controlling the tool drive motor based on the selected error threshold and the error value The handheld medical robotic system is configured to:
155. 155. The handheld medical robotic system of claim 154, wherein the state of the tool is selected from a current position of the tool or a previously commanded position of the tool.
156. 156. The handheld medical robotic system of claim 155, wherein the error threshold is an error range, and the control system is configured to control the tool drive motor based on the selected error range and based on the error value.
157. 157. The handheld medical robotic system of claim 156, wherein the motor status is selected from a permissive state and a restricted state, in which the tool drive motor is allowed to operate and in which the tool drive motor is restricted from operating, the error threshold is further characterized as a first error range, the control system is configured to select from the first error range and a second error range, the control system configured to select the second error range when the tool drive motor is in the restricted state and the control system configured to select the first error range when the tool drive motor is in the permissive state.
158. 157. The handheld medical robotic system of claim 156, wherein the at least one degree of freedom is an elevation degree of freedom.
159. 159. The handheld medical robotic system of claim 158, wherein the at least one degree of freedom is a first degree of freedom, the error value is a first value, the control system is configured to determine a second error value in a second degree of freedom based on the target posture of the surgical tool and the posture of the surgical tool, the handheld portion, or the tool support, the second degree of freedom being different from the first degree of freedom, and the control system is configured to control the tool drive motor based on the first error value and a first error threshold and to control the tool drive motor based on the second error value and a second error threshold.
160. 1. A handheld medical robotic system for use with a surgical tool, comprising: an instrument comprising a hand-held portion to be held by a user; a tool support having a tool drive motor and coupled to the hand-held portion for supporting the surgical tool; and an actuator assembly including a plurality of actuators operatively interconnecting the tool support and the hand-held portion and for moving the tool support relative to the hand-held portion in a plurality of degrees of freedom; A localizer; a control system coupled to the plurality of actuators, the localizer, and the tool drive motor; and It is equipped with The control system includes: determining a target pose of the tool in a known coordinate system; determining a state of one of the surgical tools in the known coordinate system; controlling the plurality of actuators to position the surgical tool based on the state of the surgical tool and the target pose of the surgical tool; determining an error value between the state of the surgical tool and the target pose of the surgical tool in at least one degree of freedom; Controlling the tool drive motor based on an error threshold for the at least one degree of freedom and the error value. The handheld medical robotic system is configured to:
161. 161. The handheld medical robotic system of claim 160, wherein the control system is configured to maintain a motor status of the tool drive motor in a permissive state when a position of one or more actuators coincides with a joint of that actuator.
162. 1. A method for controlling a handheld surgical robot including a plurality of actuators, a saw drive motor, and a surgical saw blade, comprising: determining a target pose of the saw blade in a known coordinate system; determining a state of the surgical saw blade in the known coordinate system; controlling the plurality of actuators to position the surgical saw blade on a desired plane based on the state of the surgical saw blade and the target orientation of the surgical saw blade; allowing the saw drive motor to operate when a position of one or more of the plurality of actuators coincides with a joint limit of that actuator; The method comprising:
163. 163. The method of claim 162, wherein the allowing step is further defined as allowing the saw drive motor to operate without considering the position of one or more of the plurality of actuators.
164. 163. The method of claim 162, wherein the position of the actuator is a measured position, a commanded position, a previous measured position, or a previous commanded position.
165. 163. The method of claim 162, wherein the allowing step is further defined as allowing the saw drive motor to operate as long as the saw blade does not violate a distal boundary and as long as the saw blade is within bone.
166. 166. The method of claim 165, wherein the allowing step is further defined as allowing the saw drive motor to operate so long as the saw blade is near the desired plane.
167. 166. The method of claim 165, wherein the allowing step is further defined as allowing the saw drive motor so long as the saw blade is within an error threshold in one or more degrees of freedom.
168. 166. The method of claim 165, wherein the allowing step is further defined as allowing the saw drive motor so long as the saw blade is within an error threshold in each of at least three or more degrees of freedom.
Citation Information
Cited By
Robotic hand-held surgical system
US12558107B2
Robotic Hand-Held Surgical System
US20250099113A1