Robotic system and method for mitigating undesired orientation of motion of a moving component - Patents.com

JP2024501862A5Active Publication Date: 2025-01-07MAKO SURGICAL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023540083
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-12-31
Filing Date
2021-12-28
Publication Date
2025-01-07
Estimated Expiration
2041-12-28

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The robotic surgical system includes a kinematic chain defined by components of a manipulator and a surgical tool including an energy applicator. At least one controller identifies that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesired oriented motion. The at least one controller alters the operation of the manipulator to mitigate the current or anticipated undesired oriented motion.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS The subject international patent application claims priority to and the full benefit of U.S. Provisional Patent Application No. 63 / 132,821, filed December 31, 2020, the entire contents of which are incorporated herein by reference.

[0002] The present disclosure relates generally to robotic systems and methods for controlling the causes of undesired directional movement of components within a robot's kinematic chain. [Background technology]

[0003] Robotic systems that perform surgical procedures at a surgical site often include a base, a manipulator having multiple links and joints, and an end effector coupled to the manipulator. Often, the end effector includes or supports a surgical tool with an energy applicator designed to remove tissue at the surgical site. A kinematic chain is defined by the base, the links and joints, and the surgical tool including the energy applicator.

[0004] In an admittance controlled robotic system, forces are received as inputs and a commanded position of the energy applicator is output. Due to the inverse kinematic nature of admittance control, the commanded position of the energy applicator is output as a task space (x, y, z) coordinate, and each pose (position and orientation) of the kinematic chain components is output according to a solution that satisfies constraints defined by a complex set of simultaneous equations.

[0005] The energy applicator typically moves along the toolpath according to a commanded position. The speed at which the energy applicator moves along the toolpath is commonly known as the "feedrate" of the energy applicator. Conventional systems have attempted to adjust the feedrate in consideration of conditions or inputs such as manual user selection of the feedrate, tissue characteristics, sensing of the force applied to the energy applicator, path curvature, etc. Adjustments of the feedrate in conventional admittance-controlled robotic systems are responsive only to desired (or intended) inputs or conditions that directly affect the movement of the energy applicator along the toolpath. However, conventional techniques for adjusting the feedrate do not consider the possibility of undesired directed motion occurring in components of the kinematic chain other than the energy applicator (i.e., non-toolpath components), such as the tool shaft, joints, or links of a manipulator. Such non-toolpath components may experience rapid angular velocities, accelerations, or jerk when kinematically manipulated according to complex inverse kinematic solutions. Such undesired directed motion of non-toolpath components can cause inaccuracies in the commanded position. For example, inertia of non-toolpath components may cause unexpected changes in motion or direction, deviating from a commanded position. Moreover, such undesirably directed motion may disrupt the surgical workflow or user experience, as the surgeon may be wary of such motion and may be tempted to manually slow or stop the surgery. There remains a need to at least address the aforementioned shortcomings. Summary of the Invention

[0006] According to a first aspect, there is provided a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator, and at least one controller, wherein the at least one controller is configured to identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience motion in an undesirable direction, and to alter a feed rate of the energy applicator to take into account the motion in the undesirable direction.

[0007] According to a second aspect, there is provided a method of operating a surgical system according to the first aspect.

[0008] According to a third aspect, there is provided a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator, and at least one controller, wherein the at least one controller is configured to identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience motion in an undesirable direction, and to modify operation of the manipulator to take into account the motion in the undesirable direction.

[0009] According to a fourth aspect, there is provided a method of operating a surgical system according to the third aspect.

[0010] According to a fifth aspect, there is provided a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator, and at least one controller, wherein the at least one controller is configured to determine a feedrate defined as a speed at which the energy applicator advances, control the manipulator to advance the energy applicator to a plurality of command positions according to the feedrate, identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesirable directional motion occurring during advancement of the energy applicator according to the feedrate, and modify the feedrate to take into account the undesirable directional motion.

[0011] According to a sixth aspect, there is provided a method of operating a surgical system according to the fourth aspect.

[0012] According to a seventh aspect, there is provided a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by the component including the manipulator's base and the plurality of links and joints, and the surgical tool including the energy applicator, and at least one controller, wherein the at least one controller is configured to determine a feed rate defined as a speed at which the energy applicator advances along a tool path in a semi-autonomous mode, control the manipulator in the semi-autonomous mode to advance the energy applicator to a plurality of command positions along the tool path according to the feed rate, identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesirable directional motion that occurs during advancement of the energy applicator along the tool path according to the feed rate, and modify the feed rate to take into account the undesirable directional motion.

[0013] According to an eighth aspect, there is provided a method of operating a surgical system according to the seventh aspect.

[0014] According to a ninth aspect, a surgical system having at least one controller includes a non-transitory computer-readable medium storing simulation data indicative of undesired directional motion of one or more components of the kinematic chain, the simulation data being obtained from a simulation configured to simulate control of a manipulator to advance an energy applicator to a plurality of commanded positions, and the at least one controller is configured to obtain the simulation data from the non-transitory computer-readable medium, identify based on the simulation data that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesired directional motion, and modify operation of the manipulator to take into account the undesired directional motion.

[0015] According to a tenth aspect, there is provided a method of operating a surgical system according to the ninth aspect.

[0016] According to an eleventh aspect, there is provided a surgical system including a surgical tool including a shaft and an energy applicator at a distal end of the shaft, a manipulator including a base and a plurality of links and joints, the manipulator configured to support the surgical tool, and at least one controller, the at least one controller configured to associate one or more virtual haptic objects with a shaft of the surgical tool at a position on the shaft, associate a virtual boundary with a surgical site with which the surgical tool interacts, detect collisions between the one or more virtual haptic objects associated with the shaft and the virtual boundary associated with the surgical site, and in response to detection of the collision, control the manipulator to inhibit the shaft from crossing the virtual boundary.

[0017] According to a twelfth aspect, there is provided a method of operating a surgical system according to the eleventh aspect.

[0018] Any of the above aspects may be combined in part or in whole.

[0019] With respect to any of the above aspects, any one or more of the following embodiments are contemplated individually or in combination.

[0020] In some embodiments, the at least one controller is configured to determine a feed rate, defined as the speed at which the energy applicator advances.

[0021] In some embodiments, the at least one controller is configured to control the manipulator to advance the energy applicator to a plurality of commanded positions according to a feed rate.

[0022] In some embodiments, during advancement of the energy applicator according to the feed rate, motion in an undesirable direction occurs.

[0023] In some embodiments, the manipulator includes multiple links and joints that are part of a kinematic chain.

[0024] In some embodiments, the feed rate is specifically the rate at which the energy applicator advances according to a commanded position along the tool path.

[0025] In some embodiments, the feed rate is specifically the rate at which the energy applicator advances in a semi-autonomous mode of operation.

[0026] In some embodiments, the at least one controller is further configured to reduce the feed rate by a factor correlated to a magnitude of the undesired motion that one or more components of the kinematic chain other than the energy applicator have experienced or will experience, thereby modifying the feed rate to account for the undesired motion. In some embodiments, the modified feed rate is a non-zero rate that is less than the rate of the feed rate that existed prior to the change in the feed rate.

[0027] In some embodiments, the at least one controller is further configured to compare the undesirable directional motion to a threshold or range, and in response to the undesirable directional motion satisfying the threshold or range, modify the feed rate to take into account the undesirable directional motion, thereby identifying that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience undesirable directional motion.

[0028] In some embodiments, at least one controller is configured to obtain forward kinematic measurements of the kinematic chain during advancement of the energy applicator to a plurality of commanded positions along the tool path according to the feed rate, and to evaluate the forward kinematic measurements to identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience motion in an undesirable direction.

[0029] In some embodiments, the non-transitory computer readable medium stores simulation data indicative of undesired directed motion of one or more components of the kinematic chain, the simulation data being obtained from a pre-operative simulation configured to simulate control of the manipulator in a semi-autonomous mode to advance the energy applicator along the toolpath to a plurality of commanded positions according to a feed rate. In some embodiments, the at least one controller is configured to obtain the simulation data from the non-transitory computer readable medium and, based on the simulation data, identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesired directed motion.

[0030] In some embodiments, one or more sensors are configured to generate measurements related to any one or more components of the kinetic chain. In some embodiments, the one or more sensors include any one or more of a sensor coupled to any one or more of the joints and configured to sense any one or more of joint position, joint velocity, and joint acceleration, a current sensor configured to sense current drawn by any one or more actuators of the joints, a navigation system configured to detect a state of a tracker coupled to any one or more components of the kinetic chain, and a vision system configured to detect motion of any one or more components of the kinetic chain. In some embodiments, at least one controller is configured to analyze the measurements to identify that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience motion in an undesirable direction.

[0031] In some embodiments, at least one controller is configured to store inertia values ​​of any one or more components of the kinetic chain in a non-transitory computer readable medium, and in some embodiments, is configured to utilize the stored inertia values ​​to identify that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience undesired directional motion. In one implementation, the inertia values ​​are rotational inertia values. In one embodiment, the inertia values ​​are translational inertia values ​​or linear inertia values.

[0032] In some embodiments, while advancing the energy applicator along the toolpath in the semi-autonomous mode, the at least one controller is further configured to: enable a reorientation of the surgical tool, identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience an additional undesirable oriented motion in response to the reorientation of the surgical tool, and modify the feed rate to account for the additional undesirable oriented motion in response to the reorientation of the surgical tool. In some embodiments, the reorientation is initiated by a user. In other embodiments, the reorientation is automated by the system.

[0033] In some embodiments, at least one controller is configured to associate one or more virtual haptic objects with one or more components of the kinematic chain, define a virtual boundary, detect collisions of the one or more virtual haptic objects with the virtual boundary, control the manipulator to inhibit one or more components of the kinematic chain with which the virtual haptic objects are associated from crossing the virtual boundary in response to detecting the collision, identify that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesirable directional motion that further results in response to inhibiting one or more components of the kinematic chain in response to detecting the collision, and modify a feedrate to account for the undesirable directional motion that further results in response to inhibiting one or more components of the kinematic chain in response to detecting the collision.

[0034] In some embodiments, the surgical tool includes a shaft and an energy applicator at a distal end of the shaft, and at least one controller is configured to associate one or more of the virtual haptic objects with the shaft of the surgical tool at a location on the shaft other than the distal end, associate a virtual boundary with a surgical site with which the surgical tool interacts, and in response to detecting a collision between the one or more virtual haptic objects of the shaft and the virtual boundary of the surgical site, control the manipulator to inhibit the shaft from crossing the virtual boundary, identify that the shaft is experiencing or will experience undesirable directional motion, and modify the feed rate to take into account the undesirable directional motion that the shaft is experiencing or will experience.

[0035] In some embodiments, the at least one controller is further configured to evaluate an intrusion occurring between one or more virtual haptic objects of the shaft and a virtual boundary of the surgical site, thereby configuring to identify that the shaft is experiencing or will experience motion in an undesirable direction. In some embodiments, a value / magnitude of the intrusion occurring between the one or more virtual haptic objects and the virtual boundary can be evaluated, and the feed rate can be adjusted in response to the evaluation.

[0036] In some embodiments, in response to changing the feed rate to account for motion in an undesirable direction, the at least one controller is configured to identify that one or more components of the kinematic chain other than the energy applicator are no longer experiencing or will no longer experience motion in an undesirable direction, and accordingly restore or resume a feed rate that existed before or was planned after the feed rate change.

[0037] In some embodiments, undesirable direction of motion is further defined as an undesirable one or more of angular velocity, angular acceleration, or angular jerk that is or would be experienced by any one or more components of the kinetic chain other than the energy applicator.

[0038] In some embodiments, the surgical instrument includes a shaft and an energy applicator at a distal end of the shaft, the energy applicator being further defined as a cutting bar.

[0039] In some embodiments, at least one controller is configured to model the surgical instrument and the energy applicator as a virtual rigid body and vary the feed rate of the instrument to account for undesirable directional motion based on virtual forces applied to the virtual rigid body.

[0040] In some embodiments, the at least one controller is configured to calculate the feed rate based on a number of variables, including one or more of: a shape of the space to which the energy applicator is applied, a type of energy applicator, a health condition of the patient, a nature of the tissue to which the energy applicator is applied, and a shape of a path segment of the tool path.

[0041] In some embodiments, in addition to modifying the feed rate to account for undesirable directional motion, the at least one controller is further configured to adjust the determined instrument feed rate based on any one or more of user adjustments of the instrument feed rate, forces and torques to which the energy applicator is exposed, curvature of path segments of the toolpath, instrument output, tissue temperature, and tracker movement of or external forces applied to the patient or anatomical structure.

[0042] In some embodiments, during feed rate changes, the energy applicator advances along a segment of a toolpath that is non-curved and linear.

[0043] In some implementations, the one or more controllers mitigate undesired oriented motion by modifying the manipulator behavior in addition to or in lieu of modifying the feedrate FR. In some implementations, the one or more controllers can predictively or dynamically, for example, manipulate joint motions, joint limits, or joint poses in the null space, change tool trajectories, modify toolpaths, adjust virtual boundaries or other constraints, inhibit user-initiated robot functions such as reorientation, backdrive, or feedrate adjustments, etc.

[0044] Any of the above embodiments may be utilized individually or in combination with any portion of any of the above aspects.

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

[0046] [Figure 1] FIG. 1 is a perspective view of one embodiment of a robotic surgical system. [Diagram 2] 1 is a layout of one embodiment of a manipulator for a robotic surgical system, showing the respective links, joints, and end effectors, as well as tools coupled thereto. [Diagram 3] FIG. 1 is a schematic diagram of one embodiment of a kinematic chain formed by components of a manipulator including a tool and its energy applicator. [Figure 4] FIG. 1 is a block diagram of a control system including components and a controller for controlling a robotic surgical system, according to one embodiment. [Diagram 5] FIG. 1 is a functional block diagram of a software program utilized by a robotic surgical system, according to one embodiment. [Figure 6] 1 illustrates an example output of a boundary generator of a software program, according to one embodiment. [Figure 7] 1 illustrates an example output of a path generator of a software program according to one embodiment. [Figure 8] FIG. 13 is a block diagram of variable inputs available to the path generator to determine a feed rate for the energy applicator. [Figure 9] 1 illustrates an example of an energy applicator advancing along a path segment of a toolpath between command positions, where a feed rate of the energy applicator is prescribed for the path segment. [Figure 10] For example, a schematic example of a particular non-toolpath component of a kinematic chain experiencing undesired directed motion resulting from the advancement of an energy applicator according to a defined feed rate is shown. [Figure 11] 11 illustrates a schematic diagram of a feed rate reduction of the energy applicator of FIG. 10 to mitigate undesired oriented motion of a particular non-tool path component before the energy applicator reaches the next commanded position, according to one embodiment. [Figure 12] 10 illustrates another example of a particular non-toolpath component of a kinematic chain experiencing undesired directional motion, for example resulting from advancing an energy applicator with a defined feed rate. [Figure 13] 13A-13C are schematic diagrams illustrating a reduction in the feed rate of the energy applicator of FIG. 12 to mitigate undesired directional motion of a particular non-tool path component after the energy applicator reaches the next commanded position, according to one embodiment; [Figure 14] FIG. 13 is a block diagram of factors influencing the existence or expected existence of undesirable oriented motion of non-toolpath components of the kinematic chain. [Figure 15] 13A-13C are schematic diagrams illustrating an example of a tool shaft including a virtual haptic object associated with the shaft, where a reaction force is generated in response to a collision between the virtual haptic object and a virtual boundary. [Figure 16] 16A-16C are schematic diagrams illustrating undesired motion experienced by the shaft of FIG. 15 in response to a reaction force from a collision with a boundary and a reduction in feed rate to mitigate the undesired motion, according to one embodiment. [Figure 17] 13A-13C show schematic examples of manipulator reorientation as the energy applicator advances along the toolpath according to a feedrate; [Figure 18] 18A-18C are schematic diagrams illustrating undesirable oriented motion experienced by certain non-toolpath components of the kinematic chain of FIG. 17 in response to an orientation change and a reduction in feed rate to mitigate the undesirable oriented motion, according to one embodiment. [Figure 19] 13 is a flow chart illustrating one embodiment of an algorithm utilized by a robotic surgical system to modify the feed rate of an energy applicator to account for current or anticipated undesirable directional motion. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0047] I. System Overview

[0048] Referring to FIG. 1, a surgical system 10 is shown. The system 10 is useful for treating a surgical site or anatomical volume (A) of a patient 12, such as treating bone or soft tissue. In FIG. 1, the patient 12 is undergoing a surgical procedure. The anatomical structures in FIG. 1 include the femur F and tibia T of the patient 12. The surgical procedure may include tissue removal or other forms of treatment. The treatment may include tissue cutting, coagulation, lesioning, other in-situ tissue treatment, and the like. In some examples, the surgical procedure includes partial or complete knee or hip replacement surgery, shoulder replacement surgery, spine surgery, or ankle surgery. In some examples, the system 10 is designed to remove material to be replaced by a surgical implant, such as a hip implant or knee implant, including a unicondylar, bicondylar, multicondylar, or total knee implant. Some of these types of implants are shown in U.S. Patent Application Publication No. 2012 / 0330429, entitled "Prosthetic Implant and Method of Implantation," the disclosure of which is incorporated herein by reference. The system 10 and techniques disclosed herein may also be used to perform other procedures, surgical or non-surgical, or may be used in industrial or other applications that utilize robotic systems.

[0049] As shown in FIGS. 1-3, the system 10 includes a manipulator 14. A manipulator cart 17 (as shown in FIG. 1) may support the manipulator 14 such that the manipulator 14 is secured to the manipulator cart 17. The manipulator 14 has a base 16 and a plurality of links 18a-18n. In one example, pairs of adjacent links 18 are connected by one of the joints J. The links 18 collectively form one or more arms 23 of the manipulator 14. The manipulator 14 may have a serial arm configuration (as shown in FIGS. 1-3), a parallel arm configuration, or any other suitable manipulator configuration. In other examples, multiple manipulators 14 may be utilized in a multiple arm configuration. According to one example, the manipulator 14 has six joints J1-J6 that implement at least six degrees of freedom (DOF) with respect to the manipulator 14. The manipulator 14 may have any number of degrees of freedom, any suitable number of joints J, and may have redundant joints.

[0050] Each joint J may have an actuator, such as a joint motor 27, disposed between adjacent links 18 (see FIG. 2). The joint motor 27 is configured to rotate the link 18. In this manner, the position of the link 18 is set by the joint motor 27. Each joint motor 27 may be attached to a structural frame inside the manipulator 14. In one example, the joint motor 27 is a servo motor, such as a permanent magnet brushless motor. The joint motor 27 may have other configurations, such as a synchronous motor, a brushed DC motor, a stepping motor, an induction motor, etc.

[0051] The joint motors 27 are positioned at one of a number of angular positions, hereafter referred to as joint angles. The joint angle is the angle of the joint J between adjacent links 18. Each joint J may be configured to receive a joint torque. The joint torque is the rotational or twisting "force" of the joint J, and is a function of the force applied at a certain length from the pivot point of the joint J. A torque sensor may be connected to one or more joint motors 27 to measure the joint torque of the joint J. Alternatively, a signal representative of the current applied to the joint motor 27 may be used to measure the joint torque.

[0052] One or more joint motors 27 may include a position sensor or encoder 19. For simplicity, one joint encoder 19 is shown in FIG. 1, but other joint encoders 19 may be shown as well. Alternatively, one or more links 18 driven by the joint motor 27 may include a position sensor or encoder 19. The encoder 19 may measure the joint angle of each joint J. In some embodiments, two encoders, one for the joint motor 27 and one for the link 18 to be moved, may be used to determine the joint angle, for example, by averaging the joint angle and the displacement between the joint motor 27 and the joint through a compliant transmission. The manipulator 14 does not necessarily require a joint encoder 19, but may instead or additionally utilize a motor encoder present in one or more joints J or in the joint motor 27 of each joint J. Also, the manipulator 14 does not necessarily require a revolute joint, but may instead or additionally utilize one or more prismatic joints. Certain joints J may be passively movable and lockable, while other joints J may be actively driven. Any suitable combination of joint types is contemplated.

[0053] 1, the base 16 of the manipulator 14 is typically part of the manipulator 14 and provides a fixed reference frame for the manipulator 14, or other components of the system 10 in general. Typically, the origin of the manipulator coordinate system MNPL is defined to a fixed reference of the base 16. The base 16 may be defined relative to any suitable part of the manipulator 14, such as one or more of the links 18. Alternatively or additionally, the base 16 may be defined relative to the manipulator cart 17, such as when the manipulator 14 is physically attached to the manipulator cart 17. In one example, the base 16 is defined at the intersection of the axis of joint J1 and the axis of joint J2. Thus, although joints J1 and J2 are actually moving components, the intersection of the axes of joints J1 and J2 is nevertheless a virtual fixed reference pose, which provides a fixed reference for both position and orientation and does not move relative to the manipulator 14 and / or the manipulator cart 17. In another example, the manipulator 14 may be a handheld manipulator, where the base 16 is the base portion of the tool (e.g., the portion held freely by the user or the portion coupled to a defined linkage) and the tool tip is movable (e.g., semi-autonomously) relative to the base portion. The base portion has a reference coordinate system that is tracked and the tool tip has a tool tip coordinate system that is calculated relative to the reference coordinate system (e.g., via motor and / or joint encoders and forward kinematic calculations). The pose of the tool tip relative to the path can be determined so that the movement of the tool tip can be controlled to follow the path. Such a handheld configuration may be similar to that described in U.S. Pat. No. 9,707,043, entitled "Surgical Instrument Including Housing, a Cutting Accessory that Extends from the Housing and Actuators that Establish the Position of the Cutting Accessory Relative to the Housing," the entire contents of which are incorporated herein by reference.

[0054] The tool 20 is coupled to the manipulator 14 and is movable relative to the base 16 to interact with the anatomical structure in a particular mode. The tool 20, in a particular embodiment, is a physical surgical tool and is part of or forms part of an end effector 22 supported by the manipulator 14. The tool 20 may be grasped by a user. One possible arrangement of the manipulator 14 and the tool 20 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. The manipulator 14 and the tool 20 may be arranged in alternative configurations. The tool 20 may be similar to that shown in U.S. Patent Application Publication No. 2014 / 0276949, entitled "End Effector of a Surgical Robotic Manipulator," filed March 15, 2014, which is incorporated herein by reference.

[0055] The tool 20 includes an energy applicator 24 designed to contact and remove tissue of the patient 12 at a surgical site. In one example, the energy applicator 24 is a burr 25 or a surgical cutter. The tool 20 may include a tool shaft 33 having a proximal end coupled to the manipulator 14 and a distal end at which the energy applicator 24 is disposed. The tool shaft 33 rotates about a cutting axis such that the energy applicator 24 can manipulate tissue. The burr 25 may be approximately spherical and may include a spherical center, a radius (r), and a diameter. Alternatively, the energy applicator 24 may be a drill bit, a saw blade, an ultrasonic vibration tip, or the like. The tool 20 and / or the energy applicator 24 may include any geometric characteristic, such as a perimeter, circumference, radius, diameter, width, length, volume, area, surface / plane, range of motion envelope (along any one or more axes), and the like. Consideration of the geometric characteristics may determine how the tool 20 is positioned relative to the tissue at the surgical site to perform the desired treatment. In some of the embodiments described herein, a spherical burr having a tool center point (TCP) is described for convenience and ease of explanation, but is not intended to limit the tool 20 to any particular configuration.

[0056] An example of a manipulator 14 is shown in FIG. 2. In this example, the manipulator 14 has a serial arm configuration. More specifically, the manipulator 14 includes five links 18a, 18b, 18c, 18d, 18e, with link 18a being most proximal to the base 16 and link 16e being most distal to the base 16. The manipulator 14 of FIG. 2 also includes six joints identified as J1, J2, J3, J4, J5, and J6. Joint J1 is disposed between the base 16 and link 18a. Joint J2 is disposed between link 18a and link 18b. Joint J3 is disposed between link 18b and link 18c. Joint J4 is disposed between link 18c and link 18d. Joint J5 is disposed between link 18d and link 18e. Joint J6 is disposed between link 18e and the end effector 22. Because the manipulator 14 in FIG. 2 is a serial arm, movement of any one joint J1-J6 causes movement to all downstream links (ie, all links from the moved joint to the distal end of the manipulator).

[0057] Each joint J1-J6 is configured to rotate about its own individual axis A1, A2, A3, A4, A5, A6, respectively. By having six joints J1-J6, the manipulator 14 is free to move with six degrees of freedom (DOF). That is, the manipulator 14 is free to move translationally forward / backward, up / down, and left / right along three perpendicular axes. The manipulator 14 is also free to change orientation by rotational movements about three perpendicular axes, often referred to as pitch, yaw, and roll. Those skilled in the art will appreciate that the manipulator 14 may perform movements with five DOF, depending on factors such as whether the tool 20 needs to rotate about its own axis. For example, when burring, the manipulator 14 may operate with five DOF since the burr rotates separately. In such a case, there is redundancy since the number of joints is greater than the number of degrees of freedom required. When sawing, the manipulator 14 may operate with six DOF.

[0058] The joint J1 located on the base 16 performs a movement similar to the rotation of the waist. By rotating about the axis A1, the joint J1 allows the manipulator 14 to rotate from left to right. The joint J2 performs a movement similar to the rotation of the shoulder. By rotating about the axis A2, the joint J2 allows the manipulator 14 to extend forward and backward. The joint J3 performs a movement similar to bending the elbow. By rotating about the axis A3, the joint J3 allows the manipulator 14 to raise and lower. The joint J4 performs a movement similar to twisting the wrist. By rotating about the axis A4, the joint J4 allows the manipulator 14 to rotate the upper links 18d, 18e in a circular motion, thereby changing the orientation of the tool 20. The joint J5 performs a movement similar to bending the wrist. By rotating about the axis A5, the joint J5 allows the link 18e and the surgical tool 20 to tilt up and down, and is responsible for the pitch and yaw movements. Similar to J4, the joint J6 performs a movement similar to twisting the wrist. Joint J6 rotates about axis A6 to allow for more precise control of tool 20.

[0059] Referring to FIG. 3, the kinematic chain KC is formed by the manipulator 14, including any rigidly attached components such as the base 16 and the multiple links 18 and joints J, and the tool 20, including the shaft 33 (if applicable) and the energy applicator 24. The end effector 22 may also be part of the kinematic chain KC. Additionally, any mounting system or sterile interface coupled between the manipulator 14 and the end effector 22 may be part of the kinematic chain KC. One example of a mounting system and / or sterile interface mechanism that may be part of the kinematic chain KC is described in U.S. Patent Application Publication No. 2020 / 0170724A1, entitled "Mounting System With Sterile Barrier Assembly For Use In Coupling Surgical Components," the entire contents of which are incorporated herein by reference. As used herein, the term "kinematic chain" refers to an assembly of rigid bodies connected by joints, where the stiffness of the body allows for constrained motion, whereby the kinematics of the rigid bodies can be determined and related to other rigid bodies in a chain using a mathematical model. In the example of Figure 3, the kinetic chain KC further forms a "mechanism" since at least one link is mechanically grounded.

[0060] As shown in FIG. 2, a sensor S, such as a force / torque sensor, may be attached between the distal link 18e and the end effector 22. The force / torque sensor S is configured to output a variable signal as a function of the force and / or torque to which the end effector 22 and / or the tool 20 are subjected. In doing so, the force / torque sensor S allows for sensing an input force applied to the end effector 22 and / or the tool 20 by a user. The input force can be utilized to control the movement of the manipulator 14 to emulate a user applied force / torque. The force / torque sensor S may also sense an external force applied to the energy applicator 24. In one embodiment, the force / torque sensor S is a 6DOF sensor, and the force / torque sensor S is configured to output signals representative of three mutually orthogonal forces and three torques about orthogonal force axes applied to the tool 20. Additionally or alternatively, the input force applied to the end effector 22 and / or the tool 20 may be determined using a joint torque or current sensor on the joint motor 27.

[0061] With reference to FIG. 1, the manipulator 14 and / or the manipulator cart 17 may house a manipulator controller 26, or other type of control unit. The manipulator controller 26 may include one or more computers, or any other suitable form of controller that directs the movement of the manipulator 14. The manipulator controller 26 may have a central processing unit (CPU) and / or other processor, memory (not shown), and storage (not shown). The manipulator controller 26 is loaded with software, as described below. The processor may include one or more processors that control the operation of the manipulator 14. The processor may be any type of microprocessor, multiprocessor, and / or multicore processing system. The manipulator controller 26 may additionally or instead include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein. The term processor is not intended to limit any implementation to a single processor. The manipulator 14 may also include a user interface UI with one or more displays and / or input devices (eg, push buttons, keyboard, mouse, microphone (voice activation), gesture control devices, touch screen, etc.).

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

[0063] The tool center point (TCP) is a predetermined reference point defined on the energy applicator 24 in one example. The TCP has a known or calculable (i.e., not necessarily static) pose relative to another coordinate system. The shape of the energy applicator 24 is known in or defined relative to the TCP coordinate system. The TCP may be located at the spherical center of the bar 25 of the tool 20 so that only one point is tracked. The TCP may be defined in a variety of ways, depending on the configuration of the energy applicator 24. The manipulator 14 may determine the pose of the TCP using joint / motor encoders, or any other non-encoder position sensing method. The manipulator 14 may determine the TCP pose using joint measurements and / or may employ techniques to directly measure the TCP pose. Control of the tool 20 is not limited to a center point. For example, any suitable primitive, mesh, etc. may be used to represent the tool 20.

[0064] As shown in FIG. 1, the system 10 may further include a navigation system 32. An example of the navigation system 32 is described in U.S. Patent No. 9,008,757, entitled "Navigation System Including Optical and Non-Optical Sensors," filed on September 24, 2013, which is incorporated herein by reference. The navigation system 32 tracks the motion of various objects. Such objects include, for example, the manipulator 14, the tool 20, and anatomical structures, such as the femur F and the tibia T. The navigation system 32 tracks these objects to collect state information of the objects relative to a (navigation) localizer coordinate system LCLZ. Coordinates of the localizer coordinate system LCLZ may be transformed to the manipulator coordinate system MNPL and / or vice versa using a transformation.

[0065] The navigation system 32 includes a cart assembly 34 that houses a navigation controller 36 and / or other types of control units. A navigation user interface UI is in operative communication with the navigation controller 36. The navigation user interface includes one or more displays 38. The navigation system 32 can use the one or more displays 38 to display a graphical representation of the relative state of the tracked objects to the user. The navigation user interface UI further includes one or more input devices for inputting information into the navigation controller 36 or for selecting / controlling certain aspects of the navigation controller 36. Such input devices include interactive touch screen displays. The input devices may include any one or more of push buttons, keyboards, mice, microphones (voice activation), gesture control devices, and the like.

[0066] The navigation system 32 also includes a navigation localizer 44 coupled to the navigation controller 36. In one example, the localizer 44 is an optical localizer and includes a camera unit 46. The camera unit 46 has an outer housing 48 that houses one or more optical sensors 50. The localizer 44 may include its own localizer controller 49, and may further include a video camera VC.

[0067] The navigation system 32 includes one or more trackers. In one example, the trackers may include a pointer tracker PT, one or more manipulator trackers 52A, 52B, a first patient tracker 54, and a second patient tracker 56. In the example shown in FIG. 1, the manipulator tracker (i.e., tracker 52A) is rigidly attached to the tool 20, the first patient tracker 54 is rigidly fixed to a femur F of the patient 12, and the second patient tracker 56 is rigidly fixed to a tibia T of the patient 12. In this example, the patient trackers 54, 56 are rigidly fixed to a portion of the bone. The pointer tracker PT is rigidly fixed to a pointer P that is used to register anatomical structures to the localizer coordinate system LCLZ. Manipulator trackers 52A, 52B may be fixed to any suitable component of manipulator 14, such as base 16 (i.e., tracker 52B), in addition to or other than tool 20, or to any one or more links 18 of manipulator 14. Trackers 52A, 52B, 54, 56, PT may be fixed to each component in any suitable manner. For example, the trackers may be rigidly fixed, flexibly connected (fiber optics), or not physically connected at all (ultrasonics), so long as there is a suitable (complementary) way to determine the relationship (measurement) between each tracker and the object with which it is associated.

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

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

[0070] The navigation controller 36 may include one or more computers, or any other suitable form of controller. The navigation controller 36 has a central processing unit (CPU) and / or other processor, memory (not shown), and storage (not shown). The processor may be any type of processor, microprocessor, or multiprocessor system. The navigation controller 36 is loaded with software. The software converts signals received from, for example, the localizer 44 into data representative of the position and orientation of the object being tracked. The navigation controller 36 may additionally or instead include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein. The term processor is not intended to be limited to a single processor.

[0071] Although an example of the navigation system 32 using triangulation techniques to determine the state of the object is shown, the navigation system 32 may have any other suitable configuration for tracking the manipulator 14, the tool 20, and / or the patient 12. In another example, the navigation system 32 and / or the localizer 44 are ultrasound-based. For example, the navigation system 32 may include an ultrasound imaging device coupled to the navigation controller 36. The ultrasound imaging device images any of the objects described above, such as the manipulator 14, the tool 20, and / or the patient 12, and generates a state signal to the navigation controller 36 based on the ultrasound 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 and determine the state of the object. The ultrasound imaging device may have any suitable configuration and may be different from the camera unit 46 shown in FIG. 1.

