ROBOTIC SYSTEM, METHOD, AND SOFTWARE PROGRAM FOR MODIFYING TOOL OPERATION BASED ON TISSUE PARAMETERS - Patent application

JP2025500376A5Pending Publication Date: 2026-01-07MAKO SURGICAL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024537517
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-12-20
Filing Date
2022-12-16
Publication Date
2026-01-07

AI Technical Summary

Benefits of technology

【0035】 添付の図面と関連して考えながら以下の詳細な説明を参照することによって、本開示の利点がより良く理解されると、本開示の利点が容易に認められよう。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer implemented surgical planning method is provided that includes acquiring anatomical data for an anatomical volume and path data including a tool path along which a tool moves, the method also includes acquiring the tool data, merging the path data with the anatomical data, and for a point of the tool path, identifying a location of the point, loading a tool geometry at the location, identifying an intersection between the tool and the anatomical volume at the location, determining a density value of the anatomical data within the intersection, calculating a tool contact coefficient associated with the intersection, setting a planned feedrate coefficient for the tool based on the density value and the tool contact coefficient, associating the planned feedrate coefficient with the point, and outputting cutting plan data including the planned feedrate coefficient associated with the tool path point.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] This application claims priority to and the entire benefit of U.S. Provisional Patent Application No. 63 / 291,566, filed December 20, 2021, the entire contents of which are incorporated herein by reference.

[0002] The present disclosure relates generally to robotic systems, methods, and software programs for modifying tool behavior based on tissue parameters such as bone density. [Background technology]

[0003] Robotic systems for performing surgical procedures at a surgical site often include a manipulator having a base and a number of links and joints, and an end effector coupled to the manipulator. In many cases, the end effector includes or supports a surgical tool with an energy applicator designed to remove tissue at the surgical site.

[0004] The energy applicator is typically moved along a tool path to remove tissue at the surgical site. The speed or rate at which the energy applicator moves along the tool path is commonly known to those skilled in the art as the "feed rate" of the tool or energy applicator.

[0005] Previous systems have attempted to adjust or determine the feedrate based on conditions or inputs such as manual user selection of the feedrate, tissue properties such as bone mineral density, sensed force applied to the energy applicator, and path curvature.

[0006] However, conventional feedrate techniques fall short in providing careful pre-planning of toolpath feedrates based at least on detailed analysis of the patient's imaging data and the density of the anatomical structures relative to the planned toolpath. For example, in determining the feedrate, conventional techniques fail to take into account, among other things, the ratio of intersection of the tool geometry with the anatomical structures assessed at a point(s) along the toolpath, or whether a particular portion of the anatomical structure has already been removed by the tool at another point along the toolpath. Summary of the Invention [Problem to be solved by the invention]

[0007] As a result, conventional feed rate techniques can result in less than optimal results, such as implant fit issues due to undersizing of the resection or tool skiving, formation of pits in the resection surface, suboptimal cutting forces exerted by the tool, etc. There remains a need to address at least some of these deficiencies. [Means for solving the problem]

[0008] This Summary introduces a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to limit the scope of the claimed subject matter, nor is it intended to identify key features or essential features of the claimed subject matter.

[0009] In a first aspect, a computer-implemented method for surgical planning is provided, comprising: acquiring anatomical data including a geometry and density value of an anatomical volume, acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points through which the tool will successively pass, acquiring tool data including a tool geometry that will interact with the tool path, merging the path data and the anatomical data, identifying, for at least one point of the tool path, a point location relative to the anatomical data, loading the tool geometry at the identified location from the tool data, identifying an intersection between the tool geometry and the anatomical volume at the identified location, determining a density value of the anatomical data within the intersection, and determining a tool contact coefficient associated with the interaction between the tool geometry and the anatomical volume. and calculating a planned feedrate factor for the tool based on the determined density value and the calculated tool contact factor, setting a planned feedrate factor for the tool based on the determined density value and the calculated tool contact factor, and associating the planned feedrate factor with at least one point; and outputting cutting plan data including a tool path including the planned feedrate factor associated with the at least one point of the tool path.

[0010] In a second aspect, a non-transitory computer readable medium is provided having stored thereon instructions that, when executed by one or more processors, implement computer-implemented surgical planning software, the computer-implemented surgical planning software including: acquiring anatomical data including a geometry and density value of an anatomical volume; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points between which the tool will successively pass; acquiring tool data including a geometry of the tool that will interact with the tool path; and merging the path data and the anatomical data. and for at least one point of the tool path, determining a location of the point relative to the anatomical data, loading a tool geometry at the determined location from the tool data, identifying an intersection between the tool geometry and the anatomical volume at the determined location, determining a density value of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, setting a planned feedrate coefficient for the tool based on the determined density value and the calculated tool contact coefficient, and associating the planned feedrate coefficient with the at least one point; and outputting cutting plan data including a tool path including the planned feedrate coefficient associated with the at least one point of the tool path.

[0011] In a third aspect, a surgical system is provided that includes a robotic manipulator configured to support and move a tool, a control system coupled to the robotic manipulator, one or more processors, and a non-transitory computer readable medium having stored thereon instructions that, when executed by the one or more processors, implement computer-implemented surgical planning software, the computer-implemented surgical planning software including: acquiring anatomical data including a geometry and density value of an anatomical volume, acquiring path data including a tool path along which the robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points between which the tool will successively pass, acquiring tool data including a geometry of the tool that will interact with the tool path, merging the path data and the anatomical data, identifying, for at least one point of the tool path, a location of the point relative to the anatomical data, and acquiring tool data including a geometry of the tool that will interact with the tool path. and a control system including a non-transitory computer readable medium configured to: load a tool geometry at the identified location from the cutting plan data, identify an intersection between the tool geometry and the anatomical volume at the identified location, determine a density value of the anatomical data within the intersection, calculate a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, set a planned feedrate coefficient of the tool based on the determined density value and the calculated tool contact coefficient, and associate the planned feedrate coefficient with at least one point; and output cutting plan data including a tool path including the planned feedrate coefficient associated with the at least one point of the tool path, wherein the control system utilizes the output cutting plan data to control a robotic manipulator to move the tool along the tool path in accordance with the planned feedrate coefficient associated with the at least one point of the tool path to enable the tool to interact with the anatomical volume.A method of operating a surgical system according to the third aspect is also provided.

[0012] In a fourth aspect, there is provided a computer implemented method for surgical planning, comprising: acquiring anatomical data including a geometry of an anatomical structure, acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical structure, the tool path being defined by points through which the tool will pass successively, acquiring tool data including a geometry of the tool, merging the path data and the anatomical data, identifying, for at least one point of the tool path, a position of the point relative to the anatomical data, loading the geometry of the tool at the identified position from the tool data, calculating a tool contact coefficient associated with an interaction between the geometry of the tool and the anatomical volume, setting a planned feedrate coefficient for the tool based on the calculated tool contact coefficient, associating the planned feedrate coefficient with the at least one point, and outputting cutting plan data including the tool path including the planned feedrate coefficient associated with the at least one point of the tool path. There is also provided a non-transitory computer readable medium, or computer program product, comprising instructions for performing the computer implemented method of the fourth aspect.

[0013] In a fifth aspect, a computer-implemented method is provided, the computer-implemented method including: acquiring anatomical data including a geometry and density value of an anatomical volume; acquiring virtual object data including a geometry of a virtual object having a mesh of polygonal elements; merging the anatomical data and the virtual object data; determining parameters of one or more polygonal elements of the mesh based on the density value; and modifying a behavior of the tool according to the parameters in response to the tool interacting with the one or more polygonal elements. A non-transitory computer-readable medium, or computer program product, including instructions for performing the computer-implemented method of the fifth aspect is also provided.

[0014] In a sixth aspect, a computer-implemented method is provided, the computer-implemented method including: acquiring anatomical data including a geometry and density values ​​of an anatomical volume; acquiring virtual object data including a geometry of a virtual object having a mesh of polygonal elements; and merging the anatomical data and the virtual object data to determine parameters of one or more polygonal elements of the mesh based on the density values. A non-transitory computer-readable medium or computer program product including instructions for performing the computer-implemented method of the sixth aspect is also provided.

[0015] In a seventh aspect, a non-transitory computer readable medium is disclosed having stored thereon instructions that, when executed by one or more processors, implement computer-implemented surgical planning software that includes acquiring anatomical data including geometry and tissue parameters of an anatomical volume, acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, where the tool path is defined by points between which the tool will successively pass, acquiring tool data including the geometry of the tool that will interact with the tool path, and merging the path data and the anatomical data. A computer implemented method is also provided for performing the steps of the seventh aspect, the method being configured to: for at least one point of the tool path, identify a location of the point relative to the anatomical data, load a tool geometry at the identified location from the tool data, identify an intersection between the tool geometry and the anatomical volume at the identified location, determine a tissue parameter of the anatomical data within the intersection, calculate a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, set a planned feedrate coefficient for the tool based on the determined tissue parameter and the calculated tool contact coefficient, associating the planned feedrate coefficient with the at least one point, and output cutting plan data including a tool path including the planned feedrate coefficient associated with the at least one point of the tool path.

[0016] In an eighth aspect, a non-transitory computer readable medium is disclosed having stored thereon instructions that, when executed by one or more processors, implement computer-implemented surgical planning software, the computer-implemented surgical planning software including: acquiring anatomical data including geometry of an anatomical volume and tissue parameters; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points between which the tool will successively pass; acquiring tool data including the geometry of the tool that will interact with the tool path; merging the path data and the anatomical data (e.g., merging the path data with the anatomical data); and for at least one point of the tool path, determining a position of the point relative to the anatomical data, loading a tool geometry at the determined position from the tool data, determining an intersection between the tool geometry and the anatomical volume at the determined position, determining a tissue parameter of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, setting an output pose of the tool based on the determined tissue parameter and the calculated tool contact coefficient, associating the output pose with the at least one point, and outputting cutting plan data including the tool path including the output pose associated with the at least one point of the tool path. A computer implemented method for performing the steps of the eighth aspect is also provided.

[0017] In a ninth aspect, a non-transitory computer readable medium is disclosed having stored thereon instructions that, when executed by one or more processors, implement computer-implemented surgical planning software, the computer-implemented surgical planning software including: acquiring anatomical data including geometry and tissue parameters of an anatomical volume; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points between which the tool will successively pass; acquiring tool data including the geometry of the tool that will interact with the tool path; merging the path data and the anatomical data; and acquiring at least one of the tool path data and the anatomical data. A computer implemented method is also provided that is configured to: for a point, identify a location of the point relative to the anatomical data, load a tool geometry at the identified location from the tool data, identify an intersection between the tool geometry and the anatomical volume at the identified location, determine a tissue parameter of the anatomical data within the intersection, calculate a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, set a planned feedrate coefficient of the tool based on the determined tissue parameter and the calculated tool contact coefficient, achieve a predetermined motor current at a motor of the tool, associate the planned feedrate coefficient with the at least one point, and output cutting plan data including a tool path including the planned feedrate coefficient associated with the at least one point of the tool path.

[0018] In a tenth aspect, a non-transitory computer readable medium has stored thereon instructions that, when executed by one or more processors, implement a computer-implemented surgical planning software, the computer-implemented surgical planning software including: acquiring anatomical data including geometry of an anatomical volume and tissue parameters; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points between which the tool will successively pass; acquiring tool data including a geometry of the tool that will interact with the tool path; merging the path data and the anatomical data (e.g., a 3D model of a surgical planner); acquiring path data including a geometry of the tool that will interact with the tool path; and for at least one point of the tool path, determining a location of the point relative to the anatomical data, loading a tool geometry at the determined location from the tool data, determining an intersection between the tool geometry and the anatomical volume at the determined location, determining tissue parameters of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, setting tool operation parameters based on the determined tissue parameters and the calculated tool contact coefficient, associating the tool operation parameters with the at least one point, and outputting planning data including a tool path including the tool operation parameters associated with the at least one point of the tool path. A computer implemented method for performing the steps of the tenth aspect is also provided.

[0019] In an eleventh aspect, there is provided a computer implemented method comprising identifying an intersection between a tool geometry and an anatomical volume, determining tissue parameters of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the tool geometry and the anatomical volume, and setting tool operating parameters based on the determined tissue parameters and the calculated tool contact coefficient. A computer program product or robotic system implementing the steps of the eleventh aspect is also provided.

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

[0021] Any of the above aspects may be implemented as a computer-implemented method, a robotic surgical system, and / or a non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors (i.e., one or more of the computer-implemented method, the robotic surgical system, or the one or more processors), implement a computer-implemented surgical planning software or computer program product.

[0022] Any of the above aspects may be utilized in any of the following embodiments, regardless of whether such embodiments are utilized in whole or in part.

[0023] In one embodiment, acquiring the anatomical data includes acquiring a bone model associated with the anatomical volume. In one embodiment, acquiring the path data further includes acquiring a predetermined tool path based on a planned resection volume of the bone model of the anatomical volume. In one embodiment, acquiring the path data further includes acquiring a predetermined tool path based on a geometry of an implant model selected for the bone model. In some embodiments, the bone model may be a patient-specific bone model or a statistical bone model. In some embodiments, acquiring the path data includes acquiring a predefined pose of the tool with respect to at least one point of the tool path. The bone model may be of an acetabulum, a glenoid cavity, or any type of glenoid cavity (joint socket). The bone model may be of a femur, a tibia, a humerus, or a portion of a spine (vertebra). In one embodiment, the anatomical data is acquired without preoperative images (e.g., without images) or without forming a bone model. The bone model may be patient-specific or based on a statistical data set from a similar population.

[0024] In one embodiment, acquiring the anatomical data includes acquiring imaging data including slices of the anatomical volume. In one embodiment, acquiring the imaging data includes acquiring DICOM data including intercept and tilt values, slice thickness, and patient position at the time of image capture. In one embodiment, acquiring the anatomical data includes acquiring CT slices of the anatomical volume. In such an embodiment, the tool geometry includes a 3D geometry of the tool, and for at least one point of the tool path, the method includes loading the 3D geometry of the tool at a specified location, identifying CT slices having cross section intersections between the 3D geometry of the tool and the anatomical volume at the specified location, determining, for each identified CT slice, a Hounsfield unit for each pixel within the cross section intersection, and collecting the Hounsfield units from pixels within the cross section intersections of each identified CT slice.

[0025] In one embodiment, identifying an intersection between the tool geometry and the anatomical volume at the identified location includes identifying one or more slices of the imaging data indicative of the intersection between the tool geometry and the anatomical volume. One embodiment includes, after identifying slices of the imaging data indicative of the intersection between the tool geometry and the anatomical volume for at least one point of the tool path, calculating, for each identified slice, an intersection ratio relating the tool geometry within the intersection to the tool geometry outside the intersection. One embodiment includes, for each identified slice, determining an amount of pixels within the tool geometry having Hounsfield units that exceed a predetermined threshold.

[0026] In one embodiment, determining or determining density values ​​of the anatomical data within the intersections includes determining, for each identified slice, a radiation density value of the imaging data located within the intersections. In one embodiment, determining density values ​​of the anatomical data within the intersections includes collecting radiation density values ​​located within each intersection of the one or more identified slices. In one embodiment, collecting radiation density values ​​located within each intersection of the one or more identified slices includes identifying one or more of an average radiation density value, a median radiation density value, and a maximum radiation density value from the collected radiation density values.

[0027] In one embodiment, setting the planned feedrate factor of the tool based on the determined density values ​​includes calculating a bone mineral density (BMD) factor of the anatomical volume for the identified location based on the collected radiodensity values. In one embodiment, setting the planned feedrate factor of the tool based on the determined density values ​​includes setting the planned feedrate factor of the tool based on the calculated BMD factor. In one embodiment, calculating the BMD factor includes converting an average radiodensity value, a median radiodensity value, and / or a maximum radiodensity value (i.e., one or more of the average radiodensity value, the median radiodensity value, or the maximum radiodensity value) to a BMD factor. In one embodiment, converting one or more of the average radiodensity value, the median radiodensity value, and the maximum radiodensity value to a BMD factor includes multiplying one or more of the average radiodensity value, the median radiodensity value, and the maximum radiodensity value by a cross ratio. In one embodiment, setting the planned feedrate factor of the tool based on the determined density values ​​includes setting the planned feedrate factor based on the calculated BMD factor. One embodiment includes accessing a lookup table that defines an association between predefined bone mineral density (BMD) factors and predefined feedrate factors. In such an embodiment, setting a planned feedrate factor based on a calculated BMD factor for at least one point of the tool path includes identifying in the lookup table a predefined BMD factor that is closest to the calculated BMD, and setting the planned feedrate factor based on a predefined feedrate factor associated with the closest identified predefined BMD factor in the lookup table.In one embodiment, setting the planned feedrate factor based on the calculated BMD factor for at least one point of the toolpath includes setting the planned feedrate factor to a maximum feedrate factor in response to determining that the calculated BMD factor is below a minimum threshold and / or setting the planned feedrate factor to a minimum feedrate factor in response to determining that the calculated BMD factor is above a maximum threshold (i.e., setting the planned feedrate factor to a maximum feedrate factor in response to determining that the calculated BMD factor is below a minimum threshold and / or setting the planned feedrate factor to a minimum feedrate factor in response to determining that the calculated BMD factor is above a maximum threshold). In one embodiment, setting the planned feedrate factor includes setting the planned feedrate factor based on achieving a predetermined motor current at a motor of the tool.

[0028] One embodiment includes, for a point of the tool path, storing interaction coordinates obtained from an intersection between the tool geometry and the anatomical volume at the location of the point, where the interaction coordinates indicate a location of a simulated interaction between the tool geometry and the anatomical volume at the location of the point; for a second point of the tool path following the point, identifying a location of the second point relative to the anatomical data; loading the tool geometry at the identified location of the second point from the tool data; identifying an intersection between the tool geometry and the anatomical volume at the identified location of the second point; determining a density value of the anatomical data within the intersection at the location of the second point; comparing coordinates of the determined density value with the interaction coordinates; and ignoring density values ​​having coordinates identical to the interaction coordinates.

[0029] One embodiment includes ignoring density values ​​that lie beyond an intersection between the tool geometry and the anatomical volume, for at least one point of the tool path.

[0030] In one embodiment, merging the path data and the anatomical data includes merging the path data and the anatomical data into a common coordinate system.

[0031] In one embodiment, the cut plan data includes a tool path along which a robotic manipulator will move a tool in an autonomous mode to interact with an anatomical volume.

[0032] One embodiment includes, for each point of the tool path, identifying a location of the point relative to the anatomical data, loading the tool geometry at the identified location from the tool data, identifying an intersection between the tool geometry and the anatomical volume at the identified location, determining a density value of the anatomical data within the intersection, setting a planned feedrate factor for the tool based on the determined density value, and associating the planned feedrate factor with the point, wherein outputting the cutting plan data further includes the tool path including the planned feedrate factor associated with each point of the tool path.

[0033] In one embodiment, a robotic manipulator is commanded to move the tool according to a first feedrate, and an interaction between the virtual model and one or more polygonal elements of the virtual object is detected while the tool is moving according to the first feedrate. A second feedrate is calculated based on parameters associated with the one or more polygonal elements. A motion of the tool is altered such that the robotic manipulator is commanded to move the tool at the second feedrate.

[0034] In one embodiment, a robotic manipulator is commanded to move a tool. A virtual model of the tool penetrates one or more polygonal elements of the virtual object. Reactive forces are calculated based on parameters associated with the one or more polygonal elements. The reactive forces are applied to the virtual model in a virtual simulation to reduce penetration of the one or more polygonal elements by the virtual model. The motion of the tool is modified to constrain the movement of the tool relative to the virtual object by commanding the robotic manipulator to move the tool according to application of the reactive forces to the virtual model in the virtual simulation.

[0035] 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]

[0036] [Figure 1] FIG. 1 is a perspective view of one embodiment of a robotic surgical system. [Diagram 2] 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 3] FIG. 2 is a functional block diagram of a software program utilized by a robotic surgical system, according to one embodiment. [Figure 4] 4 is a flow chart of a method for determining cutting plan data. [Diagram 5] 5 illustrates steps of the method of FIG. 4 for merging path data with anatomical data. [Figure 6] FIG. 2 is a diagram of cutting plan data. [Figure 7] 2 includes multiple cross-sectional views of the intersection of a tool of the robotic surgical system of FIG. 1 with an anatomical volume. [Figure 8] 2 is a cross-sectional view of an intersection of a tool of the robotic surgical system of FIG. 1 with an anatomical volume. [Figure 9]1 is a table showing stored quantities used to determine cutting plan data. [Figure 10] 1 is a look-up table that defines a relationship between predefined bone mineral density coefficients and predefined feed rate coefficients. [Figure 11] 2A is a cross-sectional view of the intersection of a tool of the robotic surgical system of FIG. 1 with an anatomical volume when the tool is positioned at a first point, and the intersection of the tool of the robotic surgical system of FIG. 1 with an anatomical volume when the tool is positioned at a second point. [Figure 12] FIG. 1 illustrates steps for virtual objects and anatomical data. [Figure 13A] 13A-13C are various views of the tools of the robotic surgery system of FIG. 1 interacting with the virtual object of FIG. 12. [Figure 13B] 13A-13C are various views of the tools of the robotic surgery system of FIG. 1 interacting with the virtual object of FIG. 12. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0037] [I. System Overview] Referring to FIG. 1, a surgical system 10 is shown. The system 10 is useful for treating a surgical site or anatomical volume (AV) of a patient 12, such as treating bone or soft tissue. In FIG. 1, the patient 12 is undergoing a surgical procedure. The anatomical structure of FIG. 1 includes a femur F and a 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, tissue lesion destruction, other in-situ tissue treatment, and the like. In some examples, the surgical procedure includes partial or total 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 knee implant, a bicondylar knee implant, a multicondylar knee implant, or a 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.

[0038] As shown in FIG. 1, the system 10 includes a manipulator 14. A manipulator cart 17 (shown in FIG. 1) can 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 18. In one example, pairs of adjacent links 18 are connected by one of the joints J. The links 18 collectively form one or more arm(s) 23 of the manipulator 14. The manipulator 14 can have a serial arm configuration (shown in FIG. 1), a parallel arm configuration, or any other suitable manipulator configuration. In other examples, multiple manipulators 14 can 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 can have any number of degrees of freedom, any suitable number of joints J, and can have redundant joints. The manipulator 14 may be attached to a surgical table or may be partially supported by the patient.

[0039] Each joint J may have an actuator, such as a joint motor 27, disposed between adjacent links 18. 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.

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

[0041] One or more of the joint motors 27 may be equipped with 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 of the links 18 driven by the joint motor 27 may be equipped with 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 due to the compliant transmission. The manipulator 14 does not necessarily require a joint encoder 19, but may instead or additionally utilize a motor encoder present in the joint motor 27 of one or more of the joints J. Also, the manipulator 14 does not necessarily require a rotary 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 actuated. Any suitable combination of joint types is contemplated.

[0042] 1, a base 16 of the manipulator 14 is typically a 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 in a fixed reference of the base 16. The base 16 may be defined relative to any suitable portion of the manipulator 14, such as one or more of the links 18. Alternatively or 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 in fact 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 (i.e., the manipulator 14 or the manipulator cart 17, or both). In another example, the manipulator 14 may be a handheld manipulator, the base 16 is the base part of the tool (e.g., the part freely held by the user or the part connected to a defined linkage mechanism), and the tool tip is movable (e.g., semi-autonomously) relative to the base part. The base part 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 (i.e., motor and / or joint encoders and forward kinematic calculations). Since the pose of the tool tip relative to the path can be determined, 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.

[0043] 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 is, in a particular embodiment, a physical surgical tool and is 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.

[0044] 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 can include a tool shaft 33 having a proximal end coupled to the manipulator 14 and a distal end on 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 can be approximately spherical and can include a spherical center, a radius (r), and a diameter. Alternatively, the energy applicator 24 can be a drill bit, a saw blade, an ultrasonic vibration tip, or the like. The tool 20 and / or the energy applicator 24 (i.e., the tool 20 and / or the energy applicator 24) can include any geometric characteristic, such as a perimeter, a circumference, a radius, a diameter, a width, a length, a volume, an area, a surface / plane, an operating envelope range (along any one or more axes), or the like. Geometric considerations may determine how the tool 20 is positioned relative to tissue at a surgical site to perform a 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.

[0045] A sensor S, such as a force-torque sensor, may be attached proximal to the end effector 22. The force-torque sensor S is configured to output a variable signal in response to the forces and / or torques (i.e., forces or torques or both) to which the end effector 22 and / or the tool 20 (i.e., the end effector 22 and / or the tool 20) are subjected. In doing so, the force-torque sensor S allows for sensing input forces applied to the end effector 22 and / or the tool 20 by a user. The input forces can be utilized to control the movement of the manipulator 14 to emulate user applied forces / torques. The force-torque sensor S may also sense external forces 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 tool 20 may be determined using joint torque or current sensors on the joint motors 27 .

[0046] 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 (i.e., a central processing unit (CPU) and / or other processor), memory (not shown), and storage (not shown). The manipulator controller 26 is loaded with software, which will be 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 (i.e., one or more of any type of microprocessor, multiprocessor, or multicore processing system). Manipulator controller 26 may additionally or alternatively include one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, and / or other suitable hardware, software, or firmware capable of performing the functions described herein (i.e., one or more of one or more microcontrollers, field programmable gate arrays, systems on chips, discrete circuits, other suitable hardware, software, or firmware capable of performing the functions described herein). The term processor is not intended to limit any embodiment to a single processor. Manipulator 14 may also include a user interface UI with one or more displays and / or input devices (e.g., push buttons, keyboard, mouse, microphone (voice activation), gesture control device, touch screen, etc.) (i.e., one or more displays and / or input devices).

[0047] 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 (i.e., position or orientation or both)) of the tool 20 (e.g., the tool center point (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.

[0048] The TCP, in one example, is a predetermined reference point defined on the energy applicator 24. 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. Control of the tool 20 is not limited to the center point. For example, any suitable primitive, mesh, etc. may be used to represent the tool 20.

[0049] The shaft 33 of the tool 20 has a known or calculable (i.e., not necessarily static) pose relative to another coordinate system. The manipulator 14 can use joint / motor encoders, or any other non-encoder position sensing method, to determine the pose of the shaft 33. The manipulator 14 can determine the pose of the shaft 33 using joint measurements and / or can employ techniques to directly measure the pose of the shaft 33 (i.e., determine the pose of the shaft 33 and / or directly measure the pose of the shaft 33).

[0050] 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 (i.e., to the manipulator coordinate system MNPL and / or vice versa) using a transformation.

[0051] The navigation system 32 includes a cart assembly 34 that houses a navigation controller 36 and / or other types of control units (i.e., the navigation controller 36, or other types of control units, or both). A navigation user interface UI is in operative communication with the navigation controller 36. The navigation user interface UI includes one or more displays 38. The navigation system 32 can use the one or more displays 38 to display a graphical representation of the relative 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 an interactive touch screen display. The input devices may include any one or more of push buttons, a keyboard, a mouse, a microphone (voice activation), a gesture control device, and the like.

[0052] 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 casing 48 that houses one or more optical sensors 50. The localizer 44 may include its own localizer controller 49, and may further include a video camera VC, such as a machine vision camera.

[0053] 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 align 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.

[0054] 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 a passive marker, such as a reflector that reflects light emitted from the camera unit 46. Other suitable markers not specifically described herein may be utilized.

[0055] 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 52A, 52B, 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 the equivalent / derivative of the position and / or orientation. For example, the state may be the pose of the object, and may include linear and / or angular velocity data (ie, linear or angular velocity data or both), and the like.

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

[0057] 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 (i.e., one or more of any other suitable configuration for tracking the manipulator 14, the tool 20, or the patient 12). In another example, the navigation system 32 and / or the localizer 44 (i.e., the navigation system 32 or the localizer 44, or both) 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 (i.e., one or more of the manipulator 14, the tool 20, 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 to determine the state of the object. The ultrasound imaging device may have any suitable configuration and may differ from the camera unit 46 shown in FIG.

[0058] 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 transceiver may be located at any suitable location to effectively use the RF signals to track the object. 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.

[0059] 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, or inductive trackers. The trackers may be passive or actively energized. The EM transceiver generates the EM field and generates the state. Such an example of the navigation system 32 may have a structural configuration different from the configuration of the navigation system 32 shown in FIG. 1.

[0060] Navigation system 32 may have any other suitable components or structures not specifically described herein. Additionally, any of the techniques, methods, and / or components (i.e., one or more of the techniques, methods, 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.

[0061] 2, the system 10 includes a control system 60, which includes, among other components, a manipulator controller 26, a navigation controller 36, and a tool controller 21. The control system 60 further includes one or more software programs and modules as shown in FIG. 3. The software modules may be part of one or more programs in the manipulator controller 26, the navigation controller 36, the tool controller 21, or any combination thereof that operate to process data and assist in controlling the system 10. The software programs and / or modules (i.e., 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. Further, software modules for prompting and / or communicating with a user (i.e., prompting and / or communicating) 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 (i.e., one or more of the manipulator controller 26, navigation controller 36, or tool controller 21).

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

[0063] With reference to FIG. 3, the software used by the control system 60 may utilize anatomical data 65. The anatomical data 65 may include imaging data of the anatomical volume AV of the patient 12. The imaging data may be acquired via any suitable imaging modality, such as MRI, X-ray / fluoroscopy, CT, and / or ultrasound (i.e., one or more of MRI, X-ray / fluoroscopy, CT, or ultrasound). The imaging data may include or be used to derive the geometry of the anatomical volume AV. For example, the imaging data may include imaged slices, such as CT slices, that combine to form the geometry of the anatomical volume AV. The anatomical data 65 may also include Digital Imaging and Communications in Medicine (DICOM) data of the anatomical volume AV, which may include intercept and tilt values ​​for each slice, slice thickness, and the position of the patient 12 at the time of imaging.

[0064] The geometry of the anatomical volume AV may be a 2D or 3D geometry. With reference to FIG. 5, the 3D geometry is represented using an anatomical model AM. In FIG. 6, the anatomical model AM is a 3D bone model of the acetabulum AM of the patient 12. As described, the bone model may be any other type of bone, such as the femur, tibia, scapula (glenoid), humerus, vertebrae, etc. The anatomical model AM may be formed from imaged slices, such as CT slices, of the anatomical volume AV. Furthermore, the 3D bone model may be a patient-specific bone model (e.g., a bone model based on the bones of the patient 12) or a statistical bone model (e.g., a bone model based on the bones of a representative patient). The bone model may be formed in any suitable manner, such as manual or automatic segmentation of imaging data, morphing of a statistical bone model, etc.

[0065] The anatomical data 65 may also include a density value DV of the anatomical volume AV. For example, referring to FIG. 5, the anatomical data 65 may include a radiological density value DV associated with the anatomical model AM. The radiological density value DV may be mapped to coordinates, pixels, and / or voxels (i.e., one or more of coordinates, pixels, or voxels) of the anatomical model AM. In this manner, in addition to providing the anatomical model AM, the anatomical data 65 also provides a density value DV corresponding to the anatomical model AM. The density value DV may be any suitable density value. For example, the density value DV may be measured in Hounsfield units (HU), as shown in FIG. 5. The density value DV may be determined or derived using any suitable technique. For example, the density value DV may be detected from a conductivity measurement of the anatomical volume AV. As another example, the density value DV may be determined using a density phantom that is imaged simultaneously with the anatomical structure. The density phantom may be imaged using bone densitometry, absorptiometry, quantitative computed tomography, ultrasound, dual-energy X-ray absorptiometry (DEXA), scanning electron microscopy (SEM), or any other type of image analysis. The density value DV may be included in the DICOM data. The density value may also be obtained intraoperatively, for example using a CT scanning device in the operating room.

[0066] The control system 60 may be configured to normalize the density value DV. In some cases, the density value DV may vary depending on, among other things, the imaging modality and / or system (i.e., the imaging modality or system or both) used to image the anatomical volume AV. For example, the density value DV may vary if the anatomical volume AV is scanned using an MRI or CT. As another example, the density value DV may vary based on the type or brand of scanner used to image the anatomical volume AV. In such cases, the control system 60 may normalize the density value DV to provide a consistent interpretation or evaluation of the density value DV for the techniques described herein. In one example, the control system 60 may normalize or calibrate the density value DV based on parameters of a density phantom imaged with the anatomical volume AV. In some cases, the control system 60 may normalize the density value DV by controlling the tool 20 to interact with the anatomical volume AV and measuring the forces and torques associated with the interaction. For example, the control system 60 can control the tool 20 to cut tissue in the anatomical volume AV and measure the force applied to the tool 20 (e.g., the motor 27 of the tool 20). The density value DV can be normalized by the control system 60 comparing the measured force applied to the tool 20 to the raw density value.

[0067] With reference to FIG. 3, the software used by the control system 60 may include a boundary generator 66. As shown in FIG. 6, the boundary generator 66 is a software program or module that generates a virtual object 71 to constrain the movement and / or motion of the tool 20 (i.e., the movement and / or motion). The virtual object 71 may be a virtual boundary and may be one, two, or three dimensional and may include points, lines, axes, trajectories, planes, or other shapes, including complex shapes. In some embodiments, the virtual object 71 is a surface defined by a mesh of polygons or triangles. The virtual object 71 may be defined with respect to the anatomical model AM to define areas of the anatomical model AM where removal of material by the tool 20 is permitted from areas of the anatomical model AM where removal of material by the tool 20 is prohibited. In the example of FIG. 5, the virtual object 71 is a 3D boundary that outlines the area of ​​the acetabular component of a hip replacement surgery and is associated with the 3D anatomical model AM of the acetabulum. The anatomical model AM is aligned with one or more patient trackers 54, 56 such that the virtual object 71 is associated with the anatomical model AM. The virtual object 71 may be implant specific, e.g., defined based on the size, shape, volume, etc. of the implant, and / or patient specific, e.g., defined based on the patient's anatomy (i.e., implant specific, patient specific, or both). The virtual object 71 may be created pre-operatively, intra-operatively, or a combination thereof. In other words, the virtual object 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 object 71 by storing / retrieving the virtual object 71 in / from memory, obtaining the virtual object 71 from memory, creating the virtual object 71 pre-operatively, creating the virtual object 71 intra-operatively, etc.

[0068] The manipulator controller 26 and / or the navigation controller 36 (i.e., the manipulator controller 26 or the navigation controller 36 or both) track the state of the tool 20 relative to the virtual object 71. In one example, the state of the TCP is measured with respect to the virtual object 71 for the purpose of determining the forces to be applied to the virtual rigid body model via the virtual simulation. This determination can be made in one example so that the tool 20 remains in a desired positional relationship with respect to the virtual object 71 (e.g., not to move beyond the virtual object 71). The results of the virtual simulation are instructed to the manipulator 14. The control system 60 controls / positions the manipulator 14 in a manner that emulates the way a physical handpiece responds 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.

[0069] 3, 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 to generate path data 73. The path data 73 may include a tool path TP along which the manipulator 14 moves the tool 20 to interact with the anatomical volume AV. For example, the tool 20 may traverse the tool path TP to remove a portion of the anatomical volume AV to prepare the anatomical volume AV to receive an implant. The tool path TP may include multiple path segments PS or may include a single path segment PS. The path segment PS may be a straight segment, a curved segment, 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 predetermined based on the geometry of an implant model selected for the anatomical model AM and / or the planned resection volume of the anatomical model AM (i.e., the geometry of the implant model, or the planned resection volume of the anatomical model AM, or both). That is, the toolpaths TP 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. In some cases, the path data 73 may include a set of potential toolpaths TP that are evaluated to determine which toolpath TP optimizes cutting performance.

[0070] In some cases, the path data 73 may also include a predefined pose of the shaft 33 of the tool 20. For example, the predefined pose of the shaft 33 may include a state (e.g., a position and / or an orientation) of the shaft 33 relative to the manipulator coordinate system MNPL. As already mentioned, the manipulator 14 may determine the pose of the shaft 33 using joint / motor encoders, or any other non-encoder position sensing method. Thus, the predefined pose may also be provided in terms of sensed readings of the joint / motor encoders, or some other non-encoder position sensing method. Thus, the path data 73 may include not only the tool path TP, but also a predefined pose of the shaft 33 along the tool path TP. For example, the path data 73 may include a predefined pose of the shaft 33 corresponding to a path segment PS of the tool path TP.

[0071] 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. It should be understood that 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, 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 predefined path created preoperatively, intraoperatively, or a combination thereof. In other words, the milling path 72 may be defined before the surgical procedure begins, during the surgical procedure (including during tissue removal), or a combination thereof. In either case, the control system 60 obtains the milling path 72 by storing / retrieving the milling path 72 in memory, retrieving the milling path 72 from memory, creating the milling path 72 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.

[0072] One example of a system and method for generating the virtual object 71 and / or the milling path 72 (i.e., the virtual object 71 or the milling path 72, or both) 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 object 71 and / or the milling path 72 may be generated offline, rather than on the manipulator controller 26 or the navigation controller 36. The virtual object 71 and / or the milling path 72 may then be utilized at run time by the manipulator controller 26.

[0073] As shown in FIG. 3, the path interpolator 86 may be a sub-module of the path generator 68. The path interpolator 86 determines target positions of the coordinate system of the energy applicator 24 along the tool path TP. The attitude of the shaft 33 is fixed relative to the coordinate system of the energy applicator 24. With reference to FIG. 5, these target positions are points P along the tool path TP through which the energy applicator 24 will pass successively to perform a task. In one embodiment, path segments PS of the tool path TP are defined between successive points P. Inputs to the path interpolator 86 may include, but are not limited to, data defining the start and end points of the path segment PS and data indicating whether the path segment PS is straight or curved and, if curved, characteristics of the curve. Another input to the path interpolator 86 is a feed rate, which will be described in more detail in the next section. The feed rate is a predetermined rate (speed or velocity) at which the energy applicator 24 is set to move along the path segment PS. Based on the above input variables, the path interpolator 86 may determine a target position for the energy applicator 24 according to the following steps in one embodiment: 1) the origin of the coordinate system of the energy applicator 24 is assumed to be at the initial 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 point P of the path segment PS, then this point P is the initial position of the coordinate system of the energy applicator 24. The initial position and the target position are both points P in the bone coordinate system. 2) based on the feed rate, a distance that the energy applicator 24 will move along the path segment PS in a single time frame is calculated. In some versions, the time frame has a duration of 0.1-2 milliseconds. 3) based on the initial position, the length of the calculated distance, and the position 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 PS (straight or curved), and if curved, the radius of curvature.4) Steps 1-3 are repeated until it is determined that the coordinate system 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 for the next frame is based. 5) Once the target position is equal to the end position of the path segment PS, the path interpolator 86 repeats steps 1-4 to generate a set of target positions located along the new segment. During the duration of a single frame, the distance that the energy applicator 24 can travel 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 path interpolator 86 generates data indicating where the energy applicator 24 should be located along the next path segment PS at the end of that frame, relative to a point in time starting when the energy applicator 24 is determined to be at the end of the current path segment PS. The techniques described herein are not limited to this method for determining target positions.

[0074] 3, the software used by the control system 60 may further utilize tool data 69. The tool data 69 includes the geometry of the tool 20 that interacts with the tool path TP. For example, the tool data 69 may include 3D geometry, such as a 3D model of the energy applicator 24 of the tool 20, to specify the shape of the cutting surface of the tool 20. For example, the 3D geometry may specify that the cutting surface of the energy applicator 24 of the tool 20 includes a circular cross-sectional area, a triangular cross-sectional area, a flat cross-sectional area, or a tapered cross-sectional area. The 3D geometry may include a slice of the energy applicator 24 extracted from the 3D model or any other source. In some cases, the tool data 69 may include the shape, size, surface area, volume, and / or dimensions (i.e., one or more of the shape, size, surface area, volume, or dimensions) of the cutting surface of the energy applicator 24. The tool data 69 may also include a preferred method of use of the tool 20. For example, in some instances, the cutting surface of the energy applicator 24 may be located on a side of the energy applicator 24 to facilitate cutting using the side of the energy applicator 24 rather than the tip of the energy applicator 24. The tool data 69 may also include a preferred cutting depth corresponding to a particular tool 20. For example, a particular tool 20 may be used to make very shallow cuts while another tool 20 may be used to make deeper cuts. The tool data 69 may include the shaft 33 of the tool 20. The tool data 69 may be obtained from tool parameters, specifications, or calibration data and / or may be measured pre-operatively (i.e., one or more of: obtained from tool parameters, specifications, or calibration data, or measured pre-operatively).

[0075] 3, another software program or module executed by the control system 60 may be a behavior controller 74. Behavior control is the process of calculating data indicative of the next commanded position CP of the energy applicator 24 and / or the orientation (e.g., pose) of the shaft 33 of the tool 20 (i.e., the next commanded position CP of the energy applicator 24 or the orientation of the shaft 33 of the tool 20, or both). In some cases, the position of the TCP is output from the behavior controller 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 controller 74 to determine the next commanded position CP of the energy applicator 24 and / or the orientation of the tool 20 (i.e., the next commanded position CP of the energy applicator 24 or the orientation of the tool 20, or both). The behavior controller 74 may process these inputs, along with one or more virtual constraints, to determine a commanded pose.

[0076] 3, yet another software program or module executed by the control system 60 may be a motion controller 76. One aspect of motion control is the control of the manipulator 14. The motion controller 76 receives data defining a next command pose from the behavior controller 74. Based on these data, the motion controller 76 can determine (e.g., by inverse kinematics and a 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 controller 74, e.g., at the command pose. In other words, the motion controller 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 accordingly command the joint motors 27 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 controller 76 adjusts the joint angle of joint J and adjusts 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.

[0077] Any of the boundary generator 66, the path generator 68, the behavior controller 74, the motion controller 76, and the feedrate generator 67 (described below) may be software programs operating separately and / or independently (i.e., separately and / or independently) as a subset of the software program 78, or any combination thereof. 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 controller 74, the motion controller 76, and / or the feedrate generator 82. 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.

[0078] A clinical application 80 may be provided to handle user interactions. The clinical application 80 may handle many aspects of user interactions and coordinate surgical workflow including pre-operative planning, implant placement, alignment, visualization of bone preparation, adjustment or confirmation of feed rate parameters, and post-operative evaluation of implant fit. The clinical application 80 is configured to output to one or more of a number of displays 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 path generator 68 (i.e., boundary generator 66 and / or path generator 68) after the implant placement is set by the user, and then transmits the virtual object 71 and / or tool path TP (i.e., virtual object 71 and / or tool path TP) returned by the boundary generator 66 and / or path generator 68 to the manipulator controller 26 for execution.

[0079] The system 10 may operate in a force input mode or a manual mode, as described in U.S. Patent No. 9,119,655, which is incorporated herein by reference, in which a user applies forces to the manipulator 14, which in response performs movement of the tool 20 and its energy applicator 24 at the surgical site. In one example, the user physically contacts the tool 20 to move the tool 20 in 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.

[0080] The manipulator controller 26 and / or the navigation controller 36 (i.e., the manipulator controller 26 or the navigation controller 36 or both) 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. The movements of the tool 20 in manual mode may also be constrained relative to a virtual object 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 affect the movements of the virtual rigid body (among other inputs).

[0081] The system 10 can also operate in a semi-autonomous mode in which the manipulator 14 moves the tool 20 along the tool path TP in an automated manner. 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 the user exerting any force, such that the user does not physically contact the tool 20 to move it. Instead, the user may use some form of remote control or switch to control the starting and stopping of the automated movement. For example, as also described in U.S. Pat. No. 9,119,655, 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.

[0082] [II. Feed rate determination] The speed or rate at which the energy applicator 24 advances is referred to as the feedrate. In one embodiment, the energy applicator 24 can advance along the toolpath TP at one or more feedrates. More specifically, such advancement can occur during operation of the manipulator 14 in a semi-autonomous mode. In one embodiment, this section describes a technique in which a feedrate is determined based on an interaction between the toolpath TP and the anatomical model AM to generate cutting plan data 79 (shown in FIG. 6 and described herein). The feedrate calculation techniques described herein can be augmented by the feedrate techniques described in U.S. Pat. No. 9,119,655, which is incorporated herein by reference.

[0083] 3, the software used by the control system 60 includes a feedrate generator 82. The feedrate generator 82 determines the feedrate or feedrate factor at which the energy applicator 24 should move as it moves along one or more individual path segments PS of the toolpath TP in order to optimize cutting performance (see FIG. 5). The feedrate factor can be a scalar value. In practice, the manipulator controller 26 may be provided with multiple feedrate factors. These feedrate factors can be used to set a default feedrate and / or can be scaled or modified according to variables, as described below (i.e., can be used to set a default feedrate and / or can be scaled or modified according to variables). The feedrate factor does not always need to correspond to the actual feedrate at which the energy applicator 24 advances.

[0084] The feedrate generator 82 can determine the feedrate(s) or feedrate coefficients and associate them with the toolpath TP. The feedrate generator 82 can do so pre-operatively and / or intra-operatively (i.e., pre-operatively and / or intra-operatively). In some examples, the feedrate generator 82 does this pre-operatively and only later can the surgeon, using, for example, the clinical application 80, change or adjust the output of the feedrate generator 82.

[0085] Generator 82 is not intended to be limited to only feedrates, and so long as tool operating parameters other than feedrates are generated, generator 82 may be identified using any suitable terminology, such as tool parameter generator 82, tool operating parameter generator 82, etc.

[0086] [i. Overview of cutting plan data] The control system 60 can generate or output the cutting plan data 79 using the feed rate generator 82. The cutting plan data 79 can be understood as a planned tool path TP, path segments PS, and optionally, planned feed rates or feed rate coefficients of the tool associated with the tool path TP or path segments. An example of the cutting plan data 79 is shown in FIG. 6. As shown, the cutting plan data 79 includes planned feed rate coefficients FR1...FRN assigned to each path segment PS1...PSN of the tool path TP. The feed rate generator 82 is configured to determine the planned feed rate coefficients FR1...FRN assigned to each path segment PS1...PSN based on a simulation of the interaction between the anatomical model AM and the tool 20 at the points P1...PN. The cutting plan data 79 can include any other parameters (such as tool operation parameters) related to how the tool and / or manipulator 14 (i.e., the tool or the manipulator 14 or both) can be controlled to cut the anatomical structure. These parameters include, but are not limited to, the stiffness / damping parameters of the virtual object 71, tool or mesh, cutting speed, cutting depth, number of tool paths or tool segments, cutting force, tissue temperature, etc.

[0087] An example of cutting plan data 79 and tool path TP is shown in FIG. 6 for an example involving an acetabulum. The cutting plan data 79 and tool path TP may differ from those shown. For example, the tool path TP may include a greater or lesser number of points P and path segments PS. As another example, the cutting plan data 79 may include a greater or lesser number of planned feed rate coefficients FR1...FRN. The tool path TP may also differ from those shown depending on the anatomy or region of the implant.

[0088] 6, one or more controllers, including but not limited to manipulator controller 26, including path generator 68 and feed rate generator 82, are configured to control manipulator 14 to advance energy applicator 24 of tool 20 to a number of command positions CP1-CPN in accordance with cutting plan data 79. The command positions CP are often, but not necessarily, defined relative to a point P along a tool path TP in semi-autonomous mode. Alternatively, the command positions CP may be determined according to a user-initiated motion emulated by system 10 in manual mode.

[0089] [ii. How to generate cutting plan data] In this subsection, a method for generating cutting plan data 79 based on simulating the interaction between the tool path TP and the anatomical model AM is described.

[0090] [a. Acquisition of anatomical, path, and tool data] An example of a method for creating cutting plan data 79 is shown in Figure 4. In this embodiment, the method for generating cutting plan data 79 includes step M1 of obtaining anatomical data 65, path data 73, and tool data 69. This information is obtained by control system 60, and more specifically, feed rate generator 82. With reference to Figure 3, feed rate generator 82 is shown in communication with path generator 68 (for receiving path data 73) and a source (e.g., memory) that includes anatomical data 65 and tool data 69. Anatomical data 65, path data 73, and tool data 69 serve as inputs to feed rate generator 82.

[0091] [b. Merging anatomical data with path data] 4, the method includes a step M2 of merging the path data 73 with the anatomical data 65. After acquiring the anatomical data 65 and the path data 73 during step M1, the control system 60 or the feed rate generator 82 processes the data by merging the data into a common coordinate system. The step M2 of merging the path data 73 with the anatomical data 65 is further illustrated in the illustrative example of FIG. 5. As shown, the path data 73 includes a tool path TP and points P along the tool path TP, which are represented in the path data coordinate system X T ,Y T ,Z T The anatomical data 65 is mapped onto the anatomical data coordinate system X A ,Y A ,Z A In one example, the tool path TP and the anatomical model AM are merged with the anatomical data 65 to create a merged model 77, which is represented in a merged coordinate system X M ,Y M ,Z M is mapped onto

[0092] Merged coordinate system X M ,Y M ,Z M is the anatomical data coordinate system X A ,Y A ,Z A , Path data coordinate system X T ,Y T ,Z T , or a new, different, or arbitrary coordinate system. In some cases, the path data coordinate system X T ,Y T ,Z T is the merged coordinate system X M ,Y M ,Z M For example, the anatomical data 65 can be transformed and superimposed on the path data 73 so that the anatomical model AM functions in the path data coordinate system X T ,YT ,Z T The anatomical model AM can be scaled and superimposed on the path data 73 so that it is mapped to the anatomical data coordinate system X A ,Y A ,Z A From the coordinates in the path data coordinate system X T ,Y T ,Z T In another example, the anatomical data coordinate system X A ,Y A ,Z A is the merged coordinate system X M ,Y M ,Z M For example, the tool path TP may be transformed and superimposed on the anatomical data 65 so that it functions as a coordinate system X A ,Y A ,Z A The tool path TP can be scaled and superimposed on the anatomical data 65 so that it is mapped to the anatomical data 65. Furthermore, a point P along the tool TP is represented in the path data coordinate system X T ,Y T ,Z T From the anatomical data coordinate system X A ,Y A ,Z A In yet another example, both the path data 73 and the anatomical data 65 may be mapped to a merged coordinate system X M ,Y M ,Z M For example, the toolpath TP and / or the anatomical model AM (i.e., the toolpath TP or the anatomical model AM or both) may be transformed and superimposed on each other such that both the toolpath TP and the anatomical model AM are in a new, merged coordinate system X M ,Y M ,Z M may be scaled using a different factor so that it can be mapped to

[0093] This merging may, but need not, be provided or performed in a visual form (e.g., the merging may be purely computational and invisible to the user), or aspects of these steps may be visualized to the user, for example using clinical application 80, so that the user can experience or interact with the path data 73 and anatomical data 65.

[0094] [c. Generation of cutting plan data] Once the feed rate generator 82 merges the path data 73 and the anatomical data 65, the feed rate generator 82 performs a series of additional steps to generate cutting plan data 79. These steps are described in this section. The feed rate generator 82 does this by evaluating or simulating the interaction between the tool 20 and the anatomical model AM at individual point(s) P. For example, with reference to FIG. 6, the feed rate generator 82 generates cutting plan data 79 for the tool path TP for path segment(s) PS1...PSN by simulating the interaction between the tool 20 and the anatomical model AM at corresponding points P1...PN. For example, to generate cutting plan data 79 for path segment PS1, the feed rate generator 82 simulates the interaction between the tool 20 and the anatomical model AM at point P1. For simplicity, the cutting plan data 79 generated by the feed rate generator 82 for the path segment PS will be referred to herein as the cutting plan data 79 for point P. The cutting plan data 79 may be output that includes data relating to any number or all of the path segments PS or points P of the tool path TP.

[0095] In one example, the simulated interaction between the tool 20 and the anatomical model AM may include a simulated intersection I between the tool 20 and the anatomical model AM. The feed rate generator 82 may simulate the interaction between the tool 20 and the anatomical model AM and determine whether the tool 20 intersects with the anatomical model AM during the simulated interaction. The feed rate generator 82 may then generate the cutting plan data 79 based on an analysis of the simulated intersection I between the tool 20 and the anatomical model AM. Examples of such intersection I are shown in FIGS. 5-7. With reference to the merged model 77 in FIG. 5, the tool 20 may intersect with the anatomical model AM at various exemplary intersections I as it moves along the tool path TP. One such intersection I occurs at point PI. Examples of various intersections I are also shown in FIG. 6 and in cross-sectional view in FIG. 7. While these figures show examples of intersections I, they are not intended to limit the scope of the concept. In other examples, the tool path TP may intersect the anatomical model AM at a different location on the anatomical model AM, or may intersect the anatomical model AM at a different number of locations on the anatomical model AM. More details regarding the intersection I are described further below.

[0096] To generate cutting plan data 79 for points P along the tool path TP, the method of FIG. 4 may execute a loop ML. In the example of FIG. 4, the loop ML repeats to generate cutting plan data 79 for N points P (and corresponding path segments PS) along the tool path TP to generate cutting plan data 79 for the tool path TP. The number of points P may be determined automatically by the program or selected by a user. The method includes a step M3 of determining whether each of the N points P of the tool path TP has been analyzed. In step M3, N may be set to any number of points. In some cases, the feed rate generator 82 may repeat the loop ML for some but not all points P of the tool path TP. For example, in some cases, the feed rate generator 82 may iterate over at least one point P along the tool path TP, a grouping of one or more points P along the tool path TP, all points P along the tool path TP that are a multiple of n (n being a number greater than 0), randomly selected points P along the tool path TP, or selected / predetermined points P along the tool path TP. 4, however, this loop ML evaluates whether all points P of the tool path TP have been analyzed. If the feed rate generator 82 determines that evaluation of each point P on the tool path TP has been completed, then the feed rate generator 82 proceeds to step M11 and outputs cutting plan data 79 for the tool path TP. However, if the feed rate generator 82 determines that cutting plan data 79 has not been generated for each point P along the tool path TP, then the feed rate generator 82 proceeds to step M4 and repeats the loop ML once more to generate cutting plan data 79 for successive (or remaining) points P along the tool path TP.

[0097] As shown, loop ML includes steps M4-M10 for generating cutting plan data 79 based on N points P along tool path TP. Steps M4-M10 are evaluated for each point P. However, the order of these steps M4-M10 need not be performed in the exact order shown, unless the subsequent steps are dependent on the previous steps. Loop ML includes a step M4 for locating the point P on tool path TP relative to anatomical data 65, a step M5 for loading the geometry of tool 20 at the identified location from tool data 69, a step M6 for locating an intersection between the geometry of tool 20 and anatomical volume AV, a step M7 for determining a density value DV of anatomical data 65 within the intersection, a step M8 for calculating an intersection ratio relating the geometry of tool 20 within the intersection to the geometry of tool 20 outside the intersection, and a step M10 for setting a planned feed rate factor FR of tool 20 in path segment PS corresponding to point P based on the determined density value DV and the calculated intersection ratio. Step M9 of ignoring previously determined density values ​​DV is described in another subsection herein.

[0098] During step M4, the feed rate generator 82 determines the location of the point P. Specifically, the feed rate generator 82 determines the location of the point P relative to the anatomical data 65. With reference to the example of FIG. 6, the feed rate generator 82 determines the location of the point P relative to the merged coordinate system X M ,Y M ,Z M Coordinates (x P1 ,y P1 ,z P1 ). Feed rate generator 82 may determine the location of point P using different methods or using coordinates from any coordinate system.

[0099] During step M5, the feed rate generator 82 determines the geometry of the tool 20 at point P. Specifically, the feed rate generator 82 loads the geometry of the tool 20 at point P from the tool data 69. As previously described, the cutting plan data 79 considers the intersection I between the geometry of the tool 20 at point P and the anatomical volume AV. To identify the intersection I between the geometry of the tool 20 at point P and the anatomical volume AV, the feed rate generator 82 loads or provides the geometry of the tool 20 at point P. For example, the feed rate generator 82 can load a 3D geometry, such as a 3D model, of the energy applicator 24 during step M5. The 3D geometry can include a 3D volume or slice of the energy applicator 24. The feed rate generator 82 can also load dimensions of the tool 20 (e.g., radius, diameter, volume, shape of the cutting surface, or surface area of ​​the energy applicator 24) to determine the geometry of the tool 20.

[0100] The feedrate generator 82 may determine the planned feedrate FR based on the tool data 69. For example, the feedrate generator 82 may determine the planned feedrate FR based on the geometry of the tool 20. For example, the cutting face of the energy applicator 24 may include a tapered cross-sectional area. In such an example, the feedrate generator 82 may determine the planned feedrate FR to move the tool 20 at a speed that optimizes cutting at the tapered cross-sectional area. As another example, the feedrate generator 82 may determine the planned feedrate FR based on a preferred use of the tool 20. For example, the cutting face of the energy applicator 24 may be positioned on a side of the energy applicator 24 to facilitate cutting using the side of the energy applicator 24 with a quick brushing motion. In such an example, the feedrate generator 82 may determine the planned feedrate FR to move the tool 20 at a speed that performs a quick brushing motion with the tool 20. As yet another example, the feedrate generator 82 may determine the planned feedrate FR to move the tool 20 at a speed that performs a quick brushing motion with the tool 20. As yet another example, the feedrate generator 82 may determine the planned feedrate FR to move the tool 20 at a speed that optimizes cutting at the tapered cross-sectional area. For example, the tool 20 may be preferably used for shallower cuts. In such an example, the feed rate generator 82 may determine a planned feed rate FR to move the tool 20 to perform the shallower cuts. Consideration of these planned feed rates FR in relation to the tool data 69 may be taken into account during step M5 of the method, or during any other suitable step of the method.

[0101] In step M6, as shown in an example of FIG. 7, the feed rate generator 82 identifies an intersection I between the geometry of the tool 20 and the anatomical volume AV at point P1. In this example, the energy applicator 24 is a spherical cutting burr. The geometry compared to the anatomical volume AV is a circular cross-section of the energy applicator 24. Thus, the size of the circular cross-section and the geometry of the anatomical volume AV will vary from slice to slice. At point P1, for any slice, a portion of the tool geometry may fall within the intersection I, while other portions of the tool 20 may not fall within the intersection I. To identify the intersection I, the feed rate generator 82 may analyze or sweep the imaged slices of the anatomical volume AV and the tool 20 to identify the intersection I.

[0102] In the example of FIG. 7, the feed rate generator 82 analyzes four imaged slices A, B, C, D relative to corresponding slices of the tool 20. Slices A, B, C, D are shown for illustrative purposes. In other examples, the feed rate generator 82 may analyze any suitable number of slices of the anatomical volume AV. Additionally, the slices may feature different views of the anatomical volume AV than those shown in FIG. 7. Additionally, the geometry of the tool 20 may differ from that specifically shown.

[0103] In this example, the feed rate generator 82 can identify CT slices where there is a cross section intersection I between the tool's 3D geometry and the anatomical volume AV. With reference to FIG. 7, the cross section intersection I is indicated using a diagonal line. As follows, the feed rate generator 82 can identify that at point P1, slices B, C, and D include intersection I, but slice A does not include intersection I.

[0104] The feed rate generator 82 may identify the cross-section intersection I by identifying, for each slice A, B, C, D, the amount of pixels PX within the cross-section I. With reference to FIG. 7, slices A, B, C, D each include pixels PX. FIG. 8 provides a more detailed view of slice B, in which pixels PX are labeled. For slice B, the feed rate generator 82 may identify six pixels, pixels PX1-PX6, as being located within the cross-section intersection I. In some cases, the feed rate generator 82 may instead calculate the area of ​​the cross-section intersection I with respect to the pixels PX (i.e., the area may be based on the size of a single pixel PX).

[0105] The pixel PX shown in FIG. 7 (and FIG. 8 described herein) is shown for illustrative purposes. In other examples, the size of the pixel PX may be larger or smaller. Additionally, the tool 20 and the anatomical volume AV are also shown for illustrative purposes. In other examples, the tool 20 and the anatomical volume AV may include different shapes and / or sizes (i.e., different shapes and / or sizes).

[0106] The feed rate generator 82 may use various methods to determine the amount of pixels PX within the intersection I. In one example, only pixels PX that lie completely within the intersection I are considered, and those that lie partially within the intersection are ignored. In some cases, the feed rate generator 82 may consider pixels PX that lie at least partially within the cross-sectional intersection. For example, the feed rate generator 82 may determine that a pixel PX lies within the cross-sectional intersection I if a percentage of the pixel PX lies within the cross-sectional intersection I, such as a percentage greater than a predetermined percentage, e.g., 50%, of the pixel PX lies within the cross-sectional intersection I. For example, as shown in FIG. 8, the feed rate generator 82 may identify that pixels PX1, PX2, PX5, and PX6 are partially within the cross-sectional intersection I. In another example, a proportion of the intersection may be applied to each pixel PX depending on how much the pixel is inside the intersection and how much the pixel is outside the intersection.

[0107] In some cases, the feed rate generator 82 may filter any intersecting pixels PX based on the density value DV of the pixel PX. For example, referring to FIG. 7, each pixel PX of slices A, B, C, and D includes a corresponding density value DV of the anatomical data 65. The feed rate generator 82 may evaluate whether the density value DV of the intersecting pixel PX exceeds or falls below a predetermined threshold. If so, the feed rate generator 82 may include or ignore the intersecting pixel PX based on such value.

[0108] The feed rate generator 82 can store the amount of pixels PX within intersection I for each slice A, B, C, D. Figure 9 provides a visual representation of the stored quantities. As shown, the amount of pixels PX within intersection I can be stored in column 81 for each slice A, B, C, D.

[0109] Any aspect of the techniques described herein that involves the use of pixels PX can be implemented in other ways that do not involve pixels PX. For example, voxels of an anatomical volume AV may be determined from a 3D model of an anatomical structure and compared to a 3D model of the tool geometry at point P. The voxels may include density values ​​DV. Other types of 2D or 3D units or measurements may be utilized when comparing geometries as described herein.

[0110] During step M7, the feed rate generator 82 determines a density value DV of the anatomical data 65 within the intersection I. The density value DV indicates the density of the anatomical volume AV at the intersection I. For example, the density value DV enables the feed rate generator 82 to determine how the tool 20 contacts different types of tissue, such as compact bone tissue, cancellous bone tissue, subchondral bone tissue, fat, and / or cartilage (i.e., one or more of compact bone tissue, cancellous bone tissue, subchondral bone tissue, fat, or cartilage). Furthermore, a null or zero value may indicate an area of ​​air. In this manner, the cutting plan data 79 describes the type of tissue in contact at the point P. More specifically, the cutting plan data 79 includes a planned feed rate factor FR that describes the type of tissue in contact at the point P. The density value DV may be a radiological density value DV measured in Hounsfield units. However, in other examples, the density value DV may include units other than Hounsfield units (HU). For example, the density value DV may be any measure of radiopacity, radiolucency, and / or transradiancy (i.e., one or more of radiopacity, radiolucency, or transradiancy).

[0111] Continuing with the example of FIG. 7, the feed rate generator 82 may identify density values ​​DV of the anatomical data 65 within the intersection I for each slice A, B, C, D. The feed rate generator 82 may ignore any density values ​​of pixels / voxels deemed to be outside the intersection I. In FIG. 7, each pixel PX of the anatomical slices A, B, C, D includes a corresponding radiation density value DV. A specific, but non-limiting example of radiation density values ​​DV of slice B at point P1 is shown, for example, in FIG. 8. As shown, the intersection I includes pixels PX1-PX6, and the feed rate generator 82 identifies radiation density values ​​DV 795HU, 780HU, 785HU, 790HU, 795HU, and 801HU, respectively. The feed rate generator 82 may similarly determine density values ​​DV of the anatomical data 65 within the intersection I for the other slices C, D.

[0112] Once the feed rate generator 82 has identified the density values ​​DV within the intersection I of each slice A, B, C, D, the feed rate generator 82 collects the density values ​​DV. The feed rate generator 82 may collect the density values ​​DV by calculating or determining one or more of the mean, median, range, mode, maximum, or minimum density values ​​DV of the density values ​​DV of each slice A, B, C, D. For example, in the example of FIG. 8, the pixels PX1-PX6 of slice B have an average radiation density value DV of 791 Hounsfield Units (HU). The feed rate generator 82 may then store the average radiation density value DV of the pixels PX1-PX6 in memory as shown in column 83 of FIG. 9. The feed rate generator 82 may similarly collect and store the density values ​​DV within the intersection I for slices C and D.

[0113] During step M8, the feedrate generator 82 can calculate a tool contact coefficient associated with the extent to which the tool contacts the anatomical volume AV at the identified point. For example, the tool contact coefficient may reveal whether the tool 20 is scraping or grazing the anatomical volume AV at a given point, or whether the tool 20 is burring or air cutting the anatomical volume AV. Thus, the cutting plan data 79 describes the extent of contact between the tool 20 and the anatomical volume AV at point P. The cutting plan data 79 includes a planned feedrate coefficient FR that describes the extent of tool contact at point P.

[0114] In one example, the tool contact factor is an intersection ratio relating the geometry of the tool 20 within intersection I to the geometry of the tool 20 outside intersection I at point P. As described herein, the intersection ratio may be determined based on the amount of pixels within intersection I for each slice A, B, C, D. However, in other cases, the intersection ratio may be determined using any other suitable method.

[0115] The feed rate generator 82 can determine the crossover ratio by determining an individual crossover ratio for each slice A, B, C, D. The feed rate generator 82 can calculate the individual crossover ratio by calculating a ratio between a first amount of the tool 20 geometry located within the intersection I and a second amount of the tool geometry located beyond the intersection for each slice A, B, C, D. For example, the feed rate generator 82 can calculate the crossover ratio based on an amount of the tool 20 pixels PX located within the intersection I and an amount of the tool 20 pixels PX located beyond the intersection I. In another embodiment, the feed rate generator 82 can calculate the crossover ratio based on an amount of the tool 20 pixels PX located within the intersection I and a total number of the tool 20 pixels PX.

[0116] Referring to the example of slice B in FIG. 8, the feed rate generator 82 may determine that the energy applicator 24 in this slice occupies or intersects a total of 26 pixels, with 6 pixels located within intersection I and 20 pixels located beyond intersection I. Thus, the feed rate generator 82 may calculate the intersection ratio for slice B to be (6 / 26) or 0.2308. Other methods of calculating a similar ratio are contemplated and do not necessarily have to be a ratio of intersecting tool 20 pixels / total pixels. The feed rate generator 82 may then store the intersection ratio for slice B in column 85 of FIG. 9. The feed rate generator 82 may similarly determine and store intersection ratios for slices C, D. In another example, the intersection ratio is based on voxel intersection in a manner similar to that described for pixels.

[0117] The tool contact coefficient may alternatively or additionally be based on other calculations. For example, the feedrate generator 82 may evaluate the surface, circumference, perimeter, contour, or 2D or 3D boundary of the tool geometry relative to the anatomical volume. For example, the feedrate generator 82 may determine how much of the circumference of the tool geometry passes through or touches the anatomical volume AV, as compared to air in FIG. 8. This amount may be a length (e.g., arc length), an angle measurement, or a ratio of the geometric boundary. Alternatively, the area or volume of the tool geometry may be evaluated relative to the anatomical volume AV, regardless of pixel / voxel. The feedrate generator 82 may supplement the geometric approach to evaluate the tool contact by evaluating or comparing the tool hardness to the density value DV of the anatomical volume AV. This tool hardness evaluation may be used to determine the individual contact forces that may be applied to each pixel / voxel.

[0118] During step M10, the feed rate generator 82 sets a planned feed rate factor FR of the tool 20 at the path segment PS corresponding to the point P based on the determined density value DV and the calculated tool contact factor. In some cases, it is contemplated that the feed rate generator 82 can set the planned feed rate factor FR of the tool 20 based on the calculated tool contact factor regardless of the determined density value DV. During step M10, the feed rate generator 82 can optionally calculate a bone mineral density (BMD) factor based on the determined density value DV and the calculated tool contact factor. The feed rate generator 82 then sets the planned feed rate factor of the tool based on the calculated BMD factor.

[0119] The feed rate generator 82 may calculate the BMD coefficient by multiplying the radiation density value DV collected for each intersection slice during step M7 by the tool contact coefficient calculated for each intersection slice during step M8. To calculate the BMD coefficient in this manner, the feed rate generator 82 scales the radiation density value DV previously collected for each intersection slice during step M7. With reference to FIG. 9, the feed rate generator 82 scales the radiation density value DV by calculating the maximum of the collected radiation density values ​​DV (805 HU). In another example, the feed rate generator 82 may scale the radiation density value DV using the average, median, and / or minimum (i.e., one or more of the average, median, or minimum) radiation density value DV. The feed rate generator 82 also scales the tool contact coefficient previously calculated for each slice during step M8. With reference to the example of FIG. 9, the feed rate generator 82 may scale the tool contact coefficient by calculating the average of the intersection ratios (0.7436). In another embodiment, the feed rate generator 82 can use the median, maximum, and / or minimum (i.e., one or more of the median, maximum, or minimum) radiation density values ​​DV to scale the radiation density values ​​DV. As follows, the feed rate generator 82 calculates the BMD factor to be 598.598.

[0120] In some cases, the BMD factor is utilized as a standardization factor to account for variable density values ​​DV, regardless of whether such density values ​​are normalized or raw density values. For example, based on the density value DV, the BMD factor may be selected from a standardized scale of 1 to 100. The standardized scale may take into account different normalization factors depending, for example, on the imaging modality, the scanner used to image the anatomical volume, parameters of the density phantom, or the measured force exerted on the tool, as discussed above.

[0121] The feedrate generator 82 can access a lookup table to determine a planned feedrate factor FR based on the calculated BMD. Specifically, the feedrate generator 82 can access a lookup table that defines an association between a predefined BMD factor and a predefined feedrate factor FR. An example of a lookup table is shown in FIG. 10. The feedrate generator 82 identifies a predefined BMD factor in the lookup table that is closest to the calculated BMD factor, and sets the planned feedrate factor FR based on the predefined feedrate factor associated with the closest identified predefined BMD. In the example of FIG. 9, the feedrate generator 82 calculates the BMD factor to be 598.598. Thus, the feedrate generator 82 can determine that the predefined BMD factor 600 is closest to 598.598. The feedrate generator 82 can then set the planned feedrate factor FR for the path segment PS1 to 90 mm / s.

[0122] The lookup table shown in FIG. 10 serves as an example of a lookup table. In other examples, the planned feedrate coefficients FR and BMD coefficients may be changed based on a priority order to optimize cutting performance. For example, if the control system 60 is more or less sensitive to the variation of the density value DV of the anatomical volume AV, the difference between successive BMD coefficients in the lookup table may decrease or increase. As another example, if the control system 60 decreases or increases the variation of the planned feedrate coefficients FR, the difference between successive planned feedrate coefficients FR may decrease or increase. Furthermore, although the lookup table in FIG. 10 features equally spaced BMD coefficients (from 100 to 1000), in some cases, the lookup table may include additional BMD coefficients and corresponding planned feedrate coefficients FR per predefined range of BMD coefficients (e.g., 505, 510, 515, 520, etc.) to increase the resolution of determining the planned feedrate coefficients FR per predefined range of the BMD coefficients (e.g., 505, 510, 515, 520, etc.).

[0123] In some cases, in response to a determination that the calculated BMD factor is below a minimum threshold, the feedrate generator 82 may set the planned feedrate factor FR for the path segment PS to be the maximum feedrate factor. For example, referring to the lookup table of FIG. 10, the feedrate generator 82 may set the planned feedrate factor FR to 5 mm / sec (the minimum feedrate of the tool 20) if the BMD factor is less than 100. In some cases, in response to a determination that the calculated BMD factor is above a maximum threshold, the feedrate generator 82 sets the planned feedrate factor to the minimum feedrate factor. For example, referring to the lookup table of FIG. 10, the feedrate generator 82 may set the planned feedrate factor FR to 400 mm / sec (the maximum feedrate of the tool 20) if the BMD factor is above 1000. In practice, the feedrate FR of the tool 20 is typically between 5 and 400 mm / sec. However, the feedrate may be greater or less than this range, depending on the circumstances.

[0124] In some cases, the feedrate generator 82 may obtain a default planned feedrate factor FR for each path segment PS. For example, the feedrate generator 82 may set a default planned feedrate factor FR for each path segment PS of the toolpath TP after obtaining the path data 73 during step M1. During step M8, the feedrate generator 82 may change the default feedrate FR of the path segment PS based on the calculated BMD coefficient. For example, with reference to FIG. 10, the feedrate generator 82 may obtain a default planned feedrate factor FR of 90 mm / sec for each path segment PS along the toolpath TP. The feedrate generator 82 may then change the default planned feedrate FR from 90 mm / sec to a different planned feedrate (e.g., 80 mm / sec, 100 mm / sec) based on the calculated BMD coefficient. In this manner, the feedrate generator 82 may hold a default planned feedrate FR for some path segments PS of the toolpath TP. The lookup table of FIG. 10 may change based on a user's desire to change the planned feedrate FR from the default planned feedrate FR. For example, if a user wants to leave the planned feedrate FR at the default planned feedrate FR, the difference between successive BMD coefficients may be large. In such a case, additional BMD coefficients may be set to correspond to the default planned feedrate FR. If a user wants to change the planned feedrate FR from the default planned feedrate FR, the difference between successive BMD coefficients may be decreased. In such a case, the number of BMD coefficients corresponding to the default planned feedrate FR may be decreased.

[0125] [d. Ignore previously analyzed anatomical regions] During step M9, the feedrate generator 82 is optionally configured to ignore portions (pixels / voxels / area / volume) of the anatomical volume VM previously evaluated during the process shown in FIG. 4. The purpose of this step is to consider / ignore these previously analyzed regions based on the assumption that these previous regions would have been removed by the tool 20 along the tool path TP. Ignoring density values ​​of previously removed portions of the anatomical volume AV helps to generate a more accurate feedrate FR determination for the current point. This approach is useful, for example, when the distance between successive points P along the tool path TP is smaller than the size of the tool 20 or when the tool path TP passes twice over the same anatomical region. In such cases, the feedrate generator 82 does not need to take into account density values ​​DV corresponding to previously removed portions of the anatomical volume AV.

[0126] Fig. 11 shows an illustrative example of step M9. Fig. 11 includes slices of the tool geometry and imaging slices of the anatomical volume AV when the tool 20 is at a first point P1 and a consecutive second point P2 along the tool path TP. The tool 20 at the first point P1 is shown in solid lines and the tool 20 at the second point P2 is shown in dotted lines. The tool 20 is shown to intersect with the anatomical model AM at the first point P1 at intersection I1 and at the second point P2 at intersection I2.

[0127] As shown, the intersections I1, I2 of the tool 20 and the anatomical volume AV at points P1 and P2, respectively, include common pixels PX. These common pixels PX indicate that the tool 20 is expected to intersect at point P2 with a portion of the anatomical volume AV that was previously removed by the tool 20 when the tool 20 was at point P1. Thus, the feed rate generator 82 is configured to ignore the common pixels PX when determining the cutting plan data 79 for point P2.

[0128] In the example of FIG. 11, the feed rate generator 82 first generates and stores pixels PX corresponding to the intersection I1 for the point P1. These pixels PX indicate the location of the intersection I1 and are referred to herein as "interaction coordinates." The feed rate generator 82 may also store density values ​​DV corresponding to the interaction coordinates. These determined density values ​​DV of the intersection I1 are referred to herein as "previously determined density values ​​DV." These interaction coordinates need not be specifically limited to particular coordinates of pixels / voxels. Instead, any of the techniques described above in connection with the tool contact coefficients may be similarly utilized to determine previous interactions of the tool 20 with the anatomical volume AV. Additionally, the tool path TP coordinate system, the anatomical coordinate system, or a merged coordinate system may be used to identify coordinates relative to a coordinate system (regardless of pixel / voxel location).

[0129] Continuing with the example of FIG. 11, the feed rate generator 82 proceeds through steps M4-M8 for the second point P2. During step M9, the feed rate generator 82 ignores the previously determined interaction coordinates. To do this, the feed rate generator 82 first compares the interaction coordinates (e.g., pixel PX) of the second point P2 with the interaction coordinates of the first point P1. The feed rate generator 82 may ignore the density values ​​DV of any second point P2 that have the same interaction coordinates as the interaction coordinates of the first point P1. In FIG. 11, these common interaction coordinates of the intersections I1 and I2 include pixels PXA-PXF. Thus, the feed rate generator 82 ignores the density values ​​DV associated with pixels PXA-PXF when determining the cutting plan data 79 for the second point P2. Ignoring such values ​​may mean that the feed rate generator 82 nullifies or zeroes out these density values ​​at such coordinates. Furthermore, although the points P1 and P2 evaluated in the context of this process were consecutive points, P2 may be any point following P1 in time, and does not necessarily have to immediately follow P1.

[0130] In some cases, the feed rate generator 82 may be configured to ignore a previously determined density value DV depending on the amount of previous pixel / voxel interaction with the tool geometry. For example, the feed rate generator 82 may be configured to ignore a previously determined density value DV if more than X% of the pixels PX corresponding to the previously determined density value DV have been previously interacted with. For example, with reference to FIG. 11 , pixel PXC may not be ignored because less than 50% of the pixels PXC were interacted with by the tool 20 at the first point P1. However, pixels PXA, PXB, PXD, PXE, PXF may be ignored because more than 50% of the pixels PXA, PXB, PXD, PXE, PXF were interacted with by the tool 20 at the first point P1. In another example, the feed rate generator 82 may be configured to ignore a previously determined density value DV only if 100% of the pixels PX associated with the previously determined density value DV have been interacted with. 11, pixels PXA, PXC, PXE, PXF may not be ignored because less than 100% of pixels PXA, PXC, PXE, PXF interacted with the tool geometry at the first point P1. However, pixels PXB, PXD may be ignored because 100% of pixels PXB, PXD interacted with the tool geometry at the first point P1. In another example, a tool contact factor may be considered for purposes of determining whether to ignore previous interaction coordinates.

[0131] In another example, instead of ignoring the density value DV at the previous interaction coordinate, the feed rate generator 82 may be configured to use a scaled version or residual of the previously determined density value DV. The scaled previously determined density value DV may be based on a measure of the previous interaction. For example, referring to FIG. 11, the tool geometry interacted with approximately 25% of pixel PXC at point P1. Thus, instead of ignoring pixel PXC from determining the cutting plan data 79 for point P2, the feed rate generator 82 may scale the density value DV corresponding to pixel PXC based on the interaction at point P1. For example, the feed rate generator 82 may use 75% of the density value DV corresponding to pixel PXC (606 HU) to determine the cutting plan data 79 for point P2.

[0132] [e. Output cutting plan data] During step M11, the feed rate generator 82 outputs cutting plan data 79 for the tool path TP. Referring to FIG. 3, the feed rate generator 82 can output the cutting plan data 79 to the behavior controller 74. The behavior controller 74 can then control the motion controller 76 based on the cutting plan data 79. In this manner, the control system 60 controls the manipulator 14 to move the tool 20 along the tool path TP at the planned feed rate FR based on the cutting plan data 79. Further, referring to FIG. 3, the cutting plan data 79 can be output to the clinical application 80. Thus, a user operating the clinical application 80 can view the cutting plan data 79 before or during the execution of a surgical procedure. Furthermore, a user operating the clinical application 80 can adjust the cutting plan data 79 before or during the execution of a surgical procedure.

[0133] As shown in FIG. 6, the cutting plan data 79 includes the tool path TP. Meanwhile, the cutting plan data 79 also includes planned feed rate coefficients FR1...FRN for path segments PS1...PSN along the tool path TP. In this manner, the cutting plan data 79 may be an enhanced or expanded version of the initially obtained tool path TP. Furthermore, in some cases, when the feed rate generator 82 generates the cutting plan data 79, the cutting plan data 79 may replace the original tool path TP.

[0134] Additionally, in some cases, the feedrate generator 82 may evaluate the cutting plan data 79 to determine that it is prudent to alter the original toolpath TP. Such alterations may be based on an evaluation of any considerations, factors, or steps described herein, such as the planned feedrate factors FR1...FRN, tool contact factors, ignored interaction coordinates, etc. For example, the feedrate generator 82 may alter the toolpath TP to optimize cutting performance, cutting time, etc. For example, if the planned feedrate FR at a point is too slow or fast, the feedrate generator 82 may alter the toolpath TP by changing the location of the point or removing the point entirely. In another example, if the tool contact factor at a point is too high or low, the feedrate generator 82 may alter the toolpath TP by changing the location of the point. In another example, if at a point P, the feedrate generator 82 detects an excessive amount of identified previous interactions from a previous point, the feedrate generator 82 may alter the toolpath TP by changing the location of the point P or a previous point to reduce cutting time. If the path data 73 includes a set of potential tool paths TP, the feed rate generator 82 can determine which potential tool path TP optimizes cutting performance, cutting time, etc. The feed rate generator 82 can then select the determined tool path TP for the cutting plan data 79, ignoring the other tool paths TP.

[0135] The modified toolpath TP may be determined and executed automatically by the feedrate generator 82. Alternatively, the proposed changes may be presented to the user for confirmation.

[0136] In some cases, the cutting of the resection volume during the surgical procedure may be repeated until the control system 60 determines that the resection volume has been completely removed. In some cases, the tool 20 may encounter an error that causes the tool 20 to not follow the original tool path TP, resulting in the resection volume not being completely removed. In other examples, the modified tool path TP may not completely remove the resection volume as the tool 20 follows it. In such cases, the cutting of the resection volume may be repeated (e.g., after the error and / or after the tool 20 has moved according to the modified tool path TP (i.e., after the error, or after the tool 20 has moved according to the modified tool path TP, or both)) by restarting the surgical procedure and moving the tool 20 according to the original tool path TP or according to the modified tool path TP. The surgical procedure may be resumed and repeated as many times as necessary until the resection volume has been completely removed. In some cases, the user may be notified that the resection volume has not been completely removed and may be presented with an option to resume and repeat the surgical procedure according to the original tool path TP or according to the modified tool path TP.

[0137] [f. Additional Implementations] In some embodiments, the cutting plan data 79 may be determined based additionally or alternatively on tissue parameters. In such implementations, the anatomical data 65 may include tissue parameters, which may include parameter data of any tissue. For example, the tissue parameters may include a density value DV of the anatomical volume AV and / or may include parameter data of other tissues (i.e., may include a density value DV of the anatomical volume AV, may include parameter data of other tissues, or may include both). For example, the type of tissue of the anatomical volume AV may be determined from the tissue parameter data. In such an example, the control system 60 may determine that the tissue of the anatomical volume AV is cancellous tissue, cortical tissue, cortical tissue, cartilage tissue, or soft tissue based on the tissue parameter data. The tissue parameter data may also include electrical parameters of the tissue, such as permittivity and conductivity. Tissue parametric data may include perfusion parameters, volume, voxel size, area, pixel size, thickness, cortical thickness, weight, fat fraction, total fat, thermal parameters, thermal conductivity, thermal expansion, tensile strength, acoustic parameters, elasticity, bone surface density, bone surface / volume ratio, etc.

[0138] In some embodiments, the cutting plan data 79 may be determined based on a predefined pose of the shaft 33. For example, the predefined pose of the shaft 33 may affect the simulated interaction I between the geometry of the tool 20 at the point P and the anatomical volume AV. In particular, the predefined pose of the shaft 33 may affect how the tool 20 contacts the anatomical volume AV at the intersection I depending on the geometry of the tool 20. For example, if the cutting surface of the energy applicator 24 includes a triangular or tapered cross section or a flat cutting tip, the predefined pose of the shaft 33 will affect the intersection I between the tool 20 and the anatomical volume AV. Therefore, to more accurately identify the intersection I during step M6, the control system 60 may be configured to obtain the path data 73 by obtaining the planned pose of the TCP during step M1.

[0139] In some embodiments, the cutting plan data 79 may include an output pose of the shaft 33 associated with at least one point P of the tool path TP. In such implementations, the control system 60 determines an output pose of the shaft 33 as the energy applicator 24 moves along one or more individual path segments PS of the tool path TP to optimize cutting performance. The output pose of the shaft 33 may be a state (e.g., a position and / or orientation) of the shaft 33 relative to the manipulator coordinate system MNPL. By outputting the output pose of the shaft 33, the control system 60 provides instructions to the manipulator controller 26 for the manipulator 14 to move the tool 20.

[0140] The control system 60 may determine the output pose of the shaft 33 based on the anatomical data 65 (e.g., the density value DV and / or tissue parameters (i.e., the density value DV and / or tissue parameters)), the path data 73, and the tool data 69. For example, the control system 60 may determine the output pose based on the geometry of the tool 20. For example, the cutting face of the energy applicator 24 may include a tapered cross-sectional area. In such an example, the control system 60 may determine the output pose to position and orient the tool 20 to optimize cutting at the tapered cross-sectional area. As another example, the control system 60 may determine the output pose based on a preferred use of the tool 20. For example, the cutting face of the energy applicator 24 may be positioned on a side of the energy applicator 24 to facilitate cutting using the side of the energy applicator 24 rather than the tip of the energy applicator 24. In such an example, the control system 60 may determine the output pose to position and orient the tool 20 such that the side of the energy applicator 24 performs the majority of the cutting. As yet another example, the control system 60 can determine the output pose based on a preferred cutting depth of the tool 20. For example, the tool 20 may be preferably used for shallower cuts. In such an example, the control system 60 can determine the output pose to position and orient the tool 20 to perform the shallower cuts.

[0141] The control system 60 may set the output attitude of the shaft 33 during step M10 of the above-described method. Additionally, the control system 60 may output cutting plan data 79 including the output attitude during step M11. Additionally, the control system 60 may perform steps M1-M9 described above to determine the output attitude. The control system 60 may output the output attitude of the shaft 33 in addition to, or as an alternative to, outputting the planned feed rate FR of the tool 20.

[0142] In some embodiments, the feedrate generator 82 can determine a planned feedrate FR and / or adjust the cutting plan data 79 (i.e., determine the planned feedrate FR and / or adjust the cutting plan data 79) to achieve a predetermined motor current in the motor of the tool 20. For example, the feedrate generator 82 can determine a planned feedrate FR and / or adjust the cutting plan data 79 to cause the motor of the tool 20 to maintain a constant motor current. As another example, the feedrate generator 82 can determine a planned feedrate FR and / or adjust the cutting plan data 79 to ensure that the motor current of the motor of the tool 20 is within a predetermined range of motor current values.

[0143] In some embodiments, the control system 60 can monitor the performance of the tool 20 during the surgical procedure. In particular, the control system 60 can monitor the performance of the tool 20 while the tool 20 is cutting the resection volume of the anatomical volume AV according to the cutting plan data 79. The control system 60 can monitor the contact force of the tool 20 applied to the anatomical volume AV, the rotational speed of the tool 20, the actual feed rate FR of the tool 20, the temperature of the tool 20, the current of the motor of the tool 20, and / or any other suitable measure of the performance of the tool 20 (i.e., one or more of the contact force of the tool 20, the rotational speed of the tool 20, the actual feed rate FR of the tool 20, the temperature of the tool 20, the current of the motor of the tool 20, or any other suitable measure of the performance of the tool 20). The control system 60 can then modify the cutting plan data 79 based on the monitoring of the performance of the tool 20. For example, the control system 60 may vary one or more of the density value DV of the anatomical volume AV, the planned feed rate FR, the tool path TP, the BMD coefficient, the geometric shape of the tool 20, and / or any other parameters used in determining the cutting plan data 79.

[0144] [III. Density-Parameterized Virtual Objects] 12 and 13, a technique is described for the control system 60 to create or modify a virtual object 71 such that the virtual object 71 is characterized, encoded, or otherwise associated with properties, parameter(s), or coefficients derived from the density value DV. This virtual object 71 may be used by the control system 60 to modify the behavior of the manipulator 14 or tool 20 based on the tool interacting with the virtual object 71.

[0145] As described above, the state of the tool 20, TCP, or energy applicator 24 can be measured relative to the virtual object 71 for the purpose of determining forces to be applied to a virtual model of the tool 20 in the virtual simulation. In the virtual simulation, the model of the tool 20 can be represented as a virtual rigid body model or a virtual volume. Forces are calculated with respect to the virtual model in response to the virtual model interacting with one or more polygonal elements 99 of the virtual object 71. These forces applied to the virtual model result in outputs that the control system 60 can use to modify the operation of the manipulator 14 or the tool 20. In response, the control system 60 can calculate reaction forces to modify the operation of the manipulator 14 by preventing the tool 20 from penetrating the virtual object 71. In response to the interaction, the control system 60 can also modify the feedrate of the tool 20. Techniques for assessing the interaction of the virtual object 71 with the tool may be similar to those described in U.S. Patent Publication No. 2018 / 0353253, entitled “Robotic Surgical System And Method For Producing Reactive Forces To Implement Virtual Boundaries,” filed June 6, 2018, the entire contents of which are incorporated herein by reference.

[0146] The interaction of the tool with the virtual object 71 and the techniques described herein may be performed or implemented in any operating mode of the manipulator 14, including an autonomous mode, a manual mode, or a guided manual mode. The autonomous mode and the manual mode have been described above. In the guided manual mode, the control system 60 obtains the tool path TP of the tool 20 and prescribes virtual constraints for the movement of the tool 20 along the tool path TP, each in terms of two degrees of freedom perpendicular to the tool path TP. In this manner, the virtual constraints are prescribe to constrain the movement of the tool 20 along the tool path TP. Furthermore, in the guided manual mode, the control system 60 receives inputs from the force / torque sensor S in response to user forces and torques manually applied by the user to the tool 20. The control system 60 then simulates the dynamics of the tool 20 in a virtual simulation based on the virtual constraints and the inputs from the force / torque sensor S, and commands the manipulator 14 to advance the tool 20 along the tool path TP based on the virtual simulation. For example, the control system 60 may calculate and simulate reaction forces against the virtual object 71 in the virtual simulation and command the manipulator 14 to advance the tool 20 along the tool path TP based on the virtual simulation. The guided manual mode is further described in U.S. Patent Publication No. 2020 / 0281676, which is incorporated herein by reference.

[0147] According to this technique, a control system 60 acquires anatomical data 65 and virtual object data 97 associated with a virtual object 71. The control system 60 acquires the anatomical data 65 including a geometry and density values ​​DV of an anatomical volume AV. The anatomical data 65 is shown in FIG. 12 as an anatomical model AM of the anatomical volume AV including the density values ​​DV. The anatomical data 65 is represented in an anatomical data coordinate system X A ,Y A ,Z AThe control system 60 also acquires virtual object data including the geometry of the virtual object 71 having a mesh of polygonal elements. The virtual object data 97 shown in FIG. 12 is represented in a virtual object coordinate system X V ,Y V ,Z V 12 includes a virtual object 71 mapped onto the virtual object 71. As shown, the virtual object 71 includes a mesh of polygonal elements 99. In Figure 12, the polygonal elements 99 are triangles. However, in other examples, the individual polygonal elements 99 may be any suitable polygon.

[0148] Referring to FIG. 12, the control system 60 merges the anatomical data 65 and the virtual object data to create a merged model 101, which is represented in a merged coordinate system X M ,Y M ,Z M , or the anatomical data coordinate system X A ,Y A ,Z A , virtual object coordinate system X V ,Y V ,Z V , or any other coordinate system, such as a new, different, or arbitrary coordinate system. This merging can be provided or performed in a visual form, but need not be. For example, the merging may be purely computational and invisible to the user. Alternatively, aspects of these steps can be visualized to a user, for example using a clinical application 80, such that the user can experience or interact with the virtual objects 71 and the anatomical data 65.

[0149] FIG. 12 provides two views of the merged model 101. M ,Y M The first view and the merged model 101 are shown in the coordinate system X M ,Z M2 and 3. A second view shown in the coordinate system 20. In both views, the polygonal elements 99 of the virtual object 71 and the anatomical model AM are superimposed.

[0150] For illustrative purposes, the polygon elements 99 shown may be exaggerated relative to the size of the density value DV regions and therefore are not to scale. To further elaborate on the size of the polygon elements 99 and density value DV regions, any number of polygon elements 99 can fit within one density value DV region and any number of density value DV regions can fit within one polygon element 99.

[0151] When merged, the virtual object 71 may intersect with and / or be spaced apart from the anatomical volume AV (i.e., intersecting with and / or spaced apart from the anatomical volume AV). Any number of virtual objects 71 may be utilized in this technique, and these virtual objects 71 may have any suitable shape (e.g., planar or complex) or purpose (e.g., no entry zones, allowed zones, boundaries, etc.). In one example, the virtual object 71 may be a boundary-like object as described in US20160338782A1, entitled "System And Method For Manipulating An Anatomy," filed May 18, 2016, the entire contents of which are incorporated herein by reference. The virtual object 71 may have any number of polygonal elements 99. The virtual object 71 may be generated by a boundary generator 66, as described above.

[0152] Once the control system 60 merges the anatomical data 65 with the virtual object 71, the control system 60 determines parameters to associate with one or more polygonal elements 99 of the virtual object 71. The parameters may define an effect, influence, and / or reaction (i.e., one or more of an effect, influence, or reaction) that the polygonal element 99 has on a virtual model of the tool that is applied to the virtual simulation. The parameters may define the initial parameters of the polygonal element 99 or may overwrite or replace existing parameters. In one example, the parameters are tuning parameters related to the stiffness of the polygonal element 99. The tuning parameters may define spring or damper parameters associated with the polygonal element 99. In another example, the parameters may affect the feedrate of the tool 20. For example, the feedrate generator 82 is coupled to the behavior controller 74 and may recognize interactions between the model of the tool 20 and any polygonal elements 99 that are parameterized as described herein. From there, the feedrate generator 82 may define or adjust the feedrate of the tool 20 based on such interactions.

[0153] Although pixels PX are used in the following examples, any aspect of the technology described herein that involves the use of pixels PX can be implemented in other ways that do not involve pixels PX. For example, voxels VX of an anatomical volume AV can be used as well. Voxels VX can include density values ​​DV. Other types of 2D or 3D units or measurements can be utilized when comparing the geometric shapes described herein.

[0154] Referring to a first view of the merged model 101 in FIG. 12, the control system 60 in one example M ,Y M In a coordinate system, the parameters of the illustrated polygonal element 99 can be determined or found by considering the density values ​​DV of the pixels PX that are encapsulated by the perimeter of the polygonal element 99. The control system 60 also determines the density values ​​DV of the pixels PX that are encapsulated by the perimeter of the polygonal element 99. M ,YM In the coordinate system, the parameters of the polygon element 99 can be determined by considering the density values ​​DV of pixels PX that are at least partially encapsulated by the polygon element 99. In another example, the control system 60 can determine the parameters of the polygon element 99 by considering the density values ​​DV of pixels PX that are completely encapsulated by the polygon element 99. The control system 60 can also ignore the density values ​​DV of pixels PX if less than X% of the pixel PX is encapsulated by the polygon element 99.

[0155] Referring to the second view of the merged model 101 in FIG. 12, the control system 60 may additionally or alternatively M ,Z M In a coordinate system, the parameters of the polygon element 99 can be determined by considering density values ​​DV of pixels PX that intersect with the plane of the polygon element 99. The control system 60 can determine the parameters of the polygon element 99 by considering density values ​​DV of pixels PX that at least partially intersect with the polygon element 99. In another example, the control system 60 can determine the parameters of the polygon element 99 by considering density values ​​DV of pixels PX that at least partially intersect with the polygon element 99. 深さ The parameters of the polygon element 99 can be determined by considering the density values ​​DV of the pixels PX within a given or measured depth or distance from the polygon element 99, denoted as: 深さ may be any suitable depth and in any suitable units. For example, depth PX 深さ may be predetermined, for example, 1 mm below the virtual object 71, or 3 pixels PX below the virtual object 71.

[0156] In some examples, the control system 60 may determine parameters of the polygon elements 99 using density values ​​DV of pixels PX under the virtual object 71 depending on how the tool 20 or a virtual model of the tool 20 penetrates the virtual object 71. In such examples, the control system 60 may take into account density values ​​DV of pixels PX under the virtual object 71 that are interacted with by the tool 20 or a virtual model of the tool 20. For example, the control system 60 may take into account any density values ​​DV that intersect with the virtual model of the tool 20.

[0157] Once the control system 60 has identified the density value DV to be considered, the control system 60 can determine the parameters of the polygonal element(s) 99 in a number of ways, including but not limited to calculating or determining one or more of the mean, median, range, mode, maximum, or minimum density values ​​DV that are adjacent to, interact with, associated with, or intersect the polygonal element 99. Although the parameter values ​​are based on the density values ​​DV, the parameter values ​​need not correspond to the density values ​​resulting from the calculations associated with the considered density value DV. Instead, the parameter values ​​can be standardized or normalized values.

[0158] Once the control system 60 has determined the parameters of the polygonal elements 99 of the virtual object 71 , the control system 60 can modify the behavior of the tool 20 in response to the tool 20 interacting with the polygonal elements 99 .

[0159] The example of FIG. 13A illustrates a scenario in which the energy applicator 24 slides along the virtual object 71 at a first feedrate. The first feedrate can be predetermined or based on a user-applied force, and the manipulator is controlled in manual or guided manual modes depending on the user-applied force. In these modes, the user can freely move the tool 20 in a manner that slides the tool 20 along the virtual object 71. This, in turn, can cause the virtual model of the tool 20 to skimming or partially penetrating a polygonal element 99 in the virtual object 71. In such a case, the control system 60 can calculate a second feedrate according to the parameters of the polygonal element 99 with which the tool 20 interacts. The control system 60 can then command the robotic manipulator to move the tool 20 at the second feedrate. For example, the user can move the tool 20 along the virtual object 71 in the illustrated direction at a first feedrate of 2 mm / s. The polygonal element 99 with which the tool 20 interacts during this movement may have a parameter 0.5, which may be a feedrate half scaling factor. In response, the control system 60 may control the manipulator 14 according to a second feedrate which is half the first feedrate, i.e. 1 mm / s. This parameter may thus adjust an existing feedrate, for example, so that the density of anatomical structures is taken into account with regard to the interaction of the tool 20 with the virtual object 71.

[0160] In the example of FIG. 13B, the energy applicator 24 penetrates a polygonal element 99 of the virtual object 71. In such a case, the control system 60 modifies the motion of the tool 20 based on applying a reaction force RXF derived from a virtual simulation between a model of the tool and the polygonal element(s) 99. The control system 60 calculates the reaction force RXF according to parameters of the polygonal element(s) 99 with which the tool 20 interacts, and applies the reaction force RXF to the virtual model in the virtual simulation to reduce the penetration of the polygonal element 99 by the virtual model. The control system 60 then commands the manipulator 14 to move the tool 20 according to the application of the reaction force RXF to limit the motion of the tool 20 relative to the virtual object 71. This reaction force parameter approach can be utilized individually or in combination with the feedrate parameter approach.

[0161] In the preceding description, several embodiments have been described. The embodiments discussed herein are not intended to be exhaustive or limited to any particular form. The terminology used is intended to have the nature of words descriptive rather than limiting. Many modifications and variations are possible in light of the above teachings, and the invention may be practiced other 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 non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, implement computer-implemented surgical planning software, the computer-implemented surgical planning software comprising: acquiring anatomical data including a geometry and density value of an anatomical volume; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points through which the tool will pass successively; acquiring tool data including the geometry of the tool that will interact with the tool path; merging the path data with the anatomical data; for at least one point of the tool path, identifying a location of the point relative to the anatomical data, loading the geometry of the tool at the identified location from the tool data, identifying an intersection between the geometry of the tool and the anatomical volume at the identified location, determining a density value of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the geometry of the tool and the anatomical volume, setting a planned feedrate coefficient for the tool based on the determined density value and the calculated tool contact coefficient, and associating the planned feedrate coefficient with the at least one point; outputting cutting plan data including the tool path including the planned feed rate coefficient associated with the at least one point of the tool path; 1. A non-transitory computer-readable medium configured to:

2. 10. The non-transitory computer-readable medium of claim 1, wherein the surgical planning software, when executed, is further configured to acquire a bone model associated with the anatomical volume, thereby acquiring anatomical data.

3. The surgical planning software, when executed, a planned resection volume of the bone model of the anatomical volume; the geometry of an implant model selected for said bone model; The non-transitory computer-readable medium of claim 2 , further configured to obtain the predetermined tool path based on one or more of:

4. 10. The non-transitory computer-readable medium of claim 1, wherein the surgical planning software, when executed, is further configured to acquire imaging data including slices of the anatomical volume, thereby acquiring anatomical data.

5. 5. The non-transitory computer-readable medium of claim 4, wherein the surgical planning software, when executed, is further configured to acquire DICOM data including intercept and tilt values, slice thickness, and patient position at the time of imaging, thereby acquiring imaging data.

6. The surgical planning software, when executed, 5. The non-transitory computer-readable medium of claim 4, further configured to identify one or more slices of the imaging data indicative of the intersection between the tool geometry and the anatomical volume, thereby identifying the intersection between the tool geometry and the anatomical volume at the identified location.

7. The surgical planning software, when executed, determining, for each identified slice, a radiation density value of the imaging data located within the intersection; acquiring radiation density values ​​located within the intersection of each of the one or more identified slices; The non-transitory computer-readable medium of claim 6 , further configured to: determine density values ​​of the anatomical data within the intersections by:

8. The surgical planning software, when executed, calculating a bone mineral density (BMD) index of the anatomical volume for the identified location based on the collected radiodensity values; setting the planned feedrate coefficient for the tool based on the calculated BMD coefficient; 8. The non-transitory computer-readable medium of claim 7, further configured to:

9. the surgical planning software, when executed, is further configured to acquire CT slices of the anatomical volume to thereby acquire imaging data; the geometry of the tool comprises a 3D geometry of the tool; For the at least one point of the tool path, the surgical planning software: loading the 3D geometry of the tool at the identified location; identifying a CT slice in which there is a cross-sectional intersection between the 3D geometry of the tool and the anatomical volume at the identified location; and determining, for each identified CT slice, a Hounsfield unit for each pixel within said cross-sectional intersection; collecting the Hounsfield units from the pixels within the cross-sectional intersection of each of the identified CT slices; The non-transitory computer-readable medium of claim 8 ,

10. the surgical planning software further configured to identify one or more of an average radiation density value, a median radiation density value, and a maximum radiation density value from the collected radiation density values, thereby collecting the radiation density values ​​located within the intersection of each of the one or more identified slices; further configured to convert the one or more of the mean radiation density value, the median radiation density value, and the maximum radiation density value into the BMD coefficient, thereby calculating the BMD coefficient; 10. The non-transitory computer-readable medium of claim 8, further configured to:

11. 11. The non-transitory computer-readable medium of claim 10, wherein the surgical planning software is configured to, for the at least one point of the tool path, after identifying slices of the imaging data indicative of the intersection between the tool geometry and the anatomical volume, calculate the tool contact factor by calculating, for each identified slice, an intersection ratio relating the tool geometry within the intersection to the tool geometry outside the intersection.

12. 12. The non-transitory computer-readable medium of claim 11, wherein the surgical planning software, when executed, is further configured to multiply the one or more of the mean radiation density value, the median radiation density value, and the maximum radiation density value by the cross ratio, thereby converting the one or more of the mean radiation density value, the median radiation density value, and the maximum radiation density value into the BMD coefficient.

13. 12. The non-transitory computer-readable medium of claim 11, wherein the surgical planning software is further configured to determine, for each identified slice, a quantity of pixels within the geometry of the tool that have Hounsfield units above a predetermined threshold.

14. the surgical planning software further configured to calculate a bone mineral density (BMD) index of the anatomical volume for the identified location based on the determined density value; 3. The non-transitory computer-readable medium of claim 2, wherein the surgical planning software is further configured to set the planned feedrate coefficient based on the calculated BMD coefficient, thereby setting the planned feedrate coefficient for the tool based on the determined density value.

15. the surgical planning software further configured to access a lookup table that defines an association between a predetermined BMD coefficient and a predetermined feed rate coefficient; For the at least one point of the tool path, the surgical planning software: Identifying the predetermined BMD coefficient in the lookup table that is closest to the calculated BMD coefficient; setting the planned feedrate coefficient based on the default feedrate coefficient associated with the closest identified default BMD coefficient in the lookup table; and setting the planned feedrate coefficient based on the calculated BMD coefficient.

15. The non-transitory computer-readable medium of claim 14.

16. The surgical planning software, when executed, calculates for the at least one point of the tool path: in response to determining that the calculated BMD factor is below a minimum threshold, setting the planned feedrate factor to be a maximum feedrate factor; In response to determining that the calculated BMD factor exceeds a maximum threshold, setting the planned feedrate factor to a minimum feedrate factor.

20. The non-transitory computer-readable medium of claim 15, further configured to do one or more of:

17. the surgical planning software storing, for a point of the tool path, interaction coordinates obtained from the intersection between the geometry of the tool and the anatomical volume at the location of the point, the interaction coordinates indicating a location of a simulated interaction between the geometry of the tool and the anatomical volume at the location of the point; For a second point of the tool path following the first point, determining a position of the second point relative to the anatomical data, loading the geometry of the tool at the determined position of the second point from the tool data, determining an intersection between the geometry of the tool and the anatomical volume at the determined position of the second point, determining a density value of the anatomical data within the intersection at the position of the second point, comparing coordinates of the determined density value with the interaction coordinates, and ignoring density values ​​having coordinates identical to the interaction coordinates. The non-transitory computer-readable medium of claim 2 , further configured to:

18. 3. The non-transitory computer-readable medium of claim 2, wherein the surgical planning software is further configured to, for the at least one point of the tool path, ignore density values ​​located beyond the intersection between the tool geometry and the anatomical volume.

19. 3. The non-transitory computer-readable medium of claim 2, wherein the surgical planning software, when executed, is further configured to merge the path data and the anatomical data into a common coordinate system, thereby merging the path data and the anatomical data.

20. 3. The non-transitory computer-readable medium of claim 2, wherein the cutting plan data includes a tool path along which a robotic manipulator will move a tool in an autonomous mode to interact with the anatomical volume.

21. the surgical planning software For each point of said tool path: Identifying the location of the point relative to the anatomical data; loading the geometry of the tool at the identified location from the tool data; Identifying the intersection between the geometry of the tool and the anatomical volume at the identified location; determining a density value of the anatomical data within the intersection; setting the planned feedrate coefficient for the tool based on the determined density value; Associating the planned feedrate coefficient with the point; and further configured to:

3. The non-transitory computer-readable medium of claim 2, wherein the surgical planning software, when executed, is further configured to output the tool path including the planned feed rate coefficients associated with each point of the tool path, thereby outputting the cutting plan data.

22. 1. A surgical system comprising: a robotic manipulator configured to support and move the tool; a control system coupled to the robotic manipulator, one or more processors; a non-transitory computer-readable medium having stored thereon instructions that, when executed by the one or more processors, implement computer-implemented surgical planning software; The computer-implemented surgical planning software comprises: acquiring anatomical data including a geometry and density value of an anatomical volume; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points between which the tool will pass successively; acquiring tool data including the geometry of the tool that will interact with the tool path; merging the path data with the anatomical data; for at least one point of the tool path, identifying a location of the point relative to the anatomical data, loading the geometry of the tool at the identified location from the tool data, identifying an intersection between the geometry of the tool and the anatomical volume at the identified location, determining a density value of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the geometry of the tool and the anatomical volume, setting a planned feedrate coefficient for the tool based on the determined density value and the calculated tool contact coefficient, and associating the planned feedrate coefficient with the at least one point; outputting cutting plan data including the tool path including the planned feed rate coefficient associated with the at least one point of the tool path; a non-transitory computer-readable medium configured to perform the control system including Equipped with the control system utilizes the output cutting plan data to control the robotic manipulator to move the tool along the tool path according to the planned feed rate coefficient associated with the at least one point of the tool path to enable the tool to interact with the anatomical volume.

23. 1. A computer-implemented surgical planning method comprising: acquiring anatomical data including a geometry and density value of an anatomical volume; acquiring path data including a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path being defined by points through which the tool will pass successively; acquiring tool data including the geometry of the tool that will interact with the tool path; merging the path data with the anatomical data; for at least one point of the tool path, identifying a location of the point relative to the anatomical data, loading the geometry of the tool at the identified location from the tool data, identifying an intersection between the geometry of the tool and the anatomical volume at the identified location, determining a density value of the anatomical data within the intersection, calculating a tool contact coefficient associated with an interaction between the geometry of the tool and the anatomical volume, setting a planned feedrate coefficient for the tool based on the determined density value and the calculated tool contact coefficient, and associating the planned feedrate coefficient with the at least one point; outputting cutting plan data including the tool path including the planned feed rate coefficient associated with the at least one point of the tool path; 1. A computer-implemented surgical planning method, comprising: