System and method for guiding the movement of handheld medical robotic devices
The handheld medical robot system addresses the inefficiencies of physical cutting guides and navigation system distractions by providing dynamic tool positioning, enhancing surgical precision and reducing procedure time through a control system with multiple degrees of freedom.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MAKO SURGICAL CORP
- Filing Date
- 2021-09-08
- Publication Date
- 2026-04-14
AI Technical Summary
Existing surgical procedures face challenges with physical cutting guides that require significant time for positioning and securing, and navigation systems that distract surgeons by requiring them to look away from the surgical site, while large robotic arms are cumbersome in operating rooms.
A handheld medical robot system with a tool support and actuator assembly providing multiple degrees of freedom, controlled by a control system that determines tool orientation and constraints to guide the tool to a target posture, allowing for precise surgical tool positioning without the need for fixed reference points and reducing user distraction.
The system enables efficient and precise surgical tool positioning, reducing procedure time and user distraction by allowing hands-free operation of surgical tools with dynamic control, suitable for various surgical procedures including implant placement.
Smart Images

Figure 0007846024000001 
Figure 0007846024000002 
Figure 0007846024000003
Abstract
Description
[Background technology]
[0001] When tissue is removed from a patient, a physical cutting guide is used to restrain the surgical tool. In some cases, the physical cutting guide restrains these surgical tools with the purpose of preparing the joint to receive a replacement implant. The time required to position and secure the physical cutting guide to the patient can account for a significant portion of the total time required to perform the surgical procedure.
[0002] Navigation systems (also called tracking systems) can be used to properly position and secure fixtures, and to track the position and / or orientation of surgical tools used to excise tissue from the patient. A tracking system typically employs one or more trackers associated with the tool and the tissue being excised. The user can then view a 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 way that the user has to look away from the tissue and surgical site to visualize the tool's progress. This can distract the user from focusing on the surgical site and may make it difficult for the user to position the tool in the desired manner.
[0003] Robot-assisted surgery typically relies on large robots equipped with robotic arms capable of moving with six degrees of freedom (DOF). These large robots can be difficult to handle and operate in an operating room. [Overview of the project] [Problems that the invention aims to solve]
[0004] Systems and methods are needed to address one or more of these challenges. [Means for solving the problem]
[0005] One aspect of this teaching provides a handheld medical robot system for use with a tool, the system including an apparatus. The apparatus includes a handheld portion held by a user, a tool support coupled to the handheld portion to support a tool, the tool support including a tool drive motor, and an actuator assembly having multiple actuators that operably interconnect the tool support and the handheld portion to move the tool support with multiple degrees of freedom relative to the handheld portion to position the tool on a desired plane. The system further includes a localizer and a control system coupled to the multiple actuators, the localizer, and the tool drive motor. The control system is configured to determine a target orientation of the tool, the state of the tool, and the position and / or orientation of a reference coordinate system relative to the known coordinate system in a known coordinate system. The control system is also configured to determine a first constraint state based on the relationship between the state of the tool and the reference coordinate system, and to determine a second constraint state based on the relationship between the state of the tool and the reference coordinate system, the first constraint being different from the second constraint. The control system further includes a constraint solver that calculates constraint forces adapted to move a virtual tool toward a target posture based on a first constraint state and a second constraint, a virtual simulator that simulates the dynamics of the virtual tool in a virtual simulation based on the constraint forces and outputs a command posture, and the control system is further configured to control each of the actuators based on the command posture.
[0006] In some embodiments, the control system of a handheld medical robot system determines that the first and second constraints are guide constraints. In some embodiments, the first and second constraints are joint centering constraints. In some embodiments, the first and second constraints are workspace limit constraints. In some embodiments, the first and second constraints are boundary constraints. In some embodiments, the control system determines that the first constraint is one of the guide constraint, joint centering constraint, joint limit constraint, workspace constraint, and boundary constraint, and determines that the second constraint is a different constraint from the guide constraint, joint centering constraint, joint limit constraint, workspace constraint, and boundary constraint. In some embodiments, the first and second constraints are constraints of the same type but with different values. In some embodiments, the first and second constraints are constraints of different types.
[0007] In some embodiments, the control system of the handheld medical robot system determines a plurality of first constraints and a plurality of second constraints. In some embodiments, the plurality of first constraints correspond to a first pose of the tool and are two or more of the following: guide constraints, joint centering constraints, joint limit constraints, workspace constraints, and boundary constraints. In some embodiments, the plurality of second constraints correspond to a second pose of the tool and are two or more of the following: guide constraints, joint centering constraints, joint limit constraints, workspace constraints, and boundary constraints.
[0008] One aspect of this teaching provides a handheld robot system for controlling multiple actuators by determining the orientation of a tool support of an instrument. In some embodiments, the handheld robot system determines the orientation of a saw blade. In some embodiments, the handheld robot system controls multiple actuators by determining the orientation of one or more combinations of the handheld portion of the instrument, the tool support of the instrument, and the tool, or one or more components interconnecting the handheld portion, the tool, and the tool support.
[0009] One aspect of the present disclosure provides a method of controlling a handheld robotic system that includes at least one step of determining the orientation of a portion of the instrument. In some embodiments, the at least one step of determining the orientation of a portion of the instrument includes determining the orientation of the tool support. In some embodiments, the at least one step of determining the orientation of a portion of the instrument includes determining the orientation of the saw blade. In some embodiments, the at least one step of determining the orientation of a portion of the instrument includes determining the orientation of one or more of the handheld portion, the tool support, and the tool.
[0010] One aspect of the present disclosure provides a handheld robotic system configured to be used with a surgical tool other than a surgical saw. In some embodiments, the handheld robotic system is configured to be used with a drill bit, a driver, a bar, an ultrasonic cutting tool, a tap, or other rotary cutting tool.
[0011] One aspect of the present disclosure provides that a control system of a handheld robotic system controls a plurality of actuators to position the tool support and the tool with respect to a virtual object outside a plane, such as a virtual axis. The virtual axis may be derived from a surgical plan, such as a planned trajectory or a planned helical trajectory or a planned hole trajectory.
[0012] One aspect of the present disclosure provides that a control system of a handheld robotic system determines a target plane or a target trajectory or a target virtual object without specifying a planned orientation of a surgical implant.
[0013] One aspect of the present disclosure provides a method of controlling a handheld robotic system that is used with an alternative actuator assembly. In some embodiments, the control system of the robotic handheld system is used with a plurality of actuators arranged in series with respect to other actuators.
[0014] This instruction may include corresponding computer systems, apparatuses, and computer programs recorded on one or more computer storage devices, each configured to perform the operation of a device and a method.
[0015] The merits of this disclosure will be readily apparent as the disclosure is better understood by referring to the following detailed description, in conjunction with the accompanying drawings. [Brief explanation of the drawing]
[0016] [Figure 1] This is a perspective view of the robot system. [Figure 2] This is a perspective view of a robotic instrument used to cut one or more planes on the femur and tibia to receive a whole knee implant. [Figure 3A] This diagram shows the orientation of various pitches for robotic devices. [Figure 3B] This diagram shows the orientation of various pitches for robotic devices. [Figure 3C] This diagram shows the orientation of various pitches for robotic devices. [Figure 4A] This is a diagram showing the orientation of various rolls in a robotic device. [Figure 4B] This is a diagram showing the orientation of various rolls in a robotic device. [Figure 4C] This is a diagram showing the orientation of various rolls in a robotic device. [Figure 5A] This diagram shows various z-axis translational positions of a robotic device. [Figure 5B] This diagram shows various z-axis translational positions of a robotic device. [Figure 5C] This diagram shows various z-axis translational positions of a robotic device. [Figure 6] This is a front perspective view of a robotic instrument showing one specific orientation of the tool support relative to the handheld portion. [Figure 7] This is a block diagram of the control system, showing various software modules. [Figure 8] This is a rear perspective view of the robotic device. [Figure 9] This is an exploded view showing the main body of the tool support and the associated joint connections to multiple actuators. [Figure 10] This diagram shows the various fields in which robotic devices are used. [Figure 11] This is a block diagram of a specific module that can be operated by a control system. [Figure 12] This is a diagram showing guide constraints and virtual forces. [Figure 13] This figure shows the output of a boundary generator for surgical procedures on the femur. [Figure 14] This is a diagram showing a virtual boundary based on the planned surgical implant. [Figure 15] This is a top view of a saw blade relative to a specific virtual boundary line and a portion of the patient's anatomical structure. [Figure 16] This figure shows a portion of the navigation system for the patient's anatomical structure and surgical robotic instruments, as well as potential conversion calculations. [Figure 17A] This is a block diagram of various parts of the control system. [Figure 17B] This is a block diagram of various parts of the control system. [Figure 17C] This is a block diagram of various parts of the control system. [Figure 17D] This is a block diagram of various parts of the control system. [Figure 17E] This is a block diagram of various parts of the control system. [Figure 18] This figure shows another application of a guide constraint to pull the tool towards the target plane. [Figure 19] This figure shows another application of a guide constraint to pull the tool towards the target plane. [Figure 20] This figure shows how the rigidity of the guide constraint can change with distance. [Figure 21] This diagram shows joint centering constraints and associated virtual forces. [Figure 22A]This figure shows an example of actuator control related to joint centering behavior. [Figure 22B] This figure shows an example of actuator control related to joint centering behavior. [Figure 22C] This figure shows an example of actuator control related to joint centering behavior. [Figure 23] This is a perspective view of the instrument, showing the range of motion of the controlled tool as seen in orthogonal space. [Figure 24] This is a perspective view of an example of a handheld robotic device. [Figure 25] This figure shows the constraint equations for the sample. [Figure 26] This figure shows a sample forward dynamics algorithm for running a virtual simulation. [Figure 27] This figure shows a sample forward dynamics algorithm for running a virtual simulation. [Figure 28] This figure illustrates an exemplary set of steps performed by a control system to resolve constraints, execute forward dynamics, and determine the commanded attitude. [Figure 29A] This figure shows the movement of the tool in response to the application of guide constraints to pull the tool to the target position and orientation. [Figure 29B] This figure shows the movement of the tool in response to the application of guide constraints to pull the tool to the target position and orientation. [Figure 29C] This figure shows the movement of the tool in response to the application of guide constraints to pull the tool to the target position and orientation. [Figure 29D] This figure shows the movement of the tool in response to the application of guide constraints to pull the tool to the target position and orientation. [Figure 30A] This is a schematic diagram of a robotic device that performs cutting in relation to guiding motion. [Figure 30B] This is a schematic diagram of a robotic device that performs cutting in relation to guiding motion. [Figure 31] This is a block diagram of the control system. [Figure 32] This figure shows a portion of the navigation system for the patient's anatomical structure and surgical robotic instruments, as well as other examples of potential transformation calculations regarding the target trajectory. [Modes for carrying out the invention]
[0017] overview Referring to Figure 1, the robotic system 10 is shown. The robotic system 10 is shown performing a whole knee joint procedure on patient 12 to remove a portion of the femur F and tibia T of patient 12 so that patient 12 can receive a whole knee joint implant IM. The robotic system 10 may be used to perform other types of surgical procedures, including procedures involving the removal of hard / soft tissue or other forms of treatment. For example, procedures may include cutting, perforating, coagulating, inserting implants, cauterizing, stapling, and suturing tissue. In some examples, surgical procedures may include knee, hip, shoulder, spine, and / or ankle surgery and may include removing tissue to be replaced by surgical implants such as knee, hip, shoulder, spine, and / or ankle implants. The robotic system 10 and techniques disclosed herein may be used to perform other surgical or non-surgical procedures and may be used in industrial applications or other applications in which the robotic system is utilized.
[0018] Referring to Figures 1 and 2, the robot system 10 includes an instrument 14. In some examples, the user holds and supports the instrument 14 by hand (as shown in Figure 1). In some other examples, the user can hold the instrument 14 by hand while the instrument is at least partially or fully supported by an auxiliary device such as a passive arm (e.g., a link arm with a locking joint, a weight-balancing arm), an active arm, etc. As best shown in Figures 1 and 2, the instrument 14 includes a handheld portion 16 supported by the user.
[0019] The instrument 14 may be freely moved and supported by the user without the assistance of a guide arm / support device, and may be configured to be held by a human user such that, for example, while performing the physical removal or cutting of a substance, the weight of the tool is supported by only one or both of the user's hands during the procedure. In other words, the instrument 14 may be held such that the user's hands support 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 corresponding to ANSI / AAMI HE75:2009.
[0020] In embodiments where the weight of the instrument is configured to be supported by the user without the assistance of a guide arm or auxiliary device, the handgrip portion does not have a rigid reference point to the ground and moves relative to the ground during control of the actuator assembly. This may be in contrast to a robotic arm that features a base coupled to a table, cart, imager, or other component that remains stationary during the procedure. Because the handgrip portion of the instrument can move relative to the ground, the orientation of the handgrip portion is dynamic and may need to be considered during control of the handgrip robotic instrument 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 a sensation that may distract the user from positioning the handgrip portion in an ideal way to complete the procedure. This is due to the fact that the instrument control system cannot assume that the base, i.e., the handgrip portion, is in a fixed position when calculating navigation transformations between various movable / deformable components of the system, including, but not limited to, the tool, tool platform, actuator assembly, and / or handgrip portion.
[0021] Another complexity introduced to handheld medical robotic instruments configured to be supported by the user without the use of guide arms or assistive devices is that the reaction forces transmitted through the instrument's kinematic chain are ultimately transmitted only to the user's hand(s), and not at least partially to a guide arm / assistive device. In handheld robotic systems, since the user must bear the reaction forces, the control system of the handheld robotic instrument must carefully control the actuator assembly 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(s)
[0022] The apparatus 14 also includes a tool support 18 that receives a tool 20. In some examples, if 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 apparatus 14 may include the user suspending the weight of the apparatus 14 from a passive arm or robotic arm without any assistance. Alternatively, the weight of the apparatus 14 may be supported by using a balanced passive arm, an auxiliary device or an active robotic arm so that the user does not need to support the entire weight of the apparatus. In such cases, the user may still grasp the handgrip portion 16 to interact with and / or guide the apparatus 14. Passive arms and contents of Kang et al., U.S. Patent No. 9,060,794, are incorporated herein by reference. Furthermore, in some examples, the robotic system 10 may not have a robotic arm having two or more joints in series.
[0023] The tool 20 is coupled to the tool support 18 and interacts with anatomical structures in certain operations of the robotic system 10, which will be described later. The tool 20 may also be referred to as an end effector. The tool 20 may be detachable 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 the tissue of the patient 12. In some examples, the tool 20 may be a saw blade or other type of cutting accessory, as shown in Figures 1 and 2. In such examples, the tool support may be referred to as a blade support. Wherever the term "blade support" is used, it should be understood that it may be replaced with the term "tool support," and vice versa. However, other tools may be intended, such as those described in Bozung's U.S. Patent No. 9,707,043, which is incorporated herein by reference. In some examples, the tool 20 may be a twist drill bit, screwdriver, tap, ultrasonic vibrating tip, burr, stapler, rotary cutting tool, etc. The tool 20 may include a blade assembly and a drive motor that cause the blade to vibrate, as shown in U.S. Patent No. 9,820,753 or U.S. Patent No. 10,687,823 of Walen et al., which are incorporated herein by reference. Such drive components may include a transmission device TM coupled to the drive motor M that converts rotational motion from the drive motor M into vibrating motion of the tool 20.
[0024] The systems and methods described in PCT / US2020 / 042128, entitled "Robotic Handheld Surgical Instrument Systems and Methods," filed on 15 July 2020, also constitute part of this specification by reference.
[0025] An actuator assembly 400, including one or more actuators 21, 22, 23, provides robotic motion to move the tool support 18 with three degrees of freedom relative to the handgrip portion 16, thereby assisting in positioning the tool 20 to a desired position and / or orientation (e.g., in a desired posture relative to the femur F and / or tibia T during excision) while the user holds the handgrip portion 16. The actuator assembly 400 may include actuators 21, 22, 23 arranged in parallel, in series, or in combination thereof. In some examples, the actuators 21, 22, 23 move the tool support 18 with three or more degrees of freedom relative to the handgrip portion 16. In some examples, the actuator assembly 400 is configured to move the tool support 18 with at least two degrees of freedom, such as pitch and z-axis translation, relative to the handgrip 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 with only three degrees of freedom relative to the handgrip portion 16 and its associated base coordinate system BCS. For example, the tool support 18 and its tool support coordinate system TCS may rotate around its y-axis to provide pitch motion, rotate around its x-axis to provide roll motion, and translate along axis Z, which coincides with the z-axis of the base coordinate system BCS, to provide z-axis translation motion. The allowable motions in pitch, roll, and z-axis translation are indicated by arrows in Figure 2 and the schematic diagrams in Figures 3A-3C, 4A-4C, and 5A-5C, respectively. Figure 6 shows one example of the posture of the tool support 18 and the posture of the handgrip portion 16 within the range of motion of the instrument 14. In some examples not shown in the figures, the actuator may move the tool support 18 with four or more degrees of freedom relative to the handgrip portion 16.
[0026] The actuator assembly 400 may be configured as a parallel manipulator configuration. As shown throughout this application, the parallel manipulator configuration uses actuators 21, 22, and 23 to support a single platform (i.e., a tool support 18), and the actuators 21, 22, and 23 are controlled and operated by a control system 28. The actuators 21, 22, and 23 are separate, independent coupling mechanisms that operate simultaneously and directly connect the tool support 18 to the handgrip portion 16. In some examples, as shown throughout this application, geometric parallelism is not required to be a parallel manipulator. Other configurations of actuator assemblies are also contemplated, such as those described in U.S. Patent 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.
[0027] Returning to Figure 2, a constraint assembly 24 having a passive coupling mechanism 26 may be used to restrict the movement of the tool support 18 relative to the handgrip portion 16 in the remaining three degrees of freedom. The constraint assembly 24 may include any preferred coupling mechanism (e.g., one or more links having any preferred shape or configuration) that restricts motion as described herein. In the example shown in Figure 2, the constraint assembly 24 operates to restrict the motion of the tool support coordinate system TCS by restricting rotation of the base coordinate system BCS about the z axis to restrict yaw motion, restricting translation of the base coordinate system BCS in the x-axis direction to restrict x-axis translation, and restricting translation of the base coordinate system BCS in the y-axis direction to restrict y-axis translation. The actuators 21, 22, 23 and the constraint assembly 24 are controlled to effectively mimic the function of a physical cutting guide, such as a physical saw cutting guide, in certain situations further described below.
[0028] Referring to Figure 7, an appliance controller 28, or other type of control unit, is provided for controlling the appliance 14. The appliance controller 28 may include one or more computers, or any other preferred form of controller that directs the operation of the appliance 14 and the movement of the tool support 18 (and tool 20) relative to the handgrip portion 16. The appliance controller 28 may have a central processing unit (CPU) and / or other processors, memory, and storage devices (not shown). The appliance controller 28 is loaded with software as described below. The processor may include one or more processors that control the operation of the appliance 14. The processor may be any type of microprocessor, multiprocessor, and / or multicore processing system. The appliance controller 28 may additionally or alternatively include one or more microcontrollers, field-programmable gate arrays, system-on-chip, discrete circuits, and / or other preferred 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. Furthermore, the device 14 may 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, touchscreens, etc.).
[0029] The control system 60 further includes one or more software programs and software modules. A software module may be part of one or more programs operating on the navigation controller 36, the equipment controller 28, or both, to process data to assist in the control of the robot system 10. The software programs and / or modules include computer-readable instructions stored in the non-temporary memory 64 of the navigation controller 36, the equipment controller 28, or both, to be executed by one or more processors 70 of the controllers 28, 36. The memory 64 may be any preferred configuration of memory, such as RAM or non-volatile memory, and may be implemented locally or from a remote database. Furthermore, software modules that prompt or communicate with the user may form part of one or more programs and may include instructions stored in the memory 64 of the navigation controller 36, the equipment controller 28, or both. The user may communicate with the software modules by interacting with any input device of the navigation user interface UI or other user interface UI. The user interface software may run on a device separate from the navigation controller 36 and / or the equipment controller 28.
[0030] The instrument controller 28 controls the operation of the tool 20 by controlling the power to the tool 20 (for example, to the drive motor M of the tool 20 that controls the cutting motion) and by controlling the movement of the tool support 18 relative to the handgrip 16 (for example, by controlling actuators 21, 22, and 23). The instrument controller 28 controls the state (e.g., position and / or orientation) of the tool support 18 and the tool 20 relative to the handgrip 16. The instrument controller 28 can control the velocity (linear or angular), acceleration, and / or other derivatives of the movement of the tool 20 relative to the handgrip 16 or to the anatomical structure caused by actuators 21, 22, and 23.
[0031] As shown in Figure 2, the instrument controller 28 may include a control housing 29 attached to the tool support 18 and / or the handle portion 16 or a combination thereof, and one or more control boards 31 (e.g., one or more printed circuit boards and associated electronic components) are located inside the control housing 29. The control boards 31 may include a microcontroller, a field-programmable gate array (FPGA), a driver, memory, sensors, or other electronic components that control the actuators 21, 22, 23 and the drive motor M (e.g., via a motor controller). The instrument controller 28 may also include an off-board control console 33 that communicates data and power with the control boards 31. The sensors S, actuators 21, 22, 23 and / or drive motors M described herein may supply signals to a control board 31, which transmits data signals to a console 33 for processing, and the console 33 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 in order to power and control the actuators 21, 22, 23 and / or drive motors M. It is intended that the processing may be performed on the control board(s) of the control housing. In some examples, the processing of the control algorithm may be distributed between the console and the control housing. In one example, the calculations for position control and speed control may be performed on the console, and current control may be performed on a field-programmable gate array located in the control house. Naturally, a separate control housing is not required, and / or it is intended that the processing can be performed in any number of different locations.
[0032] In some versions, console 33 may include a single console that powers and controls the actuators 21, 22, 23 and the drive motor M. In some versions, 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 such as that described in U.S. Patent No. 7,422,582, filed September 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 part of this specification 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 located between the actuators 21, 22, 23 and the control board 31. Additionally or alternatively, other forms of wired or wireless connections may exist between the components.
[0033] Referring again briefly to Figure 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 movement of various objects. Such objects include, for example, the instrument 14, the tool 20, and anatomical structures, e.g., the femur F and tibia T, or other bone structures, e.g., one or more vertebrae, pelvis, scapula, humerus, or combinations thereof. The navigation system 32 tracks these objects and collects state information of each object relative to the (navigation) localizer coordinate system LCLZ. As used herein, the state of an object includes, but is not limited to, data defining the position and / or orientation of the tracked object (e.g., its coordinate system), or equivalents / derivatives of the position and / or orientation. For example, the state may be the orientation of the object, and / or may include linear velocity data, angular velocity data, etc.
[0034] 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 communicates operationally with the navigation controller 36. The navigation user interface UI includes one or more displays 38. The navigation system 32 can use one or more displays 38 to display a graphical representation of the relative state of the tracked object 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 selecting / controlling specific aspects of the navigation controller 36 in other ways. Such input devices include interactive touchscreen displays. However, the input devices may include any one or more of the following: push buttons, pointers, foot switches, keyboards, mice, microphones (voice-activated), gesture control devices, etc. In some examples, the user may use buttons located on a pointer to navigate and make selections through icons and menus in the user interface UI to configure the surgical robot system 10 and / or advance the workflow.
[0035] 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 also have 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 device.
[0036] 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 example shown in Figure 1, the tool tracker 52 is firmly attached to the instrument 14, the first patient tracker 54 is firmly attached to the femur F of patient 12, and the second patient tracker 56 is firmly attached to the tibia T of patient 12. In this example, the patient trackers 54 and 56 are firmly attached to the bone. The trackers 52, 54, 56 and the pointer tracker are registered to their respective targets (e.g., bone, tool) and the navigation system 32 manually, automatically, or in combination thereof. In some examples, the pointer tracker PT is firmly attached to the pointer 57 and used to register anatomical structures to one or more coordinate systems, including the localizer coordinate system LCLZ, and / or for other calibration and / or registration functions. In one example, the pointer 57 may be used to register patient trackers 54, 56 to the bone to which trackers 54, 56 are attached, respectively, and tool trackers 52 (and optionally 53) to the tool support 18, tool 20, handgrip portion 16, or a combination thereof. In some examples, the pointer tracker PT may be used to register the TCP of instrument 14 to tracker 52 relative to the tracker coordinate system. Thus, when the localizer 44 is moved from position to position, the registration of instrument 14 is positioned relative to tool tracker 52. However, other means of registration of 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.
[0037] Throughout this specification, various transformations such as “bone to tracker” or “instrument TCP to tracker,” i.e., transformations to the “tracker coordinate system” rather than to the LCTZ coordinate system, are described. 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, various localizer reference poses are ultimately mathematically combined, and the registration results are stored “relative to the tracker” so that the registration remains valid even if the camera (i.e., LCTZ) moves.
[0038] The tool tracker 52 may be attached to any suitable component of the instrument 14, and in some versions, it may be attached directly to the handgrip 16, tool support 18, tool 20, or a combination thereof. The trackers 52, 54, 56, and PT may be fixed to their respective components by any suitable method, such as fasteners or clamps. For example, the trackers 52, 54, 56, and PT may be rigidly fixed, flexibly connected (optical fiber), or not physically connected at all (ultrasound), as long as there is a suitable (supplementary) method for determining the relationship (measurement) of each tracker to the relevant object. Any one or more of the trackers 52, 54, 56, and PT may include an active marker 58. The active marker 58 may include a light-emitting diode (LED). Alternatively, the trackers 52, 54, 56, and 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 used.
[0039] Various coordinate systems may be employed for the purpose of tracking the target. For example, the coordinate systems may include the localizer coordinate system LCLZ, the tool support coordinate system TCS, the base coordinate system BCS, the coordinate systems associated with trackers 52, 54, 56, and PT respectively, one or more coordinate systems associated with anatomical structures, one or more coordinate systems associated with preoperative and / or intraoperative images (e.g., CT images, MRI images, etc.) and / or models of anatomical structures (e.g., 2D or 3D models) (e.g., implant coordinate systems), and the TCP (tool center point) coordinate system, etc. In some examples, the robotic system 10 does not rely on preoperative or intraoperative imaging to create 2D and / or 3D models of the target bone. Rather, the robotic system may be used in an imaging-free system where the pointer tracker PT is used to register the target anatomical structure, acquire various anatomical landmarks, and then the control system 60 processes the nominal bone model to match the acquired data. In other examples, preoperative and intraoperative imaging is used to image the target region of the patient, and then the 2D and / or 3D images are converted into a 3D model of the target bone. It is also intended that the surgical robotic system 10 may use a combination of imaging and non-imaging procedures when creating a 3D model of the target surgical region. 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 when establishing relationships between coordinate systems, for example, through registration, calibration, geometric relationships, measurements, etc.
[0040] As shown in Figure 2, in some examples, TCP is a predetermined reference point or origin in the TCP coordinate system defined at the distal end of the tool 20. The geometric shape of the tool 20 may be defined with respect to the TCP coordinate system and / or the tool support coordinate system TCS. The tool 20 is defined with respect to the TCP coordinate system and / or the tool support coordinate system TCS and 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., stored in the non-volatile memory of the control board 31, navigation system 32, instrument controller 28, or a combination thereof within the control housing 29 of the instrument 14. The tool center point (TCP) is, in one example, a predetermined reference point and corresponding coordinate system defined in the tool 20. TCP has a known or computable (i.e., not necessarily static) orientation with respect to 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 TCP. By tracking the TCP (or knowing the orientation of the TCP), system 10 may calculate the position and orientation of the tool 14 based on the orientation of the TCP and the known positional relationship between the TCP and the features of the tool 14. In some examples, the tool 20 has a cutting surface (e.g., 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 bar 25 of the tool 20, the tip of the drill bit, or the distal end of the saw blade 27, so 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 device may employ joint / motor encoders or any other non-encoder position detection method, so that the control system 60 may determine the attitude and / or position of the TCP relative to the handheld portion 16 and BCS.The tool support 18 may use joint measurements to determine the orientation of the TCP, and / or employ techniques to directly measure the orientation of the TCP. The control of the tool 20 is not limited to a center point. For example, the tool 20 can be represented using any suitable primitive, mesh, etc. It should be understood that the TCP may, alternatively, be defined as a point, as opposed to a coordinate system. After determining the orientation of the saw blade or other tool using the TCP coordinate system, any necessary reference point or geometric aspect of the tool can be calculated.
[0041] 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, along with the calibration divot CD in the tool support 18 and / or tool 20, to register (calibrate) the orientation of the tool support coordinate system TCS relative to the coordinate system of the tool tracker 52, to determine the orientation of the TCP coordinate system relative to the coordinate system of the tool tracker 52, and / or to determine the orientation of the TCP coordinate system relative to the tool support coordinate system TCS. The orientation of the TCP coordinate system can be measured directly by using other techniques, such as attaching and fixing one or more additional trackers / markers directly to the tool 20. In some versions, the trackers / markers may also be attached and fixed to the handgrip 16, the tool support 18, or both. If the handgrip includes a tracker, the orientation of the handgrip relative to the localizer coordinate system LCTZ may be measured directly. In yet another alternative, the intermediate tool support coordinate system TCS may be used to define TCP relative to the tool tracker.
[0042] Since the tool support 18 is movable in multiple degrees of freedom relative to the handheld portion 16 via actuators 21, 22, and 23, the instrument 14 may employ encoders, Hall effect sensors (with analog or digital outputs), and / or other arbitrary position detection methods 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 further 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 operation of actuators 21, 22, and 23, as will be described later.
[0043] The localizer 44 monitors the trackers 52, 54, 56, and PT (e.g., their coordinate systems) to determine the state of each tracker 52, 54, 56, and PT, the state of which corresponds to the state of the object to which each is attached. The localizer 44 may perform known techniques to determine the state of the trackers 52, 54, 56, PT, and associated objects (tools, patients, tool supports, and handgrip parts, etc.). The localizer 44 provides the state of the trackers 52, 54, 56, and PT to the navigation controller 36. In some examples, the navigation controller 36 determines the state of the trackers 52, 54, 56, and PT and communicates this to the instrument controller 28.
[0044] The navigation controller 36 may include one or more computers or any other preferred form of controller. The navigation controller 36 has a central processing unit (CPU) and / or other processors, memory and storage devices (not shown). The processor may be any type of processor, microprocessor or multiprocessor system. Software is loaded into the navigation controller 36. The software, for example, converts signals received from the localizer 44 into data representing 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, system-on-chip, discrete circuits, and / or other preferred 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.
[0045] One example of the navigation system 32 is shown to determine the state of an object, but the navigation system 32 may have any other preferred configuration for tracking instruments 14, tools 20 and / or patients 12. In another example, the navigation system 32 and / or localizer 44 are ultrasound-based. For example, the navigation system 32 may include an ultrasound imaging device coupled to a navigation controller 36. The ultrasound imaging device images any of the aforementioned objects, e.g., instruments 14, tools 20 and / or patients 12, and generates a state 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 state of the object. The ultrasound imaging device may have any preferred configuration and may be different from the camera unit 46 shown in Figure 1.
[0046] In another example, the navigation system 32 and / or localizer 44 is radio frequency (RF) based. For example, the navigation system 32 may include an RF transceiver coupled to the navigation controller 36. An RF emitter or transponder may be attached to the instrument 14, tool 20 and / or patient 12. 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 state with it. The RF signal may be of any preferred frequency. The RF transceiver may be positioned at any preferred location to effectively use the RF signal to track the target. Furthermore, the RF emitter or transponder may have any preferred structural configuration, which may be very different from the trackers 52, 54, 56, PT shown in Figure 1.
[0047] In yet another example, the navigation system 32 and / or localizer 44 is electromagnetically based. For example, the navigation system 32 may include an EM transceiver coupled to a navigation controller 36. Any suitable EM components, such as magnetic trackers, electromagnetic trackers, or inductive trackers, may be attached to the instrument 14, tool 20 and / or patient 12. The trackers may be passively or actively energized. The EM transceiver generates an EM field and, based on the EM signals received from the trackers, generates a state signal to the navigation controller 36. The navigation controller 36 may analyze the received EM signals and associate them with relative states. Again, such an example of the navigation system 32 may have a different structural configuration from the navigation system 32 shown in Figure 1.
[0048] Navigation system 32 may have any other suitable components or structures not specifically described herein. Furthermore, any of the techniques, methods, and / or components described above with respect to the illustrated navigation system 32 may be implemented or provided for any other example of navigation system 32 described herein. For example, 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.
[0049] Referring to Figure 7, the robot system 10 includes, among other components, a control system 60 comprising an equipment controller 28 and a navigation controller 36. The control system 60 further includes one or more software programs and software modules. Software modules may be part of one or more programs that operate on the equipment controller 28, the navigation controller 36, or a combination thereof, to process data to assist in the control of the robot system 10. Software programs and / or modules include computer-readable instructions stored in memory 64 on the equipment controller 28, the navigation controller 36, or a combination thereof, to be executed by one or more processors 70 of the controller 28. Memory 64 may be any preferred configuration of memory, such as non-temporary memory, RAM, or non-volatile memory, and may be implemented locally or from a remote database. Furthermore, software modules that prompt and / or communicate with the user may form part of one or more programs and may include instructions stored in memory 64 on the equipment controller 28, the navigation controller 36, or a combination thereof. The user may interact with any input device of the navigation user interface UI or any other user interface UI in order to communicate with the software module. The user interface software may run on a device separate from the fixture controller 28 and / or the navigation controller 36. The fixture 14 may communicate with the fixture controller 28 via a power connection / data connection. The power connection / data connection may provide a route for inputs and outputs used to control the fixture 14 based on position and orientation data generated by the navigation system 32 and transmitted to the fixture controller 28, as shown as the BUS / COMM connection 37 in Figure 7.
[0050] The control system 60 may also 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 an instrument controller 28, a navigation controller 36, or a combination thereof, and / or one of these controllers alone, or additional controllers. The controllers may communicate via a wired bus or communication network, such as the BUS / COMM connection 37 shown in one example in Figure 7, via wireless communication, or by other means. 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, system-on-chip, discrete circuits, sensors, displays, user interfaces, indicators, and / or other suitable hardware, software, or firmware capable of performing the functions described herein.
[0051] Equipment In one exemplary configuration, Figures 8 and 9 best illustrate the apparatus 14. The apparatus 14 comprises a user-held handle portion 16, a tool support 18 movably coupled to the handle portion 16 to support a tool 20, an actuator assembly 400 having a plurality of actuators 21, 22, 23 that operatively interconnect the tool support 18 and the handle portion 16 so as to move the tool support 18 with respect to the handle portion 16 in at least three degrees of freedom, and a constraint assembly 24 having a passive coupling mechanism 26 that operatively interconnects the tool support 18 and the handle portion 16.
[0052] The handle portion 16 includes a user-gripped grip 72 so that the user can operate, guide, and / or grasp the instrument 14. The handle portion 16 may be configured to have ergonomic features such as a grip for the user's hand to hold, a textured coating or mixed material coating to prevent the user's hand from slipping when wet and / or bloody. The handle portion 16 may include a tapered contour that conforms to the contour of the user's hand and / or fingers to accommodate users of different hand sizes. The handle portion 16 also includes a base 74 to which the grip 72 is attached by one or more fasteners, adhesive, welding, etc. In the illustrated version, the base 74 includes a sleeve 76 having a generally hollow cylindrical shape. Joint supports 77, 78, and 79 extend from the sleeve 76. Actuators 21, 22, and 23 may be movably coupled to the base 74 at the joint supports 77, 78, and 79 via joints described later.
[0053] The tool support 18 includes a tool support body 80 to which a tool tracker 52 can be fixedly or detachably mounted via one or more tracker mounts fixed to the tool support 18 at one or more mounting locations 82. In one example, the tool tracker 52 is integrated with the tool support 18. In another example, the tool tracker 52 is detachably mounted at one or more mounting locations 82. The tool 20 is detachably 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. Patent No. 9,820,753 by Walen et al., which forms part of this specification by reference. The head 84 may be configured to utilize a sagittal saw blade as well as a vibrating saw blade. A drive motor M that drives the operation of the tool 20 is located in the tool support 80 (for example, to drive the vibration of the saw blade in some versions). Tool 20 may be attached to and released from head 84 in the manner disclosed in U.S. Patent No. 9,820,753 of Walen et al., which is incorporated herein by reference. As best shown in Figure 9, the tool support 18 also includes a number of actuator mounts 86, 88, 90 to which actuators 21, 22, 23 are movably coupled via joints to the tool support 18, as will be further described later. The actuator mounts 86, 88, 90 may include brackets and the like, which are suitable for mounting actuators 21, 22, 23 so that the tool support 18 can move with respect to the handgrip portion 16 in at least three degrees of freedom.
[0054] Actuators 21, 22, and 23, in the illustrated version, include electrically operated linear actuators extending between the base 74 and the tool support 80. When actuated, the effective lengths of actuators 21, 22, and 23 change, altering the distance between the tool support 80 and the base 74 along the corresponding axes of actuators 21, 22, and 23. Thus, the control system 60 commands the actuators 21, 22, and 23 to work in conjunction to change their effective lengths in response to individual inputs given to each actuator 21, 22, and 23 by the control system 60, thereby moving the tool support 18 to a target position with at least three degrees of freedom relative to the handgrip portion 16. In the illustrated version, there are three actuators 21, 22, and 23, which may be referred to as the first actuator 21, the second actuator 22, and the third actuator 23, or the front actuators 21, 22, and the 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 Figure 9). As described above, 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, roll orientation, and z-axis translation position of the tool support 18 relative to the handgrip portion 16. In some examples, more actuators may be provided. In some examples, the actuators may include rotary actuators. The actuators 21, 22, and 23 may be provided with a coupling mechanism having one or more links of any preferred size or shape. The actuators 21, 22, and 23 may have any configuration suitable for enabling the movement of the tool support 18 relative to the handgrip portion 16 with 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.
[0055] In this version, actuators 21, 22, and 23 are coupled to the base 74 and tool support 80 via a plurality of active joints. The active joints include a set of first active joints 92 that couple actuators 21, 22, and 23 to the tool support 80 in actuator fixtures 86, 88, and 90. In one version, as shown in Figure 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 fixtures 86, 88, and 90 via a through bore 98 of the joint block 96. A set screw 100 may secure the first pivot pin 94 to the actuator fixtures 86, 88, and 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 a first pivot pin 94, so that the first pivot pin 94, the joint block 96, and the second pivot pin 104 form a cross of universal joint. 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 pivotably connects the pivot yokes 106 of actuators 21, 22, and 23 to the joint block 96. As a result, actuators 21, 22, and 23 can move with two degrees of freedom relative to the tool support 80. Other types of active joints are also conceivable, such as active spherical joints including balls with slots for receiving pins.
[0056] Referring to Figure 9, the active joint also includes a pair of second active joints 108 that connect the two front actuators 21, 22 to the base 74 of the handgrip 16. In the illustrated version, the second active joints 108 are supported by joint supports 77, 78. Each of the second active joints 108 includes a swivel yoke 110 positioned to pivot relative to the base 74 of the handgrip 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 pivotably engaging with the base 74 in one of the joint supports 77, 78. A nut 115 is threaded 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 joint supports 77, 78.
[0057] Each of the second active joints 108 comprises a carrier 116 pivotably coupled to one of the swivel yokes 110. The carrier 116 has a threaded through bore 117 that receives the feed screws 150 of the two front actuators 21, 22, as will be described later. Each of the carriers 116 also comprises an opposing trunnion 118 that, by seating in a pocket within the swivel yoke 110, allows the carrier 116 to pivot relative to the swivel yoke 110 about a pivot axis PA (see Figure 9). In some versions, for each of the second active joints 108, the swivel axis SA intersects the pivot axis PA to define a single vertex that is the center when the actuators 21, 22 move with two degrees of freedom.
[0058] The cover is fastened to the swivel head 112, defining one pocket, while the swivel head 112 defines the other pocket. During assembly, the carrier is first positioned with one trunnion positioned in the pocket within the swivel head 112, and then the cover is fastened to the other trunnion so 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 pocket. The configuration of the swivel yoke 110 and the associated carrier, i.e., the carrier being able to pivot around the swivel axis SA and pivot around the pivot axis PA, allows the second active joint 108 to enable two degrees of freedom of movement of the two front actuators 21, 22 relative to the base 74. Other joint configurations between the two front actuators 21, 22 and the base 74 are also possible.
[0059] The active joint also includes a third active joint 124 that connects a posterior (third) actuator 23 to a base 74 of the handheld portion 16. In the illustrated version, the third active joint 124 is supported by a joint support 79. The third active joint 124 comprises a pivot housing 126 fixed to the joint support 79 on the base 74.
[0060] The third active joint 124 comprises a carrier pivotably coupled to the pivot housing 126 via a trunnion. Fasteners with pockets are mounted on both sides of the pivot housing 126 via through bores to engage with the trunnion. The fasteners are positioned so that the carrier can pivot via the trunnion, which is located in the pockets after assembly. The carrier has a threaded through bore that receives a feed screw 150 of the rear actuator 23, as will be described later. Due to the configuration of the pivot housing 126 and the associated carrier, i.e., the associated carrier can pivot only about the pivot axis PA (e.g., not swivel), 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 configurations between the rear actuator 23 and the base 74 are also possible.
[0061] Each of the actuators 21, 22, and 23 comprises a housing. The housing includes a canister and a cap screw-connected to the canister. A pivot yoke 106, which forms part of the first active joint 92, is fixed to the housing so that the housing and the pivot yoke 106 can move together with respect to the tool support 18 via the first active joint 92. The cap locks the pivot yoke 106 to the canister by capturing the annular shoulder of the pivot yoke 106.
[0062] In some versions, the pivot yoke 106 and canister are provided with one or more alignment mechanisms for aligning each pivot yoke 106 to its respective canister in a predetermined relative orientation. Such alignment mechanisms may include mating parts, keys / keyways, etc. During assembly, the pivot yoke 106 may first be fixed to the canister in its predetermined 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 in the canister in the predetermined relative orientation. This predetermined relationship may be useful for preventing the pivot yoke 106 from rolling relative to the canister when wiring and / or aligning the flex circuit FC, and / or for other purposes.
[0063] Each of the actuators 21, 22, and 23 also includes a motor located within its respective housing. The motor has a casing located within the housing and a motor winding assembly located within the casing. The motor winding assembly may also be aligned to a predetermined relative orientation with respect to the canister via set screws or other alignment mechanisms, such as those described above. Each motor also has a rotor fixed to a lead screw 150. The lead screw 150 is supported to rotate 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 when the motor is selectively energized. The lead screw 150 has a fine pitch and lead angle to prevent back-drive (i.e., they are self-locking). As a result, the load on the tool 20 does not easily back-drive the motor. In some examples, the lead screw 150 has 8 to 36 Class 3 threads, resulting in a lead of 0.02 inches / revolution to 0.03 inches / revolution. Other thread types / sizes may be employed.
[0064] Each of the actuators 21, 22, and 23 may be controlled by a separate motor controller. The motor controller may be wired separately to each of the actuators 21, 22, and 23 to individually direct each actuator 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 be directly input to the torque (current) control loop. Each of these control stages may be implemented as a PID controller, a state-space controller, and / or 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-directed control and space vector modulation. The stages of the control loop can be distributed among the various components of the system. In some examples, the position loop and speed loop are implemented in the fixture controller, and the torque control loop is implemented directly on the control board 31 as part of the control housing 29 on the fixture 14, mitigating the impact of data communication latency from the fixture 14 via the connection to the console 33, as the current control loop does not require any data feedback via the console 33. The position control loop and speed control loop can be implemented in the console 33 as they are less susceptible to communication latency. In some examples, the motor controller can be integrated with the fixture controller 28 or form part of the fixture controller 28. For ease of explanation, the motor controller will be described herein as being part of the fixture controller 28.
[0065] The power supply provides the motors with, for example, a 32VDC power signal via console 33. The 32VDC signal is applied to the motors via the fixture controller 28. The fixture controller 28 selectively operates the motors by selectively providing power signals to each motor. This selective operation of the motors positions the tool 20. The motors may be any suitable type of motor, such as brushless DC servo motors, permanent magnet synchronous motors, or other forms of DC motors. The power supply also powers the fixture controller 28, energizing its internal components. 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 electromotive force configured to achieve limiting mechanical cogging, thereby limiting torque ripple and enabling smooth and specific motion. However, other motor types are also conceivable. It should be understood that the power supply can provide other types of power signals, such as 12VDC, 24VDC, 40VDC, etc. The device may use an electronic switch, such as a MOSFET or GaN FET, to switch the voltage signal to the three-phase motor on / off at a high frequency, for example, typically at least 16 kHz, up to 256 kHz or higher, and pulse-width modulated.
[0066] In one possible embodiment, one or more sensors S (see also Figure 7) transmit signals back to the fixture controller 28, thereby enabling the fixture controller 28 to determine the current position and / or angle (i.e., measurement position) of the associated actuators 21, 22, 23. The levels of these signals may vary as a function of the rotational position of the associated rotor. In one embodiment, the sensor(s) S may resolve the rotational position of the rotor within a given turn with high resolution. These sensors S may be Hall effect sensors that output analog and / or digital signals based on the magnetic field detected from the rotor or from other magnets (e.g., bipolar magnets) located on the lead screw 150. A low-voltage signal for energizing the Hall effect sensors, e.g., 5VDC, may be supplied from a motor controller associated with the motor to which the Hall effect sensors are associated. In some examples, two Hall effect sensors are located within a housing and positioned 90 degrees apart from each other around the rotor to detect the joint position so that the fixture controller 28 can determine the position and count the incremental turns of the rotor. In some versions, the Hall effect sensor outputs a digital signal representing an incremental count. Various types of motors and sensor arrangements are possible. In some examples, the motor is a brushless DC servo motor, and two or more internal Hall effect sensors may be arranged around the rotor at 90 degrees, 120 degrees, or any other preferred interval from each other. Sensor S may also include an absolute encoder or an incremental encoder, which may be used to detect the rotational position of the rotor and to count the turns of the rotor. Other types of encoders may be used as one or more sensors. Sensors may be placed at any preferred location on the actuator and its surrounding components, such as housings, nuts, screws, etc., which are suitable for determining the position of each actuator being adjusted. In yet another configuration, sensorless motor control may be utilized. In such embodiments, the position of each rotor may be determined by measuring the back electromotive force and / or inductance of the motor. One preferred example can be found in U.S. Patent No. 7,422,582, which is incorporated herein by reference.
[0067] In some examples, sensors and / or encoders may measure positional feedback for joint position control and / or to determine the position of the tool support 18 relative to the handgrip portion 16 when used with a kinematic model of the instrument 14. In some examples, sensors and / or encoders rely on multi-turn measurements, which are accumulated for each rotation and used to determine the absolute positions of actuators 21, 22, 23 along their axes, together with a known pitch (i.e., rotations per inch of the lead screw). Additionally or alternatively, sensors and / or encoders may be used to determine the “electrical angle of the rotor” used for electronic rectification of the motor. For example, sensors and / or encoders may be used to determine the rotor position and apply an appropriate energizing signal to achieve optimal (efficient) torque generation. In this example, sensors and / or encoders may utilize single-turn or sub-turn measurements (within one electrical rotation) across each electrical rotation. The number of electrical rotations is equal to the number of mechanical rotations divided by the number of magnetic poles of the motor (e.g., the number of magnetic pole pairs). However, it is also intended that sensorless methods be implemented.
[0068] In some examples, the output signal from the Hall effect sensor is transmitted to the instrument controller 28. The instrument controller 28 monitors the changes in the level of the received signal. 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 the initial position, i.e., the home position. The rotor can rotate 360 degrees multiple times. Therefore, the joint position may exceed 360 degrees. A scalar value called the count represents the joint position from the home position. The rotor rotates in both clockwise and counterclockwise directions. Each time the signal levels of multiple signals (analog or digital) undergo a defined state change, the instrument controller 28 increments or decrements the count to indicate the change in joint position. Each time the rotor rotates a full 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 to 3000 for each 360-degree rotation of the rotor. In some examples, such as when an incremental encoder is used to monitor joint position, there are 1024 positions (counts) for every 360-degree rotation of the rotor. Inside 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 actuators 21, 22, 23 may first be moved to a known position (described further below) referred to as their home position, and then the current position of the rotor may be defined using the count value.
[0069] As described above, the carrier has a threaded through bore that screw-type receives the lead screw 150, so that each of the lead screws 150 can rotate relative to one of the carriers to adjust the effective length of one of the actuators 21, 22, 23, thereby changing the count measured by the instrument controller 28. Each of the housing and the corresponding carrier is constrained to at least one degree of freedom of relative motion so that the lead screw 150 can rotate relative to the carrier. More specifically, the lead screw 150 can rotate relative to the carrier for the following reasons: In other words, the pivot yoke 106 cannot rotate around the associated active axes AA1, AA2, and AA3 (i.e., the pivot yoke 106 is restricted from such rotational movement by the configuration of the first active joint 92), and the carrier cannot rotate around the associated active axes AA1, AA2, and AA3 (i.e., the carrier is restricted from such rotational movement by the configuration of the second active joint 108 and the third active joint 124).
[0070] The lead screw 150 is fixed to a threaded fastener or a stopper 152, such as a shoulder portion, formed on the lead screw 150. The stopper 152 is sized to contact the carrier 116 at the end of the movement of each lead screw 150.
[0071] As described above, the actuators 21, 22, and 23 are actively adjustable in effective length to allow movement of the tool support 18 relative to the handgrip 16. One example of this effective length is indicated as "EL" on the third actuator 23, where the effective length EL is measured from the pivot axis PA to the center of the associated first active joint 92. As each actuator 21, 22, and 23 is adjusted, the effective length EL changes by changing how far the lead screw 150 is screwed in 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, and 23 are adjustable between a minimum and a maximum effective length EL. The effective length EL of each actuator 21, 22, and 23 can be expressed / measured in any preferred way to indicate the distance between the tool support 18 and the handgrip 16 along the active axes AA1, AA2, and AA3, which vary to cause various movements of the tool support 18 relative to the handgrip 16.
[0072] The constraint assembly 24 works in cooperation with actuators 21, 22, and 23 to restrict the motion provided by actuators 21, 22, and 23. Actuators 21, 22, and 23 provide three degrees of freedom of motion, while the constraint assembly 24 restricts three degrees of freedom of motion. In the illustrated version, the constraint assembly 24 includes a passive coupling joint 156 that connects the passive coupling mechanism 26 to the tool support 18, along with a passive coupling mechanism 26.
[0073] In one version, as shown in Figure 9, the passive coupling joint 156 includes a passive coupling universal joint. The universal joint includes a first pivot pin 158 and a coupling block 160. The first pivot pin 158 pivotably connects the coupling block 160 to a passive coupling fixture 162 of the tool support 80 via a through bore 164 of the coupling block 160. A set screw 166 may secure the first pivot pin 158 to the passive coupling fixture 162. The universal joint also includes a second pivot pin 170. The coupling block 160 has a cross bore 168 that receives the second pivot pin 170. The second pivot pin 170 pivotably connects the passive coupling pivot yoke 172 of the passive coupling mechanism 26 to the coupling 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 cross of universal joint. The first pivot pin 158 and the second pivot pin 170 define intersecting pivot axes PA. As a result, the passive coupling mechanism 26 can move with two degrees of freedom relative to the tool support body 80. Other types of passive coupling joints are also conceivable, such as passive coupling spherical joints including a ball having a slot for receiving a pin.
[0074] The passive coupling mechanism 26 comprises a shaft 174 fixed to the passive coupling pivot yoke 172. The passive coupling mechanism 26 also comprises a sleeve 76 of a base 74 configured to receive the shaft 174 along the constraint axis CA. The passive coupling mechanism 26 is configured to allow the shaft 174 to slide axially along the constraint axis CA relative to the sleeve 76, and to restrict the radial movement of the shaft 174 relative to the constraint axis CA during the operation of one or more of the actuators 21, 22, and 23.
[0075] The passive coupling mechanism 26 further includes a key that restricts the rotation of the shaft 174 relative to the sleeve 76 about the constraint axis CA. The key engages with opposing keyways on the shaft 174 and the sleeve 76, locking the shaft 174 in the sleeve 76 to prevent rotation. Other arrangements to prevent relative rotation between the shaft 174 and the sleeve 76 are also conceivable, such as an integrated key / slot arrangement. The passive coupling mechanism 26 operatively interconnects the tool support 18 and the handgrip portion 16 independently of the actuators 21, 22, and 23. The effective length EL along the constraint axis CA is passively adjustable during the operation of one or more of the actuators 21, 22, and 23. The sleeve 76, shaft 174, and key 176 represent one combination of links for the passive coupling mechanism 26. Other sizes, shapes, and numbers of links connected to the passive coupling mechanism 26 in any preferred manner may be employed.
[0076] In the illustrated version, the passive coupling joint 156 can pivot around two pivot axes PA relative to the tool support 18. Other configurations are possible, including robot-held devices that do not include the passive coupling mechanism.
[0077] Furthermore, in the illustrated version, the first active joint 92 and the passive connecting joint 156 define a pivot axis PA located on a common plane. Non-parallel pivot axes PA, parallel pivot axes PA located on different planes, combinations thereof, and / or other configurations are also contemplated.
[0078] In some versions, the head 84 of the tool support 18 is positioned such that when the tool 20 is coupled to the tool support 18, it lies on a tool surface TP (e.g., the cutting surface) parallel to the common plane. In some examples, the tool surface TP is spaced 2.0 inches or less, 1.0 inch or less, 0.8 inches or less, or 0.5 inches or less from the common plane CP.
[0079] In the illustrated version, actuators 21, 22, and 23 are arranged such that they are inclined with respect to the constraint axis CA at all positions of actuators 21, 22, and 23, including when the active axes AA1, AA2, and AA3 are in their home positions. By inclining the axes AA1, AA2, and AA3, the actuator arrangement becomes tapered, generally allowing for a slimmer and smaller base 74 and associated grip 72. Other configurations are envisioned, including those in which the active axes AA1, AA2, and AA3 are not inclined with respect to the constraint axis CA. Such configurations may include those in which the actuator axes AA1, AA2, and AA3 are parallel to each other in their home positions.
[0080] Further configurations of actuators, active joints, and constraint assemblies are possible. The control techniques described may also be applied to other mechanical configurations not mentioned, particularly configurations that control a tool or saw blade relative to a handheld portion with one or more degrees of freedom. In some versions, constraint assemblies may not be present, and the tool support 18 of the device 14 may be able to move with additional degrees of freedom relative to the handheld portion 16. For example, the device may include linear actuators, rotary actuators, or a combination thereof. The device may include two, three, four, five, six or more different actuators arranged in parallel, in series, or in a combination thereof.
[0081] Visual guidance As shown in Figure 10, the guidance array 200 may optionally be coupled to the tool support 18. In addition to or alternatively, the guidance array 200 may optionally be attached to the handgrip portion 16 or other part of the fixture 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, and 203 includes one or more illumination sources coupled to the fixture controller 28. In some versions, the illumination sources include one or more light-emitting diodes (e.g., RGB LEDs), which can be operated in different states, such as on, off, flashing / blinking at different frequencies, different intensities, different colors, and combinations thereof. In the version shown in Figure 10, each of the visual indicators 201, 202, and 203 includes an upper 204 and a lower 206 (upper segment 204, lower segment 206). Furthermore, it is intended that each of the visual indicators 201, 202, and 203 may be divided into more than two parts 204, 206, such as three or more, four or even ten or more parts. For example, each of the visual indicators 201, 202, and 203 may be divided into three parts, each part may contain one or more LEDs. The visual indicators 201, 202, and 203 may have a generally spherical shape, including a hemispherical, transparent or translucent dome, the upper 204 and lower 206 of which can be individually controlled / illuminated as desired. The visual indicators 201, 202, and 203 may have shapes other than spheres, such as cylindrical, ring, square, 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, and 203 may be fixed to the tool support 18 or the handgrip portion 16 via one or more mounting brackets 205.
[0082] In some examples where a guidance array is not used, the visual indicators 201, 202, and 203 may include separate portions of a display screen, such as separate areas on an LCD or LED display mounted on the tool support 18 or the handgrip portion 16. The 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 on the instrument.
[0083] Alternatively, the visual guidance in the second mode may include a mechanical guide coupled to the handgrip, the blade support, or both.
[0084] In some configurations, there may be one, two, three, or four parts of the display screen, each corresponding to a different visual indicator. Each part of the display screen may correspond to a different visual graphic. As described below, each visual indicator (or part 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. Furthermore, as described throughout this text, the visual indicators may be used in a first mode that indicates where the user should position the tool, and in a second mode that the visual indicators indicate where the user should position the handheld portion.
[0085] For example, visual indicators 201, 202, and 203 may be configured to output a first index (first visual graphic) based on a first command position of the first actuators 21, 22, and 23, and a second index (second visual graphic) based on a second command position of the first actuators 21, 22, and 23, in which case the first index is different from the second index, and the first command position is different from the second command position. As described above, visual indicators 201, 202, and 203 may be controlled based on any appropriate type of actuator information. In other words, the visual graphics displayed on the display screen may be based on the command position, previous command position, simulated command position, current measured position, previous measured position, available movement, actuator limits (such as a hard stop or soft stop), the required distance from the current position to the command position, or a combination thereof.
[0086] In some configurations, the fixture controller 28 is configured to control the illumination of the upper 204 and lower 206 so that the upper 204 and lower 206 are operated in various states to indicate the desired direction of movement of the tool 20. It is further intended that the fixture controller 28 may be configured to control the illumination of multiple parts in different states or with different indicators. For example, as further described below, these different states may indicate to the user how the user should move the handheld part 16 to position the tool 20 (e.g., a saw blade) in a desired position (e.g., on a desired cutting plane / desired cutting trajectory), or how the user should move the handheld part 16 so that the actuators 21, 22, 23 move in a preferred direction, such as one closer to their home position, while the control system 60 operates to keep the tool 20 in the desired position.
[0087] 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 sufficiently far from the bone, the guide constraint is inactive, and the joint centering constraint is active. In this configuration, the user desires to use visual indicators to achieve good initial alignment of the blade / tool / handle portion so that it is close to the center of joint movement when entering the resection zone / region, to ensure that there are only limited abrupt movements in the blade support / tool support and actuator when the guide constraint(s) are first enabled, and to ensure that the actuator can "reach" the target plane or target trajectory or other target virtual object when enabled.
[0088] In the second mode, since each actuator has only a limited range of motion, it is often crucial for the user to position the handle so that the actuator reaches the target plane, target trajectory, or other target object. If one of the actuators reaches its joint limit, the control system must prevent it from moving further in that direction, in which case the system will be unable to align the blade to the cutting plane (the control system typically stops the saw drive motor to prevent improper cutting) or the system will not align the tool to the planned trajectory. Therefore, it can be important to provide the user with continuous feedback to properly position the handle so that the actuator assembly reaches the target plane or target trajectory. Without continuous feedback, the user may not realize how close they are to the limits of the range of motion until one of the motors reaches its joint limit and the saw blade drive motor stops, ultimately lifting the blade off the plane, which can be frustrating for the user and prolong the surgical procedure. The goal is to provide intuitive and raw handle positioning feedback to minimize / reduce the occurrence of any actuator reaching its joint limit. Guidance arrays, display screens, or mechanical guides may be suitable for this purpose.
[0089] During certain operating 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 the pitch orientation, roll orientation, and z-axis translation of the tool 20 in order to achieve the desired orientation of the tool 20 while the user moves the tool 20 via the handgrip 16. In some versions, the guidance array 200 is coupled to the tool support 18 or the handgrip 16 in a manner that intuitively represents the plane of the tool 20. For example, three points define the plane, so three visual indicators 201, 202, and 203 may generally represent the plane of the tool 20. In some cases, each of the indicators 201, 202, and 203 corresponds to one of points P1, P2, and P3 having a known position relative to the plane of the tool 20 (e.g., positioned within the tool plane and defined in the TCP coordinate system, the tool support coordinate system TCS, or any other suitable coordinate system). Points related to the visual indicators 201, 202, and 203 may be defined at other suitable locations within the plane of tool 20, or at locations having a known relationship with respect to the plane of tool 20.
[0090] In general, a guidance array 200 using one or more visual indicators 201, 202, 203 may be positioned and controlled to visually indicate to the user desired changes in movement (e.g., amount of travel) for changing the pitch, roll, and translation of the tool 20, as well as desired changes in the pitch, roll, and translation of the tool support coordinate system TCS for achieving a desired posture. More specifically, the instrument controller 28 is configured to illuminate the guidance array 200 in such a manner that the user can distinguish between desired changes in the direction of pitch, desired changes in the direction of roll, and desired changes in translation. The instrument controller 28 may be configured to illuminate the guidance array 200 or control a display screen in such a manner that the user can indicate the amount of travel 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.
[0091] In an alternative configuration, a guidance array 200 using one or more visual indicators 201, 202, 203 may be positioned and controlled to visually indicate to the user desired changes in movement (e.g., amount of travel) for changing the pitch, roll, and translation of the handheld portion 16, as well as desired changes in the pitch, roll, and translation of the base coordinate system BCS to achieve a desired posture. 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 desired changes in the direction of pitch, desired changes in the direction of roll, and 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 amount of travel required to move the handheld portion 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.
[0092] The instrument controller 28 may switch the operation of the guidance array 200 and / or visual indicators 201, 202, 203 (or display screens) from a mode in which the guidance array / visual indicators indicate a desired change in the movement of the tool 20 to a mode in which they indicate a desired change in the movement of the handheld portion 16 based on an input signal, such as the activation of an input device (e.g., a foot switch, trigger, mouse click or touchscreen press on the navigation UI 38). 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 point of the bone in a known coordinate system, such as trackers 54, 56. The reference point may be a point, surface, or volume in the coordinate system used to position the instrument 14 relative to a target state, such as a target object. In certain embodiments, the reference point is the planned entry point 71a of the bone. For example, the reference point may be the surface of the bone, a point in the bone, an imaginary or virtual point in a known coordinate system, a volume in a coordinate system, or a combination thereof. The position and / or orientation of the reference position 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 the tool and the reference position. The distance parameter may be distance (e.g., how far apart the two objects are), magnitude (direction of distance relative to a given object), or both. In some examples, the instrument controller 28 may switch modes if the distance parameter is in the direction away from bone and has a magnitude greater than a first threshold.
[0093] Control Overview Referring to Figures 7 and 11, the behavior controller 186 and motion controller 188 may be operated on the instrument controller 28 and / or the navigation controller 36. The control system 60 calculates data indicating appropriate commands for multiple actuators. In one embodiment, the behavior controller 186 functions to output the next command position and / or orientation (e.g., posture) for the tool relative to the handheld portion. During the operation, the tool 20 is effectively moved toward a target state using multiple actuators. These effects may be generated with one or more degrees of freedom to move the tool 20 toward the target state. Thus, the target state may be defined such that the tool 20 is moved with only one degree of freedom, or it may be defined such that the tool 20 is moved with two or more degrees of freedom. Therefore, the target state may include a target position, target orientation, or both, defined as a target coordinate system TF (also called a target frame TF). The target coordinate system TF may be defined relative to an anatomical structure tracker or the coordinate system of a target bone(s), but other coordinate systems may be used. As shown in Figure 12, the target position may include one or more positional components of the target coordinate system TF with respect to the x, y, and / or z axes relative to a reference coordinate system such as an anatomical tracker or bone, e.g., target x position, target y position, and / or target z position. In some cases, the target position is represented as the origin of the target coordinate system TF with respect to a reference coordinate system such as an anatomical tracker or bone. The target orientation may include one or more orientational components of the target coordinate system TF with respect to the x, y, and / or z axes relative to a reference coordinate system such as an anatomical tracker or bone, e.g., target x orientation, target y orientation, and / or target z orientation. In some cases, the target orientation is represented as the orientations of the x, y, and z axes of the target coordinate system TF with respect to a reference coordinate system such as an anatomical tracker or bone. The target posture means a combination of one or more positional components and one or more orientational components. In some cases, the target posture may include the target position and target orientation with fewer degrees of freedom than all six degrees of freedom of the target coordinate system TF. For example, in a particular configuration, the target attitude may be defined by a single position component and two orientation components.In some cases, the target position and / or target orientation may also be called the starting position and / or starting orientation. In other configurations, the target attitude may be defined as an axis fixed with respect to a known coordinate system.
[0094] Referring to Figure 11, the target state is an input to the behavior controller 186. The target state may be a target position, target orientation, or both, in which the tool 20 is adjusted to a target plane or target trajectory. In some examples, only the position of 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 attitude output of the behavior controller 186 may include position, orientation, or both. In some examples, outputs from the boundary generator 182 and one or more sensors, such as an arbitrary force / torque sensor S, may be supplied as input to the behavior controller 186 to determine the next command position and / or orientation for the tool relative to the handgrip. The behavior controller 186 may process these inputs together with one or more virtual constraints, which are further described below, to determine the command attitude.
[0095] The motion controller 188 performs motion control of multiple actuators. One aspect of motion control is the control of the tool support 18 relative to the handgrip 16. The motion controller 188 receives data from the behavior controller 186, such as data defining the next command posture. Based on this data, the motion controller 188 determines the command joint position of each of the multiple actuators coupled to the tool support 18 (e.g., via inverse kinematics) so that the tool 20 is positioned in the command posture output by the behavior controller. In other words, the motion controller 188 processes the command posture, which may be defined in orthogonal space, into the command joint positions of the multiple actuators coupled to the tool support 18, thereby allowing the instrument controller 28 to command actuators 21, 22, and 23 to move the tool support 18 to the command joint positions corresponding to the command posture of the tool relative to the handgrip. In one version, the motion controller 188 adjusts the joint positions of multiple actuators and continuously adjusts the torque output by each actuator 21, 22, and 23 to ensure as much as possible that actuators 21, 22, and 23 cause the device to assume a commanded posture. Alternatively and / or in addition to this, the motion controller 188 may output the commanded joint position to a separate set of motor controllers (e.g., one for each actuator 21, 22, and 23) that handle joint-level position control. In some examples, the motion controller 188 (or motor controller) may use feedforward control to improve dynamic tracking and transient response. In such cases, in addition to the commanded joint position, the motion controller 188 may also calculate a feedforward joint velocity (or commanded joint velocity) and potentially a feedforward joint torque (and / or motor current). This data is then used within the control loop of the motor controller to more optimally drive actuators 21, 22, and 23.
[0096] While position control is described in detail, it should be understood that similar control embodiments may be used in conjunction with joint angle control. Furthermore, the motion controller may use both joint angle control and joint position control. In some examples, joint angle may be interchangeable with joint position. Depending on the joint type, actuator type, or both on the device, joint angle, joint position, or both may be used. For example, the motion controller may determine a commanded joint angle based on a commanded posture for one or more actuators.
[0097] Referring to Figure 7, the software utilized by the control system 60 and operating 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 to constrain the movement and / or operation of the tool 20. The virtual boundary 184 may be one-dimensional, two-dimensional, or three-dimensional, and may include shapes such as points, lines, axes, trajectories, planes, or 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 triangular mesh. The virtual boundary 184 may also be called 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 anatomical structure by mapping the anatomical model AM to the patient's anatomical structure through registration or other processing.
[0098] The virtual boundary 184 may be represented by pixels, point clouds, voxels, triangular meshes, other 2D or 3D models, or combinations thereof. U.S. Patent Publication 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 surgical procedures. 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 made available at runtime by the instrument controller 28.
[0099] The anatomical model AM and associated virtual boundaries 184 are registered to one or more patient trackers 54, 56. Thus, the anatomical model AM (and associated actual patient anatomical structures) and the virtual boundaries 184 fixed to the anatomical model AM can be tracked by the patient trackers 54, 56. The virtual boundaries 184 may be implant-specific, for example, defined based on the size, shape, volume, etc., of the implant, and / or patient-specific, for example, defined based on the patient's anatomical structure. Implant-specific virtual boundaries may have boundaries of a specific size, for example, 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.). Implant-specific boundaries 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 boundaries 184 may be boundaries 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 of these. In any case, the control system 60 acquires the virtual boundary 184 by storing / retrieving it from memory, retrieving it from memory, generating it preoperatively, or generating it intraoperatively. In other words, one or more virtual boundaries may be acquired from the planned position of the implant, the planned size, shape, volume, etc. The implant coordinate system and the anatomical model coordinate system may be considered interchangeable throughout this description.
[0100] The virtual boundary 184 can be used in various ways. For example, the control system 60 may control certain movements of the tool 20 to stay inside the boundary, certain movements of the tool 20 to stay outside the boundary, certain movements of the tool 20 to stay on the boundary (e.g., on a point, trajectory, and / or on a plane), certain actions / functions of the instrument 14 based on its relationship to the boundary (e.g., space, velocity, etc.), and / or control the power supply to the drive motor M of the instrument 14. Other uses of the boundary 184 are also envisioned. Referring to Figure 13, in a potential embodiment, the virtual boundary 184 may include a generally planar mesh located distal to the cutting section, i.e., at 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 a virtual boundary 184 for the purpose of controlling multiple actuators. In this example, the virtual boundary may be used to generate constraints that affect the movement of virtual masses and virtual saw blades / tools in the virtual simulation. In such embodiments, 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 areas, as described below, for either the control of a saw drive motor or the control of multiple actuators. The virtual boundary 184 may be one-dimensional (1D), two-dimensional (2D), or three-dimensional (3D), and may include shapes that include points, lines, axes, trajectories, planes (infinite planes or planar segments bounded by anatomical structures or other boundaries), volumes, or other composite geometric shapes.
[0101] Referring to Figures 10 and 14, the orientation of the implant (IM) may be planned relative to the femur F in the implant coordinate system. This planned orientation of the implant may then be defined relative to one of the patient trackers 54, 56 through various navigation transformations, and the implant orientation may be based on a planned virtual object, such as a target plane (TP) or virtual boundary. The target plane may be a representation of what(s) cuts need to be made to the bone in order to achieve the planned implant orientation. In other words, the target plane (TP) may be aligned with the plane on which 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 positioned 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 in contact with the bone during a particular cut. By cutting along the target plane, the resulting bone removal from the femur allows 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 a virtual boundary that can be used to control multiple actuators.
[0102] In some versions, the control system 60 will function to ultimately maintain the tool 20 on the desired cutting plane. The virtual boundary 184, which can be used to control multiple actuators, may also be a volumetric boundary, such as one with a thickness equal to and / or slightly greater than the thickness of the saw blade, in order to constrain the saw blade to remain within the boundary and on the desired cutting plane. Thus, the desired cutting plane can be defined by a virtual planar boundary, a virtual volumetric 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 contacts the bone for its cutting) is aligned with the final desired implant-bone surface, and the other boundary is offset by the full thickness of the blade. In another example, a slightly larger thickness is used for the slot boundary so 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 called a virtual object. The virtual boundary 184 may be defined with respect to an anatomical model AM in an implant coordinate system, such as a 3D bone model (see Figure 10, which shows the anatomical model AM being virtually superimposed on an actual femur F for their registration). In other words, points, lines, axes, trajectories, planes, and volumes associated with the virtual boundary 184 may be defined in a coordinate system fixed to the coordinate system of the anatomical model AM, such that tracking of the anatomical model AM (e.g., through tracking of the associated anatomical structures to which it is registered) also allows tracking of the virtual boundary 184.
[0103] The anatomical model AM is registered with the first patient tracker 54 so that the virtual boundary 184 is associated with the anatomical model AM and its associated coordinate system. The virtual boundary 184 may be implant-specific, for example, defined based on the size, shape, volume, etc., of the implant, and / or patient-specific, for example, defined based on the patient's anatomical structure. The implant-specific boundary may be larger or smaller than the physical dimensions of the implant. The virtual boundary 184 may be 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. 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 other sources / systems. The virtual boundary 184 may be stored in memory for retrieval and / or updating.
[0104] In some cases, such as when preparing a femur F to receive a whole knee implant IM (see Figure 1), the virtual boundary 184 includes multiple planar boundaries that can be used to define multiple cutting planes (e.g., five cutting planes) for the whole knee implant IM, and are associated with cutting 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, allowing multiple actuators to control cutting one plane at a time. Each of these cutting planes may also be a target plane for the control system. An exemplary virtual boundary 184 is shown in Figure 13 for illustrative purposes. Figure 13 shows that the target plane is aligned with the implant boundary, but this is a schematic representation and it should be understood that the target plane may be slightly offset from the planned implant boundary. Other shapes and configurations are also possible. Figure 13 shows a series of cuttings, each with a desired target plane. Each of the distal ends of the femur indicates an entry point that provides access to the femur. The entry point leads 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 inserting a rotary tool into bone, such as the femur or vertebra, such as for inserting a drill bit or tap. Here again, multiple virtual trajectories may be active one at a time to control multiple actuators to drill one trajectory at a time.
[0105] When a virtual boundary is used to control a saw drive motor (or other drive motor), referring to Figures 13 and 15, the virtual boundary 184 may represent a boundary that can be used to define the in-plane cutting depth or width of a saw (DB, LB) or tool when preparing a knee for a full knee implant or other surgical procedure. The in-plane cutting depth or width for the saw (DB, LV) may not be a clear boundary but rather a feature of the 3D boundary model. Their distal boundary DB may be approximately 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 tissues, etc.). This can help avoid inadvertent cutting of important 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, cutting slots defined by 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 remain sufficiently on the plane (in the case of sudden, high-speed movement of the instrument and / or bone, or as a mitigation for failure of another system), or if the tool does not remain on the track. The boundary for controlling the saw drive motor may be selectively activated based on the selected target plane. Similarly, the boundary for controlling the tool drive motor may be activated based on the selected target axis.
[0106] In some cases, the virtual boundary defining the cutting depth may be based on a fixed boundary offset, such as a 5 mm plane offset, and the orientation of the planned virtual object perpendicular to each planned cutting plane (TP) or target trajectory. Referring again to Figure 13, five TPs are aligned with each plane in which the planned implant is intended to contact the bone, and the distal boundary DB is implemented as being perpendicular to the TP for each cut and offset by a predetermined distance from the distal end of the plane in which the planned implant contacts the bone. In some versions, the control system 60 may evaluate whether the saw blade penetrates the depth boundary DB by a threshold amount and instruct the instrument controller 28 to stop the operation of the drive motor M. In some examples, the instrument controller 28 may not stop the operation of the drive motor M and may rely on user-controlled start, stop, and / or speed control of the drive motor M.
[0107] In some cases, the instrument controller 28 controls the motor parameters of the drive motor M by a first value and a second value, where the first value is different from the second value, and the instrument controller 28 may change the operation from the first value to the second value based on the position of the tool 20 and the position of a bone-related reference position such as a virtual boundary, or based on a calculated distance parameter.
[0108] As the tool 20 advances into the cut or hole in the bone, the instrument controller 28 may allow the drive motor M to operate using the navigation data of the tool 20 relative to a reference position, or based on the orientation of the tool relative to the bone. Furthermore, the instrument controller 28 may turn off the drive motor M based on whether the tool 20 has reached a certain orientation, distance parameter value, or position relative to a reference point or boundary related to the bone. In some cases, due to the limited line of sight caused by soft tissue, unremoved bone, and surgical instruments used in other procedures, the user may find it difficult to perceive the depth of the tool 20 in the bone while performing the surgical procedure. The user may also have difficulty perceiving the depth of the tool 20 because adjacent anatomical structures apply pressure to the saw blade 20 or the tool. By controlling the drive motor M based on the orientation or position of the tool 20, the user may be able to control the depth of the cut more precisely.
[0109] In some examples, when the appliance controller 28 changes the operating mode by changing the parameters of the drive motor M, the appliance 14, input device, navigation system 32, appliance controller 28, or a combination thereof may provide an audible indicator, a tactile indicator, or both that the mode has been changed. In one example, the input device may be a foot switch, and when the appliance mode is changed, the foot switch may vibrate to control the speed of the drive motor M. In another example, when the mode and / or control behavior is changed to accelerate or decelerate the drive motor M, the user may perceive an audible indicator, such as the motor speed of the drive motor M, which indicates that the appliance mode and / or control behavior has been changed by changing the volume, pitch, vibration, or a combination thereof.
[0110] 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 can be described as monitoring the state of TCP measured relative to the virtual boundary 184 for the purpose 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 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 infringes the virtual boundary 184 by an amount exceeding a threshold. In some examples, the orientation of the tool (TCP coordinate system) may be used to evaluate whether any aspect of the tool 20 infringes the virtual boundary 184 by an amount exceeding 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 infringement of the virtual boundary 184. In some examples, the extent of tool 20 may be modeled as an array of discrete spheres positioned around the displaced volume of the tip of tool 20, where the diameter of the spheres coincides with the thickness of tool 20 and the position is defined with respect to the TCP coordinate system. Furthermore, the virtual boundary 184 may be an open-end face or a closed face. If the virtual boundary 184 is configured as a closed face, it may function as a "keep-out" boundary, where the instrument 14 can operate "outside" the virtual boundary but is shut off after crossing the virtual boundary by a threshold amount. Similarly, a closed-face virtual boundary may function as a "keep-in" boundary, where the instrument 14 operates only within the virtual boundary 184 and is shut off if the instrument "moves" more than a threshold amount away from the virtual boundary 184.
[0111] In another example, the TCP state is measured relative to the virtual boundary 184 for the purpose of determining the forces to be applied to the virtual rigid body model via virtual simulation so that the tool 20 remains in a desired position relative to the virtual boundary 184 (for example, not to move beyond it). The results of the virtual simulation are processed when controlling multiple actuators coupled to the tool support 18. The boundary generator 182 may be implemented on the instrument controller 28. Alternatively, the boundary generator 182 may be implemented on another component, such as the navigation controller 36.
[0112] 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 for illustrative purposes to describe computer executable instructions configured to perform various functions of the technical solution described. For simplicity, the term “software program” is intended to encompass at least 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 preferred manner.
[0113] A clinical application 190 may be provided to handle user interaction. The clinical application 190 handles many aspects of user interaction and coordinates the surgical workflow, including preoperative planning, implant placement, registration, visualization of bone preparation, and postoperative 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 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 sends 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 further described below.
[0114] Referring to Figure 16, exemplary control is illustrated with respect to various transformations. The TCP is located by tracking the tool 20 with tool tracker 52 (TT) with respect to the localizer coordinate system LCLZ (LCLZ-TT transformation), and using registration data or calibration data to determine the transformation between tool tracker 52 and TCP of tool 20, such as a saw blade (TT-TCP transformation). Similarly, the patient is tracked using a patient tracker (shown as 54), which reduces to a transformation from the localizer coordinate system LCLZ to the patient tracker coordinate system (LCLZ-PT transformation).
[0115] As explained with respect to Figure 11, the conversion from bone to patient trackers 54, 56 is established through the bone registration process (bone to patient tracker). The conversion from bone to implant / anatomical model is established through the implant planning process (bone to IM conversion). Then, the conversion from patient tracker 54 to the planned implant (patient tracker to IM) is calculated. Given the position and size of the planar sections of the selected implant components, the planned implant (IM) may be related to a target plane (IM to TP conversion) or to a target trajectory (see Figure 32, which will be explained further below). Referring again to Figure 16, the conversion is then calculated between patient trackers 54, 56 and each planned virtual object, such as each target plane (PT-TP conversion) or each target trajectory (PT-trajectory conversion), using a combination of registration data and planning information.
[0116] The position and / or orientation of the tool support 18, and therefore the TCP, may be associated with the tool tracker 52 (a conversion from the tool support to the tool tracker, calculated via a registration or calibration process). As described above, in some embodiments, the conversion between the handgrip portion 16 and the TCP (BCS-TCP) is calculated based on the position of each actuator. Since the command attitude may be determined relative to the BCS for a particular control embodiment, the conversion between the BCS and TCP is used to associate various coordinate systems back with the handgrip portion 16. Conceptually, the command attitude is an update to the conversion from BCS to TCP, which in this example boils down to the TCP being aligned with a planned virtual object (target plane TP). Alternatively, the attitude of the handgrip portion 16 may be determined directly in some examples by using a handgrip portion tracker 53 directly coupled to the handgrip portion 16. This eliminates the need to utilize the TCP coordinate system and perform a conversion between the BCS and TCP based on the position of each actuator.
[0117] The initial orientation of TCP with respect to the base coordinate system BCS can be determined based on a known geometric relationship between the tool support and the handgrip 16 when actuators 21, 22, and 23 are in their home position / center point or other predetermined position. In addition to and / or alternatively, the initial orientation may be "seed" into a virtual simulation by measuring the initial orientation using encoders, calculating forward kinematics to obtain the measured orientation of TCP with respect to BCS, and using that orientation to initialize the virtual simulation. This relationship changes as actuators 21, 22, and 23 are adjusted, and the relevant changes can be determined based on the kinematics of the robot system 10 (e.g., establishing dynamic transformations between these coordinate systems). Thus, the robot system 10 knows the orientation of the tool 20, such as in its home position, and its relationship to the orientation of the handgrip 16. Therefore, when the tool 20 is moved by the user and its orientation is tracked using the tool tracker 52, the robot system 10 also tracks the orientation of the handgrip 16 and its base coordinate system BCS. In some examples, it is assumed that the position of the tool 20 relative to the tool support 18 is known as a result of a previous calibration process. After the home position / center point and maximum travel amount of each actuator 21, 22, and 23 are established, control is based on position and / or orientation data from the navigation controller 36 and measured position data of the actuator(s). The home position may be calculated in other ways.
[0118] Since both patient trackers 54, 56 and tool tracker 52 are reported by localizer 44 with respect to the localizer coordinate system LCLZ, providing LCLZ-PT and LCLZ-TT, these transformations can be processed together to determine the transformation (TT-PT) between tool tracker 52 and patient trackers 54, 56. From there, the (BCS-PT) transformation from the base coordinate system to the patient tracker can be calculated by the control system 60 to calculate the positions of patient trackers 54, 56 relative to the handheld portion 16. Since the target plane TP for patient trackers 54, 56 is known, the control system 60 can calculate the (BCS-TP) transformation from the base coordinate system BCS to the target plane TP, which reduces to the orientation (BCS) of the target plane in the coordinate system of the handheld portion 16. In one example, BCS-TP may be used directly to calculate the command posture BCS-TCP for placing TCP on the target cross-section TP, which may then command actuators 21, 22, and 23 to move tool 20 to the desired posture. In some examples, the BCS-TCP calculation may be used to generate constraints for pulling TCP towards TP within a virtual simulation VM. While target plane transformations are described throughout this text, it should be understood that transformations related to target trajectories instead of target planes are also contemplated herein.
[0119] In some cases, digital filters may be applied directly to the input data received from the localizer, to the input data received from the forward kinematics (e.g., directly to the motion controller 188), or to any intermediate combination of the transformations described above. In some cases, moving average filters may be used, but other digital filtering techniques may be applicable.
[0120] The instrument controller 28 may control one or more actuators 21, 22, 23 by sending command signals to each actuator 21, 22, 23 to adjust the tool 20 toward a target state with at least one degree of freedom. The instrument controller 28 may send command signals 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 toward 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 orientation of the handheld portion 16 and the target state in a known coordinate system (i.e., defined for patient trackers 54, 56), such as the orientation of a virtual object (target cutting plane or target trajectory), and signals may be sent to the actuators 21, 22, 23 to adjust to the command positions.
[0121] The second software module is the motion controller 188. One function of the motion controller 188 is the control of the instrument 14. The motion controller 188 may receive data from the behavior controller 186 that defines a target state 380 for the saw blade 20, such as the next commanded posture. Based on this data, the motion controller 188 determines the next commanded joint position of the rotor 148 of each actuator 21, 22, 23 (for example, via inverse kinematics) to control the instrument to the commanded posture, for example, so that the instrument 14 can position the tool 20 as commanded by the behavior control unit 186. In other words, the motion controller 188 processes the commanded posture, which may be defined in Cartesian coordinate space, into actuator positions (such as commanded joint positions) of the instrument 14, so that the instrument controller 28 can command the motor 142 accordingly to move the actuators 21, 22, 23 of the instrument 14 to commanded positions, such as the commanded joint positions corresponding to the commanded posture. 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 actuators 21, 22, and 23 to the commanded joint position. In another version, the instrument 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 actuators 21, 22, and 23 to the commanded joint position.
[0122] The total length to which actuators 21, 22, and 23 can adjust the tool support 18 relative to the handgrip portion 16 may be known to the instrument controller 28. In some examples, the total length to which actuators 21, 22, and 23 can adjust is known to the instrument controller 28, and the instrument controller may send command signals to actuators 21, 22, and 23 to move a measured distance from position to position (for example, by commanding a desired amount of linear movement via command rotation). The measured position may be a known position or the distance between the current position of actuators 21, 22, and 23 and the actuator limits. Each position to which actuators 21, 22, and 23 move may be a measured distance from the positive and negative limits of actuator movement (i.e., the position between the ends of the lead screw). The instrument controller 28 may command actuators 21, 22, and 23 to and from positions as described below. The instrument controller may command actuators 21, 22, and 23 to a certain position in order to achieve a desired adjustment of the tool 20. The instrument controller 28 may control actuators 21, 22, and 23 to move linearly over a calculated distance to adjust the tool 20 to a desired posture. In other examples, such as when absolute encoders are used, the instrument controller may transmit signals to actuators 21, 22, and 23 to position each actuator 21, 22, and 23 at a commanded position based on the known positions of actuators 21, 22, and 23 between the respective actuator movement limits determined by the absolute encoder. 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 Publication 2017 / 0156799, which is incorporated herein by reference. The homing procedure may involve positioning actuators 21, 22, and 23 and joints at their central positions and then determining the absolute offset of the incremental encoder.By determining the offset of an incremental encoder, the incremental encoder can operate as a forward-moving absolute encoder.
[0123] In some versions, the device controller 28 determines the difference between the commanded position and the measured position of each actuator 21, 22, and 23. The device controller 28 outputs a target current (proportional to the actuator torque) and adjusts the current in the actuators from the initial current to the target current by changing the voltage. The target current causes the actuators 21, 22, and 23 to move toward the commanded joint position, and as a result, moves the device toward the commanded posture. This may occur after the commanded posture has been converted to the joint position. In one example, the measured position of each joint may be derived from a sensor S described above, such as an encoder.
[0124] Throughout this description, unless otherwise specified, any example of posture may be the current command posture, the current measured posture, the past measured posture, or the past command posture. Each of these postures may be different from one another, but the difference in position and / or orientation between these postures may be minimal in each control iteration, depending on the frequency of the control cycle. Furthermore, any example of position may be the current command position, the current measured position, the past measured position, or the past command position.
[0125] To control multiple actuators to position a tool at a desired location, such as a target plane or target trajectory, various control methods may be used, including but not limited to impedance control, admittance control, position control, or hybrid control using multiple different control implementations. While the implementation of admittance control will be described in detail, it should be understood that other methods may also be used. In admittance control mode, the control system receives a force input (virtual or measured) and commands a position (or motion) output. For example, in admittance control, the system models the force and / or torque at a specific position on a virtual mass and operates to change the orientation of the virtual mass to achieve the desired target state of the tool. In 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 of the instrument (i.e., position, orientation, velocity, and / or acceleration) and apply an appropriate corresponding torque to each actuator to achieve the desired target state of the tool. Position control may also be used to control multiple actuators toward the implementation of a particular behavior. It should be understood that modifications to both the behavior controller and the motion controller may be necessary to implement these control schemes.
[0126] In some versions, once the procedure begins, the instrument controller 28 can mitigate the effects of the user's ability to position the tool 20 away from the desired orientation (e.g., outside or away from the virtual boundary 184 or the planned virtual object (TP)). For example, in some embodiments, as soon as the navigation system 32 provides an indicator that the tool 20 is moving away from the desired cutting plane or away from the bone by a predetermined distance / direction, the instrument controller 28 immediately terminates the application of the energization signal to the drive motor M to prevent the tool 20 from cutting into the bone and minimize damage to soft tissue. In other examples, the drive motor M may be decelerated or stopped using a motor brake, for example, as described in U.S. Patent No. 7,998,157, titled “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 acceptable deviation of the tool 20 from the desired position may change as the depth of the excision increases.
[0127] 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 method.
[0128] Referring here to Figure 12, the target coordinate system TF may be any coordinate system whose origin and axes define the target state, and the target state may be specified with respect to any other coordinate system desired for monitoring the state of tool 20 relative to the target state of tool 20. The target state may be tracked in a patient tracker coordinate system (e.g., the coordinate system of patient trackers 54, 56), a localizer coordinate system LCLZ, a base coordinate system BCS, a virtual mass coordinate system VM, or a TCP coordinate system, etc. The target state may be initially defined with respect to the implant coordinate system (IM) for the patient, fixed with respect to the patient's anatomical structure, and fixed with respect to one or more patient trackers. For the purposes of this disclosure, the target state may include a desired pose of the saw blade.
[0129] The current state of tool 20 may be defined by a guided coordinate system GF (also called 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 arbitrary 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., tool tracker coordinate system (TT)), localizer coordinate system LCLZ, base coordinate system BCS, virtual mass coordinate system VM, or TCP coordinate system, etc. In some of the versions described herein, the current state of tool 20 is initially defined by the TCP coordinate system (e.g., for ease of illustration, the TCP coordinate system and the guided coordinate system GF are shown as 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.
[0130] As described above, a command posture is often set to control multiple actuators. This command posture may be a desired relationship between the BCS and TCP, i.e., a desired relationship between the tool support and the handgrip. The command posture is determined based on the posture of the handgrip 16 in a known coordinate system and a target state in the same coordinate system (e.g., the coordinate system associated with patient trackers 54, 56), such as the posture of a planned virtual object, like the posture of a saw blade inferred from the posture of a planned implant. The command posture may result in the tool 20 being on a desired plane or aligned with a planned virtual object, such as a planned trajectory. As described above, the instrument controller 28 may use inverse kinematics to translate the command posture into a command position for each of the multiple actuators, and then send command commands to the actuators 21, 22, 23 to move to the command position, thereby changing the relative posture of the tool support 18 and the tool 20.
[0131] The control system 60 is intended to be configured to control other types of instrument and actuator assembly configurations, such as drills, burrs, probes, guides, etc., or combinations thereof. For example, this teaching may be implemented to control an instrument described in U.S. Patent 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 Figure 32, an alternative example of the instrument is shown having tool 20 as a drill or burr. Exemplary control is described with respect to various transformations. TCP is located by tracking tool 20 with respect to the localizer coordinate system LCLZ (LCLZ-TT transformation) and using registration data or calibration data to determine the transformation between tool tracker 52 and TCP of tool 20, such as a drill / burr (TT-TCP transformation). Similarly, patients are tracked using a patient tracker (shown as 54), which reduces to a transformation from the localizer coordinate system LCLZ to the patient tracker coordinate system (LCLZ-PT transformation).
[0132] As explained with respect to Figure 11, the conversion from bone to patient trackers 54 and 56 is established through the bone registration process (bone to patient tracker). The conversion from bone to implant / anatomical model is determined through the implant planning process (bone to IM conversion). Then, the conversion from patient tracker 54 to the 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 conversion). Referring again to Figure 32, the conversion is then calculated between patient trackers 54 and 56 and each planned virtual object, such as each target trajectory, using a combination of registration data and planning information (PT-TTRAJ conversion).
[0133] The position and / or orientation of the tool support 18, and therefore the TCP, may be associated with the tool tracker 52 (a conversion from the tool support to the tool tracker, calculated via a registration or calibration process). As described above, in some embodiments, the conversion between the handgrip portion 16 and the TCP (BCS-TCP) is calculated based on the position of each actuator. Since the command attitude may be determined relative to the BCS for a particular control embodiment, the conversion between the BCS and TCP is used to associate various coordinate systems back with the handgrip portion 16. Conceptually, the command attitude is an update to the conversion from BCS to TCP, which in this example boils down to the TCP being aligned with a planned virtual object (target trajectory TTRAJ). Alternatively, the attitude of the handgrip portion 16 may be determined directly in some examples by using a handgrip portion tracker 53 directly coupled to the handgrip portion 16. This eliminates the need to utilize the TCP coordinate system and perform a conversion between the BCS and TCP based on the position of each actuator.
[0134] The initial orientation of TCP with respect to the base coordinate system BCS can be determined based on a known geometric relationship between the tool support and the handgrip portion 16 when actuators 21, 22, and 23 are in their home position / center point or other predetermined position. In addition to and / or alternatively, the initial orientation may be "seed" into a virtual simulation by measuring the initial orientation using encoders, calculating forward kinematics to obtain the measured orientation of TCP with respect to BCS, and using that orientation to initialize the virtual simulation. This relationship changes as actuators 21, 22, and 23 are adjusted, and the relevant changes can be determined based on the kinematics of the robot system 10 (e.g., establishing dynamic transformations between these coordinate systems). Thus, the orientation of the tool 20, such as that at its home position, and its relationship to the orientation of the handgrip portion 16 become known to the robot system 10. Therefore, when the tool 20 is moved by the user and its orientation is tracked using the tool tracker 52, the robot system 10 also determines the orientation of the handgrip portion 16 and its base coordinate system BCS. In some cases, it is assumed that the position of the tool 20 relative to the tool support 18 is known as a result of a prior calibration process. After the home position / center point and maximum travel amount of each actuator 21, 22, and 23 are established, control is based on position and / or orientation data from the navigation controller 36 and measured position data of the actuator(s).
[0135] Both patient trackers 54, 56 and tool tracker 52 are reported by localizer 44 with respect to the localizer coordinate system LCLZ, respectively, and provide LCLZ to PT and LCLZ to TT. Therefore, these transformations may be processed together to determine the transformation (TT to PT) between tool tracker 52 and patient trackers 54, 56. From there, the transformation (BCS to PT) from the base coordinate system to the patient trackers may be calculated by the control system 60 to calculate the positions of patient trackers 54, 56 relative to the handheld portion 16. Since the target trajectory TTRAJ for patient trackers 54, 56 is known, the control system 60 may calculate the transformation (BCS to TTRAJ) from the base coordinate system BCS to the target trajectory TTRAJ to reduce it to the attitude (BCS) of the target trajectory in the coordinate system of the handheld portion 16. In one example, the TTRAJ from the BCS may be used directly to calculate the TCP from the BCS in a commanded attitude that places the TCP on the target trajectory TTRAJ, which may then command actuators 21, 22, and 23 to move tool 20 to the desired attitude. In some examples, the calculation of TCP from the BCS may be used to generate constraints for pulling the TCP to the TTRAJ within a virtual simulation VM.
[0136] The instrument controller 28 may control one or more actuators 21, 22, 23 by sending command signals to each actuator 21, 22, 23 to adjust the tool 20 toward a target state with at least one degree of freedom. The instrument controller 28 may send command signals 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 toward the target state, thereby aligning the tool 20 with the 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 orientation of the handheld portion 16 and the target state in a known coordinate system (i.e., defined for patient trackers 54, 56), such as the orientation of a virtual object (target trajectory), and signals may be sent to the actuators 21, 22, 23 to adjust to the command positions.
[0137] Virtual constraints In some embodiments, the control system calculates the commanded orientation using one or more virtual constraints. Generally, virtual constraints are limitations and / or facilitators of rigid body motion in a particular direction, considered by the control system 60 as part of a virtual simulation along with other motion-related information. Each virtual constraint may be thought to act along a particular direction called the constraint direction. These unidirectional constraints may be combined to generate multi-degree-of-freedom constraints, for example, that can act to align or repel two coordinate systems in the virtual simulation. Virtual constraints can both restrict or facilitate motion in a particular direction. The constraints do not "restrict" motion in a directional sense (attracting / repelling), but rather influence motion in a particular manner based on the relative motion or orientation of two tracked objects / coordinate systems in the virtual simulation without allowing free (unconstrained) motion. All active virtual constraints are added to the constraint solver, which determines a set of parameters describing each virtual constraint and calculates the forces. The resulting force can be represented as a 6-degree-of-freedom force / torque vector, representing a balance or equilibrium of various hypothetical constraints, each potentially acting along distinct constraint directions. It should be noted that where the term “force” is used in this instruction, it may refer to a generalized force / torque vector in which the linear force and / or rotational torque components are defined by one or more degrees of freedom. For example, “force” may refer to a single force in a single direction, a single torque around a single axis, or any combination thereof, e.g., a 6-degree-of-freedom force / torque vector in a given coordinate system that defines a force consisting of x, y, and z components and a moment consisting of torque components around the x, y, and z axes.
[0138] In some examples, each virtual constraint may not have equal forces and may be adjusted to be flexible depending on the position of the rigid body on which the virtual constraint acts. For example, depending on the patient's anatomical structure and the position of the instrument 14 relative to the target cutting plane or target trajectory, the virtual constraints may be adjusted to be flexible. The virtual constraints are not infinitely rigid; instead, each virtual constraint has adjustment parameters to adjust the rigidity of the virtual constraint, for example by incorporating spring and damping parameters into the virtual constraint. Such parameters may include a constraint force mixture parameter (C) and an error reduction parameter (ε). The virtual forces may then be applied to a virtual rigid body (representing the tool 20 or blade support 18) in the virtual simulation. A 6-degree-of-freedom forward dynamics calculation is performed to determine the resulting motion of the virtual rigid body. The simulation is performed in time steps, and the results are used as the commanded pose.
[0139] The values of the adjustment parameters may be larger (e.g., more rigid) for positional constraints than for orientation constraints, or vice versa. Thus, the calculation of the virtual constraints leads to direct control of the motion parameters of the tool support moving relative to the handheld portion. The adjustment parameters may be determined, for example, as described in PCT application PCT / US2020 / 053548, filed September 30, 2020, entitled "Systems and Methods For Guiding Movement Of A Tool," which is incorporated herein by reference.
[0140] The state of a virtual constraint may be controlled during the operation of the instrument. For example, the state of a virtual constraint may change based on the relationship between a first state and a second state (e.g., the current state of the tool and the target state). For example, the state may be configured as a function of a distance parameter between the tool's position and 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 the tool's position and the reference position, such that the state changes during use. Each state of a virtual constraint may include an active state, an inactive state, a first value for an adjustment parameter, and / or a second value for an adjustment parameter. In some examples, the state values may be defined by a lookup table. Thus, certain constraints may be activated and / or deactivated based on the state of the tool.
[0141] In an example where the tool is a saw blade, the state of the saw blade relative to the target state of the saw blade for multiple cutting planes may include determining the angle between the current orientation of the saw blade and the multiple target orientations of the saw blade, determining the distance between the current position of the saw blade and the 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 the position of the face defined by the saw blade relative to the multiple cutting planes in a known coordinate system. Thus, when the saw blade is positioned adjacent to 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 orientation 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.
[0142] Virtual constraints may be activated when a user input device is used or when the robot system 10 automatically activates them. In addition to or alternatively, the user may be able to manually set 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 interface UIs). The user may use 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 robot system 10 detects or otherwise recognizes a particular condition.
[0143] In one example, referring to Figure 10, the state of the virtual constraints may change depending on the region in which the tool is located relative to the planned cut or surgical site. These regions may be defined by virtual objects 184 (see the illustrated spherical object) in one or more known coordinate systems.
[0144] In one example of changing the state of a virtual constraint, the spring and damping parameters may be adjusted during the operation. In some versions, the values for the adjustment parameters may change based on the relationship between the current state of the tool and the target state. For example, the adjustment parameters may be configured to increase rigidity as the tool 20 approaches the target state, or the adjustment parameters may be configured to decrease rigidity as the tool 20 approaches the target state. The adjustment parameters may be different for different constraints. For example, a virtual constraint 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, thereby resulting in a constraint force F cThe virtual forces and / or torques realized in this configuration are adapted to move the tool more strongly as a result of the first virtual constraint compared to the second virtual constraint. The values of the adjustment parameters may be larger for the position constraint than for the attitude constraint (e.g., more rigid), or vice versa.
[0145] The adjustment parameters may also be set to increase / decrease exponentially with distance, remain constant regardless of the distance / angle from the tool's current state to its target state; change linearly with the distance between the current state and the target state; change with the constraint direction; change as a function of time; account for gravity effects; or a combination of these. Referring to Figures 18-20, the adjustment parameters for one constraint related to one degree of freedom may also be set based on a relationship related to another degree of freedom; for example, the rigidity of the y-axis constraint may change based on the distance along the x-axis between the current state and the target state. The adjustment parameters may also change depending on the direction in which the tool 20 must move to reach the target state; for example, the rigidity will be higher when moving in one direction along the x-axis than when moving along the opposite direction along the x-axis. The adjustment parameters may also depend on the constraint force F c The constraint force F is ultimately calculated based on the virtual constraint, by increasing / decreasing its rigidity depending on its magnitude or any of its components. c They may be scaled depending on the following. Fixed values for one or more virtual forces may also be added to the virtual simulation in some cases. Adjustment parameters for virtual constraints may be set preoperatively, set intraoperatively, updated intraoperatively, or a combination thereof. The adjustment parameters and their values, their correlations with particular relationships, and the ways in which they can be scaled may be stored in one or more lookup tables in any suitable memory within the control system 60 for later retrieval.
[0146] Modifying the rigidity of one or more adjustment parameters of one or more constraints as a function of time and distance can provide favorable actuator behavior in response to one or more events. For example, if the line of sight to the tracker is temporarily interrupted, slowly increasing the rigidity when the tracker returns to the camera's line of sight can minimize sudden and abrupt actuator movements in the user's hand that may be distracting to the user. Alternatively, the rigidity may be slowly increased when the instrument's tracker returns to the line of sight. This control of adjustment parameters based on a function of time and distance can also be useful when handheld instruments transition between different control domains, as described below. As described above, one or more virtual constraints may be automatically activated. In addition to or alternatively, the user may be able to manually set the virtual constraints (e.g., by changing one or more parameters of the virtual constraints, activating / deactivating the virtual constraints, etc., via one or more of the user interface UIs). The user may utilize clinical application 190 for this purpose. The virtual constraint 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.
[0147] Each virtual constraint also has configuration settings. These configuration settings may include information about adjustment parameters such as the constraint force mixture parameter (C) and error reduction parameter (ε), upper and / or lower force limits, and / or upper and lower constraint distance offsets. The upper and lower force limits are the constraint force F, as further described below. cThis refers to the force limits calculated for each virtual constraint, which are ultimately solved by constraint solver 189 to generate the constraint. A virtual constraint may be a bidirectional constraint (e.g., the force calculated to satisfy the constraint may be positive or negative), and the attractive force may be applied in either direction, regardless of which side of the target coordinate system TF the guided coordinate system GF is located on (in each degree of freedom). The force limits may be set high in both the positive and negative directions (e.g., -100000 / +100000 Newtons) or to any desired limit. Alternatively, a virtual constraint may be a unidirectional constraint (e.g., the force calculated to satisfy the constraint may act in only one direction, i.e., it may only be positive or negative depending on the direction defined by the force limit). Furthermore, constraints may be configured to be "attractive," applying a force in the direction that satisfies the constraint criterion, or "repulsive," applying a force in the direction that moves away from satisfying the constraint criterion. The upper and lower constraint distance offsets determine when the constraint becomes active. With respect to virtual constraints, the upper and lower constraint distance offsets may be set so that the constraints become active whenever the current state differs from the target state.
[0148] If the control system is subjected to a higher force associated with one or more virtual constraints, this higher force may lead to a higher acceleration rate for the rigid body affected by the virtual constraints in the simulation. The output of the virtual simulation as the commanded position of the tool commands the actuators 21, 22, and 23 accordingly, resulting in a higher force and higher acceleration as seen in the virtual simulation, which results in a higher acceleration of the tool support 18 relative to the handgrip 16. This higher force may be based on a value calculated for that particular constraint, a value of a tuning parameter, or a combination thereof. For example, the virtual constraints may include a first virtual constraint having a first value for a tuning parameter and a second virtual constraint having a second value for a tuning parameter, where the first value is greater than the second value, thereby resulting in a constraint force F cThe virtual forces and / or torques realized in this configuration are adapted to move the tool more strongly as a result of the first virtual constraint compared to the second virtual constraint.
[0149] Figures 11 and 17A-17E are control diagrams of the processes performed to calculate a commanded pose using one or more virtual constraints. Figure 11 is a simplified control diagram, while Figures 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 so that they may 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. A virtual simulator (shown as "sim" in Figure 11 and as virtual forward dynamics in Figures 17A-17E) may simulate virtual dynamics on tool 20 based on constraint forces, as well as potentially additional forces including damping forces, inertial forces, and externally sensed forces. The constraint generator 384, constraint solver 189, and virtual simulator 388 each include executable software stored in non-temporary memory of 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 on which the virtual simulation is performed on a virtual rigid body model of tool 20, so that forces and torques are virtually applied to the virtual rigid body in the virtual simulation, in order to ultimately determine how those forces and torques (among the many inputs) 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 tool 20 toward the target state. The virtual forces and torques affect the overall motion of tool 20 toward the virtual object, i.e., the target state.
[0150] In one example, as shown in Figure 11, the behavior controller 186 does not utilize external force sensor input to the virtual simulation. The use of virtual constraint-based control offers several advantages, even in the absence of external force sensors. Modeling of the constraint system and virtual forces in the virtual simulation allows for the easy fusion of constraints linked to different outcomes. The constraint system also allows for intuitive tuning of parameters for each constraint. Furthermore, the use of velocity constraints provides higher responsiveness (e.g., higher rigidity) for a given sample rate due to improved numerical stability compared to 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 estimation of external forces, may be used in conjunction with the systems and methods described herein.
[0151] Guide constraints One type of virtual constraint is referred to herein as a guide constraint. A guide constraint is defined to ultimately influence the movement of the tool 20 toward a target state. The guide constraint has configurable spring and damping properties so that it does not become infinitely rigid, as will be further described below. More specifically, in some versions, the guide constraint is defined as a "soft constraint" so as not to completely prevent constraint-violating movements, such as movements resulting from forces and torques applied by other constraints in the opposite direction to the target state.
[0152] One or more guide constraints, including up to three guide constraints related to the target position and up to three guide constraints related to the target orientation, may be used by the control system 60 to guide the tool support 18. As will be described in more detail below, the control system 60 operates to calculate the constraint force Fc that satisfies or attempts to satisfy the guide constraints (and other virtual constraints, if used). Constraint force F cThe system incorporates virtual forces and torques to move tool 20 to the target state. Each guide constraint can be considered a one-dimensional virtual constraint. The control system may utilize multiple one-degree-of-freedom constraints to align the guided frame with the target frame. As previously stated, guide constraints are "two-sided" constraints in that they can apply attractive forces in either direction, regardless of which side of the target coordinate system TF the guided coordinate system GF is located on (at each degree of freedom). In some versions, guide constraints are velocity impulse constraints, in which forces and / or torques are calculated to apply virtual impulses to the object in the virtual simulation to cause a change in the object's velocity according to desired constraint parameters. In some versions, these constraints are similar to those used in the impulse modeling described in U.S. Patent No. 9,119,655, which is incorporated herein by reference.
[0153] In Figure 12, guide constraints GC related to the target orientation in at least one degree of freedom are shown exemplarily as defined in the target coordinate system TF. The constraint force Fc ultimately calculated as a result of these guide constraints GC (and other active virtual constraints) is shown as including a force incorporating virtual spring and damping characteristics that guides the TCP of tool 20 to the target orientation. The guide constraints may be based on the orientation of the guided coordinate system GF (e.g., defined with respect to the virtual mass coordinate system VM) and the orientation of the target coordinate system TF (e.g., defined with respect to the patient tracker(s)). The orientations of the guided coordinate system GF and the target coordinate system TF (in at least one degree of freedom) are used to calculate the current state and target state of the saw blade, or the current state and target state of the tool, respectively.
[0154] Each guide constraint has a constraint direction defined along or around the x, y, or z axis of the target coordinate system. The constraint direction is the direction in which the constraint can effectively apply force. In the case of rotational constraints, the constraint direction is the axis around which the constraint can effectively apply torque. The constraint direction may be defined in the guided coordinate system (GF), or it may be defined using 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, two or fewer translational constraints and two or fewer rotational constraints may be used.
[0155] In one example, the guide constraints are calculated with three degrees of freedom: one position and two orientations. The position guide constraint is defined by the elevation angle, and the orientation constraints are defined by pitch and roll, which are used to align the saw blade to the target plane TP. The orientation is calculated by comparing the orientation of the target orientation (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 rotate until the XY plane of the saw blade (guided coordinate system) is parallel to the XY plane of the target orientation (target coordinate system). In this example, the three constraint directions are along the z-axis of TF (elevation angle), around the x-axis of TF (roll), and around the y-axis of TF (pitch). In another example for other virtual objects, two position guide constraints and two orientation guide constraints may be used.
[0156] Alternatively, any number of degrees of freedom may be used in the guided coordinate system to align the saw blade or other tool to the target orientation. For example, a position with one degree of freedom (a point on a plane), a position and orientation with three degrees of freedom as described above, a position and orientation with four degrees of freedom, or a full six-degree-of-freedom orientation that includes guide constraints to align three positions and three orientations.
[0157] Guide constraints (and other virtual constraints, if used) are defined primarily by three runtime parameters: a constraint Jacobian Jp that maps each one-dimensional guide constraint to the coordinate system used 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) of the guide constraint 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 target state defined for the patient is not moving, but may be non-zero when the patient is moving, as the target state can be associated with the patient); and a constraint distance Δd that determines whether the constraint is violated, which is how close the guided frame GF is to the target frame TF along or around the applicable constraint direction defined by TF. In some cases, Δd refers to the distance / angle of the current state from the target state, and the guide constraint is violated whenever the current state does not coincide with the target state with respect to the relevant degrees of freedom.
[0158] When constraints other than the guide constraints are used, the constraint solver's task is ultimately to provide a solution for the constraint force Fc that satisfies or attempts to satisfy all virtual constraints, and thus it should be understood that other constraints may affect the magnitude and / or direction of the constraint force.
[0159] Joint centering constraint The joint centering constraint is another virtual constraint representing a virtual force and / or torque used in a virtual simulation to influence the movement of the tool support 18 relative to the centering position of each actuator of a plurality of actuators. The joint centering constraint is used to implement specific limitations on the movement of the tool support 18 relative to the handgrip 16, which are considered by the control system 60 to maximize the amount of movement of the tool support 18 available to the handgrip 16. In one example, the specific limitation on the movement of 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 the positioning of the tool support 18 relative to the handgrip 16 for an optimal balance for a particular surgical procedure, such as for a particular amputation in a whole 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 does not become infinitely rigid, as will be further described below. More specifically, in some versions, the joint centering constraint is defined as a "soft constraint" such that it does not completely prevent motions that violate the constraint, such as motions resulting from forces and torques applied in the opposite direction by other constraints.
[0160] A joint centering constraint may be used by the control system 60 to move the tool support 18. As will be described in more detail below, the control system 60 may operate to calculate a constraint force Fc that satisfies or attempts to satisfy the joint centering constraint. The constraint force Fc incorporates virtual forces and torques within it to move the tool support 18 toward the centering position. The joint centering constraint can be considered a one-dimensional virtual constraint. In some versions, the joint centering constraint is a velocity impulse constraint, in which forces and / or torques are calculated to apply virtual impulses to the object in the virtual simulation so as to cause a change in the object's velocity according to the desired constraint parameters. If other constraints besides the joint centering constraint are used, the constraint solver ultimately calculates a constraint force F that satisfies or attempts to satisfy all virtual constraints. c The task is to provide a solution to this problem, and thus it should be understood that other constraints may influence the magnitude and / or direction of the constraints.
[0161] In Figure 21, the joint centering constraints are illustrated exemplarily in the joint space of each actuator (along the translation axes of actuators 21, 22, and 23). The constraint direction of the joint centering constraint is along the translation axis of actuators 21, 22, and 23, and therefore only linear forces along that direction can be applied. The constraint forces calculated as a result of each joint centering constraint are illustrated as including linear forces incorporating spring and damping characteristics that act along the translation axis of the corresponding actuator, guiding the actuator position to the centered position. It should be understood that joint centering constraints can be similarly defined in other coordinate systems. It should also be understood that all or fewer actuators in the device may utilize joint centering constraints.
[0162] The joint centering constraint is defined primarily by three runtime parameters: the constraint Jacobian Jp, which maps the one-dimensional joint centering constraint to the coordinate system used for the virtual simulation (e.g., between 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 previous control iterations; and the joint centering position, which is the set joint position to which the actuator is desired to return when other constraints are not active. It should be understood that the current measured position of the actuator can also be used in the joint centering constraint. The previous command position may provide less lag and improved stability in the control. The joint centering constraint may be biplane, always pulling the joint to the centering position when active.
[0163] The joint centering position may be a position where each rotor 148 has a relatively large amount of movement along its respective lead screw. In other words, the joint centering position can be considered the “home” or “idle” position of each actuator, as described above. By setting the joint centering position for each actuator to the home position, which is the central position of the rotor along the lead screw, the tool support can achieve its maximum range of motion. Alternatively, the joint centering position may be set to a position other than the home position for one or more of the actuators. This position can be considered a secondary joint centering position. The secondary joint centering position may be different for each of the actuators 21, 22, and 23. It should be understood that when an actuator is in a secondary joint centering position, one or more actuators 21, 22, and 23 may only be able to move a fraction of the unidirectional movement that the same actuator would have had if the joint centering position had been the home position. In one example, the first joint centering position is the "home position," and the second joint centering position is a position other than the home position. While not limited to this, when an actuator is in the second joint centering position, it may have less than 50 percent, 40 percent, or 30 percent of the range of motion in a particular direction that the same actuator would have had if it were set to a joint centering position equivalent to home. However, for certain surgical procedures or for certain users, it may be useful to bias the actuator to a joint centering position away from its center position in order to provide more movement in a particular (potentially difficult) direction, to improve ergonomics, or to consider how the instrument is held. It should be understood that each actuator may have a number of different joint centering positions or presets for preferred balanced placements.A set of joint centering positions corresponding to a preferred grip / balance state (a set of joint centering positions for all actuators) may be aggregated together. These centering positions may be selectable by the user using one or more user input devices.
[0164] When each actuator 21, 22, and 23 is in a first joint-centering position (home position), the adjustable range of actuators 21, 22, and 23 is typically maximized symmetrically to facilitate the user in maintaining the tool 20 in a desired position, i.e., the joint-centering position is typically set to the central or "home" position of the actuators. Depending on the specific geometric shape and configuration of the device 14, various levels of adjustment are possible. In some examples, when all actuators 21, 22, and 23 are in their first joint-centering position, the tool 20 may be adjusted in the direction of pitch by approximately ±18 degrees relative to the joint center position, assuming zero change in the direction of the roll and no translation of the z-axis. In some examples, when all actuators 21, 22, and 23 are in their centering position, the tool 20 may be adjusted in the direction of roll by approximately ±33 degrees relative to the centering position, assuming zero change in the direction of pitch and no translation of the z-axis. In some examples, when all actuators 21, 22, and 23 are in the centered position of their first joints, the tool 20 may adjust the z-axis translation by approximately ±0.37 inches relative to the first joint centering position, assuming zero change in the pitch and roll directions. The tool 20 may, of course, adjust the pitch, roll, and z-axis translation simultaneously, sequentially, or in combination thereof during operation.
[0165] Joint centering constraints may be used to "freeze" one or more actuators into freehand mode at the position of one or more actuators to prevent unnecessary operation and movement, and to prevent the actuators from generating excessive heat due to movement, such as when the instrument 14 is a considerable distance from the target bone. Freehand mode may be useful for performing certain types of procedures, such as cutting a portion of the patella or other anatomical structure. When actuators 21, 22, and 23 are frozen from further movement in freehand mode, the instrument 14 behaves very similarly to a conventional cutting instrument, without any movement of the tool support 18 relative to the handgrip 16. The virtual boundary 184 may also be deactivated in freehand mode. Freehand 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 the behavior of the tool (i.e., activate joint centering constraints by a specific joint centering position, and / or change the joint centering position) by selecting a freehand mode in which the input device is activated and the instrument controller 28 is instructed to hold or freeze the tool posture in place. In some examples, in order to freeze the tool 20 in a particular posture, the instrument controller 28 may enable joint centering constraints and set the centering position for each actuator 21, 22, 23 to the joint position corresponding to the desired tool posture (e.g., by performing inverse kinematics for the desired tool posture to obtain the corresponding joint position). Alternatively, in another example, the joint centering position may be left at zero (i.e., the home position) or reset to zero. Furthermore, the joint centering position may be set to the current position of the actuator, determined using encoder or other actuator position feedback at the time the mode is requested by the user. As described above, the joint centering position is adjustable.The secondary joint centering position may be set using a user input device or it may be set automatically.
[0166] 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 target state. Alternatively, the state of the joint centering constraint may be controlled based on the position of the tool 20 and the position of a reference position relative to the bone in a known coordinate system. The state of the joint centering constraint may include joint centering position values for each of the multiple actuators 21, 22, 23, and / or adjustment parameters for the joint centering constraint. For example, when the tool 20 is removed from the cut, the instrument controller 28 may automatically enable a joint centering position constraint for each actuator by a specific joint centering position, based on the state of the tool 20 and the reference position relative to the bone, as determined by the navigation system 32, so that the user can resume the procedure with the same grip on the hand part 16 of the tool 20 due to 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 position is set to the position of each actuator 21, 22, and 23 as measured at the time before the saw blade 380 is removed from the cut.
[0167] Furthermore, although the joint centering position has been described in terms of joint centering constraints, it should be understood that the joint centering position control described above may be used without the use of virtual constraints, as in the case of using an actuator position control system. In such embodiments, the control system may simply control the position of each actuator to the set joint centering position. When joint centering behavior is used without implementing a constraint solver, the state of joint centering motion may be controlled in the same manner as joint centering constraints.
[0168] The instrument controller 28 may be configured to control the state of joint centering constraints based on a distance parameter (e.g., distance; magnitude) calculated between the position of the tool 20 and the position of a reference position related to the bone. The distance parameter may be direction, magnitude, or both. In some cases, the controller may switch to a different state if the distance parameter is in a direction away from the bone and has a magnitude greater than a first threshold, such as 15 cm.
[0169] As described above, the joint centering position is adjustable. Secondary joint centering positions may be set using a user input device or may be set automatically. In certain configurations, the activation of secondary joint centering positions and joint centering constraints may be based on the state of the faces defined by the saw blade for multiple cutting planes in a known coordinate system, or on the state of the axes defined by the tool for multiple planned trajectories.
[0170] More specifically, the secondary joint position and activation of the joint centering constraint may be based on the angle between the current orientation of the saw blade and multiple target orientations of the saw blade, the distance between the current position of the saw blade and multiple target positions of the saw blade, or both of these angles and distances, and one of multiple cutting planes selected by the user is determined 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 actuator may be selected to optimize the orientation of the tool support relative to the handgrip for the purpose of improving usability. Similar embodiments may be used for trajectories for other types of surgical tools.
[0171] Referring to Figures 22A to 22C, an example of controlling joint centering behavior is described below. 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. Referring first to Figures 22A and 22B, the control system is configured to automatically save the current joint position, which can later be used as the joint centering position, as the tool moves from the first region (region IV) to the second region (region V). As seen in Figure 22A, the tool is on the cutting plane, and guide constraints actively align the tool 20 to the cutting plane. As the tool 20 moves from region IV to region V, the control system 60 analyzes the current joint position, takes a "snapshot" of the joint position, turns off the guide constraints, and allows the tool 20 to return to its previously configured centered position via its joint centering constraints (Figure 22B). When returning from region V to region IV, the joint centering constraint is reset to the value in the “snapshot” (e.g., restore alignment) so that the tool aligns to the exit position (Figure 22C). The guide constraint may not be activated until the tool 20 enters the zone defined by the region immediately adjacent to the bone entry point. The restored joint position may be implemented to reposition the user to the ergonomic starting position for the handle, which was previously captured when exiting the cut. The guide constraint may be reactivated when the blade orientation (such as the VM of the blade) is close to the bone (considering a threshold distance from the VM of the blade to the reference coordinate system / reference position).
[0172] It should be understood that joint centering constraints can be active simultaneously with guide constraints, joint limit constraints, or workspace constraints. In such situations, the constraint solver attempts to balance the forces exerted by each of the virtual constraints when calculating how the actuator should be controlled, for example, when calculating the commanded pose. Thus, in certain cases, despite the activation of a joint centering constraint by a specific joint centering position, the actuator may not actually be controlled to that joint centering position. This is because other constraints may have a higher priority. The priorities of the various constraints may be adjusted through the use of various adjustment parameters, such as rigidity or damping. Of course, it is intended that different virtual constraints do not need to be active simultaneously.
[0173] In one example, a virtual guide constraint may be activated when the TCP transitions from region II to region I. A virtual joint centering constraint may be activated when the TCP transitions from region III to region II. Similarly, a 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 with any particular shape. It is intended that the virtual joint limit constraint may be active in all three regions. As stated throughout this text, these regions may be defined as virtual objects of various shapes, or as distance parameters relative to a reference position.
[0174] In some examples, the control system 60 modifies each of the virtual forces (virtual constraints) using adjustment parameters based on the posture of the instrument 14, the posture of the blade support or tool support, the posture of the handgrip, the command joint position of at least one of the actuators, the measured position of at least one actuator 21, 22, 23, the previous command 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 a guide constraint based on the target posture of the saw blade 380 or tool and the measured posture of the handgrip 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 force and the joint centering constraint force by virtually simulating the dynamics of the virtual saw blade or tool based on the constraint forces. In some examples, the control system 60 may also determine external forces applied to the instrument 14, such as the blade support or tool support, the handgrip, or the space between the blade / tool support and the handgrip, use these external forces in calculations to determine constraint forces, and apply them to virtual rigid bodies in virtual simulations. The external forces may be measured in one or more degrees of freedom and modeled as force / torque vectors. The results of the virtual simulation are commanded poses that can ultimately be used to determine the commanded joint positions for each of the multiple actuators 21, 22, and 23. The centering position may be between the midpoint of the actuator range and the joint limit of that actuator.
[0175] In the virtual simulation, each virtual constraint may be modified using an adjustment parameter. Each adjustment parameter may cause each virtual constraint to have an increased effect on the constraint force in the virtual simulation. For 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, and each adjustment parameter may cause each virtual constraint to have an increased effect on the constraint force that is ultimately calculated. For example, the adjustment parameter for the joint centering constraint may be smaller than the adjustment parameter for the guide constraint, thereby biasing the virtual simulation and subsequent commanded posture and commanded joint position in the direction that moves the tool 20 to the target posture while causing at least one of the actuators to move away from the joint centering position, e.g., the center point / home position. The control system 60 may further activate joint limit constraints based on the position and position limits of at least one of the multiple actuators. The joint limit constraints may be solved together with other virtual constraints (e.g., guide constraints, joint centering constraints) 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 greater than the values of the guide constraint adjustment parameter and the joint centering constraint parameter. Because the joint limit constraint adjustment parameter is greater than the guide constraint adjustment parameter and the joint centering constraint adjustment parameter, the virtual simulation ensures that the constraint force applied to the virtual saw blade is more likely to satisfy the joint limit constraint. In this example, since the joint limit constraint has the highest value, the virtual force applied to the virtual saw blade is guided to a position within the joint limit and reduces to a commanded position that does not exceed the joint limit position. One such adjustment parameter that may be used in this example is the rigidity of the constraint.
[0176] Joint Limit Constraints Joint limit constraints are another virtual constraint that represents virtual forces and / or torques used in a virtual simulation to influence the movement of the tool support 18 when controlling multiple actuators. Joint limit constraints are used by the control system 60 to implement specific limitations on the movement of the tool support 18, intended to prevent actuators 21, 22, and 23 from moving outside their range of motion. Joint limit constraints can also enforce a threshold for movement that is considered too close to the actuator movement limit. As will be further described below, joint limit constraints have configurable spring and damping characteristics. However, joint limits such as soft stops and hard stops can still be operated to prevent the tool from extending or retracting excessively.
[0177] Joint limit constraints may be used by the control system 60 to guide the tool support 18. As will be described in more detail below, the control system 60 operates to calculate a constraint force Fc that satisfies or attempts to satisfy virtual constraints (including joint limit constraints). The constraint force Fc incorporates virtual forces and torques within it to move the tool support 18 and the tool 20 in a manner intended not to violate the actuator joint limits. The joint limit constraint can be considered a one-dimensional virtual constraint. For example, the joint limit constraint may be uniplane, and thus it may be able to "push away" from the joint limit but not pull towards the joint limit. In some versions, the joint limit constraint is a velocity impulse constraint, in which forces and / or torques are calculated to apply virtual impulses to the object in the virtual simulation to cause a change in the object's velocity according to desired constraint parameters. When other constraints are used in addition to joint limit constraints, the constraint solver's task is ultimately to provide a solution for the constraint force Fc that satisfies or attempts to satisfy all virtual constraints, and thus it should be understood that the other constraints may affect the magnitude and / or direction of the constraint force.
[0178] The joint limit constraint is defined primarily by three parameters: the previous commanded joint position, the joint limit position, and the constraint Jacobian Jp, the same one used for the joint centering constraint, which relates the joint movement to the movement of a virtual mass. The joint limit constraint utilizes the calculation of the positional difference between the joint limit position and the previous commanded position. In some embodiments, the joint limit constraint may be calculated based on the current measured position instead of the previous commanded position.
[0179] Joint limit constraints are determined and calculated as forces to prevent actuators 21, 22, and 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 posture. The joint limit constraints may be based on joint limits (soft stops), which may be software-enabled stops set at a count value just before the end of movement measured during the homing procedure. The soft stops may be values pre-programmed in the software. The soft stops may be a combination of count values and pre-programmed values.
[0180] Workspace constraints The workspace limit constraint is another virtual constraint that represents virtual forces and / or torques used in a virtual simulation to influence the movement of the tool support 18 when controlling multiple actuators. The workspace limit constraint is used by the control system 60 to implement specific limitations on the movement of the tool support 18, intended to prevent the tool 20 from moving outside its workspace. The workspace limit constraint exerts forces along a direction defined in Cartesian coordinate space, rather than in articulation space (as is the case with articulation limit constraints). The workspace limit constraint has configurable spring and damping characteristics so that the workspace constraint does not become infinitely rigid, as will be further described below. 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 movements that violate it, such as movements resulting from forces and torques applied in the opposite direction by other constraints.
[0181] Workspace constraints may be used by the control system 60 to prevent the tool support 18 and tool 20 from moving to various locations outside the defined workspace. As will be described in more detail below, the control system 60 operates to calculate a constraint force Fc that satisfies or attempts to satisfy the virtual constraints (including the workspace constraints). The constraint force Fc incorporates virtual forces and torques within it to move the tool support 18 and tool 20 in a manner intended not to violate the workspace constraints. Workspace limit constraints can be considered one-dimensional virtual constraints in that the workspace limit constraints can only apply force in one direction (i.e., they "push away" from the workspace limit but never pull towards the workspace limit). In some versions, workspace constraints are velocity impulse constraints in which forces and / or torques are calculated to apply virtual impulses to the object in the virtual simulation to cause a change in the object's velocity according to a desired constraint parameter. As described above, workspace constraints may include one or more adjustment parameters that can be adjusted manually or automatically (based on the various position / angle relationships described throughout the text).
[0182] The workspace constraints may be based on the tool's orientation and a predetermined Cartesian coordinate space, typically defined with respect to the BCS coordinate system. The orientation of the tool 16 may be calculated as described above. As will be described in more detail below, the control system 60 operates to calculate the constraint force Fc that satisfies or attempts to satisfy the workspace constraints (and other virtual constraints, if used). The constraint force Fc incorporates virtual forces and torques within it to move the tool 20 so that the workspace constraints are not violated. Each workspace constraint has a constraint direction that points inward toward the allowable workspace area, along the normal to the workspace boundary at the point where the tool 20 contacts the workspace boundary. Typically, the constraint direction is defined in the BCS coordinate system, but other coordinate systems may be used. The constraint direction is the direction in which the workspace constraint can effectively exert force. A constraint Jacobian Jp may then be determined, relating the movement of the tool 20 along the constraint direction to the movement of the virtual mass VM. In addition, workspace constraints may also utilize the calculation of penetration depth (i.e., how much the workspace constraint is violated along the constraint direction) by comparing the tool's orientation with the applicable workspace constraint boundary that the tool is in contact with.
[0183] When constraints other than the workspace limit constraints are used, the constraint solver's task is to ultimately provide a solution for constraint force Fc that satisfies or attempts to satisfy all virtual constraints, and thus it should be understood that other constraints may influence the magnitude and / or direction of the constraint force.
[0184] As best illustrated in Figures 3A–5C and Figure 23, the actuators 21, 22, and 23 are capable of moving the tool support 18 and the tool 20 relative to the handgrip 16 with at least three degrees of freedom, including pitch, roll, and translation along axis Z (vertical translation). These individual degrees of freedom are best illustrated in Figures 3A–3C (pitch), 4A–4C (roll), and 5A–5C (z-axis). Figure 23 shows one exemplary Cartesian coordinate space, represented as a volume in the shape of a cube. Other shapes of the given Cartesian coordinate space may be implemented as volumes such as octahedrons, asymmetric octahedrons, spheres, cubes, cylinders, etc. In particular, in some examples, the Cartesian coordinate space, when defined as a volume, may be asymmetric in shape such that the planar position between the tool support 18 and the handgrip is asymmetric when each actuator is in its home position, and the Cartesian volume may be larger above the plane than below the plane. In this example, the volume may be defined by a number of Cartesian points. This volume may be smaller than the dexterous workspace (smaller than all reachable configurations). Alternatively, a given orthogonal space may be defined separately for each degree of freedom. For example, an orthogonal space may be defined using multiple orthogonal points. A given orthogonal space may also be defined by one or more orientations based on one, two, or three axes (x, y, and z) along or around which the saw blade 380 can be displaced.
[0185] The device may be controlled such that the range of motion of the blade support relative to the handle portion is greater in pitch than in roll. Alternatively, or in addition to this, the device may be controlled such that the range of motion of the blade support relative to the handle portion is greater in elevation angle than in roll. In one potential embodiment, the device may be controlled using a combination of joint limit constraints and working space constraints. In addition, one or more other virtual constraints may be used in conjunction with the joint limit constraints and working space constraints, such as guide constraints and / or joint centering constraints. The constraint solver may be configured to calculate constraint forces adapted to move a virtual saw blade based on the joint limit constraints and working space constraints (and other virtual constraints being used). The dynamics of the virtual saw blade are simulated based on the constraint forces and output a commanded posture. Based on that commanded posture, the system determines the commanded joint position of each of a plurality of actuators based on the commanded posture. Each of the plurality of actuators is then controlled using its commanded position.
[0186] The use of working space constraints (defined in Cartesian coordinates) in combination with joint limits (defined in joint space) can offer advantages with respect to instrument control. Implementing both constraints can provide additional options for avoiding singularities in control, provide additional robustness in the design by avoiding vulnerable postures that could damage one or more flex circuits, and / or provide additional options for avoiding mechanical interference. For example, the control system 60 may implement working space constraints to limit the amount of roll of the blade support 18 relative to the handgrip portion 16 by restricting the working space constraints and joint limit constraints more than the working space constraints and joint limit constraints in pitch, z-axis elevation angle, or both. By setting the working space constraint for the roll higher than the other controlled degrees of freedom (pitch and elevation angle), the restricted roll can be less than the mechanical capacity. In some cases, the working space constraint in the roll direction may have the same amount of mechanical movement as or less than the other controlled degrees of freedom in the pitch and z-axis directions.
[0187] Alternatively, the range of motion of the multiple actuators may be controlled without constraint. In such an embodiment, joint limit behavior is determined based on the position and limit position of the actuators, and the working space limits are determined based on the orientation of the tool and a predetermined orthogonal space. The control system 60 is then configured to limit each of the multiple actuators 21, 22, and 23 based on the orientation of the saw blade 380, the joint limit position, and the predetermined orthogonal space.
[0188] Kinematic motion constraints Kinematic motion constraints may be used by the control system to control degrees of freedom that are not controlled by multiple actuators, i.e., uncontrolled degrees of freedom. For example, if the instrument has three controlled degrees of freedom and three uncontrolled degrees of freedom, kinematic motion constraints may be used for the three uncontrolled degrees of freedom (yaw, x translation, and y translation). Since the virtual simulator models the virtual constraints using a virtual mass subjected to forces in six degrees of freedom, kinematic motion constraints are used to ensure that the virtual mass model in the virtual simulator remains consistent with the physically relevant kinematic posture of the tool 20 and to prevent the tool 20 from moving away in the virtual simulation due to its uncontrolled degrees of freedom. Kinematic motion constraints are used to measure the difference in yaw, x translation, and y translation between the kinematic posture and the virtual mass. The constraint forces calculated based on these kinematic motion constraints are calculated to cancel out their differences, whether positive or negative, thus this is a two-sided constraint. Kinematic motion constraints are calculated in orthogonal space. Joint limit constraints ensure that multiple actuators do not exceed their joint thresholds, while kinematic motion constraints are always active and ensure that uncontrolled degrees of freedom are aligned in the coordinate system of virtual mass.
[0189] boundary constraints The control system may also utilize one or more boundary constraints. These boundary constraints may be based on one or more virtual boundaries as described above, along with the tool's orientation. The boundary constraints may function for constraint generation and actuator control (as described here), drive motor control, be used together, separately, or in combination therewith. The boundary constraints may reduce to 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 drive motor control. In the case of boundary constraints, it should be understood that the virtual boundary is used to control multiple actuators, rather than the saw drive motor. In some examples, the boundary constraints or other boundary control methods may utilize collision detection.
[0190] 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 broad-phase collision detection to generate a list of candidate triangles located within the area of the tool 20. Next, for each candidate triangle, narrow-phase collision detection is performed to determine whether the tool 20 contacts the triangle and how deep the tool 20 penetrates through the boundary (along the triangle's normal). Boundary constraints may be generated only for triangles that are in contact with the tool, i.e., output triangles from 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 tool's thickness) or discrete swept spheres (capsule shape) arranged along the periphery of the tool 20. The collision detection process may be repeated for each primitive element (e.g., discrete spheres) to look for collisions with mesh triangles. Boundary constraints may be generated for each contact between the tool's geometric primitives and the mesh triangles.
[0191] Typically, the boundary is defined with respect to patient trackers 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 primitive or VM of the tool 20, boundary constraints may be calculated. A one-sided (force applied in the direction away from the boundary) boundary constraint of one degree of freedom may be calculated for each resulting narrow-phase triangle. The direction of the boundary constraint is along the normal of the triangle. The depth of penetration of the boundary may also be measured along this boundary constraint direction. The constraint Jacobian Jp is calculated to map the movement of the tool 20 along the normal of the triangle (boundary constraint direction) to the movement of the resulting virtual mass. For any boundary constraint attached to an anatomical structure 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 of the relative velocity between the bone and the tool 20 in the direction of the constraint. In another example, when the tool has completely crossed the boundary, it is handled by controlling the drive motor M rather than via boundary constraint generation (and the resulting actuator control).
[0192] When other constraints besides boundary constraints are utilized, the constraint solver is tasked with ultimately providing a solution for the constraint force F c and thus it should be understood that the other constraints can affect the magnitude and / or direction of the constraint force.
[0193] 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 the user or by the bone to affect or in order to affect the tool 20. For example, the instrument 14 may detect and measure forces and torques applied to the tool 20 by the user or by the bone and generate corresponding inputs (e.g., one or more corresponding input / output signals) used by the control system 60. The forces and torques applied by the user are used to determine and facilitate the control of multiple actuators, which are external forces F ext This defines, at least partially. By including external force / torque measurements in the virtual simulation, forces applied by the user or bone can be brought into the virtual simulation. This can allow the virtual constraints to be consistent with physically applied forces. For example, guide constraints have a certain rigidity and damping. External force (F ext When the virtual simulation includes the tool, the tool may be positioned in such a manner that the user "feels" the consistency of the guide constraints. This can allow the tool's control to be more responsive to user-applied forces (i.e., a balance can be found between the applied user / bone force and the rigidity of the guide constraints in the virtual simulation). If the user applies a large force, the guide constraints may, if desired, be partially overridden by the user based on their adjustment parameters. This may be used to limit the tool's binding or resistance to the user in cases of small misalignments between the saw blade and the cutting plane, or between the tool and the planned trajectory, and the virtual consistency allows these small errors to be resolved (balanced out) without causing high force or positive feedback felt by the user through the handle when the blade or tool cannot fully reach its target position. extWithout measurement, the rigidity of the virtual constraints may find equilibrium with forces applied by other virtual constraints without considering the physical forces applied to the blade by the user or bone. If external forces are not included in the virtual simulation, forces applied by the user are not considered when determining the commanded posture. For example, these external forces may be used in calculating the commanded posture by including them in the constraint solver in combination with the other virtual constraints described above, and then applying the external forces to the virtual rigid body in the virtual simulation. External force F ext This may include other forces and torques, separate from those applied by the user or by the bone, such as gravity compensating forces, backdrive forces, and other virtual forces, as described in U.S. Patent No. 9,119,655, which by reference forms part of this specification. Thus, the forces and torques applied by the user are external forces F ext This defines, at least partially, the external force F that, in some cases, affects the overall movement of tool 20. ext This can be fully defined. In some examples, the instrument may include a force / torque sensor S, which is implemented as a 6-degree-of-freedom force / torque transducer positioned in the handgrip, tool platform, or between these two components. In other examples, linear force sensors in each of the actuators 21, 22, and 23, or torque sensors in each of the actuator motor outputs, may also be used. In addition, instead of force / torque sensors, motor current may be used as a low-fidelity approximation of motor torque. Each of these joint space force / torque measurements may be converted to an equivalent force / torque acting on a virtual mass VM using an appropriate Jacobian based on the kinematics of the manipulator. The instrument controller 28 and / or navigation controller 36 may receive input (e.g., signals) from the force / torque sensors. In some versions, the external force is in the force / torque coordinate system F TThe coordinates are then transformed into another coordinate system, such as the VM coordinate system. In such a method, the method may include sensing the amount of current supplied to each of several actuators, estimating the amount of external force applied between the blade support and the handle based on the output of one or more current sensors, and calculating a constraint force adapted to move the virtual saw blade toward a target posture based on the estimated amount of external force.
[0194] operation The control of the instrument 14 takes into account the latest position and / or orientation of the anatomical structure (e.g., femur F or tibia T) and the instrument 14, which are transmitted from the navigation controller 36 to the instrument controller 28 via a data connection. Using this data, the instrument controller 28 determines the orientation (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 orientation of the tool 20 (e.g., TCP) 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 relative to the anatomical structure to which the tool 20 should be applied. An index of the position of the target plane and / or virtual boundary 184 may also be presented.
[0195] The relative position of the tool 20 with respect to the target plane and / or virtual boundary 184 is evaluated by the instrument controller 28 to determine whether action is necessary, i.e., whether it is necessary to move the tool 20, change the speed of the tool 20 (such as vibration speed), or stop the operation of the tool 20. Instruction data packets are sent from, for example, the instrument controller 28 to the motor controller. These instruction data packets include a command position (or target position of the actuator) for the rotor 148 of the motor 142. Here, each command position may be a positive or negative number representing a target cumulative encoder count for the associated rotor 148, or another representation of the actuator position. The instrument controller 28 generates and sends these instruction data packets to each motor controller at a rate of one packet every 0.05 milliseconds to 4 milliseconds. In some examples, each motor controller receives an instruction data packet at least once every 0.125 milliseconds. The instrument controller 28 may also selectively adjust the cutting speed of the instrument 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 that controls the vibration of the tool 20 and the corresponding cut may be disabled by the instrument controller 28 whenever the tool 20 is in an undesirable relationship with the virtual boundary 184, such as when the tool 20 is deviating from the target plane by an amount exceeding a threshold, or when the tool 20's intrusion into the virtual boundary 184 is greater than a threshold. It is also intended that the control system 60 may control the drive motor M based on whether the optical tracking system maintains a line of sight to the tool tracker 52 and / or patient trackers 54, 56. For example, the control system 60 may stop the drive motor M if the line of sight is lost for a predetermined amount of time.
[0196] During use, in one potential embodiment, the control system 60 determines the orientation (current orientation) of the tool 20 using the navigation system 32, based on the position of the tool tracker 52 on the tool support 18. The instrument controller 28 may also determine the current position of each of the actuators 21, 22, and 23 based on output encoder signals from one or more encoders located on each of the actuators 21, 22, and 23. Once the current positions of each of the actuators 21, 22, and 23 are received, the instrument controller 28 may use forward kinematics to calculate the current orientation (TCP) of the tool relative to the handgrip portion 16 (BCS). Localizer data may be used to determine the relative orientation between the patient trackers 54, 56 and the tool tracker 52. The aforementioned orientations, along with additional calibration and registration data, may be combined to calculate the orientation of the handgrip portion 16 relative to a desired coordinate system, such as the patient tracker coordinate system (e.g., the current orientation in the base coordinate system BCS).
[0197] In some examples, the current orientation of the handgrip is determined using a navigation system 32 via a tracker 53 located on the handgrip 16. The orientation of the BCS relative to a desired coordinate system (e.g., a patient tracker) may be determined directly using localized data, along with additional calibration and registration data. In one example, the instrument includes two trackers on the instrument 14, namely a handgrip tracker 53 on the handgrip 16 and a tool tracker 52 located on the tool support 18, as shown in Figure 24. The navigation system 32 determines the orientation of the BCS relative to a desired coordinate system (e.g., a patient tracker) from the positions of the tracker 52 on the handgrip 16 and the trackers 54, 56 on the desired coordinate system (e.g., a patient's anatomical structure).
[0198] Once the instrument controller 28 obtains the orientation of the handgrip portion 16 in the desired coordinate system, the instrument controller 28 may then control a plurality of actuators 21, 22, 23. In this embodiment, the instrument controller 28 may determine the commanded orientation of the tool 20 based on the current orientation of the handgrip portion 16 and the position and / or orientation of a planned virtual object that is the target plane. The instrument calculates the orientation of the TCP relative to the BCS (commanded orientation), which results in the TCP being on the desired plane or aligned with the planned virtual object. This commanded orientation may optionally be calculated using virtual constraints (guide constraints, joint centering constraints, joint limit constraints, work space constraints). The instrument controller 28 uses inverse kinematics to convert the commanded orientation into a commanded position for each of the plurality of actuators 21, 22, 23, and then sends command commands to the actuators 21, 22, 23 to move to the commanded position, thereby changing the orientation of the tool support 18 and the tool 20 relative to the handgrip portion.
[0199] As shown in Figures 17A to 17E, the control system determines the movement of the instrument and the energization of the drive motor M based on specific conditions and parameters. Starting from Figure 17D, one or more trackers 54, 56 are positioned on the patient's anatomical structure (e.g., femur, tibia), and one or more trackers 52 are positioned on the instrument 14. The localizer 44 captures the position of each tracker 52, 54, 56 and processes their position information into a common coordinate system (Figure 17B). The data is then passed from the localizer 44 to the clinical application 190 and the constraint generator 384.
[0200] Clinical application 190 is used to calculate registration and planning transformations used by the control system to command the tool. In Figure 17A, the clinical application receives posture information from the localizer 44 for the device tracker 52 and patient trackers 54, 56. Clinical application 190 may also use localizer data associated with the pointer tracker PT, device tracker 52, and patient trackers 54, 56 to calculate device command transformations based on handpiece settings and registration, bone registration, implant planning, and bone preparation.
[0201] Within the clinical application 190, information from the tool tracker 52 and pointer tracker PT is processed using handpiece configuration and registration information to generate a tool tracker-TCP conversion. 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 conversion (i.e., instrument registration result) is then transferred to the constraint generator 384. Position information from the localizer 44 is used with bone registration data to calculate the bone-patient tracker conversion, which is then inverted to obtain a patient tracker-bone conversion, associating the patient tracker position with the bone. Using one or more of the user interface UIs, the user may adjust the desired implant size and position relative to the on-screen bone model, enabling the clinical application to generate a bone-implant conversion based on the bone position relative to the planned position and / or orientation of the implant. Based on the known geometric shape and size of the selected implant, the clinical application seeks a transformation of the implant's planned pose to one or more desired target cross-sectional planes (TP), implant-to-target planes, or one or more desired target trajectories. A virtual boundary may be calculated based on the selected implant. The patient tracker-to-bone transformation and the bone-to-implant transformation (B-IM) are combined to produce a patient tracker-to-implant pose transformation (patient tracker-IM), which is the combined result of bone registration and implant planning, and is transmitted 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 transmitted to the drive command handler 192.
[0202] To ultimately determine the conversion from the handheld portion to the localizer, three conversions are used: a) the conversion from the handheld portion to the TCP, based on the forward kinematics results received from the motion controller 188; b) the conversion from the tool support to the TCP, based on the tool registration results received from the clinical application 190; and c) the conversion from the tool tracker to the localizer, received from the localizer 44. The conversion from the localizer to patient trackers(s)(s)(s)(s)(s) may also be received from the localizer 44. The conversion from the handheld portion to patient trackers may then be calculated based on a) the conversion from the handheld portion to the localizer and b) the conversion from the localizer to patient trackers(s). It should be understood that the tool tracker coordinate system and the tool support coordinate system may be interchangeable, since the orientation of the tool support can be fixed relative to the TCP using known calibrated and / or registered conversions.
[0203] As described above, the constraint generator 384 receives positional data from patient trackers 54, 56 and device trackers from the localizer, registration and planning transformations from the clinical application 190, and additional data inputs from behavior controllers 186 and 188, including the motion constraint handler 390 (described further below), in order to calculate guide constraints and / or arbitrary boundary constraints (which may be more than one). The constraint generator 384 processes the received data to create a set of constraints to be solved in order to calculate the commanded pose for the tool 20. As described above, the guide constraints are virtual constraints defined to provide virtual forces and torques that are used 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, this information is transferred to the behavior controller 186.
[0204] The behavior controller 186 calculates data indicating the next commanded position and / or orientation (e.g., posture) for the tool 20. In some examples, the behavior controller 186 calculates the next commanded posture based on solving a set of constraints and running a virtual simulation. The output from the motion constraint handler 390 of the motion controller 188 may be supplied as input to the behavior controller 186 to determine the next commanded position and / or orientation for the tool 20. As seen in Figure 17B, the behavior controller 186 processes various virtual constraints to determine the commanded posture. 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 guide constraints and boundary constraints from the boundary handler 385. The constraint solver 189 further receives inertial forces and damping forces, which are processed by the behavior controller 186 and added back to the constraint solver 189. When these constraints are applied to the constraint solver 189, the constraint solver 189 generates constraint forces, which are then summed with all virtual forces such as inertial and damping forces, as well as any external forces. The summed virtual forces are then processed using virtual forward dynamics. The attitude and velocity output from the virtual forward dynamics are then sent to the behavior controller 186 to calculate the inertial and damping forces, and are also transferred to the motion controller 188 as command attitude and velocity commands for the tool support (TTCP from the handgrip). The command attitude (TTCP from the handgrip) is also sent back to the constraint generator 384 for use when generating constraints.
[0205] The motion controller 188 controls the movement of the tool support 18, specifically the TCP coordinate system. The motion controller 188 receives data from the behavior controller 186 that defines the next commanded posture. Based on this data, the motion controller 188 determines the next position of each actuator (e.g., via inverse kinematics and Jacobian computing) so that the tool support can assume a posture relative to the handgrip, for example, the commanded posture, as commanded by the behavior controller 186. In other words, the motion controller 188 processes the commanded posture of the tool support relative to the handgrip, which may be defined in Cartesian coordinates, into commanded joint positions of the multiple actuators 21, 22, and 23, so that the instrument controller 28 can command the actuators accordingly. In one version, the motion controller 188 adjusts the position of the tool support relative to the handgrip and continuously adjusts the torque output by each actuator 21, 22, and 23 to ensure that the actuators 21, 22, and 23 move the tool support 18 relative to the handgrip 16 so that the commanded posture can be achieved as far as possible.
[0206] When the handheld-TCP relationship enters the motion constraint handler 390 of the motion controller 188, the handheld-TCP relationship is used to calculate the workspace constraints and kinematic motion constraints. These constraints are calculated using the relationship between the handheld and TCP in the Cartesian coordinate system of the commanded posture. Once the workspace constraints and kinematic motion constraints are calculated, the data from the motion constraint handler 390 is returned to the behavior controller 186 and transferred to the constraint solver 384.
[0207] Data from the handheld portion to the TCP is also transformed using inverse kinematic calculations. After the inverse kinematic correction is performed and reduced to a set of commanded joint positions, this data is further processed to calculate joint limit constraints and joint centering constraints. These constraints are calculated in joint space. Joint limit constraints may be calculated based on the previous commanded joint position or measured joint position of each actuator, a constraint Jacobian Jp that maps the one-dimensional joint limit constraint to a coordinate system used for the virtual simulation (e.g., between joint motion and virtual mass coordinate system VM), and one or more limit positions. Joint centering constraints are calculated based on a constraint Jacobian Jp that maps the one-dimensional joint centering constraint to a coordinate system used for the virtual simulation (e.g., between joint motion and virtual mass coordinate system VM), the previous commanded joint position or measured joint position, and the joint centering position. 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.
[0208] Furthermore, the inverse kinematic data conversion generates a command joint position (Joint Pos Cmd) and a joint velocity command (Joint Vel Cmd) for each actuator, and sends the processed data to the joint position-velocity controller (one for each actuator) and the drive command handler 192 for processing to determine the joint movement velocity override.
[0209] The motion controller 188 transmits the commanded position of each actuator to the drive command handler 192, which may compare one or more commanded or measured positions of each actuator with their respective joint thresholds to determine whether an override to the drive motor M is necessary (see the box identified as joint position velocity override). In other words, once the control system 60 has determined the commanded position for each actuator to move the TCP to the target posture, it may control the operation of the drive motor M based on the position of one or more of the actuator tools. The position of one or more actuators may be based on the commanded joint position of at least one actuator, the measured position of at least one actuator, the previous commanded position of at least one actuator, the previous measured position of at least one actuator, or a combination thereof. In one example, the drive motor M is controlled based on the commanded position of at least one of the actuators 21, 22, and 23. The commanded joint position of at least one actuator 21, 22, and 23 is compared with the actuator motor override limit of at least one actuator 21, 22, and 23. The motor override limit may be a single value or a set of values that define an outer boundary of a certain range. In this example, monitoring of one actuator is demonstrated, but the control system may monitor the commanded position and the actuator motor override limit of each actuator 21, 22, and 23. The upper and lower limits of the actuator motor override limit may correspond to the position of the actuator relative to the operating range of each actuator. The upper limit may correspond to the maximum allowable travel in a first direction before the drive motor parameters are adjusted, and the lower limit may correspond to the maximum allowable travel in a second opposite direction before the drive motor parameters are adjusted. More specifically, the control system 60 controls the motor parameters of the drive motor M by first and second values 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, operating time, current, or a combination thereof. In one example, the motor parameter controlled by the control system 60 is motor speed, with a first value of zero (drive motor M is off) and a second value greater than zero (drive motor M is on). The control system 60 switches the motor parameter between the first and second values based on the commanded positions of actuators 21, 22, and 23. When the commanded positions of actuators 21, 22, and 23 cause the actuators to fall within the upper and lower limits of the motor override limit, the control system 60 may command the second value of the drive motor parameter to activate and / or continue energizing the drive motor M. When the commanded actuator position is between the lower and upper limits of the motor override limit, the joint velocity command override is not changed.
[0210] In some examples, the drive motor override may be implemented as a lookup table or function evaluated based on received actuator position (P) data. In the example of joint position velocity override, this causes the drive motor speed to decrease proportionally as the joint position approaches its motor override limit. In some examples, no change may be necessary when the actuator position is within the lower and upper motor override limits. In other examples, when one or more of the actuators 21, 22, and 23 are in the 80% to 95% travel range, the drive motor M speed may decrease proportionally and be completely disabled for travel exceeding 95%, thereby providing the user with continuous and stepwise feedback that the tool 20 is approaching its operating limits (lower and upper motor override thresholds). In such embodiments, there may be multiple lower motor override thresholds and multiple upper motor override thresholds, each threshold corresponding to a motor parameter (motor speed, etc.). In some cases, the speed of the drive motor M may not decrease completely to zero, but rather to a certain low speed, thereby warning the surgeon, but allowing the surgeon to decide whether or not to proceed. If the commanded position of actuators 21, 22, and 23 causes the actuator to fall outside the upper and lower limits of the motor override limit, the control system 60 may command a first value for the drive motor parameter to prevent the drive motor M from operating and / or continuing to be energized. The motor override limit for each actuator may differ from the joint threshold for each actuator as described above. For example, the motor override limit may define a narrower range than the range defined as the joint threshold, and the range of the motor override limit may be within the range of the joint threshold overall.
[0211] The joint position-velocity controller 194 processes data from the motion controller 188 and uses the commanded joint position command (Joint Pos Cmd) and joint velocity command (Joint Vel Cmd) to determine the joint torque command (Joint Torque Cmd) for each actuator. The calculation of the joint torque command may be performed through a closed-loop control algorithm such as PID control. The joint torque command is transmitted to the surgical instrument, where each current controller corresponding to each actuator interprets the joint torque command as a current. The current controller then selectively applies the voltage required to drive the command current to each actuator motor, causing each actuator to move the tool support toward the commanded position. The applied torque (or current) may move and accelerate each actuator in the corresponding direction. The amount and speed of movement and acceleration of the actuators may depend on mechanical load, friction, other external factors, or a combination thereof. The command torque (current) is adjusted by the position-velocity controller so that the commanded position of each actuator is closely tracked by monitoring each actuator position feedback over time. As the actuator motor adjusts the tool support, each motor encoder collects rotation and / or position data for each rotor and sends joint position data back to the current controller. The current controller then processes the joint position data of each actuator into joint velocity measurements (Joint Vel Meas) and joint position measurements (Joint Pos Meas), and transmits the joint velocity and joint position data to the motion controller 188 through the joint position-velocity controller. The motion controller 188 then transforms the joint position and velocity data of each actuator using forward kinematics to generate attitude and velocity relationships between the TCP and the handgrip 16. The handgrip-TCP relationship is then transmitted to the constraint generator 384, which makes this data available to the generator for generating various virtual constraints.
[0212] In addition, referring to Figure 31, joint velocity measurement and joint position measurement may be used in the PID control loop. For example, the PID loop may calculate the error between the commanded position of the joint and the measured position of the joint, and these may be used in conjunction with the PID loop to control the commanded velocity of the joint. The commanded velocity of the joint may be compared with the measured velocity of the joint to determine the error. This error may be used in the PID loop to control the commanded current. The commanded current may be compared with the measured current to determine the error. This error may be used in the PID loop to output the commanded joint voltage.
[0213] The drive command handler 192 is part of a control system that calculates and determines specific parameters for controlling the drive motor M (Figure 17C). The drive command handler 192 receives input command signals from one or more input devices to actuate the drive motor M. As seen in Figure 17E, an example of an input device is a trigger on the handle of the instrument. Another example, also shown in Figure 17E, is a foot switch. In another example, the drive command handler has a trigger source selector, which may be used to multiplex between multiple user input devices (such as buttons, triggers, and foot switches). In some examples, the trigger source selector evaluates the trigger source change only when both input devices are inactive, and then evaluates which input device will become active first. The selected input device may then determine the proportion 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 drive command handler 192, which then analyzes the proportion of time the input devices were actuated (e.g., how much the trigger was pressed by the user). The drive command handler 192 analyzes the command rate at the maximum permissible speed output from the bone preparation section of the clinical application and modifies the command signal according to the received data.
[0214] The drive command handler 192 may also utilize the 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 boundary. Specifically, as described above, collision detection determines whether the tool is encroaching on the boundary by a threshold amount. Furthermore, the collision detection step processes this position information to determine a boundary velocity override signal. As described above, any number of suitable boundaries, such as distal or lateral boundaries, may be used for this collision detection step. The boundary may also be implemented as the distance between the tool and a reference position on the bone. Based on this comparison, the instrument controller 28 may modify motor parameters that can be used to decelerate or stop the drive motor M.
[0215] In this example, a separate global inside / outside check, using techniques such as raycasting or voxel lookup, determines whether the tool 20 has completely crossed the boundary. It should be understood that, if the tool is in contact with the boundary, the drive motor control may use the penetration depth calculated above to determine whether any part of the blade has penetrated beyond a threshold. 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 has evaluated whether the tool 20 has crossed the boundary, constraints may be generated and the tool support posture may be updated in a manner that prevents the tool from violating the boundary. However, if the user continues to move the tool beyond the boundary after the joint limit has been reached, if the handgrip portion 16 is moved too quickly, if the bones move too quickly, or if the tool 20 moves beyond the boundary in an uncontrolled degree of freedom, the boundary may be violated. In this example, the global inside / outside check fails, and the drive motor M is turned off or modified as described above.
[0216] In addition to boundary velocity override and joint position velocity override functions, the command signal is then sent to determine whether the error handling override condition is met (whether the command is within the expected range for normal processing). If the error handling condition is also met, the drive speed command is sent from the drive command handler 192 to the drive speed controller.
[0217] It should be understood that boundary velocity overrides (controlling the driver motor speed based on boundaries), joint position velocity overrides (controlling the driver motor speed based on actuator position), and error handling overrides can all be active simultaneously and each may provide a partial override. For example, a boundary velocity override might reduce the speed by 10%, i.e., multiply the input by 0.9, and then the next block might further reduce the speed by 20%, i.e., multiply its (already reduced) input by 0.8, in which case the resulting output speed would be 0.9 × 0.8 = 0.72 times the original requested speed command. In other words, the override multiplier (input-to-output gain) applied by each block does not depend on what the other override blocks have determined. In addition to this (cascaded multiplication) method, there may be other ways to combine multiple override sources, such as using only the most restrictive overrides.
[0218] The drive speed controller processes the drive speed command signal and determines the drive torque command to be sent to the current controller in the handpiece. The current controller converts this 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 the tool (e.g., cut). The drive motor encoder monitors the operation of the drive motor and sends back an encoder signal regarding the operation of the drive motor 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.
[0219] As shown in Figures 17A to 17C, the two inputs to the constraint generator 384 include the current state (localizer data, kinematic data) and the target state (cross-section relative to the localizer tracker). The constraint generator 384 obtains the target state for the tool 20 and generates one or more guide constraints based on the target state and the current state of the handgrip. Since the previous command pose CP correlates with the current pose of the tool 20, the current state may be defined based on the previous command pose CP. The target state may be defined in an anatomical coordinate system or an anatomical structure tracker coordinate system, etc., and may be converted to a coordinate system common to the current state. The other input to the constraint generator 384 includes configuration parameters and adjustment 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 target state, as well as the configuration parameters and adjustment parameters. The guide constraints are output from the constraint generator 384 to the constraint solver 189.
[0220] A variety of virtual constraints may be supplied 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 sensing forces. These constraints may be turned on or off by the control system 60. For example, in some cases, neither joint centering constraints nor boundary constraints may be generated. Similarly, in some examples, and in certain operating modes, guide constraints may not be generated. All virtual constraints used in the behavior control unit 186 may affect the movement of the tool 20.
[0221] The constraint solver 189 calculates the constraint force Fc that should be virtually applied to the tool 20 in the virtual simulator 388, based on the virtual constraints supplied to the constraint solver 189. If a guide constraint is active, the constraint force Fc includes force and / or torque components adapted to move the tool 20 from the current state to the target state, based on one or more virtual constraints. If only the guide constraint is input to the constraint solver 189, the constraint force Fc is considered to be a virtual force calculated to satisfy the guide constraint. However, if other constraints such as boundary constraints, joint centering constraints, and / or joint limit constraints are used, the constraint solver 189 is ultimately tasked with providing a solution for the constraint force Fc that satisfies all constraints as much as possible, based on their respective adjustment parameters, and other constraints may also affect the magnitude / direction of the constraint force Fc.
[0222] As described below, to solve for Fp, the equation shown in Figure 26 is transformed into a matrix equation where each row represents a single one-dimensional constraint. The constraint data is placed within the constraint equation along with other information known to the constraint solver 189, such as the external force Fcgext, the damping force Fdamping (if applicable), the inertial force Finertial, the virtual mass matrix M, the virtual mass velocity Vcg1, and the time step Δt (e.g., 125 microseconds). The resulting Fp is the force vector expressed in the constraint space, where each component of Fp is a scalar constraint force or torque acting along or around the constraint direction corresponding to that row of the constraint equation.
[0223] The virtual mass matrix M is a combination of a 3x3 mass matrix and an inertia matrix. The damping force Fdamping and the inertial force Final 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 velocity vector with six degrees of freedom, including linear and angular velocity components. The damping force Fdamping is a force / torque vector with six degrees of freedom, calculated as a function of the virtual mass velocity Vcg1 and the damping coefficient matrix (linear coefficients and rotational coefficients may not be equal). Damping is applied to the virtual mass to improve stability. The inertial force Final is also a force / torque vector with six degrees of freedom, 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 accordance with the manner described in U.S. Patent No. 9,566,122 to Bowling et al., which is incorporated herein by reference.
[0224] The constraint solver 189 may be constructed using any appropriate algorithmic instruction (e.g., an iterative constraint solver, a projected Gauss-Seidel method solver, etc.) to provide a solution that satisfies the system of equations (e.g., various constraints). In some cases, not all constraints may be satisfied simultaneously. For example, if the motion is excessively constrained by various constraints, the constraint solver 189 will essentially find the "optimal" solution for the relative rigidity / attenuation of the given various constraints. The constraint solver 189 solves the system of equations and finally outputs the constraint force Fc.
[0225] When the projected Gauss-Seidel method solver is used, the constraint solver 189 constructs matrices A and b based on the constraints, solves the system of equations using the projected Gauss-Seidel method to obtain the resulting force vector Fp, takes the output of the projected Gauss-Seidel method, and transforms the output from the constraint space to the virtual mass coordinate system VM using the aggregated 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 aggregated action of the components of Fp is transformed into a force / torque vector Fc applied to the virtual mass coordinate system VM.
[0226] Methods for using the projected Gauss-Seidel method to solve systems of equations with multiple constraints are 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.
[0227] The projected Gauss-Seidel method addresses linear complementarity problems (LCPs). Some constraint types (e.g., unidirectional constraints such as boundary constraints, joint limit constraints, and work space limit constraints) can only apply force in one direction, such as positive constraint forces, leading to inequalities associated with LCPs. If the force calculated for such constraints is negative (or, more broadly, outside its tolerance range) and invalid for a given iteration of the constraint solver 189, then the given constraints must be truncated (or alternately limited / capped at their upper or lower tolerances) until a suitable result (i.e., convergence) is found, and the remaining constraints must be solved. In this way, the constraint solver 189 determines the active set of constraints for a given time step and then solves for their values. Other constraint types can apply force in both positive and negative directions, such as bidirectional constraints. These include guide constraints, joint centering constraints, and kinematic motion constraints. Such dual constraints, once enabled, are normally active and are not truncated / restricted during iterations of constraint solver 189.
[0228] The constraint force Fc calculated by constraint solver 189 includes three force components along the x, y, and z axes of the VM coordinate system, and three torque components around the x, y, and z axes of the VM coordinate system. Virtual simulator 388 utilizes the constraint force Fc in its virtual simulation, along with external force Fcgext (if used), damping force Fdamping, and inertial force Final (all of which may contain six components of force / torque). In some cases, these components of force / torque are first transformed into a common coordinate system (e.g., virtual mass coordinate system VM), and then summed up to define the 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 virtual simulator 388. Virtual simulator 388 thus functions to effectively simulate how various constraints, among many others (e.g., external forces), affect the motion of the virtual rigid body. The virtual simulator 388 performs forward dynamics to calculate the attitude and velocity of the six degrees of freedom of the virtual rigid body based on a given total force FT applied to the virtual rigid body. In one example, the virtual simulator 388 includes a physics engine, which is executable software stored in one or more non-temporary memories of the aforementioned controllers 28, 36 and implemented by the control system 60.
[0229] For virtual simulations, the virtual simulator 388 models tool 20 as a virtual rigid body in the 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 body representation of tool 20 for the purpose of virtual simulation. The virtual rigid body can move freely according to the virtual simulation, following six degrees of freedom (6-DOF) in orthogonal space. The virtual simulation may be processed computationally without visual or graphical representation. Thus, it is not necessary for the virtual simulation to display the dynamics of the virtual rigid body. In other words, the virtual rigid body does not need to be modeled within a graphics application running on the processing unit. The virtual rigid body may exist solely for the purpose of virtual simulation.
[0230] The virtual rigid body and its properties (mass, inertia matrix, center of mass, principal axis, etc.) are used to determine the total force F, which incorporates the forces and torques applied by the user using the virtual force and torque as arbitrary. T This defines how the tool 20 moves in response to (from). This governs how the tool 20 moves in response to the current conditions (e.g., accelerating in translation and rotation). By adjusting the properties of the virtual rigid body, the control system 60 can adjust how the tool 20 reacts. For the most realistic motion possible, it may be desirable, but is not required, that the properties of the virtual rigid body be modeled to be reasonably close to the actual properties of the tool 20. For reasons of control stability (considering the 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.
[0231] The virtual rigid body may correspond to components that may be on or within the tool 20. In addition to or alternatively, the virtual rigid body may partially extend beyond the physical tool 20. The virtual rigid body may take into account the tool 20 having a tool support 18, or it may take into account the tool 20 without a 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 on the virtual rigid body and the virtual rigid body were not subject to other constraints. The center of mass of the virtual rigid body may be close to, but not identical to, the actual center of mass of the tool 20. The center of mass of the virtual rigid body can be determined empirically. Once the tool 20 is attached to the tool support 18, the position of the center of mass may be readjusted to suit the preference of the individual practitioner. In some cases where external forces are not used in the virtual simulation, the precise numerical properties and units of the virtual mass (e.g., center of mass position, mass, inertia matrix) become somewhat arbitrary, since the virtual simulation does not interact with physical forces measured from the real world. In such cases, for the sake of computational simplicity, it may be desirable to simply place the virtual mass in TCP, set the mass to 1, and set the inertia matrix to the identity matrix. Other options are possible, but more realistic properties for the virtual rigid body may be set if desired, in order to allow for the adjustment of constraints in physically reasonable units. In any case, the constraint adjustment parameters should take into account the properties selected for the virtual mass.
[0232] The virtual simulator 388 applies forces and / or torques to a virtual rigid body in a virtual simulation, that is, the total force F at the center of mass of the virtual rigid body in the virtual mass coordinate system VM. T By virtually adding force and torque components, the dynamics of the rigid body of tool 20 are effectively simulated. Thus, the force / torque virtually applied to the virtual rigid body is the external force F. cgext (For example, it may be based on input from one or more sensors), damping force F damping, inertia force F inertial , and / or (constraining force F) c Constraining forces F related to various constraints (as they are embodied in the context) c It may include forces / torques related to forces / torques from other sources.
[0233] The Jacobian of a rigid body can be used to transform velocity and force from one coordinate system (reference frame) to another on the same virtual rigid body, F ext To similarly convert the forces and torques to the virtual mass coordinate system VM (for example, F used in constraint equations) cgext (To derive) may be used here. The virtual simulator 388 then calculates the damping force F damping and inertial force F inertial The damping force F is calculated internally and used by the constraint solver 189 in the system of equations in the next time step. damping and inertial force F inertial Outputs F ext These forces may also be supplied to the constraint solver. These forces may be summed up and then input together with the constraint forces to obtain the sum calculation.
[0234] Total power F T To simulate the motion of a virtual rigid body when it is in motion during application, a virtual forward dynamics algorithm, as shown in Figures 26 and 27, may be used in the virtual simulation. In effect, the virtual forward dynamics algorithm solves equation F=ma (or a=F / m) with 6 degrees of freedom, integrates the acceleration to derive the velocity, which is then integrated again to determine the new attitude, details of which are shown in Figure 27. The control system 60 controls virtual forces and / or torques (e.g., total force F TThe virtual forces and / or torques are input to 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 position with an initial velocity. The virtual rigid body is moved to a final position with a final velocity, having a different state (i.e., position and / or orientation) in orthogonal space, in response to the control system 60 satisfying the input virtual forces and / or torques. The next command position CP to be transmitted to the instrument controller 28 is based on the final position calculated by the virtual simulator 388. Thus, the virtual simulator 388 uses virtual forward dynamics to apply a total force F to the virtual rigid body, as shown in Figure 27. T It operates to determine the next command attitude CP by simulating the effect of adding [a certain parameter].
[0235] While the virtual simulation is performed with 6 degrees of freedom, it should be noted that the actuator assembly may be controllable with fewer than 6 degrees of freedom, such as 3. In such situations, kinematic motion constraints may be used to restrict uncontrolled degrees of freedom so that the simulation can be performed meaningfully (i.e., so that the VM coordinate system remains aligned with the physical tools).
[0236] A velocity limit may be imposed on the virtual rigid body in the simulation. In some cases, the velocity limit may be set high so as not to affect the simulation in general, or it may be set to any desired value. In some cases, the velocity limit may be implemented by nonlinearly calculating the damping force to be applied to the virtual rigid body, in which case the amount of damping increases considerably above a threshold velocity. The virtual rigid body is in an initial posture (initial state) and has an initial velocity at the start of each iteration of the virtual simulation (e.g., each time step / interval dt). The initial posture and initial velocity may be defined as the final posture and final velocity output by the virtual simulator 388 in the previous time step.
[0237] Subsequently, the virtual simulator 388 calculates and outputs the next command attitude CP based on the virtual simulation. In this embodiment, the control system 60 is configured to command the tool support 18 to move the tool 20 based on the command attitude CP, which ideally causes the tool 20 to move in a manner that guides it to a target state and according to other virtual constraints.
[0238] Figure 28 summarizes the various steps performed by the motion control unit 186. These include steps performed by the constraint solver 189 and virtual simulator 388 as described above. In step 350, the external force F ext This is (optionally) calculated based on readings obtained from the force / torque sensor S or an alternative sensing method. In step 352, constraint data related to various virtual constraints is supplied to the constraint solver 189.
[0239] In steps 354-358, rigid body calculation is performed by the virtual simulator 388, and the inverse mass matrix M of the virtual rigid body is calculated. -1 , inertia force F inertial , and damping force F damping The constraint solver 189 determines the constraint force F, using the output from the rigid body calculation performed in steps 354 to 358 and the constraint data provided in step 352. c Derive the following. In step 366, the constraint force F c However, the external force F is transformed into a virtual mass coordinate system VM. ext (F cgext ), damping force F damping , and inertial force F inertial This is added together, and the total force F T Derive the following. In step 368, the total force F THowever, in addition to the virtual rigid body in the virtual simulation performed by the virtual simulator 388, in step 370, the new attitude and velocity of the virtual rigid body are determined, and finally in step 372, the new attitude and velocity are converted to TCP. New command attitude and velocity (V TCP ) is output by the virtual simulator 388 in step 374.
[0240] Application to the knee Figures 29A to 29D illustrate the application of the guide. In this example, the control system 60 activates guide constraints and virtual constraints to position 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 anatomical structure. The clinical application uses the implant plan to determine the target cutting plane TP relative to the patient tracker 54 and provides this to the control system. Once a specific cutting is selected, positional information related to the positions of the instrument 14 and the patient's anatomical structure is received from the localizer LCLZ. The control system 60 further uses the positions of the device tracker and patient tracker, along with encoder data of the joint positions of each actuator 21, 22, and 23, to determine the orientation of the base coordinate system BCS of the handgrip portion 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 blades 20, 380 toward the target pose. In this example, the control system attempts to position the saw blades 20 and 380 in the target position TP by balancing multiple virtual forces in order to keep the actuators 21, 22, and 23 within their operating limits. The control system 60 generates several guide constraints based on position data. The guide constraints are used in three degrees of freedom to guide the tool support 18 toward 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 around the x and y axes 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. Furthermore, joint limit constraints, which typically have considerably greater rigidity than the guide constraints, are calculated to ensure that the actuators 21, 22, and 23 are not commanded to positions outside their movement limits.
[0241] In some cases, one, two, three, four, or more guide constraints may be used. Furthermore, six or more guide constraints may be used, such as when more than one guide constraint is defined for any degree of freedom. The progression from Figure 29A to Figure 29D shows, for illustrative purposes, how the guided coordinate system GF aligns with the target coordinate system TF with three degrees of freedom. The progression from Figure 29A to Figure 29D shows that the TCP of tool 20 is moving toward the target state (in this case toward the origin of the target coordinate system TF). At each time step, the constraint force F c The tool support 18 is effectively guided to apply forces and torques that ideally move the saw blade 380 toward the target state, taking into account guide constraints, joint limit constraints, working space constraints, joint centering constraints, kinematic motion constraints, or combinations thereof. In one example, when TCP is in this position, only the guide constraints and joint limit constraints are active. The virtual constraints may be dynamic, as their adjustment parameters are adjusted at each time step. For example, as the current state approaches the target state (e.g., as the guided coordinate system GF approaches the target coordinate system TF), some virtual constraints may have stronger spring and / or damping characteristics, while others may have weaker spring and / or damping characteristics. In one example, the guide constraint has stronger spring and / or damping characteristics as the current state approaches the target 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 coordinate system GF approaches the target coordinate system TF.
[0242] In one example, the control system determines a target posture of the saw blade 380 in at least one degree of freedom relative to a known coordinate system such as the patient's anatomical structure. The control system 60 also determines the posture of the hand-held portion 16 within the same coordinate system, that is, relative to the patient's anatomical structure. The control system 60 then processes the position information of the saw blade 380 and the hand-held portion 16 to calculate one or more guide constraints based on the target posture of the saw blade 380 and the posture of the hand-held portion 16. When one or more guide constraints are generated, a constraint force is calculated by the control system 60 and adapted to move a virtual saw blade within a virtual simulation. The virtual simulation simulates the dynamics of the virtual saw blade based on the constraint force and calculates a commanded posture based on the virtual simulation. The commanded posture is output from the virtual simulation and used to determine the commanded joint position of each of the actuators 21, 22, 23. The control system 60 transfers a commanded joint position signal to each of the actuators 21, 22, 23 and energizes the actuators 21, 22, 23 to move the tool support 18 and the saw blade 380 to the target posture.
[0243] Figures 18 - 20 show another example of a guide used when positioning the tool 20 (e.g., having a saw blade 380) in a target state. In this example, the control system 60 activates the guide and related guide constraints to assist the user in positioning the TCP of the tool 20 in a target posture in at least one degree of freedom relative to a desired cutting plane 73c for total knee arthroplasty, which includes positioning the TCP in a target orientation and elevation to align 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 of 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 towards the target posture. In one example, three guide constraints are utilized in three degrees of freedom to move the saw blade to the target state, that is, one position constraint along the z-axis of the target coordinate system TF and two orientation constraints around the x and y axes of the target coordinate system TF are utilized.
[0244] At each time step, the constraint force F c is calculated, and the tool support 18 is effectively guided to apply forces and torques that ideally move the saw blade 380 towards the target state, taking into account active virtual constraints (such as guide constraints, joint limit constraints, joint centering constraints, kinematic movement constraints, and / or workspace constraints). The virtual constraints may be dynamic, by adjusting their adjustment parameters at each time step. Referring to FIG. 20, for example, the guide constraint may have greater stiffness as the current state approaches the target state (e.g., as the guided coordinate system GF approaches the target coordinate system TF in the x-axis direction (refer to the x distance)). Thus, referring to FIG. 20, the stiffness associated with the adjustment parameter for the guide constraint may increase in magnitude as the x distance decreases.
[0245] Alignment of the tool 20 with respect to the desired cutting plane assists the user, for example, in making accurate cuts along the femur and / or tibia to create a margin for a total knee joint implant. Referring again to FIG. 13, the guide constraint may be used to align the tool 20 with each of the five target cutting planes TP, 73a - 73e, that may be required on the femur. The guide constraint may likewise remain active during the cutting process so that the blade is maintained in the target state.
[0246] Furthermore, a virtual boundary 184 may be optionally used to control the operation of the drive motor M. When the drive motor M is activated and vibrates the saw blade 380 during cutting, the activation signal to the drive motor M may be stopped and / or modified based on the state of the saw blade 380 relative to the virtual boundary 184. The virtual boundary 184 can prevent the user from inappropriately cutting the patient's anatomical structures, in particular, it can prevent the saw blade 380 from cutting parts of the patient's anatomical structures (e.g., ligaments) that are not intended to be affected. As shown in Figure 18, one or more motor parameters of the drive motor are controlled as the saw blade 380 is advanced along the target cutting plane. 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 conceivable. A virtual boundary, such as that shown in Figure 13, corresponds to a specific cut endpoint, depending on which cut the user is attempting to make, in order to fit the implant to the patient's anatomical structure. In other examples, the virtual boundary 184 may be a mesh, points, a plane, or a combination thereof, as described above. The virtual boundary may be based on anatomical structure, planned implant, image data, etc. As the saw blade 380 progresses through the patient's anatomical structure, 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.
[0247] In another example, the drive motor M is controlled based on the orientation of the tool relative to the boundary 184 in at least one uncontrolled degree of freedom in which the actuators 21, 22, and 23 cannot adjust the tool support 18. The controlled degrees of freedom are the directions of motion controlled by the actuator assembly 400 and are based on the arrangement of the actuators 21, 22, and 23. In some configurations, the arrangement of the actuator assembly 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 assembly 400 is arranged to control pitch (Figures 3A-3C), roll (Figures 4A-4C), and z-axis translation (elevation angle relative to the handgrip 16 (Figures 5A-5C)). The instrument 14 is able to adjust the tool support 18 and the tool 20 relative to the handgrip in these directions of motion. If the degrees of freedom are not controlled, the actuators 21, 22, and 23 cannot be adjusted in their particular direction. For example, in some configurations, the actuators 21, 22, and 23 are arranged to control pitch, roll, and z-axis translation (elevation angle relative to the handgrip 16), so the yaw of the tool support 18 cannot be adjusted. In another example, if the actuators 21, 22, and 23 are arranged to control pitch, roll, and z-axis translation (elevation angle relative to the handgrip 16), the actuator assembly 400 does not control translational movement along the longitudinal axis, so linear translation along the longitudinal axis (x-translation) is an uncontrollable degree of freedom. Thus, in degrees of freedom that cannot be controlled 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 depth of the tool as described above. As mentioned above, the boundary for controlling the depth may be approximately perpendicular to the target plane. Therefore, this boundary may not be used to control multiple actuators, but the boundary may be used to control the drive motor.In some examples, both uncontrolled and controlled degrees of freedom may be used as inside / outside checks to control the drive motor M. The control system 60 may also use controlled degrees of freedom as a mitigation for secondary errors, such as when the saw blade does not remain on the plane due to error or failure. In this example, both controlled and uncontrolled degrees of freedom, along with the boundary, control the energization of the drive motor M. Thus, the actuator assembly does 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 operating the drive motor M when the TCP indicates that the distal end of the tool has crossed the boundary. It should be understood that a virtual boundary may also be used to control the drive motor in the controlled degrees of freedom.
[0248] The control system may calculate appropriate motion parameters for moving the tool support relative to the handgrip. These motion parameters may be calculated based on the commanded position. Based on these determined motion parameters, the control system may calculate appropriate signals to send to each of the actuators. In one example, the control system may output joint velocity commands based on the determined motion parameters and commanded position for that actuator. In some examples, it should be understood that the tool support moves relative to the handgrip at a variable speed. The movement of each actuator may be based on the force applied to the tool support by each of the actuators.
[0249] Referring to Figures 30A and 30B, once the cut is established, the control system 60 may automatically adjust the values of one or more motion parameters of the tool 20 relative to the handheld portion 16 using one or more virtual constraints as the user cuts a target cutting plane related to the patient's anatomical structure (e.g., the bone being cut). In one example, a guide constraint is activated while approaching the cut, and the tool is automatically aligned to the target plane. The control system 60 maintains the active state of the guide constraint when the tool makes contact with the bone and penetrates beyond a defined depth boundary, reference position / reference coordinate system distance parameter. The moment the tool passes through 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, activates the joint centering constraint, and deactivates the guide constraint. This causes the system to enter freehand mode with the alignment of the saw blade relative to the handle frozen, as it was when it first entered the bone and progressed. The user can continue cutting, but because the guide constraint is inactive, the control system 60 does not automatically correct the alignment while the blade remains in the bone beyond a specified depth. Even though the instrument is frozen in a fixed position, the blade remains almost on the cutting plane because the slot in the bone formed by the initial cut mechanically constrains the blade's movement so that it remains within the cutting plane. When the user begins to move the blade toward the bone exit, the system returns to a mode in which the guide constraint is active when the depth becomes less than a previously set value (for example, when the blade's 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 blade alignment relative to the plane. By disabling the guide constraint and enabling the joint centering constraint, the tool prevents or reduces the likelihood of the blade becoming embedded in the bone. When a certain cutting depth is reached in hard bone, the blade is effectively constrained vertically by the slot in the bone formed during the initial cutting entry.Even a slight error in the precision of the blade alignment (due to inaccurate calibration, blade wear or penetration due to misalignment, etc.) can prevent the robotic system from returning the blade to the cutting surface, as the upper and lower parts of the blade will not remove bone, and the already processed surface of the bone may also prevent the blade from returning to the cutting surface. As a result, the control system is limited in its ability to restore the blade alignment when it has penetrated deep into the bone, and if a bond occurs, the user will need to apply increased force to complete the cut. Such an approach may ensure that guide constraints are enabled when the bone approaches (within the threshold of the reference position / reference coordinate system) and during the initial cutting entry, ensuring that the initial cutting entry performed in the bone is as accurate as possible, and that this alignment is continued until a certain depth is reached that is sufficient to mechanically restrict further (deeper) movement of the blade.
[0250] In this example, the guide constraint may have a virtual force approaching zero, meaning that the guide constraint can be blocked and / or its adjustment parameter can be adjusted since the saw blade is established in the cut (Figure 30B). The joint centering constraint that directs the rotor 148 toward the center point on the lead screws of each actuator 21, 22, 23 may also be blocked and / or reset to the current centering position of actuators 21, 22, 23 once a specified cutting depth is reached while the saw blade 380 is cutting into the patient's anatomical structure (Figure 30B). The control system 60 may automatically change the adjustment rate of actuators 21, 22, 23 based on distance parameters (e.g., direction, magnitude) determined from the orientation of the tool 20 relative to a reference position related to bone (e.g., from TCP). The orientation of the tool 20 may be maintained while the guidance array 200 instructs the user to move the handgrip portion 16 to maintain or correct to a desired plane. It is intended that joint limit constraints and / or workspace constraints may remain active even after the cut has been established.
[0251] Referring to Figure 30A, one exemplary method of controlling multiple actuators is described. When the saw blade position (TCP) is separated from a reference position (RL) related to the bone by a first distance parameter (DP1), the instrument is controlled so that the tool support moves relative to the handhold, for example, using a movement parameter with a magnitude greater than zero. This is because the cut is not yet fully established. In this example, the guide constraint has a value greater than zero and a high rigidity value, actively adjusting and commanding the tool support 18 to remain on the desired cutting plane.
[0252] Referring to Figure 30B, when the saw blade position (TCP) is separated from the bone-relative reference position (RL) by a second distance parameter (DP2), the instrument is controlled to have a lower magnitude for the motion parameter, such that, for example, a magnitude of zero is used, or otherwise the movement of the tool support relative to the handgrip is stopped. This is because the cut is sufficiently established. In this example, the guide constraint force value is reduced or deactivated, and the joint centering constraint force value is also reduced and / or disabled. Alternatively, the joint centering constraint may be readjusted to maintain this fixed relative posture between the tool support 18 and the handgrip 16.
[0253] Once the tool 20 establishes a cut, the instrument controller 28 may stop or reduce the actuators 21, 22, and 23 from adjusting the tool support 18 relative to the handgrip 16 by setting the values of the motion parameters to a lower magnitude or zero, and / or by controlling the state of the virtual constraints. Once the tool 20 establishes a cutting path in the bone, the tool 20 may move slightly off course and flex (e.g., scrape), and may be pushed back to the handgrip 16 as the control system attempts to correct the error. Since saw blades are typically not designed to remove hard bone in the direction necessary to adjust the pitch and / or roll once embedded in bone, for example, the user may perceive this force as a pushback. The sensation of “pushing back” or “resistance” in the handgrip is generated by the instrument controller 28 controlling the actuators 21, 22, and 23 while the tool 20 is in the cutting slot 290. Thus, the only movement caused by controlling the actuators to move toward the desired plane is the movement of the handgrip 16. This means that the tool controller 28 causes force to be applied to the handgrip portion 16, and that force can then be transmitted to the user's hand. These forces can result in fatigue and / or discomfort during the cutting process. By changing the motion parameters, the tool 20 may provide less resistance further along the cut. The user may find that by setting the motion parameter value to 0, or by otherwise stopping the movement of the handgrip portion relative to the tool support, the cut can be completed without struggling against the handgrip portion 16 while the tool 20 is in the cutting slot 290, allowing the cutting slot 290 to function as a natural cutting guide (see Figures 30A and 30B).More specifically, the instrument controller 28 may actively change the values of motion parameters for each state of force, velocity, acceleration, or other virtual constraints so that as the tool 20 penetrates deeper into the target anatomical structure, the actuators 21, 22, and 23 adjust toward the target plane with relatively smaller forces, velocities, and / or accelerations than when the cut was first initiated, using the cut path through the bone as a guide, and finally stopping the movement of the actuators when the tool 20 is in the middle of the cut. In some examples, an external force / torque sensor may allow user-applied forces to be considered in the virtual simulation. In such cases, the rigidity of the guide constraint may be reduced once the saw blade has penetrated the bone sufficiently and a cut has been established. By reducing the rigidity of the guide and sensing user-applied forces, the constraint solver may find an equilibrium in which the user can balance the guide force with a small applied force. This can provide the user with tactile feedback indicating that the tool 20 is not perfectly aligned on the plane, in a manner that does not cause fatigue or cause the handgrip portion 16 to push back excessively to the point where the joint limits of actuators 21, 22, and 23 are exhausted.
[0254] One exemplary method for controlling the motion parameters of the tool support is, as described above, by changing the state of virtual constraints. For example, changing the state of one or more virtual constraints may include activating one or more virtual constraints, deactivating one or more virtual constraints, or changing the adjustment parameter of one or more virtual constraints (i.e., increasing or decreasing the adjustment parameter of a virtual constraint). When the guide constraint or joint centering constraint is inactive, the joint limit constraint may remain active. In other words, by changing the state of virtual constraints, the tool support 18 may move with greater force, velocity, and / or acceleration (high rigidity for the guide constraint) when the cutting is first initiated, and then with greater force, velocity, and / or acceleration (low rigidity for the guide constraint) after the tool 20 has advanced a threshold distance into the bone relative to the reference position. While stopping actuators 21, 22, and 23 from adjusting the tool support 18 has been described in terms of setting the motion parameters to zero, it should be understood that actuators 21, 22, and 23 may also be stopped using other appropriate control logic, such as stopping an aspect of the algorithm's motion control or by otherwise freezing the positions of multiple actuators 21, 22, and 23. As described above, the state of the virtual constraint may be controlled based on monitoring any appropriate variable, such as the state of the tool, like a saw blade, relative to a reference position in a patient, like a bone. Alternatively, the state of the virtual constraint may be controlled based on the state of the tool relative to a virtual object, such as a target plane. Figure 11 shows the process performed to perform guiding, such as when the tool 20 includes a saw blade 380. In this version, the behavior controller 186 includes a guide handler, which may be synonymous with the constraint generator 384, a constraint solver 189, and a virtual simulator 388. The behavior control unit 186 further includes a boundary handler 389 for arbitrarily generating virtual boundary constraints based on one or more virtual boundaries 184 generated by the boundary generator 182.The guide handler / constraint generator 384, constraint solver 189, virtual simulator 388, and boundary handler 389 each include executable software stored in one or more non-temporary memory of the aforementioned controllers and implemented by the control system 60.
[0255] In addition, in another exemplary configuration, the control system may trigger a joint centering mode based on the magnitude of a sensed external force derived from a force / torque sensor or via the actuator motor current. This allows the control system to detect "resistance" and, when detected, transition to a "fixed handle" mode. Such a method would also typically be used in combination with drive motor boundary control to ensure that the saw blade remains sufficiently on the plane (preferably guided by the cut) when the handle is fixed, allowing cutting to continue. If the boundary is violated (the saw blade has moved too far from the plane), feedback may be given to the user through an appropriate indicator, or the drive motor parameters may be adjusted (e.g., the drive motor may be turned off).
[0256] Guide constraints may be used to align a drill bit or bur and / or tap with respect to screws, anchors or other fasteners when other types of tools are coupled to the tool platform. Guide constraints may be used to align an impactor with a desired trajectory for impacting a acetabular cup implant to seat the acetabular cup implant in a prepared acetabular fossa. Guide constraints may be used to align tools used to seat other types of implants. Guide constraints may be used to align / guide tools for positioning K-wires, cannulas, trocars, retractors, etc.
[0257] Input devices, such as those on various user interface UIs, may be used to switch / activate the various modes of operation of the device 14. For example, the UI of tool 20 may use constraint force F c The control system 60 may have input devices (buttons, touch sensors, gesture inputs, foot pedals, triggers, etc.) that can be activated to activate one or more virtual constraints such that the constraints include force and torque components related to the movement of the tool. The control system 60 may be configured to automatically change the state of the virtual constraints in certain circumstances. The control system 60 may also prompt the user before automatically continuing in another mode, such as by providing a selectable prompt on one or more of the displays 38 to continue in the selected mode.
[0258] Furthermore, it is intended that the instrument controller 28, the user, or both may manually, automatically, or in combination thereof, switch the instrument 14 between modes and behaviors via an input device, based on navigation data, actuator data, drive motor data. In some cases, the user may decide that the instrument should be held in a particular position (tool support relative to the handhold) and override the instrument controller using an input device.
[0259] In some configurations, the surface of the anatomical feature to be cut (e.g., the surface of a bone) functions as a reference point, a virtual boundary, or both, and the instrument controller 28 may cause (i) the instrument 14, (ii) one or more actuators 21, 22, 23, (iii) the guidance array 200, (iv) one or more visual indicators 201, 202, 203, or (v) a combination thereof to change the operating mode or behavior.
[0260] In some examples, the instrument controller 28 may utilize one or more inputs to determine one or more outputs. One or more inputs may include bone posture determined by patient trackers 54, 56, such as reference position, tool center point TCP of tool 20, or posture in the TCP coordinate system by tool tracker 52 on tool support 18, posture of handgrip 16, command posture of tool 20, distance parameters, actuator information (command position or measured position and / or posture, current position and / or posture, past position and / or posture, etc.), input signals from foot switches, triggers or touchscreens, or combinations thereof. One or more outputs of the instrument controller 28 may include changing motor parameters of drive motor M, adjusting motion parameters of tool support 18 (e.g., changing constraint state or adjustment parameters), including changing force, acceleration or velocity, turning off boundary control, holding or freezing tool 20 and tool support 18 relative to handgrip 16, activating homing mode, or combinations thereof. Any suitable combination of inputs may be utilized with any suitable output.
[0261] The current state of the tool 20 and / or the current state of one or more actuators relative to the target state and / or surgical site, or command position, may be output by the navigation system 32 and displayed on the display 38 via graphical representations of the tool 20, tool support 18, handgrip 16, actuators 21, 22, 23, target state, virtual boundary 184, and / or surgical site, such as the femur F, tibia T, pelvis, vertebrae, or other anatomical structures. These graphical representations may be updated in real time so that the user can visualize their movements relative to the target state, virtual boundary 184, anatomical structures, etc. For example, the graphical representations of the tool 20 and anatomical structures may move in real time on the display 38 along with the actual movement of the tool 20 by the tool support 18 and the actual movement of the anatomical structures.
[0262] It should be understood that the combination of an object's position and orientation is called its posture. Throughout this disclosure, the term posture is intended to be replaceable by position and / or orientation in one or more degrees of freedom, and vice versa, in order to achieve a preferred alternative to the concepts described herein. In other words, any use of the term posture can be replaced by position, and any use of the term position can be replaced by posture.
[0263] The method described herein is, for example, a computer implementation method. For example, all or just some of the steps (i.e., fewer than the total number of steps) in the method described herein can be performed by a computer (e.g., at least one computer). The computer implementation method is configured as the use of a computer to perform a data processing method. Furthermore, in this teaching, the method disclosed herein includes performing the following exemplary steps on at least one processor of at least one computer (e.g., at least one computer is part of a navigation system), which is performed by the at least one processor.
[0264] A computer includes, for example, at least one processor and, for example, at least one memory, for processing data (technically), for example electronically and / or optically. The processor is made of a substance or composition, for example, a semiconductor, for example, a semiconductor that is at least partially n-doped and / or p-doped, for example, at least one of II, III, IV, V, VI semiconductor materials, for example, (doped) silicon and / or gallium arsenide. The described calculation or determination steps are performed, for example, by a computer. The determination or calculation step is, for example, a step of determining data within the framework of a technical method, for example, within the framework of a program. A computer is, for example, any kind of data processing device, for example, an electronic data processing device. A computer can be a commonly conceivable device, for example, a desktop PC, a notebook, a netbook, etc., but it can also be any programmable device, for example, a mobile phone or an embedded processor. A computer may include, for example, a system (network) of “subcomputers,” each subcomputer representing a computer in itself. The term “computer” includes cloud computers, for example, cloud servers. The term computer includes server resources. The term “cloud computing” includes a cloud computing system that includes, for example, at least one cloud computer and a system of multiple operationally interconnected cloud computers, such as a server farm. Such cloud computers are preferably connected to a wide-area network, such as the World Wide W...
Claims
1. A computer-implemented medical program for controlling the movement of a handheld medical robot system used with a tool, the program including instructions to the computer to complete the following steps when the program is executed by a computer: determining a target pose of the tool in a known coordinate system; determining the position of each of a plurality of actuators; determining the pose of a handheld part based on the position of each of the plurality of actuators; determining a command pose of the tool based on the pose of the handheld part and the target pose of the tool; determining guide constraints based on the target pose of the tool and the pose of the handheld part; calculating constraint forces to move a virtual tool toward the target pose based on the guide constraints; simulating the movement of the virtual tool in a virtual simulation based on inputs based on the constraint forces and outputting a command pose based on the virtual simulation; and determining the command joint position of each of the plurality of actuators based on the command pose.
2. The program according to claim 1, further comprising controlling each of the plurality of actuators based on the command joint position of each of the plurality of actuators.
3. A handheld medical robot system used with a saw blade, A handle portion held by a user, and a blade support coupled to the handle portion, the blade support including a saw drive motor for driving the movement of the saw blade, and an actuator assembly that operably interconnects the blade support and the handle portion, and moves the blade support with a plurality of degrees of freedom relative to the handle portion to align the saw blade, the actuator assembly including a plurality of actuators, each of which at least two actuators comprises an actuator assembly connected to the blade support and the handle portion, a localizer, and a control system coupled to the plurality of actuators, the saw drive motor, and the localizer, A handheld medical robot system configured such that the control system determines the target orientation of the saw blade in a known coordinate system, determines the position of each of the plurality of actuators, determines the orientation of the handheld part based on the position of each of the plurality of actuators, determines the command orientation of the saw blade based on the orientation of the handheld part and the target orientation of the saw blade, determines guide constraints based on the target orientation of the saw blade and the orientation of the handheld part, calculates a constraint force to move the virtual saw blade toward the target orientation based on the guide constraints, simulates the movement of the virtual saw blade in a virtual simulation based on the input based on the constraint force, outputs a command orientation based on the virtual simulation, determines the command joint position of each of the plurality of actuators based on the command orientation, and controls each of the plurality of actuators based on the command joint position.
4. The system according to claim 3, further comprising a patient tracker, the patient tracker tracking a portion of the patient in the known coordinate system, the known coordinate system being defined with respect to the patient tracker.
5. The system according to claim 4, wherein the control system is further configured to determine the position of each of the actuators among the plurality of actuators and to determine the posture of the saw blade, and the control system is configured to determine the posture of the handheld portion based on the posture of the saw blade and the position of each of the actuators among the plurality of actuators.
6. The system according to claim 5, wherein each of the plurality of actuators includes an encoder for measuring the position of each of the plurality of actuators.
7. The system according to claim 6, further comprising a tracker coupled to the blade support, wherein the control system is configured to determine the orientation of the saw blade based on the orientation of the tracker coupled to the blade support in the known coordinate system, and to determine the orientation of the saw blade based on the orientation of the saw blade based on the orientation of the tracker coupled to the blade support.
8. The control system is configured to receive the planned orientation of the implant in the known coordinate system, and the target orientation of the saw blade is based on the planned orientation of the implant, according to claim 7.
9. The system according to claim 8, wherein the commanded posture is the relationship between the handheld portion and the saw blade.
10. The system according to any one of claims 3 to 9, wherein the control system is further configured to determine a command joint velocity for each of the plurality of actuators based on the command posture, and to control each of the plurality of actuators based on the command joint velocity of each of the plurality of actuators.
11. The control system is configured to determine the orientation of the saw blade in the known coordinate system and to calculate the commanded orientation using one or more virtual constraints, and the guide constraint is configured to have a value for an adjustment parameter for adjusting the rigidity of the virtual constraint. The system according to any one of claims 3 to 10, wherein the control system is configured to change the value of the adjustment parameter based on the relationship between the target posture of the saw blade and the posture of the saw blade.
12. The system according to any one of claims 3 to 11, wherein the control system is further configured to determine joint centering constraints and to control the plurality of actuators based on said joint centering constraints, the joint centering constraints being virtual constraints representing virtual forces and / or torques used in the virtual simulation to influence the movement of the blade support with respect to the centering position of each of the plurality of actuators.
13. The system according to claim 3, comprising a guide handler, wherein the control system is configured to determine the state of the saw blade and calculate the commanded posture using one or more virtual constraints, the guide constraints having values of adjustment parameters for adjusting the rigidity of the virtual constraints, and the control system is configured to determine the guide constraints and change the values of the adjustment parameters based on the state of the saw blade.
14. The system according to claim 13, wherein the target orientation includes position and orientation, and the guide handler is further configured to determine an angle between the orientation of the saw blade and the target orientation of the saw blade in the known coordinate system, a distance between the position of the saw blade and the target position of the saw blade, or both the angle and the distance, and the guide handler is configured to change the value of the adjustment parameter based on the value of the angle, the value of the distance, or both the value of the angle and the value of the distance.
15. A method for controlling the movement of a handheld medical robot system used with a saw blade, the robot system comprising a localizer, a handheld instrument having a handle portion held by a user, a blade support movably coupled to the handle portion to support the saw blade, and an actuator assembly operably interconnecting the blade support and the handle portion, the actuator assembly comprising a plurality of actuators, the blade support comprising a saw drive motor, The steps include determining the target orientation of the saw blade in a known coordinate system, The steps include determining the position of each of the plurality of actuators, A step of determining guide constraints based on the target position of the saw blade and the position of the handheld portion, A step of calculating a constraint force (Fc) that moves the virtual saw blade toward the target posture based on the guide constraint, The steps include: simulating the movement of the virtual saw blade in a virtual simulation based on the input based on the constraint force (Fc), and outputting a commanded posture based on the virtual simulation; The steps include determining the command joint position of each of the plurality of actuators based on the command posture, A step of controlling each of the plurality of actuators based on the command joint position. Methods that include...
16. The method of claim 15, further comprising tracking a portion of the patient's anatomical structure using a patient tracker in the known coordinate system, wherein the known coordinate system is defined with respect to the patient tracker.
17. The method according to claim 16, further comprising determining the position of each of the actuators among the plurality of actuators and determining the posture of the saw blade, wherein the step of determining the posture of the handgrip portion is based on the posture of the saw blade and the position of each of the actuators among the plurality of actuators.
18. The method according to claim 17, wherein the step of determining the position of each of the plurality of actuators is further defined as measuring the position of each of the plurality of actuators using an encoder coupled to each of the plurality of actuators.
19. The method according to claim 18, further comprising determining the orientation of a tracker coupled to the blade support in the known coordinate system, and determining the orientation of the saw blade based on the orientation of the tracker coupled to the blade support.
20. The method according to claim 19, further comprising planning the orientation of the implant in the known coordinate system, wherein the target orientation of the saw blade is based on the planned orientation of the implant.
21. The method according to claim 20, further comprising determining a command joint velocity for each of the plurality of actuators based on the command posture, and controlling each of the plurality of actuators based on the command joint velocity of each of the plurality of actuators.
22. The method according to any one of claims 15 to 21, wherein the step of determining the target posture of the saw blade is further defined as defining the target posture with at least three degrees of freedom.
Citation Information
Patent Citations
Operation simulation device
JP1999161813A
A surgical instrument comprising a cutting accessory extending from a housing and an actuator for establishing the position of the cutting accessory relative to the housing.
JP2015502180A
A system for arranging multiple objects in an operating room for a surgical procedure
JP2016512073A
Articulated drilling system for multi-planar variable geometry zigzag cutting
JP2017528255A
Surgical instrument equipped with cutting accessory extending from housing and actuator for establishing position of the cutting accessory with respect to the housing
JP2018108439A