[0072] In another example, the navigation system 32 and / or the localizer 44 are radio frequency (RF) based. For example, the navigation system 32 may include an RF transceiver coupled to the navigation controller 36. The manipulator 14, the tool 20, and / or the patient 12 may include RF emitters or transponders attached thereto. The RF emitters or transponders may be passive or actively powered. The RF transceiver transmits RF tracking signals and generates status signals to the navigation controller 36 based on RF signals received from the RF emitters. The navigation controller 36 may analyze the received RF signals to associate relative status with the RF signals. The RF signals may be at any suitable frequency. The RF transceivers may be located at any suitable location to effectively use the RF signals to track objects. Additionally, the RF emitters or transponders may have any suitable structural configuration that may differ significantly from the trackers 52A, 52B, 54, 56, PT shown in FIG. 1.

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

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

[0075] With reference to FIG. 4, the system 10 includes a control system 60, which includes, among other components, a manipulator controller 26, a navigation controller 36, and a tool controller 21. The control system 60 further includes one or more software programs and modules as shown in FIG. 5. The software modules may be part of one or more programs in the manipulator controller 26, the navigation controller 36, the tool controller 21, or any combination thereof that operate to process data and assist in controlling the system 10. The software programs and / or modules include computer readable instructions stored in a non-transitory memory 64 on the manipulator controller 26, the navigation controller 36, the tool controller 21, or any combination thereof, which are executed by one or more processors 70 of the controllers 21, 26, 36. The memory 64 may be any suitable configuration of memory, such as RAM, non-volatile memory, and may be implemented locally or from a remote database. Additionally, software modules for prompting and / or communicating with the user may form part of one or more programs and may include instructions stored in memory 64 of the manipulator controller 26, navigation controller 36, tool controller 21, or any combination thereof. A user may communicate with the software modules by interacting with any of the input devices of the navigation user interface UI or other user interfaces UI. User interface software may execute on a device separate from the manipulator controller 26, navigation controller 36, and / or tool controller 21.

[0076] The control system 60 may include any suitable configuration of input devices, output devices, and processing devices suitable for performing the functions and methods described herein. The control system 60 may include the manipulator controller 26, the navigation controller 36, or the tool controller 21, or any combination thereof, or may include only one of these controllers. These controllers may communicate via a wired bus or communication network as shown in FIG. 4, via wireless communication, or otherwise. The control system 60 may also be referred to as a controller. The control system 60 may include one or more microcontrollers, field programmable gate arrays, systems-on-chips, discrete circuits, sensors, displays, user interfaces, indicators, and / or other suitable hardware, software, or firmware capable of performing the functions described herein.

[0077] With reference to FIG. 5, the software used by the control system 60 includes a boundary generator 66. As shown in FIG. 6, the boundary generator 66 is a software program or module that generates a virtual boundary 71 for constraining the movement and / or motion of the tool 20. The virtual boundary 71 may be one-dimensional, two-dimensional, or three-dimensional and may include points, lines, axes, trajectories, planes, or other shapes, including complex shapes. In some embodiments, the virtual boundary 71 is a surface defined by a triangular mesh. Such a virtual boundary 71 may be referred to as a virtual object. The virtual boundary 71 may be defined relative to an anatomical model AM, such as a 3D bone model. In the example of FIG. 6, the virtual boundary 71 is a planar boundary that depicts five planes of a total knee implant and is associated with a 3D model of the femoral head F. The anatomical model AM is registered to one or more patient trackers 54, 56 such that the virtual boundary 71 is associated with the anatomical model AM. The virtual boundary 71 may be implant specific, e.g., defined based on the size, shape, volume, etc. of the implant, and / or may be patient specific, e.g., defined based on the patient's anatomy. The virtual boundary 71 may be a boundary that is created pre-operatively, intra-operatively, or a combination thereof. In other words, the virtual boundary 71 may be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. In either case, the control system 60 obtains the virtual boundary 71 by storing / retrieving the virtual boundary 71 in / from memory, obtaining the virtual boundary 71 from memory, creating the virtual boundary 71 pre-operatively, creating the virtual boundary 71 intra-operatively, etc.

[0078] The manipulator controller 26 and / or navigation controller 36 track the state of the tool 20 relative to the virtual boundary 71. In one example, the state of the TCP relative to the virtual boundary 71 is measured in order to determine haptic forces to apply to a virtual rigid body model via a virtual simulation to keep the tool 20 in a desired positional relationship with the virtual boundary 71 (e.g., not moving beyond the virtual boundary). The results of the virtual simulation are commanded to the manipulator 14. The control system 60 controls / positions the manipulator 14 in a manner that emulates the way a physical handpiece would respond in the presence of a physical boundary / barrier. The boundary generator 66 may be implemented in the manipulator controller 26. Alternatively, the boundary generator 66 may be implemented in other components, such as the navigation controller 36.

[0079] 5 and 7, the path generator 68 is another software program or module executed by the control system 60. In one example, the path generator 68 is executed by the manipulator controller 26. The path generator 68 generates a tool path TP for the tool 20 to traverse, such as to remove a portion of the anatomy to receive the implant. The tool path TP may include multiple path segments PS or may include a single path segment PS. The path segment PS may be a straight segment, a curved segment, a combination thereof, and the like. The tool path TP may also be defined relative to the anatomical model AM. The tool path TP may be implant-specific, e.g., based on the size, shape, volume, etc. of the implant, and / or may be patient-specific, e.g., based on the patient's anatomy.

[0080] In one version described herein, the tool path TP is defined as a tissue removal path, but in other versions, the tool path TP may be used for treatments other than tissue removal. One example of a tissue removal path described herein includes a milling path 72. The term "milling path" generally refers to a path of the tool 20 near a target site for milling an anatomical structure, and is not intended to require that the tool 20 operatively mills the anatomical structure for the entire duration of the path. For example, as will be understood in more detail below, the milling path 72 may include portions or segments where the tool 20 transitions from one position to another without milling. Additionally, other forms of tissue removal along the milling path 72 may be employed, such as tissue cauterization. The milling path 72 may be a predetermined path created preoperatively, intraoperatively, or a combination thereof. In other words, the milling path 72 may be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. In either case, the control system 60 obtains the milling path 72 by storing / retrieving the milling path 72 in memory, retrieving the milling path 72 from memory, creating the milling path 72 pre-operatively, creating the milling path 72 intra-operatively, etc. The milling path 72 may have any suitable shape or combination of shapes, such as circular, spiral / corkscrew, straight, curved, and combinations thereof.

[0081] One example of a system and method for generating the virtual boundary 71 and / or milling path 72 is described in U.S. Patent No. 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," the disclosure of which is incorporated herein by reference. In some examples, the virtual boundary 71 and / or milling path 72 may be generated offline, rather than on the manipulator controller 26 or the navigation controller 36. The virtual boundary 71 and / or milling path 72 may then be utilized at run time by the manipulator controller 26.

[0082] 5, two additional software programs or modules execute on the manipulator controller 26 and / or the navigation controller 36. One software module executes the behavior control 74. The behavior control 74 is a process that calculates data indicative of the next commanded position CP of the energy applicator 24 and / or the orientation (e.g., pose) of the tool 20. In some cases, the position of the TCP is output from the behavior control 74, while in other cases, the position and orientation of the tool 20 are output. Outputs from the boundary generator 66, the path generator 68, and the force / torque sensor S may be provided as inputs to the behavior control 74 to determine the next commanded position CP of the energy applicator 24 and / or the orientation of the tool 20. The behavior control 74 may process these inputs along with one or more virtual constraints, described further below, to determine the commanded pose.

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

[0084] Any of the boundary generator 66, the path generator 68, the behavior control 74, and the motion control 76 may be a subset of the software program 78, or any combination thereof, and may be separate and / or independently operating software programs. The term "software program" is used herein to describe computer executable instructions configured to perform various functions of the described technical solutions. For simplicity, the term "software program" is intended to encompass at least any one or more of the boundary generator 66, the path generator 68, the behavior control 74, and / or the motion control 76. The software program 78 may be implemented in the manipulator controller 26, the navigation controller 36, or any combination thereof, or may be implemented in any suitable manner by the control system 60.

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

[0086] The system 10 may operate in a manual mode as described in U.S. Patent No. 9,119,655, which is incorporated herein by reference, where a user manually directs and the manipulator 14 executes the movement of the tool 20 and its energy applicator 24 at the surgical site. The user physically contacts the tool 20 to move the tool 20 in the manual mode. In one version, the manipulator 14 monitors the forces and torques applied by the user to the tool 20 to position the tool 20. For example, the manipulator 14 may include a force / torque sensor S that detects the forces and torques applied by the user and generates corresponding inputs (e.g., one or more corresponding input / output signals) used by the control system 60.

[0087] The manipulator controller 26 and / or navigation controller 36 receive inputs (e.g., signals) from the force / torque sensor S. In response to the forces and torques applied by the user, the manipulator 14 moves the tool 20 in a manner that emulates the movements that would have occurred based on the forces and torques applied by the user. Movement of the tool 20 in manual mode may also be constrained against a virtual boundary 71 generated by the boundary generator 66. In some versions, measurements taken by the force / torque sensor S are transformed from the force / torque coordinate system FT of the force / torque sensor S to another coordinate system, such as a virtual mass coordinate system in which a virtual simulation is performed on a virtual rigid body model of the tool 20, so that forces and torques can be virtually applied to the virtual rigid body in the virtual simulation to ultimately determine how these forces and torques (among other inputs) affect the movement of the virtual rigid body, as described below.

[0088] The system 10 may also operate in a semi-autonomous mode in which the manipulator 14 moves the tool 20 along the milling path 72 (e.g., the active joints J of the manipulator 14 operate to move the tool 20 without the need for a force / torque on the tool 20 from the user). An example of operation in the semi-autonomous mode is also described in U.S. Pat. No. 9,119,655, which is incorporated herein by reference. In some embodiments, when the manipulator 14 operates in the semi-autonomous mode, the manipulator 14 can move the tool 20 without user assistance. No user assistance may mean that the user does not physically contact the tool 20 to move it. Instead, the user may use some form of remote control to control the starting and stopping of the movement. For example, the user may press and hold a button on the remote control to start the movement of the tool 20 and release the button to stop the movement of the tool 20.

[0089] The control system 60, including the manipulator controller 26 and the behavior controller 74, is configured to simulate the dynamics of the tool 20 in a virtual simulation. The virtual simulation may be based on the tool 20 with or without the energy applicator 24. In one example, the virtual simulation is performed using a physics engine, which is computer software that simulates the dynamics of a rigid body. The virtual simulation may be performed on a computing device having a non-transitory computer-readable storage medium 64 having an executable program stored thereon. The virtual simulation simulates the dynamics of the tool 20 before such dynamics of the tool 20 are physically executed by the manipulator 14. The control system 60 models the tool 20 as a virtual rigid body, which is a dynamic object. Thus, the control system 60 effectively simulates the rigid body dynamics of the tool 20. The virtual rigid body is free to move according to 6 DOF in a Cartesian task space according to the virtual simulation. The virtual rigid body may be modeled as a single point, which may be on, within, or beyond the tool 20. The mass / inertia matrix defines a 6 DOF virtual mass. In one example, the virtual rigid body corresponds to the center of gravity of the tool 20. Here, the "center of mass" is understood to be the point about which the tool 20 would rotate if a force were applied to another point of the tool 20 and the tool 20 were not constrained, i.e., by the manipulator 14. The center of mass of the virtual rigid body may be close to, but need not be the same as, the actual center of mass of the tool 20. The center of mass of the virtual rigid body may be determined empirically. Once the tool 20 is attached to the manipulator 14, the location of the center of mass may be reset to correspond to the preferences of the individual practitioner. In other embodiments, the virtual rigid body may correspond to other features of the tool 20, such as the center of gravity.

[0090] This virtual rigid body is considered to have a virtual mass. The virtual mass has inertia for at least one of the joints J. In some cases, the virtual mass has inertia for each of the joints (J1-J6). Inertia is a measure of the resistance that the virtual mass exhibits in response to a change in velocity. Inertia may be understood to be a property of the virtual mass. Thus, virtual mass may refer to both the mass and inertia of the virtual rigid body. The virtual mass of the virtual rigid body is typically within the same order of magnitude as the actual mass of the tool 20. The virtual mass may be designed to be larger or smaller than the actual mass of the tool 20.

[0091] In one example, the virtual rigid body is in a first pose at the beginning of each iteration of the virtual simulation. The control system 60 may receive user-applied input forces from the force / torque sensor S and / or other input forces modeled as other constraints. When the virtual rigid body is in the first pose, the input forces are applied to the virtual rigid body in the virtual simulation. The input forces cause the virtual rigid body to move along the virtual path to a second pose having a different position and a different orientation in Cartesian space. Knowing the second pose of the virtual rigid body based on the virtual simulation, the control system 60 commands the movement of the joints J according to the virtual simulation. That is, the control system 60 transforms the dynamics of the virtual rigid body in Cartesian space to direct the movement of the manipulator 14 and control the orientation of the tool 20 in the joint space. The forces resulting in the second pose are applied to a Jacobian calculator, which calculates a Jacobian matrix that relates the movement in Cartesian space to the movement in the joint space.

[0092] The virtual simulation may be performed computationally without a visual or graphical representation of the virtual rigid body. It is not necessary for the virtual simulation to virtually display the dynamics of the virtual rigid body. In other words, the virtual rigid body does not need to be modeled in a graphics application running on the processing unit. In some cases, the movement of the virtual tool, tracked to the actual tool 20, may be displayed at the surgical site to provide visual assistance during the manipulation of the procedure. In such cases, the displayed tool is not a direct result of the virtual simulation.

[0093] II. Determining the Feed Rate

[0094] The speed or rate at which the energy applicator 24 advances along the path is referred to as the feed rate FR. In one embodiment, such advancement may be advancement in a semi-autonomous mode, more specifically, advancement along the tool path TP. This section describes techniques for determining the feed rate FR before or during a procedure. As described in this section, the feed rate FR can be set and changed based on various conditions and / or variables. As described in the next section, the feed rate FR can be dynamically changed to account for undesired directed motion of non-tool path components of the kinematic chain KC. The feed rate FR is calculated by techniques described in U.S. Pat. No. 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," the disclosure of which is incorporated herein by reference.

[0095] To determine the feed rate FR according to one embodiment, the path generator 68 calculates one or more variables. One of these variables is the force and torque that, when applied to the virtual rigid body, results in the advancement of the energy applicator 24. Another variable is the force and torque applied to the virtual rigid body to maintain the orientation of the tool 20 within an orientation tolerance.

[0096] In one example, the path generator 68 includes a sub-module that is a feedrate calculator 82, as seen in FIGS. 5 and 8. The feedrate calculator 82 determines the feedrate FR at which the energy applicator 24 should move as it moves along each path segment PS of the toolpath TP (see FIG. 9). The input to the feedrate calculator 82 can be a defined feedrate (DEFINED FR). In its most basic form, the defined feedrate FR is a scalar value. In practice, the manipulator controller 26 may be provided with multiple defined feedrates FR. These defined feedrates can be used to set a default feedrate, and can be scaled or modified according to various variables, as described below. The defined feedrate does not always have to correspond to the actual feedrate FR at which the energy applicator 24 advances. Furthermore, it is not necessarily necessary to set the defined feedrate as a default. Instead, the system 10 can dynamically determine the actual feedrate FR based on any one or more of the following variables, without starting with a defined feedrate: In other words, the actual feedrate FR can be predetermined or determined “on the fly” without a predetermined default or defined feedrate.

[0097] With reference to FIG. 9, in one example, a specific defined feed rate FR1...FRN may be assigned to each path segment PS1...PSN. This assignment of the feed rate FR may be done pre-operatively or intra-operatively. The feed rate FR may then be adjusted at the beginning of the procedure or during the procedure. Two or more consecutive path segments PS may be assigned the same or different defined feed rates FR. These feed rates FR may be generated based on variables such as, but not limited to, the geometry of the cavity, the type of energy applicator 24, the health status of the patient, the nature of the tissue to which the energy applicator 24 is applied, and the geometry of the path segment PS. In practice, the defined feed rate FR is typically between 5-400 mm / sec. The feed rate may be greater or less than this range depending on the circumstances. According to one embodiment, the feed rate FR is predetermined based on the surgical plan, system settings, and / or surgeon's preferences. Alternatively or additionally, the feed rate FR may be determined and modified based on intra-operative conditions. A feed rate may also be assigned to the path segment PS when the energy applicator 24 reaches the next path segment PS or at any time before that.

[0098] As shown in FIG. 9, one or more controllers, including but not limited to a manipulator controller 26 including a path generator 68 and a feed rate calculator 82, are configured to control the manipulator 14 to advance the energy applicator 24 to a number of command positions CP1-CPN according to a feed rate FR. The command positions CP are often, but not necessarily, defined for the tool path TP in semi-autonomous mode. In one embodiment, a segment PS of the tool path TP is defined between subsequent command positions PS. Alternatively, the command positions CP may be determined according to a user-initiated non-tool path motion emulated by the system 10 in manual mode.

[0099] 8, the feedrate calculator 82 can adjust the defined feedrate to generate the feedrate FR. In one version, this adjustment is performed by multiplying the defined feedrate FR by any number of coefficients. Each coefficient can be between 0 and 1.0. The coefficients can also have values ​​greater than 1.0. Each of these coefficients can vary as a function of variables that are also applied to the feedrate calculator 82.

[0100] The first of these variables may be a USER ADJUST of the feed rate FR, as shown in FIG. 8. This is an adjustment of the feed rate FR made by the practitioner in real time as the procedure progresses. The practitioner may make this feed rate adjustment by remote control, such as with a pendant 88 shown in FIG. 1. An example pendant may be similar to that described in U.S. Pat. No. 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," the disclosure of which is incorporated herein by reference. The feed rate calculator 82 outputs a factor as a function of the command entered by the practitioner to increase or decrease the feed rate FR.

[0101] A second variable that can be used to selectively scale the defined feed rate FR is the force and torque (SNSD F / T) to which the energy applicator 24 is exposed, as shown in FIG. 8. The energy applicator 24 is rigidly attached to the tool 20, which may be rigidly attached to the end effector 22. Thus, the signal output by the force / torque sensor S is a signal representative of the force and torque to which the energy applicator 24 is exposed. The feed rate calculator 82 can set the feed rate FR based on the principle that there is a relationship between the amount of force / torque that the manipulator 14 applies to the tool 20 and energy applicator 24 and the advancement speed of the instrument. In general, it is a goal of modern medical practice to minimize heating of tissue that is not intended for removal. One reason for this goal is to minimize collateral damage that this unnecessary heating may cause to tissue. Thus, the manipulator 14 is configured to slow down the feed rate FR of a path segment PS when it is determined that a significant amount of force and / or torque is applied to the instrument or energy applicator 24.

[0102] One example where this adjustment of the feed rate FR is useful is when the energy applicator 24 moves across a path segment PS through both cortical and cancellous bone. The outer bone, the cortical bone, is relatively harder. The inner bone, the cancellous bone, is more porous and less resistant to removal than the cortical bone. Thus, if the energy applicator 24 traverses both types of bone at a constant speed, more force / torque must be applied to move the applicator across the cortical bone than the cancellous bone. This means that, without adjusting the feed rate FR, the cortical bone will be more likely to experience damage-inducing heating than the adjacent portions of the cancellous bone. This feature of the manipulator 14 minimizes the possibility of this undesirable heating by slowing the feed rate FR in response to the force / torque sensor S providing a signal indicating an increase in the amount of force / torque required to advance the energy applicator 24.

[0103] As the energy applicator 24 moves from the cortical bone to the cut in the cancellous bone, the force / torque required to advance the instrument decreases. In this situation, the feed rate FR can be increased without significantly increasing the degree to which the bone to which the energy applicator 24 is applied is heated. This reduces the time taken for the patient to be treated. This promotes the goal of modern surgery to minimize the time taken for the patient to be treated. This reduces the time that the patient's internal tissues are exposed and exposed to infection, and reduces the potential for surgeon fatigue and the time the patient must be under anesthesia.

[0104] The feedrate calculator 82 determines the force / torque adjustment factor based on one, two, or three of: (1) the magnitude of a six-component vector of individual force and torque components, (2) the magnitude of a three-component vector of individual force components, and (3) the magnitude of a vector of any combination of individual force and / or torque components. Alternatively, the factor is based on one or more of the maximum force or torque components. Based on one or more of these variables, the feedrate calculator 82 can determine the force / torque adjustment factor by referencing data in an associated lookup table 84.

[0105] In addition to adjusting the feed rate FR, the rotational cutting speed of the energy applicator 24 may also be varied. More specifically, if the energy applicator 24 is a burr, the speed of the cutting teeth of the burr may be adjusted and optimized to improve the accuracy of tissue removal and minimize heating in the tissue. The optimal speed of the burr cutting teeth is a factor of the cutter rotational speed and cutter diameter, which are optimized based on the tooth geometry and type of material being removed.

[0106] A third variable that may adjust the defined feedrate to generate the feedrate FR is the path segment curvature (PATH CRVTR), as shown in FIG. 8. This adjustment is made to ensure that when the energy applicator 24 is commanded to a position and moved along a curved path segment PS, the energy applicator 24 is not moved so fast that momentum would move the energy applicator 24 away from the toolpath TP or path segment PS. In some examples, if the path segment PS is straight or has a relatively small curvature, the feedrate FR is not adjusted based on the curvature. When the feedrate calculator 82 receives an indication that the energy applicator 24 is moving along a path segment PS that has a relatively large curvature or small radius, the feedrate calculator 82 may adjust the defined feedrate FR downward based on this variable to generate the feedrate FR.

[0107] The feed rate calculator 82 receives an indication of the curvature of the path along which the energy applicator 24 is moving, the PATH CRVTR variable, from a curvature calculator, which may be another submodule component of the path generator 68. Based on this input variable, the feed rate calculator 82 may refer to one of the lookup tables 84 to determine a coefficient reflecting the degree to which the feed rate FR should be adjusted. If one or more path segments PS are linear or have a curvature close to zero, the defined feed rate FR may not be adjusted based on the curvature, and the coefficient is 1.0 or close to it. When the feed rate calculator 82 receives an indication that the energy applicator 24 is moving along a path segment PS with a relatively large curvature, the feed rate calculator 82 adjusts the defined feed rate downward based on this variable to generate the feed rate FR. The obtained coefficient decreases from 1. In some versions, if the curvature is 0.05 mm-1 or less, the feed rate calculator 82 does not attenuate the feed rate FR based on the curvature of the segment PD along which the energy applicator 24 is advancing. The curvature calculator determines the curvature of the current filtered path based on data defining a plurality of spaced filtered target positions. Data representing this curvature is transferred to the feedrate calculator 82 as the PATH CRVTR variable.

[0108] Modifying the feed rate FR to take into account the curvature of the path segment PS is based on the commanded (x,y,z) or predicted position of the energy applicator 24 relative to the tool path TP, regardless of the directional motion (e.g., angular velocity, angular acceleration, angular jerk) of the energy applicator 24 or any other component of the kinematic chain KC.

[0109] A fourth variable that can be adjusted to generate the defined feed rate FR is the instrument power (INST POWER), as shown in FIG. 8. This variable is the amount of power that the tool 20 and / or energy applicator 24 apply to the patient. Generally, as the power that the instrument applies to the tissue increases, the extent to which the tissue is heated by this power also increases, and therefore instrument power is used as an input variable to adjust the feed rate FR. As discussed above, it is beneficial to minimize the extent to which the tissue is exposed to potentially damaging heating. There may also be situations where a large output of power by the instrument indicates that the manipulator 14 is entering a state where the performance of the energy applicator 24 will be reduced if the feed rate FR is not reduced. For example, if a large amount of power needs to be applied to the burr 25, this increase in power may indicate that the burr 25 may be entering a state where it is difficult to remove the material that is to be removed. To ensure that the burr 25 performs as expected, it is beneficial to reduce the advancement speed of the burr 25. This can improve the accuracy of the material removal. Improving the accuracy of the tissue removal improves the surface finish and surface definition of the tissue remaining after the burr 25 is applied. Thus, if there is an indication that the power applied by the tool 20 and / or energy applicator 24 is increasing, the feed rate calculator 82 reduces the feed rate FR.

[0110] In configurations where the tool 20 is a power tool, the power variable may be the amount of torque output by the tool motor. In general, there is a direct proportional relationship between the current applied to the tool 20 and the torque output by the tool 20. Thus, a measure of the current drawn by the tool 20 is taken as the equipment power variable. An equipment power signal representative of this variable is generated by the tool controller 21 and applied to the manipulator controller 26. More specifically, circuitry in the tool controller 21 may monitor the current drawn by the tool 20 and output a signal representative of the current drawn by the tool 20. This signal is the root signal from which is generated either an analog or digital INST POWER signal that is applied to a feed rate calculator 82. The feed rate calculator 82 determines, based on the INST POWER signal and by referencing one of the look-up tables 84, a coefficient indicating the degree to which a feed rate defined based on equipment power should be scaled to determine the feed rate FR.

[0111] A fifth variable that can be used as a factor for adjusting the defined feed rate to generate the feed rate FR is tissue temperature, as shown in FIG. 8. This is due to the above-mentioned goal of modern surgery to minimize the extent to which the patient's uncut tissue is heated. A temperature sensor can be utilized to indicate tissue temperature. The temperature sensor can be attached to the tool 20. Again, the signal output by the temperature sensor can represent the temperature of the tissue or the temperature of the energy applicator 24. The signal output by the temperature sensor can be routed to the manipulator controller 26 via the tool controller 21. In addition to the temperature of the uncut tissue, another factor for adjusting the defined feed rate can include the temperature of the tip removed by the energy applicator 24. The removed tip and material is often referred to as "slurry." The temperature of the slurry may be measured in any suitable manner, including with a temperature sensor. The feed rate calculator 82 determines an appropriate tissue temperature feed rate adjustment factor based on the temperature represented by the TISSUE TEMP signal and by referencing one of the lookup tables 84. This factor may be at or near 1.0 if the TISSUE TEMP signal indicates that the tissue temperature is within an acceptable range, or the obtained factor may be decreased from 1 if the TISSUE TEMP signal indicates that the temperature of the tissue or energy applicator 24 is approaching or exceeding a level that may cause substantial damage to the tissue.

[0112] A sixth variable that can be employed by the feedrate calculator 82 to adjust the defined feedrate to generate the feedrate FR is the calculated force (CMPTD FORCE), as shown in FIG. 8. As described below, this calculated force is a force applied to a virtual rigid body. In response to this force, the motion control process advances the energy applicator 24 along the toolpath TP. The calculated force is calculated by another one of the behavior control process software modules. This calculated force, which may include a torque component, serves as an input variable from which the commanded position of the energy applicator 24 is determined. The feedrate calculator 82 generates the feedrate FR such that there is an inverse relationship between the calculated force and the feedrate FR. If the calculated force is increased to effect the advancement of the energy applicator 24, the feedrate calculator 82 reduces the feedrate FR. This reduction in the feedrate FR reduces the likelihood that the manipulator advances the energy applicator 24 at a speed greater than the speed at which the accuracy of the application of the energy applicator 24 to the tissue is adversely affected. In some versions, the feed rate calculator 82 determines a factor based on the calculated force magnitude and a reference to one of the lookup tables 84. The factor represents the degree to which the defined feed rate should be scaled as a function of the calculated force magnitude.

[0113] A seventh variable that can be employed by the feedrate calculator 82 to adjust the defined feedrate to generate the feedrate FR can be based on collision of a virtual boundary 71 (VB COLLISION), as shown in FIG. 8. If the energy applicator 24 or tool 20 crosses the virtual boundary 71, the defined feedrate FR can be adjusted. A collision can occur due to multiple factors, events, or conditions. In one example, a collision occurs due to a commanded movement of the manipulator 14 (e.g., during a semi-autonomous or manual mode). For example, in a manual mode, a user may apply an input force to the end effector, which results in a commanded position that crosses the boundary 71. Additionally or alternatively, a collision can occur due to a cause external to the manipulator 14. Such a cause can be a change to the patient's anatomy, a patient's movement, a movement of the patient tracker(s) 54, 56, or the like. For example, one or more of the patient tracker(s) 54, 56 may move from its current position to another position. The movement of the patient tracker(s) 54, 56 may be due to movement of the patient's anatomy. The patient movement may be due to staff repositioning the patient or due to collision with the anatomy. For example, the robotic manipulator or energy applicator 24 may collide with and push against the patient's anatomy. In another example, the energy applicator 24 may physically push against the anatomy during manipulation of the anatomy. The anatomy may be inadvertently bumped by staff. The movement of the patient tracker(s) 54, 56 may be relative to the bone / anatomical structure to which the patient tracker(s) 54, 56 are attached. In other words, the rigid fixation of the patient tracker(s) 54, 56 to the anatomy may come loose, shift or become loose. In one example, movement of the patient tracker(s) 54, 56 causes corresponding movement of a virtual boundary 71 that is registered to the corresponding anatomical structure to which the patient tracker(s) 54, 56 are attached. Movement of the virtual boundary 71 may result in a collision with the manipulator 14 or the energy applicator 24.In another example, movement of the patient tracker(s) 54, 56 can cause a regeneration or update of the toolpath TP or a segment thereof. The regenerated or updated toolpath TP or segment in which the energy applicator 24 is present may have a different defined feedrate as compared to the last feedrate that existed before the movement of the patient tracker(s) 54, 56. A collision with the virtual boundary 71 may occur in any of the scenarios described herein or based on other conditions not specifically described herein.

[0114] The defined feed rate FR can be adjusted in response to any collision condition. The adjustment can be proactive or retroactive, and the feed rate FR can be increased or decreased. The adjustment can be made as a preventative measure (e.g., to slow down the energy applicator or tool) or to mitigate the current / anticipated effects of a collision. The feed rate FR can be adjusted to resist, respond to, or avoid a collision. The feed rate FR can be increased to reach an anatomical structure moving away from the energy applicator 24, or the feed rate FR can be reduced in response to an anatomical structure moving toward the energy applicator 24. Other methods of adjusting the feed rate FR in response to a collision of the virtual boundary 71 by the energy applicator 24 / tool ​​20 are contemplated.

[0115] Two additional input variables that can be employed by the feedrate calculator 82 to adjust the defined feedrate to generate the feedrate FR are the actual undesired oriented motion (Actual UOM) and the expected undesired oriented motion (Expected UOM), as shown in FIG. 8. These inputs, described in detail in subsequent sections, are provided by a control algorithm that can determine, identify, or monitor actual or expected undesired oriented motion of one or more non-toolpath components of the kinematic chain KC. These variables can be input to actively or proactively modify the feedrate FR to mitigate the effects of undesired oriented motion. Techniques for identifying, calculating, and monitoring undesired oriented motion are described in the next section.

[0116] The feedrate calculator 82 may multiply the defined feedrate by the above factor. The product of this process is the feedrate FR, which is the actual speed at which the energy applicator 24 should advance along the current path segment.

[0117] An additional input to the feed rate calculator 82 may be a signal asserted from a force override module (FIG. 8), which is also a component of the path generator 68. During the semi-autonomous advancement of the energy applicator 24, a condition may arise where the surgeon attempts to reposition the tool 20. When taking this action, the practitioner may inadvertently not release the trigger of the pendant 88. When this event occurs, the force / torque sensor S is exposed to relatively high forces and torques in response to the practitioner's attempt to move the tool 20 away from the tool path TP. These forces and torques exceed the force / torque upper limits maintained by the force override module. The force override module is configured to output a signal that transitions the manipulator 14 from the semi-autonomous mode described above to a manual mode. The force override device also evaluates the output of the force / torque sensor S to determine whether these forces / torques have exceeded the upper limits for a period of time greater than a specified period of time. If the above evaluation test is true, the force override device asserts a command that results in the deactivation of the instrument power generation unit. The force override device can also assert a command to stop the semi-autonomous advancement of the energy applicator 24. In response to the assertion of a signal from the force override device, the feedrate calculator 82 outputs a zero velocity feedrate FR. In many cases, the feedrate calculator 82 puts the instrument at a zero velocity feedrate. When the force override device stops asserting a signal to the feedrate calculator 82, based on input of another command from the practitioner, the feedrate calculator 82 reverts to outputting a non-zero velocity feedrate FR.

[0118] The path interpolator (PATH INTRPLTR) is another sub-module component of the path generator 68, as shown in FIG. 8. The path interpolator 86 determines a target position in the coordinate system of the energy applicator 24. It is understood that the pose of the distal end of the energy applicator 24 is fixed relative to the coordinate system of the energy applicator 24. These target positions are points to which the distal end of the energy applicator 24 will move to perform a task. Inputs to the path interpolator 86 include, but are not limited to, data defining the start and end points of the path segments PS, and data indicating whether the segments PS are straight or curved, and if curved, the characteristics of the curve. Another input to the path interpolator 86 is the feedrate FR from the feedrate calculator 82. This is the speed at which the instrument should move along the path segment as determined by the feedrate calculator 82. Based on the above input variables, the path interpolator 86 determines a target position of the distal end of the energy applicator 24 according to the following steps according to one embodiment: That is, 1) the origin of the coordinate system of the energy applicator 24 is assumed to be the start position. The initial position is the position along the path segment PS where the energy applicator 24 should move. If the energy applicator 24 is at the start of the segment PS, then this point is the initial position in the coordinate system of the energy applicator 24. The initial position and the target position are both points in the bone coordinate system. 2) Based on the feed rate FR, the distance that the energy applicator 24 will move along the segment PS in a single time frame is calculated. In some versions, the duration of the time frame is 0.1 to 2 milliseconds. 3) Based on the initial position, the length of the calculated distance, and the location of the segment end point, the path interpolator 86 generates data that defines the target position. Further variables used to determine the target position are data from the toolpath generator that describes the characteristics of the path segment (straight or curved), and, in the case of curved, the radius of curvature. 4) Steps 1-3 are repeated until it is determined that the coordinate system EAPP has reached the end of the path segment. After the calculation of the first target position away from the segment origin, the calculated target position in each frame is taken as the initial position on which the calculation of the target position in the next frame is based.5) Once the target positions are equal to the end positions of the path segment PS, path interpolator 86 repeats steps 1-4 to generate a set of target positions located along the new segment.

[0119] The distance that the energy applicator 24 can travel during a single frame may be greater than the distance to the end position of the current segment. If the path interpolator 86 determines that the energy applicator 24 is in this state, the interpolator generates data that indicates where the energy applicator 24 should be located along the next path segment at the end of that frame, relative to a point in time beginning when the energy applicator 24 is determined to be at the current path segment end.

[0120] When the practitioner is ready to initiate the semi-autonomous advancement of the tool 20, the practitioner utilizes a remote control or pendant 88, as shown in FIG. 1. The practitioner can press buttons 90a, 90b on the pendant 88. In some versions, based on the pressing of button 90, one or more controllers output a coefficient representing a user adjustment of the feed rate FR. In some versions, the coefficient is 0.0, 0.25, 0.40, 0.70, or 1.0. This is the coefficient that is applied to the feed rate calculator 82 as a USER ADJUST input, as shown in FIG. 8. Each time the pendant button 90a is pressed, the feed rate coefficient is readjusted to the next higher level. Each time the pendant button 90b is pressed, the feed rate coefficient is readjusted one level down. The one or more controllers monitor the pendant 88 to determine if any of the buttons 90 are pressed. The command to initiate the advancement of the instrument may be a command to reset the USER ADJUST coefficient above 0.

[0121] In all versions, it is not necessary for the feedrate calculator 82 to always calculate the feedrate FR based on the instantaneous values ​​of the variables. In some versions, these input variables may be filtered. Similarly, there may be reasons to change the coefficients used as multipliers to establish the degree to which any variable affects the feedrate FR. The application of certain variables may be delayed. Changes in the coefficients may be filtered or ramped to blend in / blend out the effects of changes in the magnitude of the coefficients. This filtering or blending smooths the advancement of the tool 20. Smoothing the advancement of the equipment in this way may reduce the possibility of the manipulator becoming unstable or overshooting the target position due to a rapidly changing equipment position. The effect of any variable may be selectively ignored. For example, it may be desirable to generate the feedrate FR based on either the minimum or maximum coefficient and ignore the other coefficients.

[0122] In some versions, two or more variables to the feedrate calculator 82 may be combined. This combination may be done by addition, multiplication, averaging, or division. Similarly, the calculated coefficients may be added, multiplied, averaged, or divided to provide a final coefficient used to establish the feedrate FR based on the defined feedrate. Similarly, there is no requirement that the coefficients may be determined solely based on a variable vs. coefficient feedrate table. Other means of determining these coefficients are based on using the variables as input variables to an equation, the result of which is the coefficient used to establish the feedrate FR. The equation may be a polynomial equation or a nonlinear equation.

[0123] Similarly, data other than the current draw of the equipment may be used as data by the feed rate calculator 82 to serve as an indication of the equipment power. These data include the voltage or duty cycle that must be applied to the equipment to maintain a constant output. This output may be speed or temperature. For a closed loop energy output device, a measurement of the output may serve as an indication of the equipment power. More specifically, a decrease in output may serve as an indication of a change in the equipment power. For example, if the sensed parameter is motor speed, a decrease in speed indicates that the equipment power demand has increased. Based on this inferential indication that the power demand has changed, the INST POWER factor applied to the feed rate calculator 82 is adjusted.

[0124] III. Techniques for modifying feed rates to account for undesired directional movements of non-toolpath components of the kinematic chain

[0125] As described in the previous section, the feed rate FR can be set and changed based on various conditions and / or variables. As described in this section, the feed rate FR can be dynamically changed to account for the undesired directional motion of the non-tool path components of the kinematic chain KC. Here, the non-tool path components is a term used to represent the components of the kinematic chain KC that are not on the tool path TP (located away), such as the manipulator 14, the base 16, the link 18, the joint J, the end effector 22, the tool shaft 33 (if applicable), the mounting system, and / or the sterile interface mechanism. In other words, the non-tool path components include any components of the kinematic chain KC except the energy applicator 24 located on the tool path TP. Since the undesired directional motion to be mitigated is that of the non-tool path components of the kinematic chain KC, the change in the feed rate FR to account for the undesired directional motion can occur even when the segment PS of the tool path TP, in which the energy applicator 24 is advancing, is linear. As described below, there are various circumstances that affect the presence or expected presence of undesirable directional motion, and such circumstances can exist regardless of whether the toolpath TP is straight or curved when mitigated.

[0126] The one or more controllers 26, 68, 82 are configured to identify that one or more components of the kinematic chain KC other than the energy applicator 24 (non-toolpath components of the kinematic chain KC) are experiencing or will experience undesired oriented motion. In other words, the one or more controllers 26, 68, 82 can determine that undesired oriented motion is actively and currently occurring or is expected to occur. In either scenario, the one or more controllers 26, 68, 82 accordingly modify the feed rate FR of the energy applicator 24 to account for the undesired oriented motion.

[0127] A. Undesirable Directional Movements and Effects

[0128] The term "undesirable" with respect to the orientation of motion describes non-toolpath kinematic motions that the system 10 is configured to determine or identify as being undesirable for reasons related to system performance or user experience, whether intentional or not, and therefore should be removed or mitigated by the system 10. The term "orientation" with respect to motion can be understood as an angle in nature, e.g., a rotational motion of a non-toolpath component. The orientation motion may be, but does not necessarily have to be, along a circular path. Instead, the undesirable orientation motion can be a motion along any curvilinear path in two or three dimensions. Here, "path" only describes the path of motion that the non-toolpath component of the kinematic chain KC follows, and does not necessarily mean (but may include) a predefined path of motion. The term "motion" with respect to orientation can be defined as one or more of the undesirable angular velocities, angular accelerations, or angular jerk experienced or to be experienced by any one or more components of the kinematic chain KC other than the energy applicator 24. The term "motion" excludes the static position or displacement of non-toolpath components, but instead includes the rate of change of position over time, or any derivative thereof.

[0129] Since the non-toolpath components described herein exclude the energy applicator 24, the undesired orientation motion described herein explicitly excludes rotations of the energy applicator 24, such as rotations of the cutting bar 25 about the cutting axis. The orientation motion excludes linear motions of the non-toolpath components of the kinematic chain KC. The orientation motion also excludes motions that are strictly commanded by position (x, y, z), at least as compared to motions commanded by some orientation (e.g., rotations about the x, y, z axes). This orientation motion can be added to or excluded from the position command motion. For example, the command position CP defines the (x, y, z) position of the TCP relative to the toolpath TP, and does not define the orientation pose or movement of the non-toolpath components, since the orientation pose is determined by the inverse kinematic solution. Thus, the commanded positioning of the energy applicator 24 along the toolpath TP is a desired position motion and not an undesired orientation motion, regardless of whether the path segment PS is straight or curved.

[0130] Taking into account undesirable directional motion means that in some embodiments, the feed rate FR is modified to mitigate the effects of the undesirable directional motion. For example, the undesirable directional motion may cause one or more components of the kinematic chain KC other than the energy applicator 24 to make a sudden rotational motion. In some cases, the sudden rotational motion may increase the possibility of an unintended collision occurring between a non-toolpath component and another object. Mitigating the undesirable directional motion by modifying the feed rate FR may reduce the possibility of such a collision. Furthermore, the sudden rotational motion of the non-toolpath component may cause unintended vibration of the manipulator 14, which may cause inaccuracies in the commanded position of the energy applicator 24 relative to the toolpath TP or the surgical site. Mitigating the undesirable directional motion by modifying the feed rate FR may reduce the possibility of such inaccuracies. Furthermore, the sudden rotational motion may appear visually problematic to the practitioner. Mitigating the undesirable directional motion by modifying the feed rate FR may cause the motion of the non-toolpath component to be smoother and more consistent, improving the user experience.

[0131] B. Changing the feed rate to account for motion in the undesired direction

[0132] Modifying the feedrate FR to account for undesired directional motion may occur by one or more of the controllers 26, 68, 82 modifying the actual feedrate FR or the defined feedrate as described in the previous section. The variables (actual UOM) and (expected UOM) in Figure 8 may be input directly to the feedrate calculator 82 along with any of the other variables to output the feedrate FR to the path interpolator 86.

[0133] In another embodiment, inputs from variables (actual UOM) and (expected UOM) can bypass feedrate calculator 82 and instead be input to path interpolator 86, thereby overriding the feedrates output by feedrate calculator 82, as shown by the dashed lines in Figure 8. This override may be beneficial to ensure that undesirable oriented motion is mitigated, such as in situations where other feedrate variables may dictate otherwise. If undesirable oriented motion is identified, such feedrate overrides may be default settings or exceptions for specific situations. The one or more controllers 26, 68, 82 may determine when a feedrate override condition exists based on any suitable criteria or conditions, such as, but not limited to, exceeding a threshold (e.g., magnitude, direction, duration) for undesired directional motion, the stage of the surgical procedure, the surgeon's preference regarding the tolerance for undesired directional motion, identification of the presence of any conditions that may cause undesired directional motion (shown in FIG. 14), any factors related to the tool path TP or segment, the feedrate value output by the feedrate calculator 82, or the input value of any of the above variables used to calculate the feedrate.

[0134] In some embodiments, the one or more controllers 26, 68, 82 are configured to model the tool 20 and energy applicator 24 as a virtual rigid body and vary the feed rate FR to account for the undesired directional motion based on a virtual force applied to the virtual rigid body. As such, inputs from parameters, or variables (actual UOM) and (predicted UOM) related to the undesired directional motion can be included in the virtual force, which can be the calculated force (CMPTD FORCE) variable described above.

[0135] In some embodiments, the one or more controllers 26, 68, 82 are further configured to reduce the feed rate FR, thereby modifying the feed rate FR to account for the undesired directional motion. In one example, the feed rate FR is reduced by a factor that correlates to the magnitude and / or direction of the undesired directional motion experienced or to be experienced by one or more components of the kinematic chain KC other than the energy applicator 24. In some embodiments, the modified feed rate FR is a non-zero rate that is less than the rate of the feed rate that existed before the feed rate change. In other words, the existing feed rate FR can be reduced to mitigate the undesired directional motion. The change or reduction can be gradual or impulsive, and can occur over or for any duration, such as a duration determined by the one or more controllers 26, 68, 82 necessary to mitigate the undesired directional motion.

[0136] In some cases, the one or more controllers 26, 68, 82 may additionally or alternatively mitigate the undesired directional motion by increasing the feed rate FR or intentionally maintaining an existing / predetermined feed rate FR that was to be increased. For example, the one or more controllers 26, 68, 82 may rapidly reduce the feed rate FR and then increase the feed rate FR to mitigate the undesired directional motion.

[0137] An example of an undesirable oriented motion of a non-toolpath component of the kinematic chain KC is shown in Figs. 10 and 11. In this example, the non-toolpath components of the kinematic chain KC that experience an undesirable oriented motion are the shaft 33 of the tool 20 and one joint J of the manipulator 14. In Fig. 10, the energy applicator 24 is advanced along a curved path segment PS1 between commanded positions CP1 and CP2. During this motion, one or more controllers 26, 68, 82 identify or predict that the tool shaft 33 and joint J6 experience or will experience an undesirable oriented motion UOM1 as a result of advancement according to the feed rate FR1. The state of the joint J6 and the tool shaft 33 is represented by a dashed line at time step T1 and a solid line at the subsequent time step T2. The undesirable oriented motion UOM1 results in a sudden rotation (indicated by an arrow) of the tool shaft 33 and joint J6 between T1 and T2. In one example, the undesirable oriented motion UOM1 of the tool shaft 33 and joint J can be determined using any of the methods described herein, including evaluating the angular motion of the shaft 33 and joint J relative to their respective previous positions and / or relative to any other components of the manipulator 14. The undesirable oriented motion can also be identified relative to a datum reference that may or may not experience undesirable oriented motion, such as the energy applicator 24, the tool path TP and / or the command position PS.

[0138] In Fig. 11, to mitigate the undesired directional motion, one or more controllers 26, 68, 82 change the feed rate FR1 to a different feed rate FR2. In Fig. 11, the state of the tool shaft 33 is represented by a dashed line at time step T2 and a solid line at a subsequent time step T3. The feed rate FR2 is changed while the energy applicator 24 traverses the same path segment PS1. The intentional change in feed rate to FR2 reduces or eliminates the undesired directional motion UOM2 of both the tool shaft 33 and the joint J6 before the commanded position CP2 is reached.

[0139] In the previous example of Figures 10 and 11, the feedrate FR was changed to take into account the undesired directional motion UOM in the process of the energy applicator 24 traversing one path segment PS. In Figures 12 and 13, another example is shown of mitigating the undesired directional motion UOM by changing the feedrate FR after the energy applicator completes the traversal of the path segment PS1 and reaches the next commanded position CP2. In other words, the undesired directional motion occurs in the path segment PS1 between CP1 and CP2, but is mitigated in the next path segment between CP2 and CP3 due to the change in the feedrate from FR1 to FR2. The next commanded position CPN may be determined before or after changing the feedrate FR.

[0140] These examples show reactive adjustments of the feed rate FR that occur after an undesired motion has occurred. The modification of the feed rate FR to account for the undesired motion may alternatively be predictive, such that non-toolpath components of the kinematic chain KC do not experience (or do not experience) the undesired motion as the system 10 proactively mitigates the undesired motion.

[0141] C. Undesirable directional movements – influencing factors and examples

[0142] 14, an undesired directional movement (denoted by UOM) occurs or is expected to occur in response to, among, or based on one or more current or expected external conditions, scenarios, or actions. Such factors may arise from the manipulator 14 itself, the surgical environment, or the user. Individually or in combination, such conditions, scenarios, or actions may be direct or indirect factors that influence the existence or expected existence of an undesired directional movement.

[0143] In one embodiment, for any current or anticipated external conditions, scenarios, or actions, an undesirable oriented motion occurs or is expected to occur during advancing the energy applicator 24 in semi-autonomous mode, as shown at 100 in FIG. 14. This is based on the understanding that the system 10 typically implements a controlled feed rate in semi-autonomous mode to move the energy applicator 24 along the tool path TP. Undesirable oriented motion may occur in other modes of operation, such as in manual mode. For example, the manipulator 14 and / or end effector 22 may include a feed rate controller interface or pendant that allows a user to manually control the feed rate of the tool, for example, along the insertion axis. In such a scenario, undesirable oriented motion may occur even when the user manually controls the feed rate, such as in manual mode. One example of manual feed rate control is described in U.S. Patent Application Publication No. 2020 / 0289133 A1, entitled "Robotic Surgical System and Methods Utilizing a Cutting Bur for Bone Penetration and Cannulation," the contents of which are incorporated herein by reference in their entirety.

[0144] i. Determined feed rates and variables

[0145] One factor that may affect the presence or expected presence of undesired directional motion is the advancement of the energy applicator 24 according to the feed rate FR, or the variables used to calculate the feed rate FR, shown at 104 in FIG. 14, as described in the previous section. In this scenario, the one or more controllers 26, 68, 82 advance the energy applicator 24 along the tool path TP according to the feed rate FR to a command position CP. It is believed that this advancement of the feed rate may cause the inverse kinematic solution to cause one or more of the non-tool path components of the kinematic chain KC to experience undesired directional motion. The presence or anticipated presence of undesirable directional motion may be influenced, for example, by any of user adjustments 106 (USER ADJUST) to the feed rate FR using the pendant 88, path curvature 108 (PATH CRVTR), tissue temperature 110 (TISSUE TEMP), instrument power 112 (INST. POWER), and / or collisions with virtual boundaries 113 (VB COLLISION), based on the understanding that such feed rate adjustment factors affect directional motion of non-tool path components. The examples shown in Figures 10 and 11 and Figures 12 and 13 may be considered to illustrate undesirable directional motion that occurs based on the advancement of the energy applicator 24 according to the feed rate FR or the variables utilized in calculating the feed rate FR, respectively.

[0146] ii. Constraints

[0147] Another factor that may affect the presence or expected presence of undesired directional motion are the constraints (indicated at 114) on or of the system 10. Such constraints may be mechanical and / or virtual constraints associated with any component of the kinematic chain KC. These constraints may affect undesired directional motion, either individually or in combination.

[0148] One constraint that may affect the presence or expected presence of undesired oriented motion is a workspace limit constraint, shown at 116 in FIG. 14. As part of the motion control process performed by the manipulator controller 26, the workspace limit is evaluated to determine if the energy applicator 24 has reached the boundary of a defined workspace. This workspace limit is away from the origin of the coordinate system MNPL and is defined with reference to this coordinate system. The workspace is within the volume that the energy applicator 24 can move if the links 18 are allowed to move to their full extension of their range of motion. This workspace is sometimes referred to as the "dexterous workspace" and the manipulator 14 prevents the energy applicator 24 from advancing outside of this workspace. The workspace limit may have any shape and is typically smaller than the volume of space within the full range of motion of the manipulator 14, for example, to ensure that the practitioner has at least some ability to so reorient the end effector 22. In the process of respecting this workspace constraint, it is possible that one or more of the non-toolpath components of the kinematic chain KC may experience undesired orientations of motion due to corrective reorientations.

[0149] Another constraint that may affect the presence or expected presence of undesirable directional motion is the interference limit constraint, shown at 118 in FIG. 14. Here, the manipulator controller 26 controls the manipulator 14 to avoid collisions between the links 18, or between any structural members of the manipulator 14. One reason for preventing these collisions is to prevent relative motion of the links 18 that may form pinch points between the links 18. Preventing these collisions also avoids damage from such collisions. Based on the representation of the actual joint angles, the manipulator controller 26 determines the minimum distance between pairs of links 18 that may collide. To make this determination, the manipulator controller 26 may use the forward kinematic data to determine the pose of the joints J, as well as the common normal distance and the minimum distance between pairs of links 18 that may collide. The manipulator controller 26 calculates the difference between the minimum distance of pairs of links 18 that may collide and the boundary distance of the pairs of links 18. This boundary distance is the distance below which it is undesirable for the links 18 to move towards each other. In the process of respecting this interference limit, it is possible that one or more of the non-toolpath components of the kinematic chain KC may experience undesired orientations of motion due to corrective reorientations.

[0150] Another constraint that may affect the presence or expected presence of undesired oriented motions is a constraint related to singularity avoidance, also shown at 118 in FIG. 14. A singularity is a condition that occurs due to two or more robot links or joints J being collinearly located, resulting in unpredictable robot motion and velocity. If an axis or joint J is located at a singularity, there are an infinite number of ways in inverse kinematics to achieve the same position of the TCP. To avoid this condition, the manipulator controller 26 may implement one of many control techniques. In one example, the interference limits described above may be implemented. In another example, a singularity analysis may be performed during assembly or calibration of the robot. The analysis may yield singularity avoidance data that is stored in the manipulator controller 26. In response to an approaching singularity, the manipulator controller 26 may command the manipulator 14 to take corrective action, such as proactively rotating a particular joint J from a singular straight pose. Corrective action may also be performed by changing the position of the joint J in a null space that allows the joint J to move without changing the TCP position. The trajectory or orientation of the end effector 22 may also be modified to avoid the singularity. In the process of avoiding the singularity, it is possible that one or more of the non-toolpath components of the kinematic chain KC may experience motion in an undesired orientation due to the corrective action.

[0151] Another constraint that may affect the presence or expected presence of undesired directional motions is a virtual constraint, shown at 120 in FIG. 14. For example, the virtual constraint may be implemented by the boundary generator 66, which may define, for example, a virtual object or boundary 71 to constrain the movement and / or motion of the tool 20, the energy applicator 24, and / or the manipulator 14. As described in the previous section, such a virtual boundary 71 may be defined relative to an anatomical model AM, such as a 3D bone model. The manipulator controller 26 and / or the navigation controller 36 track the state of the tool 20 relative to the virtual boundary 71. In one example, the state of the TCP is measured relative to the virtual boundary 71 for the purpose of determining haptic forces to be applied to the virtual rigid body model via a virtual simulation so that each motion component is in a desired positional relationship with respect to the virtual boundary 71 (e.g., does not move beyond the virtual boundary). The results of the virtual simulation are commanded to the manipulator 14. In the process of respecting such a virtual boundary 71, it is conceivable that one or more of the non-toolpath components of the kinematic chain KC may experience undesired directional movements due to corrective haptic or reaction forces.

[0152] 15 and 16 show an example of a non-toolpath component of the kinematic chain KC experiencing undesired motion due to haptic or reaction forces for correction from constraint collision. More specifically, in this example, the non-toolpath component is the shaft 33 of the tool 20 and the constraint is a virtual boundary 71. The virtual boundary 71 in this example can be associated with an anatomical model AM, for example, with a femoral shaft for a total hip surgery. The virtual boundary 71 depicts a volume of femoral shaft to be removed by milling with the energy applicator 24 from an area of ​​the femur that should not be removed. The energy applicator 24 follows the toolpath TP within the virtual boundary 71. Specifically, the energy applicator 24 is advanced along the toolpath TP according to a first feedrate FR1.

[0153] One or more controllers 26, 68, 82 can associate one or more virtual haptic objects VO with one or more components of the kinetic chain KC. In this example, the virtual haptic objects VO are associated with the shaft 33, but can be associated with any other components of the kinetic chain KC. The virtual haptic objects VO are not visually and physically present on the shaft 33, but are virtual, i.e., computationally associated with the shape of the shaft 33.

[0154] In some implementations, the one or more controllers 26, 68, 82 may associate a first virtual haptic object VO with a first component of the kinetic chain KC at a first location on the first component. The one or more controllers 26, 68, 82 may also associate a second virtual haptic object VO with a first component of the kinetic chain KC at a second location on the first component away from the first location. The virtual haptic object VO may be located on any component of the kinetic chain KC, such as with respect to one or more links 18, joints J, base 16, end effector 22, shaft 33, etc. In one example, as shown in FIG. 15, the virtual haptic object VO is located near the proximal end of the shaft 33. This is because the possibility of undesired directional movement of the shaft 33 is greater near the proximal end of the shaft 33 than at the distal end of the shaft 33 where the energy applicator 24 is located.

[0155] As shown in FIG. 15 , one or more controllers 26, 68, 82 can detect collisions between one or more virtual haptic objects VO and the virtual boundary 71. In one embodiment, collision detection can be based on tracking of the anatomical structures and tool 20 by the navigation system, as described above. The magnitude and / or direction of the collision can be detected and measured using any suitable technique, such as the depth of penetration of the virtual haptic object into the boundary 71 based on the intersection of the virtual haptic object(s) VO with the polygonal elements of the mesh of the virtual boundary 71. Alternatively, the collision can be calculated based on a penetration factor that is a function of the geometry of the virtual volume boundary relative to the geometry of the mesh polygonal elements, such as using the projected arc or projected area method described in U.S. Patent Application Publication No. 2018 / 0353253 A1, entitled “Robotic Surgical System and Method for Producing Reactive Forces to Implement Virtual Boundaries,” the contents of which are incorporated herein by reference. In response to the collision, one or more controllers 26, 68, 82 control the manipulator 14 to inhibit the shaft 33 from crossing the virtual boundary 71. Specifically, a reaction force RF based on the calculated magnitude and / or direction of the collision is commanded to the manipulator 14. The reaction forces RF and their respective directions are indicated in FIG. 15 by arrows proximate the collision location.

[0156] 16, the example shows that commanded movement of the manipulator 14 according to the reaction force RF to avoid / mitigate a collision causes an undesired oriented motion UOM of the shaft 33. Again, the one or more controllers 26, 68, 82 can identify that the shaft 33 is currently experiencing or will experience an undesired oriented motion UOM. The one or more controllers 26, 68, 82 modify the feedrate from FR1 to FR2 to account for the undesired oriented motion UOM that occurs in response to restraining the shaft 33 in response to detecting the collision.

[0157] The examples shown in Figures 15 and 16 are not intended to be limiting in scope as to how non-toolpath components of the kinematic chain KC may experience undesired directional motion due to constraints or how one or more controllers 26, 68, 82 may take such undesired directional motion into account. For example, non-toolpath components other than the shaft 33 may be subject to any type of constraint, such as those described above. Constraints may also not necessarily require collisions with virtual haptic objects VO, etc., but may instead be based on computational control of motion limits. For example, the shaft 33 may collide with the virtual boundary 71 in the absence of the virtual haptic object VO. The one or more controllers 26, 68, 82 may detect collisions based on a model of the known physical shape of the shaft 33.

[0158] iii. Changing the tool orientation

[0159] Another factor that may influence the presence or expected presence of undesirable directional motion is reorientation of the surgical tool 20 and / or end effector 22, shown at 122 in Figure 14. Such reorientation may occur during advancement of the energy applicator 24 along the toolpath TP or may occur when the energy applicator 24 is stationary.

[0160] In one example, reorientation of the surgical tool 20 and / or the end effector 22 can be initiated by the system 10. For example, as shown at 124, the reorientation can be an automatic reorientation performed by the manipulator controller 26. In one example, the automatic reorientation can be to a preferred orientation determined by the system 10 as optimal or preferred for a given scenario, condition, or stage of a surgical procedure. When the energy applicator 24 advances along the TP, the automatic reorientation can occur in response to reorienting forces and torques applied to the surgical tool 20 and / or the energy applicator 24 by system settings for accessing the surgical site and / or obstacles near the surgical site. In practice, there may be an obstacle that impedes the advancement of the energy applicator 24 along the path segment PS. The obstacle may be protruding tissue or a surgical tool instrument. To prevent the obstacle from impeding the advancement of the energy applicator 24, the tool 20 may need to assume a different orientation, or an orientation outside of its normal range of orientations.

[0161] In one embodiment, automatic reorientation can be implemented as follows: By knowing the actual pose of the tool 20, the orientation adjuster of the manipulator controller 26 can define a reference plane (e.g., a plane) located above (e.g., 5-20 cm above) the energy applicator 24, the reference plane being perpendicular to the longitudinal axis of the tool 20. The orientation adjuster then defines an aperture (e.g., a circle) in the reference plane centered at the point where the longitudinal axis of the tool 20 intersects the reference plane. The aperture can define the limit of the normal orientation of the tool 20. The orientation adjuster may determine that the orientation of the tool 20 has shifted or may need to move to a pose within or beyond the aperture limit. In response, the manipulator controller 26 can command a force to the manipulator 14 to reorient the tool within or beyond the aperture. In the process of implementing automatic reorientation, it is conceivable that one or more of the non-toolpath components of the kinematic chain KC may experience motion in an undesired orientation.

[0162] In another example, the reorientation of the surgical tool 20 and / or the end effector 22 can be initiated by a user, as shown at 126 in FIG. 14. In one example, the practitioner may decide to reset the orientation of the tool 20 while the energy applicator 24 is being advanced along the tool path TP. It may be desirable to reorient the tool 20 in this manner to avoid contact with tissue or another instrument that may be near the tool path TP. If the practitioner wishes to reorient the tool 20, he or she actuates an input at the end effector 22. Alternatively, the practitioner may attempt to effect a reorientation of the tool 20 by force without inputting a command. The manipulator controller 26 can monitor this user input, for example, by monitoring the duration of the user input or based on the force detected by the force / torque sensor S. In either case, the manipulator controller 26 can instruct the manipulator 14 to reorient the tool 20 in a manner that emulates the corresponding user input. In the process of performing a manual reorientation, it is possible that one or more of the non-toolpath components of the kinematic chain KC experience an undesired reorientation of motion. Examples of automatic or manual robotic control of tool reorientation may be similar to those described in U.S. Patent No. 9,119,655, entitled "Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes," and U.S. Patent No. 9,937,014, entitled "System and Method of Controlling a Surgical Tool During Autonomous Movement of the Surgical Tool," the disclosures of each of which are incorporated herein by reference.

[0163] 17 and 18 show an example of a non-toolpath component of the kinematic chain KC undergoing an undesired oriented motion in response to a reorientation of the manipulator 14, and more specifically, the tool 20. More specifically, the reorientation in this example can be initiated by the practitioner applying a force (as shown) to the distal joint (J) or by actuating a user input to the end effector 22 (not shown). During the reorientation action shown in FIG. 17, the energy applicator 24 is advanced along the toolpath TP according to a first feedrate FR1. In FIG. 17, the example shows that the movement of the manipulator 14 according to the reorientation command causes an undesired oriented motion UOM of the shaft 33 and the joint J. Again, the one or more controllers 26, 68, 82 can identify that an undesired oriented motion UOM is currently being experienced or will be experienced. The one or more controllers 26, 68, 82 change the feedrate from FR1 to FR2 to take into account the undesired oriented motion UOM that occurs in response to the reorientation.

[0164] The examples shown in Figures 16 and 17 are not intended to be limiting in scope as to how non-toolpath components of the kinematic chain KC may experience undesirable oriented motion due to changes in orientation or how one or more controllers 26, 68, 82 may take such undesirable oriented motion into account.

[0165] iv.External force

[0166] Yet another factor that may affect the presence or expected presence of undesired directional motion is an external force or torque, shown at 122 in FIG. 14. Such external forces may occur during advancement of the energy applicator 24 along the tool path TP or may occur when the energy applicator 24 is stationary. These external forces and torques may include tissue resistance to advancement of the tool 20, and external forces and torques applied to any one or more components of the kinematic chain KC, for example, by the practitioner or the environment. The motion control module may monitor the state of the manipulator 14 to detect whether an external force / torque is being applied to the manipulator 14 or tool 20 or if an object is in contact with it.

[0167] One example of an external force / torque that may affect the presence or expected presence of undesired directional motion is an external force / torque applied to the tool 20, indicated at 130. In one example, this external force / torque is applied to the tool 20 by the practitioner manually reorienting the tool 20 by force or user input, as described above and shown in FIGS. 17 and 18. Such an external force can be detected by the force / torque sensor S. The manipulator controller 26 can also monitor signals representative of the forces and torques sensed by the force / torque sensor S to determine whether excessive external forces are being applied to the tool 20 or the energy applicator 24. There is some resistance to the advancement of the tool 20 as a result of the normal resistance of the tissue to which the energy applicator 24 is applied. During the semi-autonomous advancement of the tool 20, the force / torque sensor S may output a signal in response to the application of tissue resistance indicating that the sensor is being exposed to a level of force and torque that exceeds a significant limit. In the process of commanding the manipulator 14 to take into account external forces / torques on the tool 20, it is possible that one or more of the non-toolpath components of the kinematic chain KC may experience motion in an undesirable direction.

[0168] Another example of an external force / torque is the backdrive of the manipulator 14, indicated at 132. The backdrive torque is output by the joint motors 27 in response to external forces and torques on the manipulator 14, the tool 20 and / or the energy applicator 24. The backdrive torque is a torque output by the joint motors 27 that exceeds the torque required to overcome inertia and gravity. When the manipulator 14, the tool 20 and / or the energy applicator 24 are subjected to external forces and torques, these forces and torques temporarily impede the advancement of the tool 20 to the commanded pose. This temporarily impedes the advancement of one or more of the joints J to their commanded joint angles. At the same time that the external forces and torques are applied, the control loop adjusts the torques output by the joint motors 27 to compensate for these external forces and torques. To calculate the backdrive torque, the manipulator controller 26 can determine the torque that the joint motors 27 should output in the absence of the external forces and torques. The manipulator controller 26 can utilize the joint angles measured from the encoders and the joint angles calculated from the forward kinematic analysis. A further variable from which the backdrive torque can be determined is the actual torque that the joint motors 27 exert on the links 18 to advance the tool 20, and thus the energy applicator 24, towards the commanded pose. One way to obtain the actual torque is to measure the torque output by the joint motors 27, more precisely the reduction gears. Another way is to monitor the torque output by the joint motors 27, measured by a torque sensor or a sensor measuring the current consumption of the joint motors 27. In the process of controlling the manipulator 14 to take into account the backdrive forces, it is conceivable that one or more of the non-toolpath components of the kinematic chain KC will experience motion in an undesired direction. An example of backdrive control for a robotic manipulator is similar to that described in U.S. Pat. No. 10,327,849, entitled "Robotic System and Method for Backdriving the Same," the disclosure of which is incorporated herein by reference.

[0169] The one or more controllers 26, 68, 82 account for undesired oriented motions that are or will be experienced by non-toolpath components of the kinematic chain KC in response to backdriving of the manipulator 14. During a backdrive operation (whether generated intentionally or due to a collision), the energy applicator 24 is advanced along the toolpath TP according to a first feedrate FR1. Reaction motion of the manipulator 14 according to a backdrive command causes undesired oriented motions UOM of the shaft 33 and joints J. The one or more controllers 26, 68, 82 change the feedrate from FR1 to FR2 to account for the undesired oriented motions UOM that occur in response to backdriving.

[0170] Another example of an external force / torque is one applied to the patient or patient tracker(s) 54, 56, as shown at 134. When applied to the patient, the external force / torque may be caused by repositioning the patient or by collision with an anatomical structure. For example, the robotic manipulator or energy applicator 24 may collide with and push against the patient's anatomical structure. In another example, the energy applicator 24 may physically push against the anatomical structure during manipulation of the anatomical structure. In another example, the anatomical structure may be inadvertently bumped by staff or other surgical equipment. When applied to the patient tracker(s) 54, 56, an external force / torque may be generated for many of the same reasons. Here, one or more of the patient tracker(s) 54, 56 moves from its current position to a different position in response to the external force. The external force / torque applied to the patient tracker(s) 54, 56 may be due to movement of the patient's anatomical structure. The external force / torque may cause the patient tracker(s) 54, 56 to move relative to the bone / anatomical structure to which the patient tracker(s) 54, 56 are attached. In other words, the rigid fixation of the patient tracker(s) 54, 56 to the anatomical structure may come loose, shift, or become dislodged. In any of these scenarios, the patient tracker(s) 54, 56 will likely move, which may affect the operation of the manipulator 14. In one example, the movement of the patient tracker(s) 54, 56 causes a corresponding movement of the virtual boundary 71 that is registered to the corresponding anatomical structure to which the patient tracker(s) 54, 56 are attached. The movement of the virtual boundary 71 may cause a collision with the manipulator 14 or the energy applicator 24. Such a scenario may cause a "runaway" error condition in which the manipulator 14, restrained by the virtual boundary 71 of the patient, continues to push the patient due to the reaction force applied to the tool by the boundary 71. However, in response to such a push, the same boundary 71 is moved for registration with the (now) moving anatomical structure.This runaway condition can be resisted, accommodated, or avoided by adjusting the motion of the manipulator 14 (e.g., orientation, feedrate, commanded position, etc.). To mitigate this condition, the constraints by which the manipulator 14 is controlled can be adjusted. One example of a control system that can be used by the techniques described herein to mitigate a runaway condition is described in International Patent Application No. PCT / US2020 / 053803, entitled "Surgical Systems and Methods for Guiding Robotic Manipulators," filed on January 10, 2020, the entire disclosure of which is incorporated by reference. In another example, movement of the patient tracker(s) 54, 56 due to external / forces may cause a different trajectory, toolpath TP, or a segment thereof to be regenerated / updated. The motion of the manipulator 14 can be adjusted to accommodate the new toolpath TP or trajectory.

[0171] In the process of controlling the manipulator 14 to account for external forces applied to the patient and / or patient tracker(s) 54, 56, or in mitigating a "runaway" condition, it is conceivable that one or more of the non-toolpath components of the kinematic chain KC will experience undesirably oriented motions. The one or more controllers 26, 68, 82 account for the undesirably oriented motions that are or will be experienced by the non-toolpath components of the kinematic chain KC in response to these external forces / torques. During a corrective action (whether generated intentionally or due to a collision), the energy applicator 24 is advanced along the toolpath TP according to a first feedrate FR1. A reactive motion of the manipulator 14 in response to the corrective action causes an undesirably oriented motion UOM of one of the non-toolpath components. The one or more controllers 26, 68, 82 change the feedrate from FR1 to FR2 to account for the undesirably oriented motion UOM that occurs in response to the corrective action.

[0172] D. Example of an algorithm to account for undesired directional motion

[0173] With reference to Figure 19, one embodiment of a method 200 for accounting for undesirable directional motion is described. Method 200 describes an algorithm implemented by one or more of controllers 26, 68, 82, and any ancillary components of a robotic surgical system, as described below. Method 200 shown in Figure 19 is not intended to be limiting in scope, as steps may be added or omitted, and steps, if present, may be performed in a different order than shown.

[0174] In one embodiment, the method 200 begins in step 202, where a feed rate FR is determined. The feed rate FR can be determined by the feed rate calculator 82 according to the technique and variables described in the previous section and illustrated in FIG. 8. This feed rate FR is the speed at which the energy applicator 24 is commanded to move. Thus, in step 204, one or more controllers 26, 68, 82 command the manipulator 14 to advance the energy applicator 24 according to the feed rate FR. Such an advance is, for example, a position-controlled advance of the energy applicator 24 along the tool path TP in a semi-autonomous mode. Orientation and position control of other components of the kinematic chain KC can also be performed in step 204 to allow the energy applicator 24 to move to a commanded position while respecting other constraints of the system.

[0175] In step 206, the one or more controllers 26, 68, 82 identify, analyze and / or monitor undesirable oriented motion of the non-toolpath motion component(s) of the kinematic chain KC. Here, the one or more controllers 26, 68, 82 may identify undesirable oriented motion that is actually occurring (actual UOM) or that is expected to occur (anticipated UOM). In either case, the one or more controllers 26, 68, 82 may use any one or more of the following components, techniques, or algorithms to identify the actual or anticipated undesirable oriented motion. Any of the following may be utilized individually or in combination. The identification of the actual or anticipated undesirable oriented motion may be in response to any of the factors, events, or conditions that affect the presence of the actual or anticipated undesirable oriented motion as shown in FIG. 14 and described above.

[0176] In step 208, the one or more controllers 26, 68, 82 may optionally employ forward (FWD) kinematic measurements of the manipulator 14 to identify, analyze and / or monitor undesired orientations of motion. Here, the one or more controllers 26, 68, 82 implement a kinematic process that calculates a Cartesian end position of the TCP, which is a function of the angle of the joint J. The forward kinematic process receives input from a position sensor (encoder) of the joint J of the manipulator 14. Based on this input, the forward kinematic process calculates the position of the TCP relative to the base 16. Based on the known geometric relationship between the tool 20 and the energy applicator 24, the position of the energy applicator 24 relative to the base 16 can then be calculated. As the position sensors monitor the joint positions, the transformation can be updated periodically to reflect the motion of the manipulator 14. The forward kinematic calculation can be updated after any given time step of the commanded motion of the energy applicator 24 executed according to inverse kinematic control. In the process of forward kinematics calculation, the one or more controllers 26, 68, 82 can store forward kinematics parameter values ​​for various positions of the energy applicator 24 in the non-transitory memory 64. The energy applicator 24 can be stepped according to a feedrate FR as the forward kinematics data is being captured. The one or more controllers 26, 68, 82 can analyze the forward kinematics parameter values ​​over a period of time to identify conditions, patterns, or trends that can be compared to ranges, thresholds, or conditions indicative of undesirable orientations of motion, as described below in step 216. The one or more controllers 26, 68, 82 can also analyze the forward kinematics data to identify collisions occurring between the moving component and other objects, such as environmental objects or other moving components. Such techniques allow the one or more controllers 26, 68, 82 to determine undesirable orientations of motion without the use of sensors or sensing systems other than the joint encoders.

[0177] In step 210, the one or more controllers 26, 68, 82 may alternatively or additionally use any given number of sensors or sensing systems to identify, analyze and / or monitor actual or anticipated undesired directional motion. The one or more sensors are configured to generate measurements related to any one or more components of the kinematic chain KC, including the energy applicator 24. In one example, the one or more sensors or sensing systems may be a navigation system 32 or any configuration thereof, such as an optical, electromagnetic, radio frequency, inertial, ultrasonic, or machine vision based localization system capable of tracking the kinematic components KC. The one or more sensors may include sensors coupled to any one or more of the joints J or links 18, the sensors configured to sense any one or more of the position of the joint or link, the velocity of the joint or link, and the acceleration of the joint or link. Such sensors may be inertial sensors, tracking elements utilized with the navigation system 32, and the like. In another example, the one or more sensors may include a current sensor configured to sense a current drawn by the motor 27 of any one or more of the joints J. Such current sensing can be indicative of joint torque, from which the one or more controllers 26, 68, 82 can infer undesired directions of motion. It is contemplated that sensors or sensing systems other than those specifically described above can be used to identify undesired directions of motion. The one or more controllers 26, 68, 82 and / or navigation system 32 can be configured to analyze any of the above measurements at a given time period or over any period of time to identify that one or more components of the kinetic chain KC other than the energy applicator 24 are experiencing or will experience undesired directions of motion.

[0178] In step 212, the one or more controllers 26, 68, 82 may alternatively or additionally use the inertia values ​​to identify, analyze and / or monitor actual or anticipated undesired directional motion. Specifically, the one or more controllers 26, 68, 82 are configured to store in the non-transitory computer-readable medium 64 the inertia values ​​of any one or more components of the kinematic chain KC, including the energy applicator 24. In one example, the inertia values ​​are rotational inertia values. Rotational inertia values ​​are also referred to as moments of inertia, mass moments of inertia, and angular mass values. Such values ​​are scalar quantities that determine the torque required for a specified angular motion about an axis of rotation. In another embodiment, the inertia values ​​may be translational or linear inertia values. By storing such values, the one or more controllers 26, 68, 82 are better equipped to identify whether one or more components of the kinematic chain KC, other than the energy applicator 24, are experiencing or will experience undesired directional motion.

[0179] In step 214, one or more controllers 26, 68, 82 may alternatively or additionally utilize a simulation to identify, analyze and / or monitor actual or anticipated undesired directional motions. Here, a pre-operative or intra-operative simulation may be performed to simulate the motion of the manipulator 14 and each motion component. Such a simulated motion may be, for example, a forward movement of the energy applicator 24 along the tool path TP or, optionally, a simulation of forward movement according to a semi-autonomous mode. The control system 60, including the manipulator controller 26 and the behavior controller 74, may simulate the dynamics of the manipulator 14 in the virtual simulation described above or may simulate other simulation schemes using a physics engine that simulates the rigid body dynamics of the base 16, the links 18, the joints J, the end effector 22, the tool 20 and / or the energy applicator 24. The simulation may be utilized by the control system 60 to control the manipulator 14 at run-time or may be performed separately therefrom. The simulation may be visually or graphically displayed on a display, or may be embodied purely by data not displayed to the user. In one example, the simulation may perform the movements of the manipulator 14 for all parts of an automated surgical procedure.

[0180] The simulation may consider any or all factors related to the control of the manipulator 14, including setup or preferred poses, in-path or out-path movements, retraction of the manipulator 14 from the site, changes in orientation of the manipulator 14, changes in feed rates, system constraints, etc. Additionally, the simulation may provide data related to other tasks, events, or commands related to the manipulator 14. For example, the simulation may include robot data defining the kinematic poses of any of the components of the manipulator 14, or log or command data (e.g., commanded position of the energy applicator 24). The simulation may include a log of collisions of any of the components of the manipulator 14 with one or more virtual boundaries 71, the magnitude / direction of intrusion of the boundary 71 collisions, and / or parameters / values ​​of each reaction force applied to correct the constraint collision. The simulation may obtain data related to any of the factors that may or do affect the presence of undesired oriented motion, such as any of those described above and illustrated in FIG. 14. Additionally or alternatively, the simulation may be performed in part by the practitioner during a virtual trail run of the procedure. Here, the practitioner may be able to visualize the manipulator 14 and the surgical site in a simulation. Any of the factors mentioned above that influence the presence of undesired orientation motion may be considered during this simulation. For example, there may be simulated external forces, constraints, collisions, backdrives, reorientations, etc. that occur as a result of external or practitioner-initiated factors or as a result of automated robotic control.

[0181] In another embodiment, the control system 60 may employ machine learning algorithms that may be executed pre-operatively or intra-operatively. The machine learning algorithms may analyze the current robot motion against historical data of the robot and navigation system to actively predict undesired directional motion. Such predictions may be made, for example, seconds or milliseconds before the expected undesired directional motion. The neural network may be trained on previous robotic surgeries or simulations of a similar nature to predict undesired directional motion. The training data may also include patient data, implant data, procedure type, and / or surgeon preferences. For the current procedure, the trained neural network may be applied to automatically modify the manipulator 14 commands (including feed rate adjustments) to account for the predicted undesired directional motion during the course of the procedure. The surgeon may utilize an input device to visually review the machine learning predictions and the impact of each modification on the manipulator 14 motion prior to the procedure. The surgeon may also be able to accept or reject the predicted modifications to the manipulator 14 motion.

[0182] The results of the simulation or machine learning algorithm may include data including, among other things, a time log of predicted run-time events indicative of undesired directional motion. Such data may be stored or transmitted to the control system 60. Before or during the procedure, the one or more controllers 26, 68, 82 are configured to retrieve the simulation or machine learning data from the memory and identify that undesired directional motion is expected to occur based on the simulation data and the actual run-time data of the robotic system. The control system 60 may then automatically modify the motion of the manipulator 14 to preclude the presence of or reduce the expected impact of future undesired directional motion. The simulation or machine learning techniques described herein may be implemented using any other type of sensing, as discussed above. Additionally, it is contemplated that such simulation or machine learning may be performed according to methods not specifically described herein, for example, using alternative forms of artificial intelligence and planning software. Examples of simulation techniques that may be employed are described in U.S. Patent Application Publication No. 2019 / 0142520A1, entitled "Patient-specific Preoperative Planning Simulation Techniques," the contents of which are incorporated herein by reference in their entirety.

[0183] In step 216, the one or more controllers 26, 68, 82 optionally compare the actual or predicted undesirable orientation motion to a limit, threshold, or range. This function can be performed to delineate normal or desired orientation motion from undesirable orientation motion. The limit, threshold, or range can define the sensitivity of the system 10 to identifying undesirable orientation motion. In practice, balancing such sensitivity helps optimize treatment and user experience. If an excessive number of events are identified as undesirable, treatment time may be extended by reducing the feed rate. If too few events are identified as undesirable, undesirable effects of orientation motion may include user experience and system accuracy. The practitioner may be able to adjust this sensitivity before treatment, during treatment, or during the simulation phase, as applicable. The threshold or range may define any one or more of the magnitude, direction, frequency, duration, or excessive value of the angular velocity, acceleration, or jerk of the kinematic components. Comparison to a threshold or range may occur pre-operatively, intra-operatively, during a simulation, in response to a simulation, or in response to identifying a condition indicative of future undesirable directional motion.

[0184] In one non-limiting example, the evaluation of the actual or predicted orientation motion in step 216 can be done by defining a lower limit (e.g., in terms of angular velocity) below a certain value (e.g., 0.2 rad / s). If the actual or predicted orientation motion is below this lower limit, the one or more controllers 26, 68, 82 can consider it negligible, normal, and / or desirable, etc., and take no action to modify the feed rate FR. If the actual or predicted orientation motion is equal to or greater than this lower limit (e.g., 0.2 rad / s) but below a first threshold (e.g., 0.4 rad / s), the one or more controllers 26, 68, 82 can consider it undesirable and take action to modify the feed rate FR according to the techniques described herein. In one example, the feed rate FR can be modified by a mapping corresponding to the value of the orientation motion within the range between the lower limit and the first threshold. The mapping values ​​for the values ​​related to the orientation motion can be stored in a look-up table in memory. The mapping may be continuous or discrete and may be defined according to a linear function, a step function, an exponential function, a logarithmic function, a customized (smoothed) function, or any other type of function. For example, in the case of a linear mapping, the scaling may be 1 (scaling by 1 to maintain the existing / original / last feedrate) for the orientation motion value at the lower limit and 0 (scaling by 0 to reduce the FR) for the orientation motion value at the first threshold. There may be a linear correlation between the orientation motion value and the feedrate at or between the lower limit and the first threshold (e.g., scaling by 0.5 halfway between the lower limit and the first threshold to reduce the existing FR by half). For actual or predicted undesirable orientation motion values ​​that exceed the first threshold, the feedrate FR may be modified to immediately reduce or zero out the actual or predicted undesirable orientation motion value. In other words, the one or more controllers 26, 68, 82 may account for zero-tolerance undesirable orientation motion, etc.

[0185] Additionally or alternatively, a user may set or adjust any of these limits, thresholds, ranges, or scaling values ​​based on preference or surgical planning, for example, using a clinical application. For example, the scaling (0-1) or limits may be reduced to 50% or more of the default value and increased to 150% or more. The above example limits and thresholds are one of many different possible configurations. Ranges and values ​​may vary from those described and from this example.

[0186] The limits, thresholds or ranges, and scaling / mapping are specific to the condition or event causing the actual or predicted undesirable oriented motion, and can be defined separately for various conditions or events (e.g., any such event / condition in FIG. 14). The limits, thresholds, and ranges need not be specifically with respect to the value of the oriented motion (e.g., angular velocity), but can be values ​​from other parameters / measurements that can be indirectly / directly correlated with the actual or predicted oriented motion. For example, for an actual or predicted undesirable oriented motion occurring in response to a collision with a virtual boundary 71 (120, FIG. 14), the thresholds or ranges and scaling / mapping can depend on the value of the penetration parameter. For example, if the penetration value is less than 0.1 mm, the scaling of the feed rate FR can be 0. If the penetration value is 0.1 mm or more and less than 0.2 mm, the scaling of the feed rate FR can be between 0 and 1. If the penetration value is greater than 0.2 mm, the scaling of the feed rate FR can be 0. Again, these thresholds and scaling values ​​are merely examples and can be different than those described depending on the condition / event and the desired response.

