OpenIGTLink/Slicer

From NAMIC Wiki
Revision as of 18:26, 25 November 2008 by Tokuda (talk | contribs)
Jump to: navigation, search
Home < OpenIGTLink < Slicer

<< OpenIGTLink

What's new in the new version of Slicer3 OpenIGTLInk module?

  • Outging data support
    • The new version can export image and linear transform data to other software through OpenIGTLink connection.
  • Implemented using the OpenIGTLink Library
    • Changes in the OpenIGTLink Library can quickly applied to the module.


OpenIGTLink Slicer Screenshot.png

Install the Software

From binaries

  • The module is available only in Slicer 3.3 source distribution.

For Slicer 3.2, please see old page.

Build from the source

The OpenIGTLink module is in the 3D Slicer 3 trunk repository. Before build the Slicer, you need to enable OpenIGTLink option.

Linux and Mac

First, get the source code from the repository. For Linux and Mac:

 $ cd <working directory>
 $ svn co http://svn.slicer.org/Slicer3/trunk Slicer3

Then edit Slicer3/slicer_variables.tcl configuration file. Around line 150:

 set ::USE_OPENIGTLINK "OFF"

should be modified as:

 set ::USE_OPENIGTLINK "ON"

Save the configuration file, start building by running Slicer3/Scripts/getbuildtest.tcl

$ cd Slicer3
$ ./Scripts/getbuildtest.tcl

It will take a while. Once the building process is completed, you could find Slicer3 program in the binary directory. To launch the Slicer, do followings:

$ cd ../Slicer3-build
$ ./Slicer

Windows

Detailed instructions can be found in Slicer 3 Build Instruction .

Before you start, you need:

  • Cygwin with tcltk, svn, cvs, unzip and curl packages.
  • Microsoft C++ compiler. Microsoft Visual C++ 2009 Express can be used and it's free.

First, get the source code from the repository: http://svn.slicer.org/Slicer3/trunk. You could run svn command from Cygwin terminal as:

 $ cd <working directory>
 $ svn co http://svn.slicer.org/Slicer3/trunk Slicer3

Then edit the configuration file. Open Slicer3/slicer_variables.tcl and edit the following line (around line 150):

 set ::USE_OPENIGTLINK "OFF"

as:

 set ::USE_OPENIGTLINK "ON"

Save the configuration file, start building by running Slicer3/Scripts/getbuildtest.tcl

$ cd Slicer3
$ ./Scripts/getbuildtest.tcl

It will take a while. Once the building process is completed, you could find Slicer3.exe in Slicer3-build directory.


Tracker Simulator for Testing Open IGT Link

To test the Open IGT Link module (or other Open-IGT-Link-complaint devices and software), tracking simulator software is provided. This software simply sends dummy coordinate data to the server with specified frame rate. You can either obtain the software as a binary code or build from source.

From binaries

Obtain a binary file for your environment.

From Source

To get the source code, run following commands:

$ mkdir <working directory>
$ svn co http://svn.na-mic.org/NAMICSandBox/trunk/BRPTools/ScannerIO ScannerIO

Then configure the source code

$ cd ScannerIO
$ ccmake .

Usually, you don't need to change any setting. Just press 'c' key by 'g' key to generate Makefiles. Press 'q' to quit the ccmake interface. Now you are ready to build the program.

$ make

The executable file TrackerSim can be found in ScannerIO/bin directory.


Testing Open IGT Link Module -- Show Tracking Device in the 3D Space

Set up Open IGT Link Module

  1. Select "OpenIGTLink" from "Modules:" menu
  2. Open "Connector Browser" frame, and press "Add" button below the "Connectors" list to add a new connector
  3. Configure and start the connector. Choose "Server" check box in the "Type" option, then clinck "Active" check box. Now the Slicer is ready to accept connections through Open IGT Link.

Run Tracker Simulator

To send dummy coordinate data to the Slicer running on localhost with frame rate of 10 fps, run:

$ ./TrackerSim  10  c  localhost 18944

Visualize Tracker Position

To see the coordinate from the Tracker Simulator,

  1. Open "Visualization / Slice Control" frame in the OpenIGTLink module interface.
  2. Click the "Show Locator" check button. A locator model shows up on the 3D viewer.
  3. Open "Data" module. Choose "Data" from "Modules:" menu.
  4. Edit MRML tree. Put "IGTLocator" under the "Tracker" by dragging "IGTLocator" node.
  5. You should see the locator model moves in the 3D viewer.


Testing Open IGT Link Module -- Reslice 3D image

We can reslice 3D image according to the locator position with following steps:

  1. Load 3D volume from the "Volumes" module.
  2. Start Tracking as we did in the previous section.
  3. In the "Visualization / Slice Control" frame in the OpenIGTLink module interface, click Red menu and choose "Locator".
  4. The image in the left 2D slice viewer (Red) should start to move. You can change the orientation by changing slice orientation menu in the 2D slice viewer.
  5. If you click the "Oblique" check button in the "Visualization / Slicer Control" frame, the slice orientation is set according to the locator orientation.
  6. You can use other 2D viewers (Yellow and Green) by choosing "Locator" from the Yellow and Green menu in the "Visualization / Slice Control" frame.



Loadmap

The current version of the Open IGT Link module supports only incoming data. In future, the module will also support outgoing data, which is useful for

  • exporting registration result to other software
  • exporting result images of registration / segmentation
  • sending control commands to devices and imagers
  • synchronizing multiple navigation software

The idea of outgoing data support is that the Open IGT Link module detects MRML update events (linear transforms and images) and put the new data into Open IGT Link data stream. This mechanism allows other Slicer3 modules to communicate with other OpenIGTLink-compatible software or devices through MRML.

In the next version, the Open IGT Link module handles MRML events to detect updates in MRML nodes (linear transforms and images)

Currently, the new version of Open IGT Link module is being developed. The code is available from SVN repository at:

http://svn.na-mi.org/NAMICSandBox/trunk/IGTLodableModules/OpenIGTLinkPrototype

Please make sure not to load the current version of OpenIGTLink module and OpenIGTLinkPrototype module at the same time.


Other Resources

People