The present disclosure relates generally to robotic systems, methods, and software programs for modifying tool operation based on tissue parameters, such as bone density.
Robotic systems that perform surgical procedures at surgical sites often include a manipulator with a base, a plurality of links and joints, and an end effector coupled to the manipulator. Many times, the end effector comprises or supports a surgical tool with an energy applicator designed to remove tissue at the surgical site.
The energy applicator is typically moved along a tool path to remove tissue at the surgical site. The velocity or speed at which the energy applicator moves along the tool path is commonly known to those skilled in the art as a “feed rate” of the tool or energy applicator.
Prior systems have contemplated to adjust or determine the feed rate to account for conditions or inputs, such as manual user selection of the feed rate, characteristics of the tissue such as bone mineral density, sensed forces applied to the energy applicator, curvature of the path, and the like.
However, prior feed rate techniques fall short in providing in-depth pre-planning of the tool path feed rates based on, at least, detailed analysis of the patient imaging data and density of the anatomy relative to the planned tool path. For example, in determining the feed rate, the prior techniques fail to account for, among other things, a ratio of intersection of the tool geometry relative to the anatomy as evaluated at point(s) along the tool path or whether certain portions of the anatomy would have been already removed by the tool at another point along the tool path. In turn, the prior feed rate techniques may lead to outcomes that are less than optimal, such as implant fit issues due to resection under-sizing or tool skiving, formation of pits in the resection surface, sub-optimal cutting forces applied by the tool, and the like. There remains a need to address at least some of these deficiencies.
This Summary introduces a selection of concepts in a simplified form that are further described below in the Detailed Description below. This Summary is not intended to limit the scope of the claimed subject matter nor identify key features or essential features of the claimed subject matter.
In a first aspect, a computer-implemented surgical planning method is provided. The method comprises: obtaining anatomical data comprising a geometry and density values of an anatomical volume; obtaining path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path defined by points between which the tool will successively pass; obtaining tool data including a geometry of the tool that will interact with the tool path; merging the path data and the anatomical data; and for at least one point of the tool path: identifying a location of the point relative to the anatomical data, loading, from the tool data, the geometry of the tool at the identified location, at the identified location, identifying an intersection between the geometry of the tool and the anatomical volume, determining density values of the anatomical data within the intersection, computing a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, setting a planned feed rate factor for the tool based on the determined density values and the computed tool contact factor, and associating the planned feed rate factor with the at least one point; and outputting cut plan data comprising the tool path including the planned feed rate factor associated with the at least one point of the tool path.
In a second aspect, a non-transitory computer readable medium is provided. The non-transitory computer readable medium has stored thereon instructions which, when executed by one or more processors, implements a computer-implemented surgical planning software configured to: obtain anatomical data comprising a geometry and density values of an anatomical volume; obtain path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path defined by points between which the tool will successively pass; obtain tool data including a geometry of the tool that will interact with the tool path; merge the path data and the anatomical data; and for at least one point of the tool path: identify a location of the point relative to the anatomical data, load, from the tool data, the geometry of the tool at the identified location, at the identified location, identify an intersection between the geometry of the tool and the anatomical volume, determine density values of the anatomical data within the intersection, compute a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, set a planned feed rate factor for the tool based on the determined density values and the computed tool contact factor, and associate the planned feed rate factor with the at least one point; and output cut plan data comprising the tool path including the planned feed rate factor associated with the at least one point of the tool path.
In a third aspect, a surgical system is provided. The surgical system comprising: a robotic manipulator configured to support and move a tool; and a control system coupled to the robotic manipulator, and comprising: one or more processors; and a non-transitory computer readable medium, having stored thereon instructions which, when executed by the one or more processors, implement a computer-implemented surgical planning software configured to: obtain anatomical data comprising a geometry and density values of the anatomical volume; obtain path data comprising a tool path along which a robotic manipulator will move a tool to interact with an anatomical volume, the tool path defined by points between which the tool will successively pass; obtain tool data including a geometry of the tool that will interact with the tool path; merge the path data and the anatomical data; and for at least one point of the tool path: identify a location of the point relative to the anatomical data, load, from the tool data, the geometry of the tool at the identified location, at the identified location, identify an intersection between the geometry of the tool and the anatomical volume, determine density values of the anatomical data within the intersection, compute a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, set a planned feed rate factor for the tool based on the determined density values and the computed tool contact factor, and associate the planned feed rate factor with the at least one point; and output cut plan data comprising the tool path including the planned feed rate factor associated with the at least one point of the tool path; and wherein the control system utilizes the outputted cut plan data to control the robotic manipulator to move the tool along the tool path according to the planned feed rate factor associated with the at least one point of the tool path for enabling the tool to interact with the anatomical volume. A method of operating the surgical system of the third aspect is also provided.
In a fourth aspect, a computer-implemented surgical planning method is provided. The computer-implemented surgical planning method comprises: obtaining anatomical data comprising a geometry of an anatomy; obtaining path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomy, the tool path defined by points between which the tool will pass; obtaining tool data including a geometry of the tool; merging the path data and the anatomical data; for at least one point of the tool path: identifying a location of the point relative to the anatomical data, loading, from the tool data, the geometry of the tool at the identified location, computing a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, setting a planned feed rate factor for the tool based on the computed tool contact factor, and associating the planned feed rate factor with the at least one point; and outputting cut plan data comprising the tool path including the planned feed rate factor associated with the at least one point of the tool path. A non-transitory computer readable medium, or computer program product, comprising instructions to execute the computer-implemented method of the fourth aspect is also provided.
In a fifth aspect, a computer-implemented method is provided. The computer-implemented method comprises: obtaining anatomical data comprising a geometry and density values of an anatomical volume; obtaining virtual object data comprising geometry of a virtual object having a mesh of polygonal elements; merging the anatomical data and the virtual object data; determining a parameter for one or more polygonal elements of the mesh based on the density values; and modifying operation of a tool according to the parameter in response to the tool interacting with the one or more polygonal elements. A non-transitory computer readable medium, or computer program product, comprising instructions to execute the computer-implemented method of the fifth aspect is also provided.
In a sixth aspect, a computer-implemented method is provided. The computer-implemented method comprises: obtaining anatomical data comprising a geometry and density values of an anatomical volume; obtaining virtual object data comprising geometry of a virtual object having a mesh of polygonal elements; and merging the anatomical data and the virtual object data to determine a parameter for one or more polygonal elements of the mesh based on the density values. A non-transitory computer readable medium, or computer program product, comprising instructions to execute the computer-implemented method of the sixth aspect is also provided.
In a seventh aspect, a non-transitory computer readable medium is provided. The non-transitory computer readable medium has stored thereon instructions which, when executed by one or more processors, implements a computer-implemented surgical planning software configured to: obtain anatomical data comprising a geometry and a tissue parameter of an anatomical volume; obtain path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path defined by points between which the tool will successively pass; obtain tool data including a geometry of the tool that will interact with the tool path; merge the path data and the anatomical data; and for at least one point of the tool path: identify a location of the point relative to the anatomical data, load, from the tool data, the geometry of the tool at the identified location, at the identified location, identify an intersection between the geometry of the tool and the anatomical volume, determine the tissue parameter of the anatomical data within the intersection, compute a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, set a planned feed rate factor for the tool based on the determined tissue parameter and the computed tool contact factor, and associate the planned feed rate factor with the at least one point; and output cut plan data comprising the tool path including the planned feed rate factor associated with the at least one point of the tool path. A computer-implemented method of executing the steps of the seventh aspect is also provided.
In an eighth aspect, a non-transitory computer readable medium is provided. The non-transitory computer readable medium has stored thereon instructions which, when executed by one or more processors, implements a computer-implemented surgical planning software configured to: obtain anatomical data comprising a geometry and a tissue parameter of an anatomical volume; obtain path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path defined by points between which the tool will successively pass; obtain tool data including a geometry of the tool that will interact with the tool path; merge the path data and the anatomical data; and for at least one point of the tool path: identify a location of the point relative to the anatomical data, load, from the tool data, the geometry of the tool at the identified location, at the identified location, identify an intersection between the geometry of the tool and the anatomical volume, determine the tissue parameter of the anatomical data within the intersection, compute a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, set a output pose for the tool based on the determined tissue parameter and the computed tool contact factor, and associate the output pose with the at least one point; and output cut plan data comprising the tool path including the output pose associated with the at least one point of the tool path. A computer-implemented method of executing the steps of the eighth aspect is also provided.
In a ninth aspect, a non-transitory computer readable medium is provided. The non-transitory computer readable medium has stored thereon instructions which, when executed by one or more processors, implements a computer-implemented surgical planning software configured to: obtain anatomical data comprising a geometry and a tissue parameter of an anatomical volume; obtain path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path defined by points between which the tool will successively pass; obtain tool data including a geometry of the tool that will interact with the tool path; merge the path data and the anatomical data; and for at least one point of the tool path: identify a location of the point relative to the anatomical data, load, from the tool data, the geometry of the tool at the identified location, at the identified location, identify an intersection between the geometry of the tool and the anatomical volume, determine the tissue parameter of the anatomical data within the intersection, compute a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, set a planned feed rate factor for the tool based on the determined tissue parameter, the computed tool contact factor, and achieving a predetermined motor current on a motor of the tool, and associate the planned feed rate factor with the at least one point; and output cut plan data comprising the tool path including the planned feed rate factor associated with the at least one point of the tool path. A computer-implemented method of executing the steps of the ninth aspect is also provided.
In a tenth aspect, a non-transitory computer readable medium, having stored thereon instructions which, when executed by one or more processors, implement a computer-implemented surgical planning software configured to: obtain anatomical data comprising a geometry and a tissue parameter of an anatomical volume; obtain path data comprising a tool path along which a robotic manipulator will move a tool to interact with the anatomical volume, the tool path defined by points between which the tool will successively pass; obtain tool data including a geometry of the tool that will interact with the tool path; merge the path data and the anatomical data; and for at least one point of the tool path: identify a location of the point relative to the anatomical data, load, from the tool data, the geometry of the tool at the identified location, at the identified location, identify an intersection between the geometry of the tool and the anatomical volume, determine the tissue parameter of the anatomical data within the intersection, compute a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, set a tool operation parameter based on the determined tissue parameter and the computed tool contact factor, and associate the tool operation parameter with the at least one point; and output plan data comprising the tool path including the tool operation parameter associated with the at least one point of the tool path. A computer-implemented method of executing the steps of the tenth aspect is also provided.
In an eleventh aspect, a computer-implemented method is provided comprising: identifying an intersection between a geometry of a tool and an anatomical volume, determining a tissue parameter of the anatomical data within the intersection, computing a tool contact factor related to an interaction between the geometry of the tool and the anatomical volume, and setting a tool operation parameter based on the determined tissue parameter and the computed tool contact factor. A computer program product or robotic system implementing the steps of the eleventh aspect is also provided.
Any of the above aspects can be combined in part or in whole.
Any of the above aspects can be implemented as a computer-implemented method, a robotic surgical system, and/or a non-transitory computer readable medium having stored thereon instructions which, when executed by one or more processors, implement a computer-implemented surgical planning software or computer program product.
Any of the above aspects can be utilized with any of the following implementations, whether used in part or in whole.
In one implementation, obtaining anatomical data includes obtaining a bone model associated with the anatomical volume. In one implementation, obtaining path data further includes obtaining the tool path being predetermined based on a planned resection volume of the bone model of the anatomical volume. In one implementation, obtaining path data further includes obtaining the tool path being predetermined based on a geometry of an implant model selected for the bone model. In some implementations, the bone model may be patient-specific or a statistical bone model. In some implementations, obtaining path data includes obtaining a predefined pose of the tool with respect to at least one point of the tool path. The bone model can be of an acetabulum, a glenoid, or any type of joint socket. The bone model can be of a femur, tibia, humerus, or portion of the spine (vertebra). In one implementation, the anatomical data is obtained without preoperative images (e.g., imageless) or without forming a bone model. The bone model may be patient-specific or may be based on a statistical dataset from a similar population.
In one implementation, obtaining anatomical data includes obtaining imaging data including slices of the anatomical volume. In one implementation, obtaining imaging data includes obtaining DICOM data including intercept and slope values, slice thickness, and patient position at a time of imaging. In one implementation, obtaining anatomical data includes obtaining CT slices of the anatomical volume. In such an implementation, the geometry of the tool comprises a 3-D geometry of the tool and, for the at least one point of the tool path, loading the 3-D geometry of the tool at the identified location, and at the identified location, identifying CT slices for which there is a cross-sectional intersection between the 3-D geometry of the tool and the anatomical volume; for each identified CT slice, determining a Hounsfield unit for each pixel within the cross-sectional intersection; and collecting the Hounsfield units from the pixels within the cross-sectional intersections of each of the identified CT slices.
In one implementation, identifying the intersection, at the identified location, between the geometry of the tool and the anatomical volume includes identifying one or more slices of the imaging data exhibiting the intersection between the geometry of the tool and the anatomical volume. One implementation includes, for the at least one point of the tool path, and after identifying slices of the imaging data exhibiting the intersection between the geometry of the tool and the anatomical volume, for each identified slice, computing the intersection ratio related to the geometry of the tool within the intersection relative to the geometry of the tool outside of the intersection. One implementation includes, for each identified slice, determining a quantity of pixels within the geometry of the tool having Hounsfield units exceeding a predetermined threshold.
In one implementation, determining density values of the anatomical data within the intersection includes, for each identified slice, determining radiodensity values of the imaging data located within the intersection. In one implementation, determining density values of the anatomical data within the intersection includes collecting radiodensity values located within the intersections of each of the one or more identified slices. In one implementation collecting the radiodensity values located within the intersection of each of the one or more identified slices includes identifying one or more of: an average, a median, and a maximum radiodensity value from the collected radiodensity values.
In one implementation, setting the planned feed rate factor for the tool based on the determined density values includes calculating a bone mineral density (BMD) factor of the anatomical volume relative to the identified location based on the collected radiodensity values. In one implementation, setting the planned feed rate factor for the tool based on the determined density values includes setting the planned feed rate factor for the tool based on the calculated BMD factor. In one implementation, calculating the BMD factor includes converting an average, a median, and/or a maximum radiodensity value into the BMD factor. In one implementation, converting the one or more of: the average, the median, and the maximum radiodensity value into the BMD factor includes multiplying the one or more of: the average, the median, and the maximum radiodensity value with the intersection ratio. In one implementation, setting the planned feed rate factor for the tool based on the determined density values includes setting the planned feed rate factor based on the calculated BMD factor. One implementation includes accessing a look-up table defining associations between predefined bone mineral density (BMD) factors and predefined feed rate factors. In such an implementation, for at least one point of the tool path, setting the planned feed rate factor based on the calculated BMD factor includes identifying, in the look-up table, the predefined BMD factor that is closest to the calculated BMD factor; and setting the planned feed rate factor based on the predefined feed rate factor associated with the closest identified predefined BMD factor in the look-up table. In one implementation, for the at least one point of the tool path, setting the planned feed rate factor based on the calculated BMD factor includes setting the planned feed rate factor to be a maximum feed rate factor in response to determining that the calculated BMD factor is below a minimum threshold; and/or setting the planned feed rate factor to be a minimum feed rate factor in response to determining that the calculated BMD factor is above a maximum threshold. In one implementation, setting the planned feed rate factor includes setting the planned feed rate factor based on achieving a predetermined motor current on a motor of the tool.
One implementation includes, for one point of the tool path, storing interaction coordinates obtained from the intersection between the geometry of the tool and the anatomical volume at the location of the one point, the interaction coordinates indicative of locations of simulated interaction between the geometry of the tool and the anatomical volume at the location of the one point; and for a second point of the tool path successive to the one point; identifying a location of the second point relative to the anatomical data, loading, from the tool data, the geometry of the tool at the identified location of the second point, at the identified location of the second point, identifying an intersection between the geometry of the tool and the anatomical volume, determining density values of the anatomical data within the intersection at the location of the second point, comparing coordinates of the determined density values to the interaction coordinates; and disregarding any density values having coordinates that are identical to the interaction coordinates.
One implementation includes, for the at least one point of the tool path, disregarding any density values located beyond the intersection between the geometry of the tool and the anatomical volume.
In one implementation, merging the path data and the anatomical data includes merging the path data and anatomical data into a common coordinate system.
In one implementation, the cut plan data comprises the tool path along which a robotic manipulator will move a tool in an autonomous mode to interact with the anatomical volume.
One implementation includes, for each point of the tool path: identifying the location of the point relative to the anatomical data, loading, from the tool data, the geometry of the tool at the identified location, at the identified location, identifying the intersection between the geometry of the tool and the anatomical volume, determining density values of the anatomical data within the intersection, setting the planned feed rate factor for the tool based on the determined density values, and associating the planned feed rate factor with the point; and wherein outputting the cut plan data further comprises the tool path including the planned feed rate factor associated with each point of the tool path.
In one implementation, the robotic manipulator is commanded to move the tool according to a first feed rate; while the tool moves according to the first feed rate, an interaction between the virtual model and the one or more polygonal elements of the virtual object is detected. A second feed rate is computed based on the parameter associated with the one or more polygonal elements. Operation of the tool is modified such that the robotic manipulator is commanded to move the tool at the second feed rate.
In one implementation, the robotic manipulator is commanded to move the tool. The virtual model of the tool penetrates the one or more polygonal elements of the virtual object; A reactive force is computed based on the parameter associated with the one or more polygonal elements; a reactive force is applied to the virtual model in the virtual simulation to reduce penetration of the one or more polygonal elements by the virtual model; and operation of the tool is modified such that the robotic manipulator is commanded to move the tool in accordance with application of the reactive force to the virtual model in the virtual simulation to constrain movement of the tool relative to the virtual object.
Advantages of the present disclosure will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings.
I. System Overview
Referring to
As shown in
At each joint J, there may be an actuator, such as a joint motor 27 disposed between adjacent links 18. The joint motors 27 are configured to rotate the links 18. As such, positions of the links 18 are set by joint motors 27. Each joint motor 27 may be attached to a structural frame internal to 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 synchronous motors, brush-type DC motors, stepper motors, induction motors, and the like.
The joint motors 27 are positioned at one of a plurality of angular positions, hereinafter 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 undergo a joint torque. The joint torque is a turning or twisting “force” of the joint J and is a function of the force applied at a length from a pivot point of the joint J. A torque sensor may be connected to one or more joint motors 27 for measuring the joint torque of the joint J. Alternatively, signals representative of currents applied to the joint motors 27 may be used to measure the joint torques.
One or more joint motors 27 may be equipped with a position sensor or encoder 19. For simplicity, one joint encoder 19 is illustrated in
Referring to
A tool 20 couples to the manipulator 14 and is movable relative to the base 16 to interact with the anatomy in certain modes. The tool 20 is a physical and surgical tool and is, or forms part of, an end effector 22 supported by the manipulator 14 in certain embodiments. The tool 20 may be grasped by the user. One possible arrangement of the manipulator 14 and the tool 20 is described in U.S. Pat. No. 9,119,655, entitled “Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes,” the disclosure of which is hereby incorporated by reference. The manipulator 14 and the tool 20 may be arranged in alternative configurations. The tool 20 can be like that shown in U.S. Patent Application Publication No. 2014/0276949, filed on Mar. 15, 2014, entitled “End Effector of a Surgical Robotic Manipulator,” hereby incorporated by reference.
The tool 20 includes an energy applicator 24 designed to contact and remove the tissue of the patient 12 at the surgical site. In one example, the energy applicator 24 is a bur 25 or surgical cutter. The tool 20 may comprise a tool shaft 33 having a proximal end coupled to the manipulator 14 and a distal end where the energy applicator 24 is located. The tool shaft 33 rotates about a cutting axis such that the energy applicator 24 can manipulate the tissue. The bur 25 may be substantially spherical and comprise a spherical center, radius (r) and diameter. Alternatively, the energy applicator 24 may be a drill bit, a saw blade, an ultrasonic vibrating tip, or the like. The tool 20 and/or energy applicator 24 may comprise any geometric feature, e.g., perimeter, circumference, radius, diameter, width, length, volume, area, surface/plane, range of motion envelope (along any one or more axes), etc. The geometric feature may be considered to determine how to locate the tool 20 relative to the tissue at the surgical site to perform the desired treatment. In some of the embodiments described herein, a spherical bur having a tool center point (TCP) will be described for convenience and ease of illustration but is not intended to limit the tool 20 to any particular form.
A sensor S, such as a force-torque sensor, may be mounted proximal the end effector 22. The force-torque sensor S is configured to output variable signals as a function of a force and/or a torque to which the end effector 22 and/or tool 20 are exposed. By doing so, the force-torque sensor S allows sensing of an input force applied to the end effector 22 and/or tool 20 by the user. The input force can be utilized to control movement of the manipulator 14 to emulate the user's applied force/torque. The force-torque sensor S may also sense external forces applied to the energy applicator 24. In one implementation, the force-torque sensor S is a 6DOF sensor such that the force-torque sensor S is configured to output signals representative of three mutually orthogonal forces and three torques about the axes of the orthogonal forces that are 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 torques or electrical current sensors on the joint motors 27.
Referring to
The tool 20 may comprise a tool controller 21 to control operation of the tool 20, such as to control power to the tool (e.g., to a rotary motor of the tool 20), control movement of the tool 20, control irrigation/aspiration of the tool 20, and/or the like. The tool controller 21 may be in communication with the manipulator controller 26 or other components. The tool 20 may also comprise 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, touchscreens, etc.). The manipulator controller 26 controls a state (position and/or orientation) 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 can control (linear or angular) velocity, acceleration, or other derivatives of motion of the tool 20.
The TCP, in one example, is a predetermined reference point defined at the energy applicator 24. The geometry of the energy applicator 24 is known in or defined relative to a TCP coordinate system. The TCP may be located at the spherical center of the bur 25 of the tool 20 such that one point is tracked. The TCP may be defined in various ways depending on the configuration of the energy applicator 24. The control of the tool 20 is not limited to a center point. For example, any suitable primitives, meshes, etc., can be used to represent the tool 20.
The shaft 33 of the tool 20 has a known, or able to be calculated (i.e., not necessarily static), pose relative to other coordinate systems. The manipulator 14 could employ the joint/motor encoders, or any other non-encoder position sensing method, to enable a pose of the shaft 33 to be determined. The manipulator 14 may use joint measurements to determine pose of the shaft 33 and/or could employ techniques to measure pose of the shaft 33 directly.
As shown in
The navigation system 32 includes a cart assembly 34 that houses a navigation controller 36, and/or other types of control units. A navigation user interface UI is in operative communication with the navigation controller 36. The navigation user interface UI includes one or more displays 38. The navigation system 32 can display a graphical representation of the relative states of the tracked objects to the user using the one or more displays 38. The navigation user interface UI further comprises one or more input devices to input information into the navigation controller 36 or otherwise to select/control certain aspects of the navigation controller 36. Such input devices include interactive touchscreen displays. The input devices may include any one or more of push buttons, a keyboard, a mouse, a microphone (voice-activation), gesture control devices, and the like.
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 comprise its own localizer controller 49 and may further comprise a video camera VC, such as a machine vision camera.
The navigation system 32 includes one or more trackers. In one example, the trackers include a pointer tracker PT, one or more manipulator trackers 52A, 52B, a first patient tracker 54, and a second patient tracker 56. In the illustrated example of
Any one or more of the trackers may include active markers 58. The active markers 58 may include light emitting diodes (LEDs). Alternatively, the trackers 52A, 52B, 54, 56, PT may have passive markers, such as reflectors, which reflect light emitted from the camera unit 46. Other suitable markers not specifically described herein may be utilized.
The localizer 44 tracks the trackers 52A, 52B, 54, 56, PT to determine a state of the trackers 52A, 52B, 54, 56, PT, which corresponds respectively to the state of the object respectively attached thereto. The localizer 44 may perform known triangulation techniques to determine the states of the trackers 52A, 52B, 54, 56, PT, and associated objects. The localizer 44 provides the state of the trackers 52A, 52B, 54, 56, PT to the navigation controller 36. In one example, the navigation controller 36 determines and communicates the state of the trackers 52A, 52B, 54, 56, PT to the manipulator controller 26. As used herein, the state of an object includes, but is not limited to, data that defines the position and/or orientation of the tracked object or equivalents/derivatives of the position and/or orientation. For example, the state may be a pose of the object, and may include linear velocity data, and/or angular velocity data, and the like.
The navigation controller 36 may comprise one or more computers, or any other suitable form of controller. The navigation controller 36 has a central processing unit (CPU) and/or other processors, memory (not shown), and storage (not shown). The processors can be any type of processor, microprocessor, or multi-processor system. The navigation controller 36 is loaded with software. The software, for example, converts the signals received from the localizer 44 into data representative of the position and orientation of the objects being tracked. The navigation controller 36 may additionally, or alternatively, comprise one or more microcontrollers, field programmable gate arrays, systems on a chip, discrete circuitry, and/or other suitable hardware, software, or firmware that can carry out the functions described herein. The term processor is not intended to limit to a single processor.
Although one example of the navigation system 32 is shown that employs triangulation techniques to determine object states, the navigation system 32 may have any other suitable configuration for tracking the manipulator 14, tool 20, and/or the patient 12. In another example, the navigation system 32 and/or localizer 44 are ultrasound-based. For example, the navigation system 32 may comprise an ultrasound imaging device coupled to the navigation controller 36. The ultrasound imaging device images any of the aforementioned objects, e.g., the manipulator 14, the tool 20, and/or the patient 12, and generates state signals to the navigation controller 36 based on the ultrasound images. The ultrasound images may be 2-D, 3-D, or a combination of both. The navigation controller 36 may process the images in near real-time to determine states of the objects. The ultrasound imaging device may have any suitable configuration and may be different than the camera unit 46 as shown in
In another example, the navigation system 32 and/or localizer 44 are radio frequency (RF)-based. For example, the navigation system 32 may comprise an RF transceiver coupled to the navigation controller 36. The manipulator 14, the tool 20, and/or the patient 12 may comprise RF emitters or transponders attached thereto. The RF emitters or transponders may be passive or actively energized. The RF transceiver transmits an RF tracking signal and generates state 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 states thereto. The RF signals may be of any suitable frequency. The RF transceiver may be positioned at any suitable location to track the objects using RF signals effectively. Furthermore, the RF emitters or transponders may have any suitable structural configuration that may be much different than the trackers 52A, 52B, 54, 56, PT shown in
In yet another example, the navigation system 32 and/or localizer 44 are electromagnetically based. For example, the navigation system 32 may comprise an EM transceiver coupled to the navigation controller 36. The manipulator 14, the tool 20, and/or the patient 12 may comprise EM components attached thereto, such as any suitable magnetic tracker, electro-magnetic tracker, inductive tracker, or the like. The trackers may be passive or actively energized. The EM transceiver generates an EM field and generates states. Such navigation system 32 examples may have structural configurations that are different than the navigation system 32 configuration shown in
The navigation system 32 may have any other suitable components or structure not specifically recited herein. Furthermore, any of the techniques, methods, and/or components described above with respect to the navigation system 32 shown may be implemented or provided for any of the other examples of the navigation system 32 described herein. For example, the navigation system 32 may utilize solely inertial tracking or any combination of tracking techniques, and may additionally, or alternatively, comprise fiber optic-based tracking, machine-vision tracking, and the like.
Referring to
The control system 60 may comprise any suitable configuration of input, output, and processing devices suitable for carrying out the functions and methods described herein. The control system 60 may comprise the manipulator controller 26, the navigation controller 36, or the tool controller 21, or any combination thereof, or may comprise one of these controllers. These controllers may communicate via a wired bus or communication network as shown in
Referring to
The geometry of the anatomical volume AV may be a 2-D or a 3-D geometry. Referring to
The anatomical data 65 may also include density values DV of an anatomical volume AV. For instance, referring to
The control system 60 may be configured to normalize the density values DV. In some instances, the density values DV may vary depending on, among other things, the imaging modality and/or the system used to image the anatomical volume AV. For example, the density values DV may vary if the anatomical volume AV is scanned using an MRI or a CT. As another example, the density values DV may vary based on a type or brand of scanner used to image the anatomical volume AV. In such instances the control system 60 may normalize the density values DV to provide consistent interpretation or evaluation of the density values DV for the techniques described herein. In one example, the control system 60 may normalize or calibrate the density values DV based on parameters of a density phantom that is imaged with the anatomical volume AV. In some instances, the control system 60 may normalize the density values DV by controlling the tool 20 to interact with the anatomical volume AV and measuring forces and torques related the interaction. For example, the control system 60 may control the tool 20 to cut a tissue of the anatomical volume AV and measure forces placed on the tool 20 (e.g., a motor 27 of the tool 20). The density values DV can be normalized by the control system 60 comparing the measured forces on the tool 20 to the raw density values.
Referring to
The manipulator controller 26 and/or the navigation controller 36 track the state of the tool 20 relative to the virtual objects 71. In one example, the state of the TCP is measured relative to the virtual objects 71 for purposes of determining forces to be applied to a virtual rigid body model via a virtual simulation. This determination can be made, in one example, so that the tool 20 remains in a desired positional relationship to the virtual objects 71 (e.g., not moved beyond them). The results of the virtual simulation are commanded to the manipulator 14. The control system 60 controls/positions the manipulator 14 in a manner that emulates the way a physical handpiece would respond in the presence of physical boundaries/barriers. The boundary generator 66 may be implemented on the manipulator controller 26. Alternatively, the boundary generator 66 may be implemented on other components, such as the navigation controller 36.
Referring to
In some instances, 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 orientation) of the shaft 33 with respect to the manipulator coordinate system MNPL. As previously stated, the manipulator 14 could employ the joint/motor encoders, or any other non-encoder position sensing method, to enable a pose of the shaft 33 to be determined. As such, the predefined pose may also be provided in terms of a sensed reading of the joint/motor encoders, or any other non-encoder position sensing method. Therefore, the path data 73 may include not only the tool path TP, but may also include predefined poses of the shaft 33 along the tool path TP. For instance, the path data 73 may include a predefined pose of the shaft 33 corresponding to a path segment PS of the tool path TP.
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 treatment other than tissue removal. One example of the tissue removal path described herein comprises a milling path 72. It should be understood that the term “milling path” generally refers to the path of the tool 20 in the vicinity of the target site for milling the anatomy and is not intended to require that the tool 20 be operably milling the anatomy throughout the entire duration of the path. For instance, the milling path 72 may comprise sections or segments where the tool 20 transitions from one location to another without milling Additionally, other forms of tissue removal along the milling path 72 may be employed, such as tissue ablation, and the like. The milling path 72 may be a predefined path that is created pre-operatively, intra-operatively, or combinations 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 combinations thereof. In any case, the control system 60 obtains the milling path 72 by storing/retrieving the milling path 72 in/from memory, obtaining the milling path 72 from memory, creating the milling path 72 pre-operatively, creating the milling path 72 intra-operatively, or the like. The milling path 72 may have any suitable shape, or combinations of shapes, such as circular, helical/corkscrew, linear, curvilinear, combinations thereof, and the like.
One example of a system and method for generating the virtual objects 71 and/or the milling path 72 is described in U.S. Pat. No. 9,119,655, entitled “Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes,” the disclosure of which is hereby incorporated by reference. In some examples, the virtual objects 71 and/or milling paths 72 may be generated offline rather than on the manipulator controller 26 or navigation controller 36. Thereafter, the virtual objects 71 and/or milling paths 72 may be utilized at runtime by the manipulator controller 26.
A path interpolator 86, as shown in
Referring to
Referring to
Referring to
Any of the boundary generator 66, path generator 68, behavior controller 74, motion controller 76, and feed rate generator 67 (to be described later) may be sub-sets of a software program 78 or software programs that operate separately and/or independently in any combination thereof. The term “software program” is used herein to describe the computer-executable instructions that are configured to carry out the various capabilities of the technical solutions described. For simplicity, the term “software program” is intended to encompass, at least, any one or more of the boundary generator 66, path generator 68, behavior controller 74, motion controller 76, and/or feed rate generator 82. The software program 78 can be implemented on the manipulator controller 26, navigation controller 36, or any combination thereof, or may be implemented in any suitable manner by the control system 60.
A clinical application 80 may be provided to handle user interaction. The clinical application 80 can handle many aspects of user interaction and coordinates the surgical workflow, including pre-operative planning, implant placement, registration, bone preparation visualization, feed-rate parameter adjustment or confirmation, and post-operative evaluation of implant fit, etc. The clinical application 80 is configured to output to one or more of the displays 38. The clinical application 80 may run on its own separate processor or may run alongside the navigation controller 36. In one example, the clinical application 80 interfaces with the boundary generator 66 and/or path generator 68 after implant placement is set by the user, and then sends the 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.
The system 10 may operate in a force-input or manual mode, such as described in U.S. Pat. No. 9,119,655, incorporated herein by reference. Here, the user applies a force to the manipulator 14, and in response, the manipulator 14 executes 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 cause movement of the tool 20 in the manual mode. In one version, the manipulator 14 monitors forces and torques placed on the tool 20 by the user in order to position the tool 20. For example, the manipulator 14 may comprise the force/torque sensor S that detects the forces and torques applied by the user and generates corresponding input used by the control system 60 (e.g., one or more corresponding input/output signals).
The manipulator controller 26 and/or the navigation controller 36 receives the input (e.g., signals) from the force/torque sensor S. In response to the user-applied forces and torques, the manipulator 14 moves the tool 20 in a manner that emulates the movement that would have occurred based on the forces and torques applied by the user. Movement of the tool 20 in the manual mode may also be constrained in relation to the virtual objects 71 generated by the boundary generator 66. In some versions, measurements taken by the force/torque sensor S are transformed from a 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 carried out on the virtual rigid body model of the tool 20 so that the forces and torques can be virtually applied to the virtual rigid body in the virtual simulation to ultimately determine how those forces and torques (among other inputs) would affect movement of the virtual rigid body.
The system 10 may 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, 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 free of user applied force such that a user does not physically contact the tool 20 to move the tool 20. Instead, the user may use some form of remote control or switch to control starting and stopping of automated movement. For example, the user may hold down a button of the remote control to start movement of the tool 20 and release the button to stop movement of the tool 20, as also described in U.S. Pat. No. 9,119,655.
II. Determining the Feed Rate
The speed or velocity at which the energy applicator 24 advances is referred to as the feed rate. In one implementation, the energy applicator 24 may advance along the tool path TP at one or more feed rates. More specifically, such advancement can occur during operation of the manipulator 14 in the semi-autonomous mode. In one implementation, this section describes techniques in which the feed rate is determined based on an interaction between the tool path TP and the anatomical model AM in order to generate cut plan data 79 (shown in
Referring to
The feed rate generator 82 can determine the feed rate(s) or feed rate factors and associate such with the tool path TP. The feed rate generator 82 can do so pre-operatively and/or intraoperatively. In some examples, the feed rate generator 82 does so pre-operatively, and the surgeon can modify or adjust the output of the feed rate generator 82 at a later time, using, e.g., the clinical application 80.
The generator 82 is not intended to be limited exclusively to feed rate. To the extent that tool operating parameters other than feed rate are generated, the generator 82 can be identified using any suitable terminology, such as tool parameter generator 82, tool operating parameter generator 82, and the like.
i. Cut Plan Data Overview
The control system 60, using the feed rate generator 82 can generate or output cut plan data 79. The cut plan data 79 can be understood as the planned tool path TP, path segments PS, and optionally, planned feed rates or feed rate factors for the tool that are associated with the tool path TP or path segments. An example illustration of the cut plan data 79 is shown in
One example of the cut plan data 79 and tool path TP are illustrated in
Referring to
ii. Method of Generating Cut Plan Data
In this subsection, a method of generating cut plan data 79 based on simulating an interaction between the tool path TP and the anatomical model AM will be described.
a. Obtaining the Anatomical Data, the Path Data, and the Tool Data
An example of the method for generating cut plan data 79 is shown in
b. Merging the Anatomical Data and the Path Data
Referring to
The merged coordinate system XM, YM, ZM may be the anatomical data coordinate system XA, YA, ZA, the path data coordinate system XT, YT, ZT, or a new, different, or arbitrary coordinate system. In some instances, the anatomical data 65 may be transformed and superimposed onto the path data 73 such that the path data coordinate system XT, YT, ZT serves as the merged coordinate system XM, YM, ZM. For example, the anatomical model AM may be scaled and superimposed onto the path data 73 such that the anatomical model AM is mapped to the path data coordinate system XT, YT, ZT. Furthermore, the density values DV may be mapped from coordinates in the anatomical data coordinate system XA, YA, ZA to coordinates in the path data coordinate system XT, YT, ZT. In other instances, the path data 73 may be transformed and superimposed onto the anatomical data 65 such that the anatomical data coordinate system XA, YA, ZA serves as the merged coordinate system XM, YM, ZM. For example, the tool path TP may be scaled and superimposed onto the anatomical data 65 such that the tool path TP is mapped to the anatomical data coordinate system XA, YA, ZA. Furthermore, points P along the tool TP may be mapped from the path data coordinate system XT, YT, ZT to the anatomical data coordinate system XA, YA, ZA. In still other instances, the path data 73 and the anatomical data 65 may both be transformed and superimposed onto one another such that the merged coordinate system XM, YM, ZM is a new coordinate system. For example, the tool path TP and/or the anatomical model AM may be scaled using different factors such that the tool path TP and the anatomical model AM both may be mapped to a new, merged coordinate system XM, YM, ZM.
This merger can, but need not be, provided or performed in visual form. For instance, the merger can be purely computational and unseen to a user. Alternatively, aspects of these steps can be visualized for the user, using e.g., the clinical application 80 so that the user can experience, or interact with the path data 73 and the anatomical data 65.
c. Generating the Cut Plan Data
Once the feed rate generator 82 merges the path data 73 and the anatomical data 65, the feed rate generator 82 carries out a series of additional steps to generate the cut plan data 79. These steps will be described in this section. The feed rate generator 82 does so by evaluating or simulating an interaction between the tool 20 and the anatomical model AM at individual point(s) P. For example, referring to
In one instance, 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 an interaction between the tool 20 and the anatomical model AM and determine whether the tool 20 intersects the anatomical model AM during the simulated interaction. The feed rate generator 82 may then generate the cut plan data 79 based on analyzing the simulated intersection I between the tool 20 and the anatomical model AM. Examples of such intersections I are shown in
To generate the cut plan data 79 for points P along the tool path TP, the method of
As shown, the loop ML includes steps M4-M10 for generating the cut plan data 79 based on the N number of points P along the tool path TP. The steps M4-M10 are evaluated for individual points P. However, the order of these steps M4-M10 need not be executed in the exact order shown, unless a subsequent step relies on a previous step. The loop ML includes a step M4 of identifying a location of a point P on the tool path TP relative to the anatomical data 65; a step M5 of loading, from the tool data 69, the geometry of the tool 20 at the identified location; a step M6 of identifying an intersection between the geometry of the tool 20 and the anatomical volume AV; a step M7 of determining density values DV of the anatomical data 65 within the intersection; a step M8 of computing an intersection ratio related to the geometry of the tool 20 within the intersection relative to the geometry of the tool 20 outside of the intersection; and a step M10 of setting a planned feed rate factor FR for the tool 20 at a path segment PS corresponding to the point P based on the determined density values DV and the computed intersection ratio. The step M9 of disregarding previously determined density values DV will be described herein in a separate subsection.
During step M4, the feed rate generator 82 identifies a location of the point P. Specifically, the feed rate generator 82 identifies the location of the point P relative to the anatomical data 65. Referring to one example in
During step M5, the feed rate generator 82 determines a geometry of the tool 20 at the point P. Specifically, the feed rate generator 82 loads, from the tool data 69, the geometry of the tool 20 at the point P. As previously stated, the cut plan data 79 considers an intersection I between the geometry of the tool 20 and the anatomical volume AV at the point P. To identify the intersection I between the geometry of the tool 20 and the anatomical volume AV at the point P, the feed rate generator 82 loads or provides a geometry of the tool 20 at the point P. For example, the feed rate generator 82 may load a 3-D geometry, such as a 3-D model, of the energy applicator 24 during step M5. The 3-D geometry may include a 3-D volume or slices of the energy applicator 24. The feed rate generator 82 may also load dimensions of the tool 20 (e.g., a radius, diameter, volume, a shape of the cutting surface, or surface area of the energy applicator 24) to determine the geometry of the tool 20.
The feed rate generator 82 may determine the planned feed rate FR based on the tool data 69. For example, the feed rate generator 82 may determine the planned feed rate FR based on the geometry of the tool 20. For instance, the cutting surface of the energy applicator 24 may include a tapered cross-sectional area. In such an instance, the feed rate generator 82 may determine the planned feed rate FR to move the tool 20 at a speed to optimize cutting with the tapered cross-sectional area. As another example, the feed rate generator 82 may determine the planned feed rate FR based on a preferred use of the tool 20. For instance, the cutting surface of the energy applicator 24 may be positioned at a side of the energy applicator 24 to promote cutting using sides of the energy applicator 24 with a swift brushing motion. In such an instance, the feed rate generator 82 may determine the planned feed rate FR to move the tool 20 at a speed to perform a swift brushing motion with the tool 20. As yet another example, the feed rate generator 82 may determine the planned feed rate FR based on a preferred cutting depth of the tool 20. For instance, the tool 20 may be preferably used for shallower cuts. In such an instance, the feed rate generator 82 may determine the planned feed rate FR to move the tool 20 to perform a shallower cut. These planned feed rate FR considerations related to the tool data 69 may be accounted for during step M5 of the method or may be accounted for during any other suitable step of the method.
At step M6 and as shown in one example in
In the instance of
In this example, the feed rate generator 82 may identify the CT slices for which there is a cross-sectional intersection I between the 3-D geometry of the tool and the anatomical volume AV. Referring to
The feed rate generator 82 may identify the intersection I by identifying, for each slice A, B, C, D, a quantity of pixels PX within the intersection I. Referring to
The pixels PX shown in
The feed rate generator 82 may identify the quantity of pixels PX within the intersection I using a variety of methods. In one example, only pixels PX that are entirely located within the intersection I are considered, while disregarding partial intersections. In some instances, the feed rate generator 82 may consider pixels PX that are at least partially located within the cross-sectional intersection. For example, the feed rate generator 82 may determine that a pixel PX is located within the cross-sectional intersection I if greater than a predetermined percentage of a pixel PX, e.g., 50%, is located within the cross-sectional intersection I. For example, as shown in
In some instances, the feed rate generator 82 may filter any intersecting pixels PX based on a density value DV of a pixel PX. For example, referring to
The feed rate generator 82 may store the quantity of pixels PX within the intersection I for each slice A, B, C, D.
Any aspect of the techniques described herein that involves using pixels PX can be implemented in other ways that do not involve pixels PX. For instance, voxels of the anatomical volume AV may be determined from a 3-D model of the anatomy and compared to a 3-D model of the tool geometry at the points P. The voxels can include density values DV. Any other type of 2-D or 3-D unit or measurement can be utilized when comparing the geometries described herein.
During step M7, the feed rate generator 82 identifies the density values DV of the anatomical data 65 within the intersection I. The density values DV illustrate a density of the anatomical volume AV at the intersection I. For example, the density values DV allow the feed rate generator 82 to determine how the tool 20 is contacting different types of tissue, such as compact bone tissue, cancellous bone tissue, subchondral bone tissue, fat, and/or cartilage. Additionally, a null or zero value may indicate a region of air. In this way, the cut plan data 79 accounts for a type of tissue contacted at a point P. More particularly, the cut plan data 79 includes a planned feed rate factor FR that accounts for the type of tissue contacted at a point P. The density values DV can be radiodensity values DV measured in Hounsfield Units. However, in other instances, the density values DV may include units other than Hounsfield units (HU). For instance, density values DV can be any measure of radiopacity, radiolucency, and/or transradiancy.
Continuing with the example of
Once the feed rate generator 82 identifies the density values DV within the intersection I for 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 computing or determining one or more of: an average, a median, range, mode, a maximum, or a minimum density value DV of the density values DV for each slice A, B, C, D. For example, in the instance of
During step M8, the feed rate generator 82 can compute a tool contact factor that relates to an extent to which the tool contacts the anatomical volume AV at the identified point. For example, the tool contact factor can expose whether the tool 20, at the given point, brushes against or grazes the anatomical volume AV or whether the tool 20 burrs into the anatomical volume AV or is performing any air cutting. In this way, the cut plan data 79 accounts for the extent of contact between the tool 20 and the anatomical volume AV at the point P. The cut plan data 79 includes a planned feed rate factor FR that accounts for the extent of the tool contact at a point P.
In one example, the tool contact factor is an intersection ratio related to the geometry of the tool 20 within the intersection I relative to the geometry of the tool 20 outside of the intersection I at a point P. As will be described herein, the intersection ratio may be determined based on the quantity of pixels within the intersection I for each slice A, B, C, D. However, in other instances, the intersection ratio may be determined using any other suitable method.
The feed rate generator 82 may determine the intersection ratio by determining individual intersection ratios for each slice A, B, C, D. The feed rate generator 82 computes the individual intersection ratios by computing a ratio between a first quantity of the geometry of the tool 20 that is located within the intersection I and a second quantity of the geometry of the tool that is located beyond the intersection for each slice A, B, C, D. For example, the feed rate generator 82 may compute the intersection ratios based on a quantity of pixels PX of the tool 20 located within the intersection I and a quantity of pixels PX of the tool 20 located beyond the intersection I. In other instances, the feed rate generator 82 may compute the intersection ratios based on a quantity of pixels PX of the tool 20 located within the intersection I and a total number of pixels PX of the tool 20.
Referring to the example of Slice B in
The tool contact factor can alternatively or additionally be based on other computations. For example, the feed rate generator 82 can evaluate the surface, circumference, perimeter, outline, or 2-D or 3-D boundary of the tool geometry relative to the anatomical volume. For example, the feed rate generator 82 can determine in
During step M10, the feed rate generator 82 sets a planned feed rate factor FR for the tool 20 at a path segment PS corresponding to the point P based on the determined density values DV and the computed tool contact factor. In some instances, it is contemplated that the feed rate generator 82 can set the planned feed rate factor FR for the tool 20 based on the computed tool contact factor, without regard to the determined density values DV. During step M10, the feed rate generator 82 may optionally calculate a bone mineral density (BMD) factor based on the determined density values DV and the computed tool contact factor. The feed rate generator 82 then sets the planned feed rate factor for the tool based on the calculated BMD factor.
The feed rate generator 82 may calculate the BMD factor by multiplying the radiodensity values DV collected for each intersection slice during step M7 by the tool contact factor calculated for each intersection slice during step M8. To calculate the BMD factor in this way, the feed rate generator 82 converts the radiodensity values DV that were previously collected for each intersection slice during step M7. Referring to
In some instances, the BMD factor is utilized as a standardization factor to account for variable density values DV, whether such density values are normalized or raw density values. For example, based on the density values DV, the BMD factor may be chosen from a standardized scale between 1 and 100. The standardized scale may take into account different normalization factors depending on, e.g., the imaging modality, the scanner used to image the anatomical volume, parameters of a density phantom, or measured forces on the tool, as described above.
The feed rate generator 82 may access a look-up table to determine the planned feed rate factor FR based on the calculated BMD. Specifically, the feed rate generator 82 may access a look-up table defining associations between predefined BMD factors and predefined feed rate factors FR. An example look-up table is shown in
The look-up table shown in
In some instances, the feed rate generator 82 may set the planning feed rate factor FR for a path segment PS to be a maximum feed rate factor in response to determining that the calculated BMD factor is below a minimum threshold. For example, referring to the look-up table of
In some instances, the feed rate generator 82 may obtain a default planned feed rate factor FR for each path segment PS. For example, the feed rate generator 82 may, after obtaining the path data 73 during step M1, set a default planned feed rate factor FR for each path segment PS of the tool path TP. During step M8, the feed rate generator 82 may modify the default feed rate FR for a path segment PS based on the calculated BMD factor. For example, referring to
d. Disregarding Previously Analyzed Anatomical Regions
During step M9, the feed rate generator 82 is optionally configured to disregard portions (pixels/voxels/areas/volume) of the anatomical volume VM that were previously evaluated during the process shown in
As shown, the respective intersections I1, I2 of the tool 20 and the anatomical volume AV at points P1 and P2 include common pixels PX. These common pixels PX illustrate that, at point P2, the tool 20 is expected to intersect a part of the anatomical volume AV that was previously removed by the tool 20 when the tool 20 was at point P1. As such, the feed rate generator 82 is configured to disregard the common pixels PX when determining the cut plan data 79 for point P2.
In the instance of
Continuing with the example of
In some instances, the feed rate generator 82 may be configured to disregard a previously determined density value DV depending on the amount of prior pixel/voxel interaction with the tool geometry. For example, the feed rate generator 82 may be configured to disregard a previously determined density value DV if more than X % of the pixel PX corresponding to the previously determined density value DV was previously interacted with. For example, referring to
In other instances, instead of disregarding density values DV at previous interaction coordinates, the feed rate generator 82 may be configured to use a scaled version or residue 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
e. Outputting the Cut Plan Data
During step M11, the feed rate generator 82 outputs the cut plan data 79 for the tool path TP. Referring to
As shown in
Furthermore, in some instances, the feed rate generator 82 may evaluate the cut plan data 79 to determine that it is prudent to alter the original tool path TP. Such alteration can be based on evaluating any consideration, factor or step described herein, such as the planned feed rate factors FR1 . . . FRN, the tool contact factors, disregarded interaction coordinates, etc. For example, the feed rate generator 82 can alter the tool path TP to optimize cutting performance, cut time, and the like. For instance, if the planned feed rate FR at one point is excessively slow or fast, the feed rate generator 82 can alter the tool path TP by changing the location of the point or removing the point altogether. In another example, if the tool contact factor at one point is excessively high or low, the feed rate generator 82 can alter the tool path TP by changing the location of the point. In another example, if at one point P, the feed rate generator 82 detects an excessive amount of identified previous interaction from a previous point, the feed rate generator 82 can alter the tool path TP by changing the location of the point P or the previous point so as to reduce cutting time. In an instance where the path data 73 includes a set of potential tool paths TP, the feed rate generator 82 may determine which of the potential tool paths TP optimizes cutting performance, cut time, and the like. The feed rate generator 82 may then select the determined tool path TP for the cut plan data 79 while disregarding the other tool paths TP.
The altered tool path TP can be automatically determined and implemented by the feed rate generator 82. Alternatively, the proposed alteration can be presented to the user for confirmation.
In some instances, cutting of a resection volume during a surgical procedure may be repeated until the control system 60 determines that the resection volume is fully removed. In some instances, the tool 20 may encounter an error such that the tool 20 may not follow the original tool path TP, resulting in the resection volume not being fully removed. In other instances, an altered tool path TP, when followed by the tool 20, may not fully remove the resection volume. In such instances, cutting of the resection volume may be repeated (e.g., after the error and/or after the tool 20 moves according to the altered tool path TP) by restarting the surgical procedure and moving the tool 20 according to the original tool path TP or according to an altered tool path TP. The surgical procedure may be restarted and repeat as many times as necessary until the resection volume is fully removed. In some instances, the user may be notified that the resection volume is not fully removed and may be presented with an option of restarting and repeating the surgical procedure according to the original tool path TP, or according to an altered tool path TP.
f. Additional Implementations
In some implementations, the cut plan data 79 may be determined based additionally or alternatively on a tissue parameter. In such implementations, the anatomical data 65 may include a tissue parameter, which may include any tissue parameter data. For example, the tissue parameter may include density values DV of the anatomical volume AV, and/or may include other tissue parameter data. For example, a 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 a tissue of the anatomical volume AV is cancellous, cortical, cortical, cartilage, or soft tissue based on the tissue parameter data. Tissue parameter data can also include an electrical parameter of the tissue, such as permittivity or conductivity. Tissue parameter data can also include blood flow parameter, volume, voxel size, area, pixel size, thickness, cortical thickness, weight, fat fraction, total fat, heat parameters, thermal conductivity, thermal expansion, tensile strength, acoustic parameters, elasticity, bone surface density, bone surface/volume ratio, and the like.
In some implementations, the cut plan data 79 may be determined based on a predefined pose of the shaft 33. For example, a predefined pose of the shaft 33 may affect the simulated interaction I between the geometry of the tool 20 and the anatomical volume AV at a point P. Specifically, a 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, in an instance where a 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 affects the intersection I of the tool 20 and the anatomical volume AV. As such, 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 a planned pose of the TCP during step M1.
In some implementations, the cut 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 the output pose for the shaft 33 as the energy applicator 24 travels 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 with respect to the manipulator coordinate system MNPL. By outputting the output pose of the shaft 33, the control system 60 provides the manipulator controller 26 with instructions for 14 for moving the tool 20.
The control system 60 may determine the output pose of the shaft 33 based on the anatomical data 65 (e.g., density values DV and/or a tissue parameter), 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 instance, the cutting surface of the energy applicator 24 may include a tapered cross-sectional area. In such an instance, the control system 60 may determine the output pose to position and orient the tool 20 to optimize cutting with 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 instance, the cutting surface of the energy applicator 24 may be positioned at a side of the energy applicator 24 to promote cutting using sides of the energy applicator 24, instead of a tip of the energy applicator 24. In such an instance, 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 a majority of the cutting. As yet another example, the control system 60 may determine the output pose based on a preferred cutting depth of the tool 20. For instance, the tool 20 may be preferably used for shallower cuts. In such an instance, the control system 60 may determine the output pose to position and orient the tool 20 to perform a shallower cut.
The control system 60 may set the output pose of the shaft 33 during step M10 of the above-described method. Furthermore, the control system 60 may output the cut plan data 79, including the output pose, during step M11. Additionally, the control system 60 may execute the above-described steps M1-M9 to determine the output pose. The control system 60 may output the output pose of the shaft 33 in addition to, or as an alternative to, outputting the planned feed rate FR of the tool 20.
In some implementations, the feed rate generator 82 may determine the planned feed rate FR and/or adjust the cut plan data 79 to achieve a predetermined motor current on a motor of the tool 20. For example, the feed rate generator 82 may determine the planned feed rate FR and/or adjust the cut plan data 79 to maintain a constant motor current on a motor of the tool 20. As another example, the feed rate generator 82 may determine the planned feed rate FR and/or adjust the cut plan data 79 to ensure that a motor current on a motor of the tool 20 is within a predetermined range of motor current values.
In some implementations, the control system 60 may monitor a performance of the tool 20 during a surgical procedure. Specifically, the control system 60 may monitor a performance of the tool 20 while the tool 20 cuts a resection volume of the anatomical volume AV according to the cut plan data 79. The control system 60 may monitor a contact force of the tool 20 applied to the anatomical volume AV, a rotational speed of the tool 20, an actual feed rate FR of the tool 20, a temperature of the tool 20, a current of a motor of the tool 20, and/or any other suitable measure of performance of the tool 20. The control system 60 may then modify the cut plan data 79 based on monitoring the performance of the tool 20. For example, the control system 60 may modify the density values DV of the anatomical volume AV, the planned feed rate FR, the tool path TP, the BMD factors, a geometry of the tool 20, and/or any other parameter used in the determination of the cut plan data 79.
III. Density Value Parameterized Virtual Object
With reference to
As described above, the state of the tool 20, TCP, or energy applicator 24 can be measured relative to the virtual object 71 for purposes of determining forces to be applied to a virtual model of the tool 20 in a virtual simulation. In the virtual simulation, model of the tool 20 can be represented as the virtual rigid body model or virtual volume. Forces are computed 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 an output which the control system 60 can use to modify operation of the manipulator 14 or the tool 20. In response, the control system 60 may compute a reactive force to modify an 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 a feed rate of the tool 20. The techniques evaluating tool interaction with a virtual object 71 can be like that described in U.S. Patent Publication No. 2018/0353253, filed on Jun. 6, 2018, and entitled “Robotic Surgical System And Method For Producing Reactive Forces To Implement Virtual Boundaries”, the entire contents of which are hereby incorporated by reference.
Tool interaction with the virtual object 71, and the techniques described herein, can occur, or be implemented in any mode of operation for the manipulator 14, including autonomous, manual, or guided-manual modes. The autonomous and manual modes have been described above. In the guided manual mode, the control system 60 obtains the tool path TP for the tool 20 and defines virtual constraints on movement of the tool 20 along the tool path TP with respect to two degrees of freedom each being normal to the tool path TP. In this way, the virtual constraints are defined to constrain movement of the tool 20 to be along the tool path TP. Additionally, in the guided manual mode, the control system 60 receives an input from the force/torque sensor S in response to user forces and torques manually applied to the tool 20 by a user. The control system 60 then simulates dynamics of the tool 20 in the virtual simulation based on the virtual constraints and the input 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 compute and simulate a reactive force to the virtual object 71 in the virtual simulation and commands 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.
According to this technique, the control system 60 obtains the anatomical data 65 and the virtual object data 97 associated with the virtual object 71. The control system 60 obtains anatomical data 65, which includes a geometry and density values DV of the anatomical volume AV. The anatomical data 65 is illustrated in
Referring to
For illustrative purposes, the polygonal element 99 shown may be exaggerated relative to the size of the density values DV regions, and hence, not to scale. Deepening on the size of the polygonal elements 99 and density value DV regions, any number of polygonal elements 99 may fit inside one density value DV region, and any number of density value DV regions may fit inside one polygonal element 99.
Once merged, the virtual object 71 can intersect the anatomical volume AV and/or can be spaced apart from the anatomical volume AV. Any number of virtual objects 71 may be utilized in this technique and these virtual objects 71 can have any suitable shape (e.g., planar, or complex shapes) or purpose (e.g., keep-out zone, keep-in zone, boundary, etc.). In one example, the virtual object 71 can be like boundaries described in US20160338782A1, filed on May 18, 2016, entitled, “System And Method For Manipulating An Anatomy”, the entire contents of which are hereby incorporated by reference. The virtual object 71 can have any number of polygonal elements 99. The virtual object 71 may generated by the boundary generator 66, as described above.
Once the control system 60 merges the anatomical data 65 and the virtual object 71, the control system 60 determines a parameter to associate with one or more polygonal elements 99 of the virtual object 71. This parameter can define an effect, an influence, and/or a reaction that a polygonal element 99 has on the virtual model of the tool as applied in the virtual simulation. The parameter can define a first parameter of the polygonal element 99 or the parameter can over-write or replace an existing parameter. In one example, the parameter is a tuning parameter related to stiffness of the polygonal element 99. This tuning parameter can define spring or damper parameters related to the polygonal element 99. In another example, the parameter can influence the feed rate of the tool 20. For example, the feed rate generator 82 may be coupled to the behavior controller 74 and can be made aware of any interaction between the model of the tool 20 with any polygonal element 99 parameterized as described herein. From there, the feed rate generator 82 can define or adjust the feed rate of the tool 20 based on such interaction.
Although pixels PX are used as an example below, any aspect of the techniques described herein that involves using pixels PX can be implemented in other ways that do not involve pixels PX. For instance, voxels VX of the anatomical volume AV may be used as well. The voxels VX can include density values DV. Any other type of 2-D or 3-D unit or measurement can be utilized when comparing the geometries described herein.
Referring to the first view of the merged model 101 of
Referring to the second view of the merged model 101 of
In some instances, the control system 60 may determine the parameter for the polygonal element 99 using density values DV of pixels PX below the virtual object 71 depending on how the tool 20 or the virtual model of the tool 20 penetrates the virtual object 71. In such instances, the control system 60 may account for the density values DV of the pixels PX below 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 account for any density values DV that intersect the virtual model of the tool 20.
Once the control system 60 identifies the density values DV that should be accounted for, the control system 60 may determine the parameter for the polygonal element(s) 99 in many ways, including, but not limited to, by computing or determining one or more of: an average, a median, range, mode, a maximum, or a minimum density value DV of the density values DV that are proximate to, interacting with, related to, or intersecting the polygonal elements 99. Although the parameter value is based on the density values DV, the parameter value need not correspond to a density value resulting from the computation related to the accounted for density values DV. Instead, the parameter value can be a standardized or normalized value.
Once the control system 60 determines the parameter for the polygonal elements 99 of the virtual object 71, the control system 60 may modify operation of the tool 20 in response to the tool 20 interacting with the polygonal elements 99.
In the example of
In the example of
Several embodiments have been described in the foregoing description. The embodiments discussed herein are not intended to be exhaustive or limited to any particular form. The terminology which has been used is intended to be in the nature of words of description rather than of limitation. Many modifications and variations are possible in light of the above teachings, and the invention may be practiced otherwise than as specifically described. Furthermore, the headings used in this document are introduced solely for reference and readability purposes and should not be understood to limit the content of the section solely by the subject matter of the heading.
The subject application claims priority to and all the benefits of U.S. Provisional Patent Application No. 63/291,566, filed Dec. 20, 2021, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
63291566 | Dec 2021 | US |