[0187] At step 220, the one or more controllers 26, 68, 82 determine whether a condition occurs that satisfies the presence of actual or anticipated undesired oriented motion. Satisfaction of the condition occurs in response to satisfaction of a threshold or range at step 216. Satisfaction of the condition may occur at any time. In one example, satisfaction of the condition may be identified at the time of the commanded position of the energy applicator 24. In such a case, the condition may be satisfied in real-time or near real-time without filtering based on raw kinematic or localizer 44 values. Alternatively, satisfaction of the condition may be identified based on filtered robot kinematic or localizer 44 values, where the data may be filtered over a period of time (e.g., 50-150 ms). Based on this filtered data, the actual or anticipated undesired oriented motion may be calculated / measured. If the condition is not satisfied, the one or more controllers 26, 68, 82 may maintain or resume the feedrate FR at step 202.

[0188] In step 218, the one or more controllers 26, 68, 82 identify the presence of actual or anticipated undesired oriented motion. Again, identification of undesired oriented motion may occur at any time. Identification may be, but need not be, in response to satisfaction of a threshold or range in step 220. Alternatively, automatic identification may occur based on analysis of any of the above factors, such as identification of an external force, constraint, reorientation, or feedrate event (as shown in FIG. 14), or based on analysis from identifying or monitoring actual / anticipated oriented motion of a non-toolpath motion component(s) from a sensor, sensing system, inertial values, or simulation in step 206.

[0189] After identifying the undesirable directional motion in step 222, the one or more controllers 26, 68, 82 thoroughly evaluate the actual or expected undesirable directional motion and then determine appropriate corrective action parameters. The one or more controllers 26, 68, 82 determine how to modify the feed rate FR to account for the undesirable directional motion. This can be performed, for example, according to any of the evaluation methods described in step 216. In one embodiment, the detection of the presence or expected presence of the above-mentioned influencing factors or conditions (shown in FIG. 14) may be defined by variables and coefficients that can be used to quantify how to modify the feed rate FR to account for the undesirable directional motion. This can be performed in a manner similar to the technique described in the previous section used to calculate the feed rate based on the variables shown in FIG. 8. For example, each coefficient associated with each applicable factor affecting the undesirable directional motion may be between 0 and 1.0. The change in the coefficient may be filtered or ramped to blend in / blend out the effect of the change in the magnitude of the coefficient. Performing this filtering or blending can smoothly mitigate the undesirable directional motion. The effect of any variable may be selectively ignored. For example, it may be desirable to determine a change to the feed rate FR based on either the smallest or largest coefficient and ignore the other coefficients. Two or more variables to the feed rate calculator 82 may be combined, for example, by addition, multiplication, averaging, or division. Similarly, the calculated coefficients may be added, multiplied, averaged, or divided to provide a final coefficient used to determine how to change the feed rate FR.

[0190] In step 224, the one or more controllers 26, 68, 82 execute the change of the feed rate FR. This can be done by modifying the determined feed rate or by overriding the determined feed rate. In practice, the feed rate FR is often reduced to mitigate the adverse effects of the undesired oriented motion. The modification of the feed rate FR may be in response to the occurrence of the undesired oriented motion. Alternatively, the modification of the feed rate FR may be performed proactively, whereby the system 10 proactively mitigates the expected undesired oriented motion so that the non-toolpath components of the kinematic chain KC do not experience (or do not experience) the expected undesired oriented motion. In some cases, the one or more controllers 26, 68, 82 may additionally or instead mitigate the undesired oriented motion by intentionally maintaining the existing / predetermined feed rate FR that would have been increased. For example, the one or more controllers 26, 68, 82 may rapidly reduce the feed rate FR and then increase the feed rate FR to mitigate the undesired oriented motion. The feed rate FR can be reduced by a factor that correlates to the magnitude and / or direction of the undesired directional motion that has been or will be experienced. The change or reduction in feed rate can be gradual or impulsive and can occur over or for any duration, such as a duration determined by the one or more controllers 26, 68, 82 necessary to mitigate the undesired directional motion. In any of these scenarios, the feed rate change can be implemented by transitioning back to step 204, where the one or more controllers 26, 68, 82 instruct the manipulator 14 to advance the energy applicator 24 according to the feed rate FR calculated to account for the undesired directional motion.

[0191] In response to a change in the feed rate FR to account for the undesired directional motion, the one or more controllers 26, 68, 82 can be configured to identify that one or more components of the kinematic chain KC other than the energy applicator 24 are no longer experiencing or will no longer experience the undesired directional motion. This identification can be performed by re-evaluating whether a condition is met in step 220 or by re-evaluating the non-toolpath components in step 206. The identification can also be performed based on whether a threshold / limit or range is met, as described in steps 216, 220. For example, if the compared value for the undesired directional motion falls below a lower limit, the feed rate FR can be restored or resumed to the last / previous / default / original value. In another example, instead of utilizing a value stored in a lookup table, the one or more controllers 26, 68, 82 can execute a control loop, such as a PID control loop. For example, the set point can be a tolerance value for the directional motion, such as a numerical value below a lower limit. The control loop can receive an input of a detected value of the actual directional motion from any of the techniques described above. Through a control loop, the one or more controllers 26, 68, 82 can calculate the error as the difference between the set point and the actual value of the orientation motion, and then apply corrections to obtain terms (e.g., P, I, D) that minimize the error until the detected value of the actual orientation motion meets the set point. This is one example of a control loop that can be utilized to identify that one or more non-toolpath components are no longer experiencing or will no longer experience an undesired orientation motion. Other types of control loops are contemplated. The one or more controllers 26, 68, 82 can also know the expected duration of the undesired orientation motion based on predictive analysis or simulation, and can infer that the time has passed when the undesired orientation motion will / would have occurred.In response to any of these scenarios, the one or more controllers 26, 68, 82 may restore or resume the feedrate at 202 existing before or planned after the feedrate change to account for the undesirable directional motion.

[0192] IV. Other Examples for Considering Undesirable Directional Motion

[0193] The techniques described above focus on modifying the feedrate to account for undesired directional motion. Any of the techniques described above can be utilized by one or more controllers 26, 68, 82 to mitigate undesired directional motion by modifying the behavior of the manipulator 14 other than by modifying the feedrate FR. For example, the one or more controllers 26, 68, 82 can predictively or dynamically manipulate the motion, limits, or pose of the joints J, e.g., in null space, change the trajectory of the tool 20, modify the toolpath TP, adjust the virtual boundary 71 or other constraints, inhibit user-initiated robot functions such as tool or arm reorientation, backdrive the arm, feedrate adjustments, etc.

[0194] In the foregoing description, several embodiments have been described. The embodiments discussed herein are not intended to be exhaustive or limited to any particular form. The terms used are intended to be in the nature of words of description rather than of limitation. Many modifications and variations are possible in light of the above teachings, and the invention may be practiced otherwise than as specifically described. Furthermore, the headings used in this document are introduced for reference and ease of reading only, and should not be understood to limit the contents of the section solely by the subject matter of the heading.

Claims

1. 1. A surgical system comprising: a surgical tool including an energy applicator; a manipulator having a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by the manipulator's base and plurality of links and joints components and the surgical tool including the energy applicator; At least one controller; The at least one controller determining a feed rate defined as a rate at which the energy applicator advances along a tool path in a semi-autonomous mode; controlling the manipulator in the semi-autonomous mode to advance the energy applicator along the tool path according to the feed rate to a plurality of commanded positions; Identifying that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesired directed motion that occurs during advancement of the energy applicator along the tool path according to the feed rate; and Varying the feed rate to account for the undesired direction of motion. The surgical system is configured as follows.

2. the at least one controller is further configured to reduce the feed rate by a factor correlated to a magnitude of the undesired motion experienced or to be experienced by the one or more components of the kinematic chain other than the energy applicator, thereby modifying the feed rate to account for the undesired motion; The surgical system of claim 1 , wherein the changed feedrate is a non-zero rate that is less than a rate of the existing feedrate before the change in the feedrate.

3. the at least one controller determines that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience motion in the undesired direction; comparing the undesired directional motion to a threshold or range; and In response to the undesirable directional motion satisfying the threshold or range, modifying the feed rate to account for the undesirable directional motion. The surgical system of claim 1 or 2, further configured to identify.

4. The at least one controller: obtaining forward kinematic measurements of the kinematic chain during advancement of the energy applicator along the tool path according to the feedrate to the plurality of commanded positions; and evaluating the forward kinematic measurements to identify that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired direction of motion. The surgical system according to any one of claims 1 to 3, configured as follows.

5. a non-transitory computer readable medium having stored thereon simulation data indicative of the undesired orientation of motion of the one or more components of the kinematic chain; the simulation data is obtained from a pre-operative simulation configured to simulate control of the manipulator in the semi-autonomous mode to advance the energy applicator along the tool path to the plurality of command positions according to the feedrate; The at least one controller Obtaining the simulation data from the non-transitory computer readable medium; and Identifying, based on the simulation data, that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired direction of motion. The surgical system according to any one of claims 1 to 4, configured as follows.

6. further comprising one or more sensors configured to generate measurements related to any one or more components of the kinetic chain; and The surgical system of any one of claims 1 to 5, wherein the at least one controller is configured to analyze the measurements to identify that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesirable direction of motion.

7. The at least one controller: storing inertia values ​​of any one or more components of said kinematic chain in a non-transitory computer readable medium; Utilizing the stored inertia values ​​to identify that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired direction of motion. The surgical system according to any one of claims 1 to 6, configured as follows.

8. During advancement of the energy applicator along the tool path in the semi-autonomous mode, the at least one controller: Enabling reorientation of the surgical instrument; Identifying that the one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired oriented motion further resulting in response to a reorientation of the surgical tool; and Varying the feed rate to account for the undesired motion in response to a change in orientation of the surgical tool. The surgical system according to any one of claims 1 to 7, further configured as follows:

9. The at least one controller: associating one or more virtual haptic objects with the one or more components of the kinetic chain; Define the virtual boundary, Detecting a collision between the one or more virtual haptic objects and the virtual boundary; responsive to detecting the collision, controlling the manipulator to inhibit the one or more components of the kinematic chain having the associated virtual haptic object from crossing the virtual boundary; identifying, in response to the detection of the collision, that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired directed motion that is further produced in response to inhibiting the one or more components of the kinetic chain; and In response to the detection of the collision, modifying the feedrate to account for the undesired directed motion that further results in response to constraining the one or more components of the kinematic chain. The surgical system according to any one of claims 1 to 8, configured as follows.

10. the surgical tool includes a shaft and the energy applicator at a distal end of the shaft; The at least one controller: associating the one or more of the virtual haptic objects with the shaft of the surgical tool at a location on the shaft other than the distal end; Associating the virtual boundary with a surgical site with which the surgical tool interacts; responsive to detecting the collision of the one or more virtual haptic objects of the shaft with the virtual boundary of the surgical site, controlling the manipulator to inhibit the shaft from crossing the virtual boundary; Identifying that the shaft is experiencing or will experience the undesired directional movement; and Varying the feed rate to account for the undesired movement in the direction that the shaft is experiencing or will experience. The surgical system of claim 9 , configured to:

11. The at least one controller: assessing a value of intrusion occurring between the one or more virtual haptic objects and the virtual boundary of the surgical site; and Varying the feed rate in response to an evaluation of the penetration value The surgical system according to claim 9 or 10, configured to:

12. in response to varying the feed rate to account for the undesired directional motion, the at least one controller:

12. The surgical system of claim 1, configured to: identify that the one or more components of the kinematic chain other than the energy applicator are no longer experiencing or will no longer experience the undesired directional motion; and responsively resume the planned feedrate after changing the feedrate.

13. The surgical system of any one of claims 1 to 12, wherein the undesirable directed motion is further defined as an undesirable one or more of angular velocity, angular acceleration, or angular jerk experienced or that would be experienced by any one or more components of the kinetic chain other than the energy applicator.

14. 1. A method of operating a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a number of links and joints to support the surgical tool, wherein a kinematic chain is defined by the manipulator's base and links and joints components, and the surgical tool including the energy applicator, and at least one controller, comprising: The at least one controller determining a feed rate defined as a rate at which the energy applicator advances along a tool path in a semi-autonomous mode; controlling the manipulator in the semi-autonomous mode to advance the energy applicator along the tool path according to the feedrate to a plurality of command positions; identifying that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesired directed motion that occurs during advancement of the energy applicator along the tool path according to the feed rate; modifying the feed rate to account for the undesired direction of motion; A method for operating a surgical system.

15. a surgical tool including an energy applicator; a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator; At least one controller A surgical system comprising: The at least one controller Identifying that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience motion in an undesired direction; and Varying a feed rate of the energy applicator to account for the undesired motion. The surgical system is configured as follows.

16. The at least one controller: determining a feed rate defined as the speed at which the energy applicator advances; controlling the manipulator to advance the energy applicator to one or more commanded positions according to the feedrate; and identifying that one or more components of the kinematic chain other than the energy applicator are experiencing or will experience undesired directed motion that occurs during advancement of the energy applicator according to the feed rate; The surgical system of claim 15 configured to:

17. 1. A method of operating a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints and supporting the surgical tool, and at least one controller, wherein a kinematic chain is defined by the base and a component of the manipulator including a plurality of links and joints and the surgical tool including the energy applicator; The at least one controller: identifying that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience motion in an undesirable direction; modifying a feed rate of the energy applicator to account for the undesired motion; A method of operating a surgical system, comprising:

18. a surgical tool including an energy applicator; a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator; At least one controller A surgical system comprising: The at least one controller Identifying that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience motion in an undesired direction; and modifying the motion of the manipulator to account for the undesired directional motion; The surgical system is configured as follows.

19. 20. The surgical system of claim 18, wherein the at least one controller is configured to modify the motion of the manipulator by altering the behavior of any one or more components of the kinematic chain to account for the undesired direction of motion.

20. 20. The surgical system of claim 18, wherein the at least one controller is further configured to predictively or dynamically modify any one or more of the following to account for the undesired directional motion: manipulate joint motion, manipulate joint limits, manipulate joint pose, manipulate joint movement in null space, change the trajectory of the surgical tool, modify a toolpath along which the surgical tool advances, adjust virtual boundaries or other constraints, inhibit behavior of any one or more components of the kinematic chain, limit reorientation of the manipulator or surgical tool, limit backdrive of the manipulator, limit user feedrate adjustments, and stall the manipulator.

21. 1. A method of operating a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints supporting the surgical tool, and at least one controller, wherein a kinematic chain is defined by the manipulator components including the base and the plurality of links and joints, and the surgical tool including the energy applicator; The at least one controller: identifying that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience motion in an undesirable direction; modifying the motion of the manipulator to account for the undesired oriented motion; A method of operating a surgical system, comprising:

22. a surgical tool including an energy applicator; a manipulator including a base and a plurality of links and joints and configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator; at least one controller including a non-transitory computer readable medium having stored thereon simulation data indicative of undesired orientations of motion of one or more components of the kinematic chain; A surgical system comprising: the simulation data is obtained from a simulation configured to simulate control of the manipulator to advance the energy applicator to the plurality of command positions; The at least one controller Identifying, based on the simulation data, that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired direction of motion; and modifying the motion of the manipulator to account for the undesired directional motion; The surgical system is configured as follows.

23. 1. A method of operating a surgical system including a surgical tool including an energy applicator, a manipulator including a base and a plurality of links and joints configured to support the surgical tool, wherein a kinematic chain is defined by components of the manipulator and the surgical tool including the energy applicator, and at least one controller including a non-transitory computer readable medium having stored thereon simulation data indicative of undesired directed motion of one or more components of the kinematic chain, comprising: the simulation data is obtained from a simulation configured to simulate control of the manipulator to advance the energy applicator to the plurality of commanded positions; The at least one controller: identifying, based on the simulation data, that one or more components of the kinetic chain other than the energy applicator are experiencing or will experience the undesired direction of motion; modifying the motion of the manipulator to account for the undesired oriented motion; A method of operating a surgical system, comprising:

24. a surgical tool including a shaft and an energy applicator at a distal end of the shaft; a manipulator including a base and a plurality of links and joints, the manipulator being configured to support the surgical tool; At least one controller; A surgical system comprising: The at least one controller associating one or more virtual haptic objects with the shaft of the surgical tool at locations on the shaft; Associating a virtual boundary with a surgical site with which the surgical tool interacts; Detecting a collision between the one or more virtual haptic objects associated with the shaft and the virtual boundary associated with the surgical site; and in response to detecting the collision, controlling the manipulator to inhibit the shaft from exceeding the virtual boundary. The surgical system is configured as follows.

25. a surgical tool including a shaft and an energy applicator at a distal end of the shaft; a manipulator including a base and a plurality of links and joints, the manipulator configured to support the surgical tool; and at least one controller. A method of operating a surgical system, comprising: The at least one controller: associating one or more virtual haptic objects with the shaft of the surgical tool at locations on the shaft; associating a virtual boundary with a surgical site with which the surgical tool interacts; Detecting a collision between the one or more virtual haptic objects associated with the shaft and the virtual boundary associated with the surgical site; In response to detecting the collision, controlling the manipulator to inhibit the shaft from exceeding the virtual boundary; A method of operating a surgical system, comprising: