Patent Description:
Navigation systems assist users in precisely locating objects. For instance, navigation systems are used in industrial, aerospace, defense, and medical applications. In the medical field, navigation systems assist surgeons in precisely placing surgical instruments relative to a patient's anatomy.

Surgeries in which navigation systems are used include neurosurgery and orthopedic surgery. Often the instrument and the anatomy are tracked together with their relative movement shown on a display. The navigation system may display the instrument moving in conjunction with a preoperative image or an intraoperative image of the anatomy. Preoperative images are typically prepared by MRI or CT scans, while intraoperative images may be prepared using a fluoroscope, low level x-ray or any similar device. Alternatively, some systems are image-less in which the patient's anatomy is "painted" by a navigation probe and mathematically fitted to an anatomical model for display.

Navigation systems may employ light signals, sound waves, magnetic fields, RF signals, etc. in order to track the position and/or orientation of the instrument and anatomy. Optical navigation systems are widely used due to the accuracy of such systems.

Prior art optical navigation systems typically include one or more camera units that house one or more optical sensors (such as charge coupled devices or CCDs). The optical sensors detect light emitted from trackers attached to the instrument and the anatomy. Each tracker has a plurality of optical emitters such as light emitting diodes (LEDs) that periodically transmit light to the sensors to determine the position of the LEDs.

The positions of the LEDs on the instrument tracker correlate to the coordinates of a working end of the instrument relative to a camera coordinate system. The positions of the LEDs on the anatomy tracker(s) correlate to the coordinates of a target area of the anatomy in three-dimensional space relative to the camera coordinate system. Thus, the position and/or orientation of the working end of the instrument relative to the target area of the anatomy can be tracked and displayed.

Navigation systems can be used in a closed loop manner to control movement of surgical instruments. In these navigation systems both the instrument and the anatomy being treated are outfitted with trackers such that the navigation system can track their position and orientation. Information from the navigation system is then fed to a control system to control or guide movement of the instrument. In some cases, the instrument is held by a robot and the information is sent from the navigation system to a control system of the robot.

In order for the control system to quickly account for relative motion between the instrument and the anatomy being treated, the accuracy and speed of the navigation system must meet the desired tolerances of the procedure. For instance, tolerances associated with cementless knee implants may be very small to ensure adequate fit and function of the implant Accordingly, the accuracy and speed of the navigation system may need to be greater than in more rough cutting procedures.

One of the limitations on accuracy and speed of optical navigation systems is that the system relies on the line-of-sight between the LEDs and the optical sensors of the camera unit. When the line-of-sight is broken, the system may not accurately determine the position and/or orientation of the instrument and anatomy being tracked. As a result, surgeries can encounter many starts and stops. For instance, during control of robotically assisted cutting, when the line-of-sight is broken, the cutting tool must be disabled until the line-of-sight is regained. This can cause significant delays and added cost to the procedure.

Another limitation on accuracy occurs when using active LEDs on the trackers. In such systems, the LEDs are often fired in sequence. In this case only the position of the actively fired LED is measured and known by the system, while the positions of the remaining, unmeasured LEDs are unknown. In these systems, the positions of the remaining, unmeasured LEDs are approximated. Approximations are usually based on linear velocity data extrapolated from the last known measured positions of the currently unmeasured LEDs. However, because the LEDs are fired in sequence, there can be a considerable lag between measurements of any one LED. This lag is increased with each additional tracker used in the system. Furthermore, this approximation does not take into account rotations of the trackers, resulting in further possible errors in position data for the trackers.

As a result, there is a need in the art for an optical navigation system that utilizes additional non-optically based data to improve tracking and provide a level of accuracy and speed with which to determine position and/or orientations of objects for precise surgical procedures such as robotically assisted surgical cutting.

Document <CIT> describes a system for determining the spatial position and/or orientation of one or more objects. Said system includes an optical subsystem and a non-optical subsystem. The optical subsystem includes optical subsystem light sources mounted to one or more of the objects and an optical subsystem sensor adapted to detect energy from the optical subsystem light sources. The optical subsystem has an optical subsystem coordinate system in a fixed relationship with the optical subsystem sensor. The optical subsystem sensor produces position and/or orientation signals relative to the optical subsystem coordinate system in response to optical subsystem light source detected energy. The non-optical subsystem has a non-optical coordinate system and is adapted to produce position and/or orientation signals of one or more of the objects relative to the non-optical subsystem coordinate system. A coupling arrangement is provided for producing position and/or orientation signals indicative of the position and/or orientation of the selected one of the optical or non-optical subsystems relative to the coordinate system of the other one of the optical or non-optical subsystems. A processor is responsive to signals produced by the coupling arrangement and the individual subsystem sensors for determining the position and/or orientation of one or more of the objects relative to some conveniently defined coordinate system.

Document <CIT> relates to a surgical instrument comprising a handle portion or mounting portion and a functional portion and/or tip, wherein a display device is provided on the instrument and includes or enables displays which serve to assist in image-guided and/or navigation-assisted surgery. It also relates to a method for navigating a surgical instrument, wherein its position is determined and tracked by means of a medical tracking system and the position data is processed within the framework of medical navigation by means of a medical navigation system, wherein displays for navigation assistance and/or for assisting in image-guided surgery are provided on the instrument or on an element which is positionally assigned to the instrument or fastened to the instrument.

A system for determining the position and orientation of at least one moveable body in three dimensional space is known from document <CIT> and comprises a plurality of electromagnetic energy sensors in known spatial relationship to a three dimensional volume, at least one moveable body in said three dimensional volume, a plurality of electromagnetic energy emitters operatively associated in known spatial relationship to each of said bodies whose position and orientation is to be determined, a plurality of non-electromagnetic means for determining the position and orientation of a body, operatively associated with each of said bodies whose position and orientation is to be determined, means to transmit electromagnetic energy in a plurality of straight lines from a sufficient number of said electromagnetic energy emitters to a sufficient number of said electromagnetic energy sensors to enable the determination of the locations of a sufficient number of electromagnetic energy emitters to define the position and orientation of said body, at least one reference line operatively associated with said straight lines sufficient to enable the determination of angles between said electromagnetic lines and said reference line, means to convert said angles into locations of said electromagnetic energy emitters, means to convert said locations to a position and orientation of said body, means to operate said non-electromagnetic means to determine the position and orientation of said body independent of said electromagnetic energy location determination, means to compare the angularly determined position and orientation of said body, as determined by said electromagnetic means, with the position and orientation of said body as determined by said non-electromagnetic means to obtain a linear transformation, and means to calibrate the accuracy of said non-electromagnetic position and orientation determining means relative to the position and orientation of said body as determined from said angles using the linear transformation. The system is adapted to track a rate of change of the linear transformation and to continually alter the linear transformation at the same rate at which it had been most recently changing while the determination of the locations of a sufficient number of electromagnetic energy emitters is not possible.

The present invention relates to a system according to claim <NUM> and a method according to claim <NUM>, that respectively utilize optical sensors and non-optical sensors to determine the position and/or orientation of objects.

In one exemplary version a navigation system is provided for tracking an object. The navigation system includes an optical sensor that receives optical signals from one or more markers on a tracker. The tracker also includes a non-optical sensor that generates non-optical signals. A computing system determines a position of one of the markers at a first time based on a first optical signal. The computing system also determines a position of one ore more of the other markers at the first time based on the first optical signal and non-optical signals from the non-optical sensor. The determined positions are then correlated to the object to track a position of the object.

In another exemplary version a navigation system is provided for tracking an object. The navigation system includes an optical sensor that receives optical signals sequentially from three markers on a tracker. The tracker also includes a non-optical sensor that generates non-optical signals. A computing system determines a position of a first of the markers at a first time based on a first optical signal from the first marker. The computing system also determines a position of a second and third of the markers at the first time based on the first optical signal and non-optical signals from the non-optical sensor. The determined positions are then correlated to the object to track a position of the object.

In yet another exemplary version, a robotic surgical cutting system is provided. The system includes a robotic manipulator and a cutting tool. A robotic control system controls or constrains movement of the cutting tool in at least <NUM> degrees of freedom. A navigation system communicates with the robotic control system. The navigation system includes at least one optical sensor and a tracker mounted to the robotic manipulator. A tracker is also provided for mounting to a patient's anatomy. This anatomy tracker includes three markers and a non-optical sensor. The optical sensor receives optical signals from the markers and the non-optical sensor generates non-optical signals. The navigation system communicates position data indicative of a position of the anatomy to the robotic control system to control cutting of the anatomy such that the cutting occurs within a predefined boundary.

A navigation system according to claim <NUM> includes a localizer having at least one optical sensor. A tracker communicates with the optical sensor. The tracker includes three LEDs and a non-optical sensor. A computing system determines a position of each of the three LEDs in a localizer coordinate system based on optical signals and non-optical signals. The computing system performs a matching algorithm to match the determined positions of the three LEDs in the localizer coordinate system and a calculated position of a virtual LED in said localizer coordinate system with positions of said three LEDs and said virtual LED in a model of the tracker established relative to a tracker coordinate system to obtain a transformation matrix to transform the tracker coordinate system to the localizer coordinate system.

In an exemplary version, a system is provided for tracking an object The system comprises at least two optical sensors and a tracker for mounting to the object. The tracker has three markers and a non-optical sensor. The at least two optical sensors receives optical signals from the markers at an optical-sensing frequency of at least <NUM>. The non-optical sensor generates non-optical signals at a non-optical sensing frequency of at least <NUM>.

An exemplary method for tracking an object is also described. The method includes operating an optical sensor to receive optical signals sequentially from markers and operating a non-optical sensor to generate non-optical signals. A position of a first of the markers at a first time is determined based on a first optical signal from the first marker. A position of a second and third of the markers at the first time is determined based on the first optical signal and non-optical signals from the non-optical sensor. The determined positions of the first, second, and third markers are correlated to the object to track a position of the object during the surgical procedure.

Another exemplary method for tracking an object during a surgical procedure is provided. In this method three markers are positioned in the field of view of the optical sensor so that the optical sensor receives optical signals sequentially from the markers. A computing system is then operated to determine a position of a first of the markers at a first time based on a first optical signal from the first marker and determine a position of a second and third of the markers at the first time based on the first optical signal and non-optical signals from a non-optical sensor. The positions are then correlated to the object to track a position of the object during the surgical procedure.

Referring to <FIG> a surgical navigation system <NUM> is illustrated. System <NUM> is shown in a surgical setting such as an operating room of a medical facility. The navigation system <NUM> is set up to track movement of various objects in the operating room. Such objects include, for example, a surgical instrument <NUM>, a femur F of a patient, and a tibia T of the patient. The navigation system <NUM> tracks these objects for purposes of displaying their relative positions and orientations to the surgeon and, in some cases, for purposes of controlling or constraining movement of the surgical instrument <NUM> relative to a predefined path or anatomical boundary.

The surgical navigation system <NUM> includes a computer cart assembly <NUM> that houses a navigation computer <NUM>. A navigation interface is in operative communication with the navigation computer <NUM>. The navigation interface includes a display <NUM> adapted to be situated outside of the sterile field and a display <NUM> adapted to be situated inside the sterile field. The displays <NUM>, <NUM> are adjustably mounted to the computer cart assembly <NUM>. Input devices <NUM>, <NUM> such as a mouse and keyboard can be used to input information into the navigation computer <NUM> or otherwise select/control certain aspects of the navigation computer <NUM>. Other input devices are contemplated including a touch screen (not shown) on displays <NUM>, <NUM> or voice-activation.

A localizer <NUM> communicates with the navigation computer <NUM>. In the embodiment shown, the localizer <NUM> is an optical localizer and includes a camera unit <NUM>. The camera unit <NUM> has an outer casing <NUM> that houses one or more optical sensors <NUM>. In some embodiments at least two optical sensors <NUM> are employed, preferably three. The optical sensors <NUM> may be three separate high resolution charge-coupled devices (CCD). In one embodiment three, one-dimensional CCDs are employed. It should be appreciated that in other embodiments, separate camera units, each with a separate CCD, or two or more CCDs, could also be arranged around the operating room. The CCDs detect infrared (IR) signals.

Camera unit <NUM> is mounted on an adjustable arm to position the optical sensors <NUM> above the zone in which the procedure is to take place to provide the camera unit <NUM> with a field of view of the below discussed trackers that, ideally, is free from obstructions.

The camera unit <NUM> includes a camera controller <NUM> in communication with the optical sensors <NUM> to receive signals from the optical sensors <NUM>. The camera controller <NUM> communicates with the navigation computer <NUM> through either a wired or wireless connection (not shown). One such connection may be an IEEE <NUM> interface, which is a serial bus interface standard for high-speed communications and isochronous real-time data transfer. Connection could also use a company specific protocol. In other embodiments, the optical sensors <NUM> communicate directly with the navigation computer <NUM>.

Position and orientation signals and/or data are transmitted to the navigation computer <NUM> for purposes of tracking the objects. The computer cart assembly <NUM>, display <NUM>, and camera unit <NUM> may be like those described in <CIT>, entitled "Surgery System".

The navigation computer <NUM> can be a personal computer or laptop computer. Navigation computer <NUM> has the display <NUM>, central processing unit (CPU) and/or other processors, memory (not shown), and storage (not shown). The navigation computer <NUM> is loaded with software as described below. The software converts the signals received from the camera unit <NUM> into data representative of the position and orientation of the objects being tracked.

Navigation system <NUM> includes a plurality of tracking devices <NUM>, <NUM>, <NUM>, also referred to herein as trackers. In the illustrated embodiment, one tracker <NUM> is firmly affixed to the femur F of the patient and another tracker <NUM> is firmly affixed to the tibia T of the patient. Trackers <NUM>, <NUM> are firmly affixed to sections of bone. Trackers <NUM>, <NUM> may be attached to the femur F in the manner shown in <CIT>. In further embodiments, an additional tracker (not shown) is attached to the patella to track a position and orientation of the patella. In further embodiments, the trackers <NUM>, <NUM> could be mounted to other tissue types or parts of the anatomy.

An instrument tracker <NUM> is firmly attached to the surgical instrument <NUM>. The instrument tracker <NUM> may be integrated into the surgical instrument <NUM> during manufacture or may be separately mounted to the surgical instrument <NUM> in preparation for the surgical procedures. The working end of the surgical instrument <NUM>, which is being tracked, may be a rotating bur, electrical ablation device, or the like. In the embodiment shown, the surgical instrument <NUM> is an end effector of a surgical manipulator. Such an arrangement is shown in <CIT>, entitled, "Navigation System for use with a Surgical Manipulator Operable in Manual or Semi-Autonomous Mode".

The trackers <NUM>, <NUM>, <NUM> can be battery powered with an internal battery or may have leads to receive power through the navigation computer <NUM>, which, like the camera unit <NUM>, preferably receives external power.

In other embodiments, the surgical instrument <NUM> may be manually positioned by only the hand of the user, without the aid of any cutting guide, jib, or other constraining mechanism such as a manipulator or robot. Such a surgical instrument is described in <CIT>, 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 optical sensors <NUM> of the localizer <NUM> receive light signals from the trackers <NUM>, <NUM>, <NUM>. In the illustrated embodiment, the trackers <NUM>, <NUM>, <NUM> are active trackers. In this embodiment, each tracker <NUM>, <NUM>, <NUM> has at least three active markers <NUM> for transmitting light signals to the optical sensors <NUM>. The active markers <NUM> can be light emitting diodes or LEDs <NUM>. The optical sensors <NUM> preferably have sampling rates of <NUM> or more, more preferably <NUM> or more, and most preferably <NUM> or more. In some embodiments, the optical sensors <NUM> have sampling rates of <NUM>. The sampling rate is the rate at which the optical sensors <NUM> receive light signals from sequentially fired LEDs <NUM>. In some embodiments, the light signals from the LEDs <NUM> are fired at different rates for each tracker <NUM>, <NUM>, <NUM>.

Referring to <FIG>, each of the LEDs <NUM> are connected to a tracker controller <NUM> located in a housing (not shown) of the associated tracker <NUM>, <NUM>, <NUM> that transmits/receives data to/from the navigation computer <NUM>. In one embodiment, the tracker controllers <NUM> transmit data on the order of several Megabytes/second through wired connections with the navigation computer <NUM>. In other embodiments, a wireless connection may be used. In these embodiments, the navigation computer <NUM> has a transceiver (not shown) to receive the data from the tracker controller <NUM>.

In other embodiments, the trackers <NUM>, <NUM>, <NUM> may have passive markers (not shown), such as reflectors that reflect light emitted from the camera unit <NUM>. The reflected light is then received by the optical sensors <NUM>. Active and passive arrangements are well known in the art.

Each of the trackers <NUM>, <NUM>, <NUM> also includes a <NUM>-dimensional gyroscope sensor <NUM> that measures angular velocities of the trackers <NUM>, <NUM>, <NUM>. As is well known to those skilled in the art, the gyroscope sensors <NUM> output readings indicative of the angular velocities relative to x-, y-, and z- axes of a gyroscope coordinate system. These readings are multiplied by a conversion constant defined by the manufacturer to obtain measurements in degrees/second with respect to each of the x-, y-, and z- axes of the gyroscope coordinate system. These measurements can then be converted to an angular velocity vector ω defined in radians/second.

The angular velocities measured by the gyroscope sensors <NUM> provide additional non-optically based kinematic data for the navigation system <NUM> with which to track the trackers <NUM>, <NUM>, <NUM>. The gyroscope sensors <NUM> may be oriented along the axis of each coordinate system of the trackers <NUM>, <NUM>, <NUM>. In other embodiments, each gyroscope coordinate system is transformed to its tracker coordinate system such that the gyroscope data reflects the angular velocities with respect to the x-, y-, and z- axes of the coordinate systems of the trackers <NUM>, <NUM>, <NUM>.

Each of the gyroscope sensors <NUM> communicate with the tracker controller <NUM> located within the housing of the associated tracker that transmits/receives data to/from the navigation computer <NUM>. The navigation computer <NUM> has one or more transceivers (not shown) to receive the data from the gyroscope sensors <NUM>. The data can be received either through a wired or wireless connection.

The gyroscope sensors <NUM> preferably have sampling rates of <NUM> or more, more preferably <NUM> or more, and most preferably <NUM> or more. In some embodiments, the gyroscope sensors <NUM> have sampling rates of <NUM>. The sampling rate of the gyroscope sensors <NUM> is the rate at which signals are sent out from the gyroscope sensors <NUM> to be converted into angular velocity data.

The sampling rates of the gyroscope sensors <NUM> and the optical sensors <NUM> are established or timed so that for each optical measurement of position there is a corresponding non-optical measurement of angular velocity.

Each of the trackers <NUM>, <NUM>, <NUM> also includes a <NUM>-axis accelerometer <NUM> that measures acceleration along each of x-, y-, and z- axes of an accelerometer coordinate system. The accelerometers <NUM> provide additional non-optically based data for the navigation system <NUM> with which to track the trackers <NUM>, <NUM>, <NUM>.

Each of the accelerometers <NUM> communicate with the tracker controller <NUM> located in the housing of the associated tracker that transmits/receives data to/from the navigation computer <NUM>. One or more of the transceivers (not shown) of the navigation computer receives the data from the accelerometers <NUM>.

The accelerometers <NUM> may be oriented along the axis of each coordinate system of the trackers <NUM>, <NUM>, <NUM>. In other embodiments, each accelerometer coordinate system is transformed to its tracker coordinate system such that the accelerometer data reflects the accelerations with respect to the x-, y-, and z- axes of the coordinate systems of the trackers <NUM>, <NUM>, <NUM>.

The navigation computer <NUM> includes a navigation processor <NUM>. The camera unit <NUM> receives optical signals from the LEDs <NUM> of the trackers <NUM>, <NUM>, <NUM> and outputs to the processor <NUM> signals relating to the position of the LEDs <NUM> of the trackers <NUM>, <NUM>, <NUM> relative to the localizer <NUM>. The gyroscope sensors <NUM> transmit non-optical signals to the processor <NUM> relating to the <NUM>-dimensional angular velocities measured by the gyroscope sensors <NUM>. Based on the received optical and non-optical signals, navigation processor <NUM> generates data indicating the relative positions and orientations of the trackers <NUM>, <NUM>, <NUM> relative to the localizer <NUM>.

It should be understood that the navigation processor <NUM> could include one or more processors to control operation of the navigation computer <NUM>. The processors can be any type of microprocessor or multi-processor system. The term processor is not intended to limit the scope of the invention to a single processor.

Prior to the start of the surgical procedure, additional data are loaded into the navigation processor <NUM>. Based on the position and orientation of the trackers <NUM>, <NUM>, <NUM> and the previously loaded data, navigation processor <NUM> determines the position of the working end of the surgical instrument <NUM> and the orientation of the surgical instrument <NUM> relative to the tissue against which the working end is to be applied. In some embodiments, navigation processor <NUM> forwards these data to a manipulator controller <NUM>. The manipulator controller <NUM> can then use the data to control a robotic manipulator <NUM> as described in <CIT>, entitled, "Navigation System for use with a Surgical Manipulator Operable in Manual or Semi-Autonomous Mode".

The navigation processor <NUM> also generates image signals that indicate the relative position of the surgical instrument working end to the surgical site. These image signals are applied to the displays <NUM>, <NUM>. Displays <NUM>, <NUM>, based on these signals, generate images that allow the surgeon and staff to view the relative position of the surgical instrument working end to the surgical site. The displays, <NUM>, <NUM>, as discussed above, may include a touch screen or other input/output device that allows entry of commands.

Referring to <FIG>, tracking of objects is generally conducted with reference to a localizer coordinate system LCLZ. The localizer coordinate system has an origin and an orientation (a set of x-, y-, and z-axes). During the procedure one goal is to keep the localizer coordinate system LCLZ stationary. As will be described further below, an accelerometer mounted to the camera unit <NUM> may be used to track sudden or unexpected movement of the localizer coordinate system LCLZ, as may occur when the camera unit <NUM> is inadvertently bumped by surgical personnel.

Each tracker <NUM>, <NUM>, <NUM> and object being tracked also has its own coordinate system separate from localizer coordinate system LCLZ. Components of the navigation system <NUM> that have their own coordinate systems are the bone trackers <NUM>, <NUM> and the instrument tracker <NUM>. These coordinate systems are represented as, respectively, bone tracker coordinate systems BTRK1, BTRK2, and instrument tracker coordinate system TLTR.

Navigation system <NUM> monitors the positions of the femur F and tibia T of the patient by monitoring the position of bone trackers <NUM>, <NUM> firmly attached to bone. Femur coordinate system is FBONE and tibia coordinate system is TBONE, which are the coordinate systems of the bones to which the bone trackers <NUM>, <NUM> are firmly attached.

Prior to the start of the procedure, pre-operative images of the femur F and tibia T are generated (or of other tissues in other embodiments). These images may be based on MRI scans, radiological scans or computed tomography (CT) scans of the patient's anatomy. These images are mapped to the femur coordinate system FBONE and tibia coordinate system TBONE using well known methods in the art. In one embodiment, a pointer instrument P, such as disclosed in<CIT>, having its own tracker PT (see <FIG>), may be used to map the femur coordinate system FBONE and tibia coordinate system TBONE to the pre-operative images. These images are fixed in the femur coordinate system FBONE and tibia coordinate system TBONE.

During the initial phase of the procedure, the bone trackers <NUM>, <NUM> are firmly affixed to the bones of the patient. The pose (position and orientation) of coordinate systems FBONE and TBONE are mapped to coordinate systems BTRK1 and BTRK2, respectively. Given the fixed relationship between the bones and their bone trackers <NUM>, <NUM>, the pose of coordinate systems FBONE and TBONE remain fixed relative to coordinate systems BTRK1 and BTRK2, respectively, throughout the procedure. The pose-describing data are stored in memory integral with both manipulator controller <NUM> and navigation processor <NUM>.

The working end of the surgical instrument <NUM> (also referred to as energy applicator distal end) has its own coordinate system EAPP. The origin of the coordinate system EAPP may represent a centroid of a surgical cutting bur, for example. The pose of coordinate system EAPP is fixed to the pose of instrument tracker coordinate system TLTR before the procedure begins. Accordingly, the poses of these coordinate systems EAPP, TLTR relative to each other are determined. The pose-describing data are stored in memory integral with both manipulator controller <NUM> and navigation processor <NUM>.

Referring to <FIG>, a localization engine <NUM> is a software module that can be considered part of the navigation system <NUM>. Components of the localization engine <NUM> run on navigation processor <NUM>. In some versions of the invention, the localization engine <NUM> may run on the manipulator controller <NUM>.

Localization engine <NUM> receives as inputs the optically-based signals from the camera controller <NUM> and the non-optically based signals from the tracker controller <NUM>. Based on these signals, localization engine <NUM> determines the pose (position and orientation) of the bone tracker coordinate systems BTRK1 and BTRK2 in the localizer coordinate system LCLZ. Based on the same signals received for the instrument tracker <NUM>, the localization engine <NUM> determines the pose of the instrument tracker coordinate system TLTR in the localizer coordinate system LCLZ.

The localization engine <NUM> forwards the signals representative of the poses of trackers <NUM>, <NUM>, <NUM> to a coordinate transformer <NUM>. Coordinate transformer <NUM> is a navigation system software module that runs on navigation processor <NUM>. Coordinate transformer <NUM> references the data that defines the relationship between the pre-operative images of the patient and the patient trackers <NUM>, <NUM>. Coordinate transformer <NUM> also stores the data indicating the pose of the working end of the surgical instrument relative to the instrument tracker <NUM>.

During the procedure, the coordinate transformer <NUM> receives the data indicating the relative poses of the trackers <NUM>, <NUM>, <NUM> to the localizer <NUM>. Based on these data and the previously loaded data, the coordinate transformer <NUM> generates data indicating the relative position and orientation of both the coordinate system EAPP, and the bone coordinate systems, FBONE and TBONE to the localizer coordinate system LCLZ.

As a result, coordinate transformer <NUM> generates data indicating the position and orientation of the working end of the surgical instrument <NUM> relative to the tissue (e.g., bone) against which the instrument working end is applied. Image signals representative of these data are forwarded to displays <NUM>, <NUM> enabling the surgeon and staff to view this information. In certain embodiments, other signals representative of these data can be forwarded to the manipulator controller <NUM> to control the manipulator <NUM> and corresponding movement of the surgical instrument <NUM>.

Steps for determining the pose of each of the tracker coordinate systems BTRK1, BTRK2, TLTR in the localizer coordinate system LCLZ are the same, so only one will be described in detail. The steps shown in <FIG> are based on only one tracker being active, tracker <NUM>. In the following description, the LEDs of tracker <NUM> shall be represented by numerals 50a, 50b, 50c which identify first 50a, second 50b, and third 50c LEDs.

The steps set forth in <FIG> illustrate the use of optically-based sensor data and non-optically based sensor data to determine the positions of the LEDs 50a, 50b, 50c of tracker <NUM>. From these positions, the navigation processor <NUM> can determine the position and orientation of the tracker <NUM>, and thus, the position and orientation of the femur F to which it is attached. Optically-based sensor data derived from the signals received by the optical sensors <NUM> provide line-of-sight based data that relies on the line-of-sight between the LEDs 50a, 50b, 50c and the optical sensors <NUM>. However, the gyroscope sensor <NUM>, which provides non-optically based signals for generating non-optically based sensor data do not rely on line-of-sight and thus can be integrated into the navigation system <NUM> to better approximate positions of the LEDs 50a, 50b, 50c when two of the LEDs 50a, 50b, 50c are not being measured (since only one LED measured at a time), or when one or more of the LEDs 50a, 50b, 50c are not visible to the optical sensors <NUM> during a procedure.

In a first initialization step <NUM>, the system <NUM> measures the position of the LEDs 50a, 50b, 50c for the tracker <NUM> in the localizer coordinate system LCLZ to establish initial position data. These measurements are taken by sequentially firing the LEDs 50a, 50b, 50c, which transmits light signals to the optical sensors <NUM>. Once the light signals are received by the optical sensors <NUM>, corresponding signals are generated by the optical sensors <NUM> and transmitted to the camera controller <NUM>. The frequency between firings of the LEDs 50a, 50b, 50c is <NUM> or greater, preferably <NUM> or greater, and more preferably <NUM> or greater. In some cases, the frequency between firings is <NUM> or <NUM> millisecond between firings.

In some embodiments, only one LED can be read by the optical sensors <NUM> at a time. The camera controller <NUM>, through one or more infrared or RF transceivers (on camera unit <NUM> and tracker <NUM>) may control the firing of the LEDs 50a, 50b, 50c, as described in <CIT>. Alternatively, the tracker <NUM> may be activated locally (such as by a switch on tracker <NUM>) which then fires its LEDs 50a, 50b, 50c sequentially once activated, without instruction from the camera controller <NUM>.

Based on the inputs from the optical sensors <NUM>, the camera controller <NUM> generates raw position signals that are then sent to the localization engine <NUM> to determine the position of each of the corresponding three LEDs 50a, 50b, 50c in the localizer coordinate system LCLZ.

During the initialization step <NUM>, in order to establish the initial position data, movement of the tracker <NUM> must be less than a predetermined threshold. A value of the predetermined threshold is stored in the navigation computer <NUM>. The initial position data established in step <NUM> essentially provides a static snapshot of position of the three LEDs 50a, 50b, 50c at an initial time t0, from which to base the remaining steps of the process. During initialization, velocities of the LEDs 50a, 50b, 50c are calculated by the localization engine <NUM> between cycles (i.e., each set of three LED measurements) and once the velocities are low enough, i.e., less than the predetermined threshold showing little movement occurred, then the initial position data or static snapshot is established. In some embodiments, the predetermined threshold (also referred to as the static velocity limit) is <NUM>/s or less, preferably <NUM>/s or less, and more preferably <NUM>/s or less along any axis. When the predetermined threshold is <NUM>/s, then the calculated velocities must be less than <NUM>/s to establish the static snapshot.

Referring to <FIG> and <FIG>, once the static snapshot is taken, the positions of the measured LEDs 50a, 50b, 50c are compared to a model of the tracker <NUM> in step <NUM>. The model is data stored in the navigation computer <NUM>. The model data indicates the positions of the LEDs on the tracker <NUM> in the tracker coordinate system BTRK1. The system <NUM> has stored the number and position of the LEDs <NUM> of each tracker <NUM>, <NUM>, <NUM> in each tracker's coordinate system. For trackers <NUM>, <NUM>, <NUM> the origin of their coordinate systems is set at the centroid of all LED positions of the tracker <NUM>.

The localization engine <NUM> utilizes a rigid body matching algorithm or point matching algorithm to match the measured LEDs 50a, 50b, 50c in the localizer coordinate system LCLZ to the LEDs in the stored model. Once the best-fit is determined, the localization engine <NUM> evaluates the deviation of the fit to determine if the measured LEDs 50a, 50b, 50c fit within a stored predefined tolerance of the model. The tolerance may be based on a distance between the corresponding LEDs such that if the fit results in too great of a distance, the initialization step has to be repeated. In some embodiments, the positions of the LEDs must not deviate from the model by more than <NUM>, preferably not more than <NUM>, and more preferably not more than <NUM>.

If the fit is within the predefined tolerance, a transformation matrix is generated to transform any other unmeasured LEDs in the model from the bone tracker coordinate system BTRK1 into the localizer coordinate system LCLZ in step <NUM>. This step is utilized if more than three LEDs are used or if virtual LEDs are used as explained further below. In some embodiments, trackers <NUM>, <NUM>, <NUM> may have four or more LEDs. Once all positions in the localizer coordinate system LCLZ are established, an LED cloud is created. The LED cloud is an arrangement of all LEDs 50a, 50b, 50c on the tracker <NUM> in the localizer coordinate system LCLZ based on the x-, y-, and z- axis positions of all the LEDs 50a, 50b, 50c in the localizer coordinate system LCLZ.

Once the LED cloud is initially established, the navigation system <NUM> can proceed with tracking the tracker <NUM> during a surgical procedure. As previously discussed, this includes firing the next LED in the sequence. For illustration, LED 50a is now fired. Thus, LED 50a transmits light signals to the optical sensors <NUM>. Once the light signals are received by the optical sensors <NUM>, corresponding signals are generated by the optical sensors <NUM> and transmitted to the camera controller <NUM>.

Based on the inputs from the optical sensors <NUM>, the camera controller <NUM> generates a raw position signal that is then sent to the localization engine <NUM> to determine at time t1 the new position of LED 50a relative to the x-, y-, and z- axes of the localizer coordinate system LCLZ. This is shown in step <NUM> as a new LED measurement.

It should be appreciated that the designation of time such as t0, t1. tn is used for illustrative purposes to indicate different times or different ranges of time or time periods and does not limit this invention to specific or definitive times.

With the new position of LED 50a determined, a linear velocity vector of LED 50a can be calculated by the localization engine <NUM> in step <NUM>.

The tracker <NUM> is treated as a rigid body. Accordingly, the linear velocity vector of LED 50a is a vector quantity, equal to the time rate of change of its linear position. The velocity, even the acceleration of each LED, in localizer coordinate system LCLZ, can be calculated from the previously and currently measured positions and time of that LED in localizer coordinate system LCLZ. The previously and currently measured positions and time of a LED define the position history of that LED. The velocity calculation of LED 50a can take the simplest form of: <MAT> Where xp = (x, y, z)p and is the previously measured position of LED 50a at time tp; and xn = (x, y, z)n and is the currently measured position of LED 50a at time tn. One can also obtain the velocity and/or acceleration of each LED by data fitting the LED position history of that LED as is well known to those skilled in the art.

At time t1, in step <NUM>, the gyroscope sensor <NUM> is also measuring an angular velocity of the tracker <NUM>. Gyroscope sensor <NUM> transmits signals to the tracker controller <NUM> related to this angular velocity.

The tracker controller <NUM> then transmits a corresponding signal to the localization engine <NUM> so that the localization engine <NUM> can calculate an angular velocity vector ω from these signals. In step <NUM>, the gyroscope coordinate system is also transformed to the bone tracker coordinate system BTRK1 so that the angular velocity vector ω calculated by the localization engine <NUM> is expressed in the bone tracker coordinate system BTRK1.

In step <NUM>, a relative velocity vector vR is calculated for the origin of the bone tracker coordinate system BTRK1 with respect to position vector x (LED<NUM>a to ORIGIN). This position vector x (LED<NUM>a to ORIGIN) is also stored in memory in the navigation computer <NUM> for access by the localization engine <NUM> for the following calculation. This calculation determines the relative velocity of the origin vR (ORIGIN) of the bone tracker coordinate system BTRK1 by calculating the cross product of the angular velocity vector ω derived from the gyroscope signal and the position vector from LED 50a to the origin.

The localization engine <NUM> then calculates relative velocity vectors vR for the remaining, unmeasured LEDs 50b, 50c (unmeasured because these LEDs have not been fired and thus their positions are not being measured). These velocity vectors can be calculated with respect to the origin of bone tracker coordinate system BTRK1.

The calculation performed by the localization engine <NUM> to determine the relative velocity vector vR for each unmeasured LED 50b, 50c at time t1 is based on the cross product of the angular velocity vector ω at time t1 and the position vectors x (ORIGIN to LED50b) and x (ORIGIN to LED50c), which are taken from the origin of bone tracker coordinate system BTRK1 to each of the unmeasured LEDs 50b, 50c. These position vectors x (ORIGIN to LED50b) and x (ORIGIN to LED50c) are stored in memory in the navigation computer <NUM> for access by the localization engine <NUM> for the following calculations: <MAT> <MAT>.

Also in step <NUM>, these relative velocities, which are calculated in the bone tracker coordinate system BTRK1, are transferred into the localizer coordinate system LCLZ using the transformation matrix determined in step <NUM>. The relative velocities in the localizer coordinate system LCLZ are used in calculations in step <NUM>.

In step <NUM> the velocity vector v of the origin of the bone tracker coordinate system BTRK1 in the localizer coordinate system LCLZ at time t1 is first calculated by the localization engine <NUM> based on the measured velocity vector v (LED<NUM>a) of LED 50a at time t1. The velocity vector v (ORIGIN) is calculated by adding the velocity vector v (LED<NUM>a) of LED 50a at time t1 and the relative velocity vector vR (ORIGIN) of the origin at time t1 expressed relative to the position vector of LED 50a to the origin. Thus, the velocity vector of the origin at time t1 is calculated as follows: <MAT>.

Velocity vectors of the remaining, unmeasured LEDs in the localizer coordinate system LCLZ at time t1 can now be calculated by the localization engine <NUM> based on the velocity vector v (ORIGIN) of the origin of the bone tracker coordinate system BTRK1 in the localizer coordinate system LCLZ at time t1 and their respective relative velocity vectors at time t1 expressed relative to their position vectors with the origin of the bone tracker coordinate system BTRK1. These velocity vectors at time t1 are calculated as follows: <MAT> <MAT>.

In step <NUM>, the localization engine <NUM> calculates the movements, i.e., the change in position Δx (in Cartesian coordinates), of each of the unmeasured LEDs 50b, 50c from time t0 to time t1 based on the calculated velocity vectors of LEDs 50b, 50c and the change in time. In some embodiments the change in time Δt for each LED measurement is two milliseconds or less, and in some embodiments one millisecond or less. <MAT> <MAT>.

These calculated changes in position (x, y, z) can then be added to the previously determined positions of each of LEDs 50b, 50c in the localizer coordinate system LCLZ. Thus, in step <NUM>, changes in position can be added to the previous positions of the LEDs 50b, 50c at time t0, which were determined during the static snapshot. This is expressed as follows: <MAT>.

In step <NUM>, these calculated positions for each of LEDs 50b, 50c at time t1 are combined with the determined position of LED 50a at time t1. The newly determined positions of LEDs 50a, 50b, 50c are then matched to the model of tracker <NUM> to obtain a best fit using the point matching algorithm or rigid body matching algorithm. The result of this best fit calculation, if within the defined tolerance of the system <NUM>, is that a new transformation matrix is created by the navigation processor <NUM> to link the bone tracker coordinate system BTRK1 to the localizer coordinate system LCLZ.

With the new transformation matrix the newly calculated positions of the unmeasured LEDs 50b, 50c are adjusted to the model in step <NUM> to provide adjusted positions. The measured position of LED 50a can also be adjusted due to the matching algorithm such that it is also recalculated. These adjustments are considered an update to the LED cloud. In some embodiments, the measured position of LED 50a is fixed to the model's position of LED 50a during the matching step.

With the best fit transformation complete, the measured (and possibly adjusted) position of LED 50a and the calculated (and adjusted) positions of LEDs 50b, 50c in the localizer coordinate system LCLZ enable the coordinate transformer <NUM> to determine a new position and orientation of the femur F based on the previously described relationships between the femur coordinate system FBONE, the bone tracker coordinate system BTRK1, and the localizer coordinate system LCLZ.

Steps <NUM> through <NUM> are then repeated at a next time t2 and start with the measurement in the localizer coordinate system LCLZ of LED 50b, with LEDs 50a, 50c being the unmeasured LEDs. As a result of this loop at each time t1, t2. tn positions of each LED 50a, 50b, 50c are either measured (one LED being fired at each time) or calculated with the calculated positions being very accurately approximated based on measurements by the optical sensor <NUM> and the gyroscope sensor <NUM>. This loop of steps <NUM> through <NUM> to determine the new positions of the LEDs <NUM> can be carried out by the localization engine <NUM> at a frequency of at least <NUM>, more preferably at least <NUM>, and most preferably at least <NUM>.

Referring to <FIG>, the LED cloud may also include virtual LEDs, which are predetermined points identified on the model, but that do not actually correspond to physical LEDs on the tracker <NUM>. The positions of these points may also be calculated at times t1, t2. These virtual LEDs can be calculated in the same fashion as the unmeasured LEDs with reference to <FIG>. The only difference is that the virtual LEDs are never fired or included in the sequence of optical measurements, since they do not correspond to any light source, but are merely virtual in nature. Steps <NUM>-<NUM> show the steps used for tracking the trackers <NUM>, <NUM>, <NUM> using real and virtual LEDS. Steps <NUM>-<NUM> generally correspond to steps <NUM>-<NUM> except for the addition of the virtual LEDs, which are treated like unmeasured LEDs using the same equations described above.

One purpose of using virtual LEDs in addition to the LEDs 50a, 50b, 50c, for example, is to reduce the effect of errors in the velocity calculations described above. These errors may have little consequence on the calculated positions of the LEDs 50a, 50b, 50c, but can be amplified the further away from the LEDs 50a, 50b, 50c a point of interest is located. For instance, when tracking the femur F with tracker <NUM>, the LEDs 50a, 50b, 50c incorporated in the tracker <NUM> may experience slight errors in their calculated positions of about <NUM> millimeters. However, consider the surface of the femur F that may be located over <NUM> centimeters away from the LEDs 50a, 50b, 50c. The slight error of <NUM> millimeters at the LEDs 50a, 50b, 50c can result in <NUM> to <NUM> millimeters of error on the surface of the femur F. The further away the femur F is located from the LEDs 50a, 50b, 50c the more the error increases. The use of virtual LEDs in the steps of <FIG> can reduce the potential amplification of such errors as described below.

Referring to <FIG>, one virtual LED 50d can be positioned on the surface of the femur F. Other virtual LEDs 50e, 50f, <NUM>, <NUM>, 50i, 50j, <NUM> can be positioned at random locations in the bone tracker coordinate system BTRK1 such as along each of the x-, y-, and z- axes, and on both sides of the origin along these axes to yield <NUM> virtual LEDs. These virtual LEDs are included as part of the model of the tracker <NUM> shown in <FIG> and used in steps <NUM> and <NUM>. In some embodiments, only the virtual LEDs 50e-<NUM> are used. In other embodiments, virtual LEDs may be positioned at locations along each of the x-, y-, and z- axes, but at different distances from the origin of the bone tracker coordinate system BTRK1. In still further embodiments, some or all of the virtual LEDs may be located off of the axes x, y, and z.

Now in the model are real LEDs 50a, 50b, 50c and virtual LEDs 50d-<NUM>. At each time t1, t2. tn this extended model is matched in step <NUM> with the measured/calculated positions of real LEDs 50a, 50b, 50c and with the calculated positions of virtual LEDs 50d-<NUM> to obtain the transformation matrix that links the bone tracker coordinate system BTRK1 with the localizer coordinate system LCLZ. Now, with the virtual LEDs 50d-<NUM> included in the model, which are located at positions outlying the real LEDs 50a, 50b, 50c, the error in the rotation matrix can be reduced. In essence, the rigid body matching algorithm or point matching algorithm has additional points used for matching and some of these additional points are located radially outwardly from the points defining the real LEDs 50a, 50b, 50c, thus rotationally stabilizing the match.

In another variation of the process of <FIG>, the locations of the virtual LEDs 50e-<NUM> can be changed dynamically during use depending on movement of the tracker <NUM>. The calculated positions of the unmeasured real LEDs 50b, 50c and the virtual LEDs 50e-<NUM> at time t1 are more accurate the slower the tracker <NUM> moves. Thus, the locations of virtual LEDs 50e-<NUM> along the x-, y-, and z- axes relative to the origin of the bone tracker coordinate system BTRK1 can be adjusted based on speed of the tracker <NUM>. Thus, if the locations of the virtual LEDs 50e-<NUM> are denoted (s,<NUM>,<NUM>), (-s,<NUM>,<NUM>), (<NUM>,s,<NUM>), (<NUM>,-s,<NUM>), (<NUM>,<NUM>,s), (<NUM>,<NUM>,-s), respectively, then s would increase when the tracker <NUM> moves slowly and s would decrease to a smaller value when the tracker <NUM> moves faster. This could be handled by an empirical formula for s or s can be adjusted based on an estimate in the error in velocity and calculated positions.

Determining new positions of the LEDs <NUM> (real and virtual) can be carried out at a frequency of at least <NUM>, more preferably at least <NUM>, and most preferably at least <NUM>.

Data from the accelerometers <NUM> can be used in situations where optical measurement of an LED <NUM> is impeded due to interference with the line-of-sight. When an LED to be measured is blocked, the localization engine <NUM> assumes a constant velocity of the origin to estimate positions. However, the constant velocity assumption in this situation may be inaccurate and result in errors. The accelerometers <NUM> essentially monitor if the constant velocity assumption in the time period is accurate. The steps shown in <FIG> and <FIG> illustrate how this assumption is checked.

Continuing to use tracker <NUM> as an example, steps <NUM>-<NUM> of <FIG> generally correspond to steps <NUM>-<NUM> from <FIG>. However, in step <NUM>, the system <NUM> determines whether, in the last cycle of measurements, less than <NUM> LEDs were measured - meaning that one or more of the LEDs in the cycle could not be measured. This could be caused by line-of-sight issues, etc. A cycle for tracker <NUM> is the last three attempted measurements. If during the last three measurements, each of the LEDs 50a, 50b, 50c were visible and could be measured, then the system <NUM> proceeds to step <NUM> and continues as previously described with respect to <FIG>.

If the system <NUM> determines that one or more of the LEDs 50a, 50b, 50c could not be measured during the cycle, i.e., were blocked from measurement, then the algorithm still moves to step <NUM>, but if the new LED to be measured in step <NUM> was the one that could not be measured, the system makes some velocity assumptions as described below.

When a LED, such as LED 50a, is not seen by the optical sensor <NUM> at its measurement time tn in step <NUM>, the previously calculated velocity vector v (ORIGIN) of the origin of the tracker <NUM> in the localizer coordinate system LCLZ at the previous time t(n-<NUM>) is assumed to remain constant. Accordingly, velocity vectors of LEDs 50a, 50b, 50c in the localizer coordinate system LCLZ can be calculated based on the previously calculated velocity vector v (ORIGIN) in the localizer coordinate system LCLZ and the relative velocity vectors of LEDs 50a, 50b, 50c, which are derived from a newly measured angular velocity vector from the gyroscope <NUM>. The equations described in steps <NUM>-<NUM> can then be used to determine new positions of the LEDs 50a, 50b, 50c.

To start, when LED 50a is to be measured at step <NUM>, but is obstructed, the velocity vector of the origin is assumed to be the same as the previous calculation. Accordingly, the velocity of the new LED is not calculated at step <NUM>: <MAT>.

Step <NUM> proceeds the same as step <NUM>.

The relative velocity vectors vR of LEDs 50a, 50b, 50c calculated in step <NUM> are then based on the previous velocity vector v (ORIGIN) and the newly measured angular velocity vector from the gyroscope <NUM> in the bone tracker coordinate system BTRK1: <MAT> <MAT> <MAT>.

In step <NUM>, velocity vectors in the localizer coordinate system LCLZ can the be calculated using the origin velocity vector v (ORIGIN) and the relative velocity vectors vR of LEDs 50a, 50b, 50c: <MAT> <MAT> <MAT>.

Steps <NUM> through <NUM> proceed the same as steps <NUM>-<NUM>.

If the system <NUM> determines at step <NUM> that one or more of the LEDs 50a, 50b, 50c could not be measured during the cycle, i.e., were blocked from measurement, another algorithm is carried out simultaneously at steps <NUM>-<NUM> shown in <FIG> until a complete cycle of measurements is made where all of the LEDs 50a, 50b, 50c in the cycle were visible to the optical sensor <NUM>. Thus, the system <NUM> is considered to be in a "blocked" condition until the complete cycle with all visible measurements is made.

Steps <NUM>-<NUM> are carried out continuously while the system <NUM> is in the blocked condition.

In step <NUM> the navigation processor <NUM> starts a clock that tracks how long the system <NUM> is in the blocked condition. The time in the blocked condition is referred to below as t (blocked).

In step <NUM>, the accelerometer <NUM> measures accelerations along the x-, y-, and z- axes of the bone tracker coordinate system BTRK1 to track errors in the constant velocity assumption. Accelerometer readings, like gyroscope readings are transformed from the accelerometer coordinate system to the bone tracker coordinate system BTRK1.

If the accelerometer <NUM> detects acceleration(s) that exceed predefined acceleration tolerance(s), the navigation computer <NUM> will put the system <NUM> into an error condition. The acceleration tolerances could be defined differently along each x-, y-, and z- axis, or could be the same along each axis. If a measured acceleration exceeds a tolerance then the constant velocity assumption is unreliable and cannot be used for that particular application of surgical navigation. Different tolerances may be employed for different applications. For instance, during robotic cutting, the tolerance may be very low, but for visual navigation only, i.e., not feedback for cutting control loop, the tolerance may be set higher.

In step <NUM>, velocity errors associated with the positions of the LEDs <NUM> relative to the optical sensor <NUM> are taken into account and monitored during the blocked condition. For each of the LEDs <NUM>, the velocity error verror multiplied by the time in the blocked condition tblocked condition must be less than a position error tolerance y and thus must satisfy the following equation to prevent the system <NUM> from being put into an error condition: <MAT>.

In this equation, the velocity error verror is calculated for each of the LEDs 50a, 50b, 50c as follows: <MAT>.

Position errors xerror(t) and xerror(t-<NUM>) are predefined position errors in the system <NUM> that are based on location relative to the optical sensors <NUM> at times t and t-<NUM>. In essence, the further away the LEDs 50a, 50b, 50c are located from the optical sensors <NUM>, the higher the potential position errors. These positions errors are derived either experimentally or theoretically and placed in a look-up table or formula so that at each position of the LEDs 50a, 50b, 50c in Cartesian coordinates (x, y, z) an associated position error is provided.

In step <NUM>, the localization engine <NUM> accesses this look-up table or calculates this formula to determine the position errors for each of LEDs 50a, 50b, 50c at the current time t and at the previous time t-<NUM>. The position errors are thus based on the positions in Cartesian coordinates in the localizer coordinate system LCLZ calculated by the system <NUM> in step <NUM> for the current time t and at the previous time t-<NUM>. The time variable Δt represents the time it takes for subsequent position calculations, so the difference between t and t-<NUM>, which for illustrative purposes may be <NUM> millisecond.

The position error tolerance γ is predefined in the navigation computer <NUM> for access by the localization engine <NUM>. The position error tolerance γ could be expressed in millimeters. The position error tolerance γ can range from <NUM> to <NUM> millimeters and in some embodiments is specifically set at <NUM> millimeters. Thus, if the position error tolerance γ is set to <NUM> millimeters, the following equation must be satisfied: <MAT>.

As can be seen, the longer the system <NUM> is in the blocked condition, the larger the effect that the time variable has in this equation and thus the smaller the velocity errors that will be tolerated. In some embodiments, this equation is calculated by the localization engine <NUM> in step <NUM> separately for each of the LEDs 50a, 50b, 50c. In other embodiments, because of how closely arranged the LEDs 50a, 50b, 50c are on the tracker <NUM>, the velocity error of only one of the LEDs 50a, 50b, 50c is used in this calculation to determine compliance.

In step <NUM>, when the error(s) exceeds the position error tolerance y, the system <NUM> is placed in an error condition. In such a condition, for example, any control or movement of cutting or ablation tools is ceased and the tools are shut down.

In one exemplary embodiment, when each of the trackers <NUM>, <NUM>, <NUM> are being actively tracked, the firing of the LEDs occurs such that one LED from tracker <NUM> is fired, then one LED from tracker <NUM>, then one LED from tracker <NUM>, then a second LED from tracker <NUM>, then a second LED from tracker <NUM>, and so on until all LEDs have been fired and then the sequence repeats. This order of firing may occur through instruction signals sent from the transceivers (not shown) on the camera unit <NUM> to transceivers (not shown) on the trackers <NUM>, <NUM>, <NUM>.

The navigation system <NUM> can be used in a closed loop manner to control surgical procedures carried out by surgical cutting instruments. Both the instrument <NUM> and the anatomy being cut are outfitted with trackers <NUM> such that the navigation system <NUM> can track the position and orientation of the instrument <NUM> and the anatomy being cut, such as bone.

In one exemplary embodiment, the navigation system is part of a robotic surgical system for treating tissue. In some versions, the robotic surgical system is a robotic surgical cutting system for cutting away material from a patient's anatomy, such as bone or soft tissue. The cutting system could be used to prepare bone for surgical implants such as hip and knee implants, including unicompartmental, bicompartmental, or total knee implants. Some of these types of implants are shown in <CIT>, entitled, "Prosthetic Implant and Method of Implantation".

The robotic surgical cutting system includes a manipulator (see, for instance, <FIG>). The manipulator has a plurality of arms and a cutting tool carried by at least one of said plurality of arms. A robotic control system controls or constrains movement of the cutting tool in at least <NUM> degrees of freedom. An example of such a manipulator and control system is shown in <CIT>, entitled, "Navigation System for use with a Surgical Manipulator Operable in Manual or Semi-Autonomous Mode".

In this exemplary embodiment, the navigation system <NUM> communicates with the robotic control system (which can include the manipulator controller <NUM>). The navigation system <NUM> communicates position and/or orientation data to said robotic control system. The position and/or orientation data is indicative of a position and/or orientation of instrument <NUM> relative to the anatomy. This communication provides closed loop control to control cutting of the anatomy such that the cutting occurs within a predefined boundary.

In this exemplary embodiment, manipulator movement may coincide with LED measurements such that for each LED measurement taken, there is a corresponding movement of the instrument <NUM> by the manipulator <NUM>. However, this may not always be the case. For instance, there may be such a lag between the last LED measurement and movement by the manipulator <NUM> that the position and/or orientation data sent from the navigation computer <NUM> to the manipulator <NUM> for purposes of control loop movement becomes unreliable. In such a case, the navigation computer <NUM> can be configured to also transmit to the manipulator controller <NUM> kinematic data. Such kinematic data includes the previously determined linear and angular velocities for the trackers <NUM>, <NUM>, <NUM>. Since the velocities are already known, positions can calculated based on the lag of time. The manipulator controller <NUM> could then calculate, for purposes of controlling movement of the manipulator <NUM>, the positions and orientations of the trackers <NUM>, <NUM>, <NUM> and thus, the relative positions and orientations of the instrument <NUM> (or instrument tip) to the femur F and/or tibia T.

In this exemplary embodiment, the instrument <NUM> is held by the manipulator shown in <FIG> or other robot that provides some form of mechanical constraint to movement. This constraint limits the movement of the instrument <NUM> to within a predefined boundary. If the instrument <NUM> strays beyond the predefined boundary, a control is sent to the instrument <NUM> to stop cutting.

When tracking both the instrument <NUM> and the anatomy being cut in real time in these systems, the need to rigidly fix anatomy in position can be eliminated. Since both the instrument <NUM> and anatomy are tracked, control of the instrument <NUM> can be adjusted based on relative position and/or orientation of the instrument <NUM> to the anatomy. Also, representations of the instrument <NUM> and anatomy on the display can move relative to one another - to emulate their real world motion.

In one embodiment, each of the femur F and tibia T has a target volume of material that is to be removed by the working end of the surgical instrument <NUM>. The target volumes are defined by one or more boundaries. The boundaries define the surfaces of the bone that should remain after the procedure. In some embodiments, system <NUM> tracks and controls the surgical instrument <NUM> to ensure that working end, e.g., bur, only removes the target volume of material and does not extend beyond the boundary.

In the described embodiment, control of the instrument <NUM> is accomplished by utilizing the data generated by the coordinate transformer <NUM> that indicates the position and orientation of the bur or other cutting tool relative to the target volume. By knowing these relative positions, the surgical instrument <NUM> or the manipulator to which it is mounted, can be controlled so that only desired material is removed.

In other systems, the instrument <NUM> has a cutting tool that is movable in three degrees of freedom relative to a handheld housing and is manually positioned by the hand of the surgeon, without the aid of cutting jig, guide arm or other constraining mechanism.

In these embodiments, the system includes a hand held surgical cutting instrument having a cutting tool. The navigation system <NUM> communicates with the control system. One tracker (such as tracker <NUM>) is mounted to the instrument. Other trackers (such as trackers <NUM>, <NUM>) are mounted to a patient's anatomy.

In this embodiment, the navigation system <NUM> communicates with the control system of the hand held surgical cutting instrument. The navigation system <NUM> communicates position and/or orientation data to the control system. The position and/or orientation data is indicative of a position and/or orientation of the instrument <NUM> relative to the anatomy. This communication provides closed loop control to control cutting of the anatomy such that the cutting occurs within a predefined boundary (the term predefined boundary is understood to include predefined trajectory, volume, line, other shapes or geometric forms, and the like).

Features of the invention may be used to track sudden or unexpected movements of the localizer coordinate system LCLZ, as may occur when the camera unit <NUM> is bumped by surgical personnel. An accelerometer (not shown) mounted to camera unit <NUM> monitors bumps and stops system <NUM> if a bump is detected. In this embodiment, the accelerometer communicates with the camera controller <NUM> and if the measured acceleration along any of the x-, y-, or z- axes exceeds a predetermined value, then the camera controller <NUM> sends a corresponding signal to the navigation computer <NUM> to disable the system <NUM> and await the camera unit <NUM> to stabilize and resume measurements. In some cases, the initialization step <NUM>, <NUM>, <NUM> would have to be repeated before resuming navigation.

In some embodiments, a virtual LED is positioned at the working tip of the instrument <NUM>. In this embodiment, the virtual LED is located at the location of the working tip in the model of the instrument tracker <NUM> so that the working tip location is continuously calculated.

Claim 1:
A navigation system (<NUM>) comprising:
a localizer (<NUM>) including at least one optical sensor (<NUM>);
a tracker (<NUM>, <NUM>, <NUM>) for communicating with said localizer (<NUM>) and including three LEDs (50a, 50b, 50c) and a non-optical sensor; and
a computing system having at least one processor (<NUM>) configured to:
determine a position of each of said three LEDs (50a, 50b, 50c) in a localizer coordinate system (LCLZ) based on optical and non-optical signals, and
match said positions of said three LEDs (50a, 50b, 50c) and a calculated position of a virtual LED (50d-<NUM>) in said localizer coordinate system (LCLZ) with positions of said three LEDs (50a, 50b, 50c) and said virtual LED (50d-<NUM>) in a model of said tracker (<NUM>, <NUM>, <NUM>) established relative to a tracker coordinate system (BTRK) to obtain a transformation matrix to transform said tracker coordinate system (BTRK) to said localizer coordinate system (LCLZ).