Navigator

From IGSTK

Jump to: navigation, search

Contents

Introduction

How to build the application

To build this application you will need to set IGSTK_USE_FLTK ON in your CMake configuration and have any of the supported tracker systems readily connected and configured.

How to run the application

The following steps outline the workflow of the application:

  1. Load Image. Confirm the patient name after loading
  2. (optional) Open any number of meshes. These could be e.g. previously segmented organs or target objects. They have to be in the .msh format and in the image coordinate system. As you load the meshes, you will see in the 2D views their intersection with the image planes. The loaded meshes are also shown in the 3D window.
  3. Open any tracker system supported by IGSTK Click on 'Configure Tracker'
    • It will first ask for mesh representing the tracker tool. Sample file can be found under:
    /IGSTK/Testing/Data/Input/TrackerToolRepresentationMeshes/ (available options are: needletip.msh, sProbe.msh, sPtr.msh, tool.msh)
    • After loading the tool representation mesh, it will ask you to select an XML configuration file. Sample XML file can be found in the binary directory under
    /IGSTK-Bin/Data/TrackerConfiguration/ (available options are: ascensionConfiguration.xml, auroraConfiguration.xml, micronConfiguration.xml, polarisHybridConfiguration.xml, vicraConfiguration.xml)
    • Notice: this application assumes you will use a reference tool and a single tracker tool. The tracker tool name has to be "tool" in the configuration file. Please refer to IGSTK: The Book, Chapter 23, Navigator, Page 302 for more details.
  4. Set image landmarks. The "Modify" button allows to move a preexisting landmark.
  5. Set tracker landmarks. The application's state machine enters this state once at least three landmarks were set on the image. The user is asked to use tracker tool to pinpoint each landmark at the time, on the patient. The position of the tracker tool is accepted for the landmark when key g is pressed. A sound signal is emitted to notify this fact. Notice: both reference tool and tracker tool have to be visible to get a valid reading for the tracker landmark position (both reference and tracker tool button should be green).
  6. Landmark registration. Once all landmarks are pinpointed, the button "Register" turns green and the user can press h to start the landmark registration process. Alternatively, the user can select any other landmark and pinpoint again.
  7. After registration, the RMS error is shown and the user is asked whether to accept the registration or do it again (from the beginning)
  8. Once registration is ready, the state machine enters the "RUN" state. The reslicing component gets the tracker position and the planes are positioned accordingly. The user can switch to the Off-Orthogonal and Oblique reslicing modes. In these modes, the orientation of the tracked tool also takes place.
  9. When the application is asked to quit, a confirmation window is first shown and in the case of agreement the system stops and disconnects the tracker before closing.

Sample configuration file

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Example of settings for NDI's Aurora:                         -->    
<!-- The tags are:                                                 -->
<!-- tracking_system: Root element, encompassing all of the data.  -->
<!--                  Must have the attribute 'type' set to        -->
<!--                  "aurora".                                    -->  
<!-- refresh_rate: Get data from the tracker at this rate.         --> 
<!-- serial_communication: Encompass all the communication         -->
<!--                       settings:                               -->
<!--  com_port, baud_rate, data_bits, parity, stop_bits,           -->
<!--  hand_shake                                                   --> 
<!--  The com_port value should be set to COM-1 as it appears in   -->
<!--  the computer settings (IGSTK starts counting at zero).       -->
<!-- tool: Has optional attribute 'usage' if set to "reference"    -->
<!--       this tool will be used as a dynamic reference frame.    -->
<!--       All transformation will be reported relative to this    -->
<!--       reference frame.                                        -->
<!-- name: Unique string by which the developer can later reference-->
<!--       the tool inside the program.                            -->
<!-- control_box_port: Control box port to which the tool is       -->
<!--                   connected.                                  -->
<!-- control_box_channel: Optional tag, required if the tool is a  -->
<!--                      5DOF tool. In this case two tools can    -->
<!--                      be connected to the same port with a     --> 
<!--                      splitter.                                -->
<!-- srom_file: Optional srom.                                     -->
<!-- calibration_file: Optional calibration file. XML file         -->
<!--                   containing the tool's calibration data      -->
<!--                                                               -->

<tracking_system type = "aurora">

    <refresh_rate> 20 </refresh_rate>

    <serial_communication>
      <com_port>0</com_port>
      <baud_rate>115200</baud_rate>
      <data_bits>8</data_bits>
      <parity>N</parity>
      <stop_bits>1</stop_bits>
      <hand_shake>0</hand_shake>
    </serial_communication>

    <!-- The reference tool, remember to specify its attribute as: usage="reference"-->
    <!-- Always use full path to the SROM and calibration file-->
    <tool usage="reference">
      <name> reference frame </name> 
      <control_box_port>1</control_box_port>
	<srom_file>C:/ROM_Files/8700426.rom</srom_file>
      <calibration_file>C:/IGS/Toolkits/IGSTK/IGSTK-4.2/Testing/Data/Input/USCalibration.xml</calibration_file>
    </tool>

    <!-- The tracker tool, the name has to be "tool" to be used in the Navigator application, need fix this in the future-->
    <tool>
      <name> tool </name>
      <control_box_port>2</control_box_port>
	<srom_file>C:/ROM_Files/8700464-6D.rom</srom_file>
      <calibration_file>C:/IGS/Toolkits/IGSTK/IGSTK-4.2/Testing/Data/Input/bayonetCalibration.xml</calibration_file>
    </tool>
</tracking_system>

Sample calibration transform file

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!-- Example of settings for rigid transformation:                 -->    
<!-- The tags are:                                                 -->
<!-- description: Human readable description of the transformation -->
<!-- computation_date: Human readable date and time when the       -->
<!--                   transformation was estimated.               -->
<!-- transformation: The actual transformation data, in our case   -->
<!--                 these are the elements of the unit quaternion -->
<!--                 representing the rotation, followed by the    -->
<!--                 translation: qx qy qz qw tx ty tz             -->
<!-- estimation_error: An error associated with the transformation -->
<!--                   estimate.                                   -->
<!--                                                               -->
<!--                                                               -->
<precomputed_transform>
  
  <description>
      Claron bayonet (sptr) calibration
  </description>
  
  <computation_date>
      Thursday July 4 12:00:00 1776
  </computation_date>
  
  <transformation estimation_error="0.5">
      0 0 0 1 -133.01400340688699 -4.7090219730147789 0.78585891088520654
  </transformation>

</precomputed_transform>

Example Data

Personal tools
TOOLBOX
LANGUAGES