Modules:OpenIGTLinkIF
Return to Slicer Documentation
Module Name
OpenIGTLink IF
General Information
Module Type & Category
Type: Interactive
Category: Base
Authors, Collaborators & Contact
- Junichi Tokuda: SPL, Brigham and Women's Hospital
- Nobuhiko Hata: SPL, Brigham and Women's Hospital
Module Description
The OpenIGTLink Interface Module is a program module for network communication with external software / hardware using OpenIGTLink protocol. The module provides following features:
- Data import: The module can import position, linear transform and image data from OpenIGTLink-compliant software to the MRML scene.
- Data export: The module can export linear transform and image data from the MRML scene to external software.
- Multi-connection: The module can manage multiple OpenIGTLink connections at the same time.
- Locator visualization: The user can choose one of linear transforms in the MRML scene to visualize its position and orientation in the 3D space.
- Slice driving: The module can control volume re-slicing plane based on linear transform in the MRML scene.
Usage
Example Applications and Use Cases
- MRI-compatible Robot System (BRP Project between BWH, Johns Hopkins University and Acoustic MedSystems Inc., "Enabling Technologies for MRI-Guided Prostate Interventions")
- The 3D Slicer was connected to the MRI-compatible Robot by using OpenIGTLinkIF to send target position and to get current robot position. It was also connected to the MRI scanner to control scan plane for real-time image and receive MR images from the scanner.
- Neurosurgical Robot Project(Nagoya Institute of Technology, Japan)
- The 3D Slicer was connected to the optical tracking system (Optotrak, Northern Digital Inc.) to acquire current position of the end-effector of the robot.
Tutorial
Step 1: Set-up
First, we prepare simulators to test connections between the 3D Slicer and external programs. The simulators come with The OpenIGTLink Library. You can also obtain the binaries from the following links:
- For Linux (x86, 32-bit)].
- For Linux (x86, 64-bit).
- For Windows (32-bit).
- For Mac OS X (x86)
- For Mac OS X (PPC).
Step 2: Getting 3D Slicer
The OpenIGTLink Interface module is included in the nightly release. The binaries can be found at Download page for Slicer Nightly. If you interested in building by your self, please see Bulid Instructions.
Step 3: Connecting to Tracker Client
Before connect the simulator to the 3D Slicer, we configure the OpenIGTLink Interface as a "server" by the following steps:
- Select "OpenIGTLinkIF" from "Modules:" menu
- Open "Connectors" frame, and press "Add" button below the "Connectors" list to add a new connector
- 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.
Once the "Status" column in the connector list indicates that the connector is waiting, we can connect a OpenIGTLink client program. To connect the tracking simulator, open a terminal (Linux and Mac) or command prompt (Windows), move to the directory containing simulator programs downloaded in Step 1, and run it. If you built the OpenIGTLink library by yourself, the binaries for the example programs (simulators) are in <OpenIGTLink-build>/bin.
$ cd <simulator directory>
To send dummy coordinate data to the Slicer running on localhost with frame rate of 10 fps, run:
$ ./TrackerClient localhost 18944 10
Step 4: Connecting to Tracker Server
Step 5: Connecting to Imager Client
Step 6: Exporting Linear Transform
Quick Tour of Features and Use
- Connectors:
- Connector panel is used to add, delete and edit connectors.
- Data I/O Configurations:
- Visualization / Slice Control:
Development
Dependencies
The OpenIGTLink IF module requires The OpenIGTLink Library. The library is downloaded and built in Slicer3-lib directory automatically when you run Slicer3/Script/getbuildtest.tcl.
Known bugs
Follow this link to the Slicer3 bug tracker.
Usability issues
Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.
Source code & documentation
Customize following links for your module.
Links to documentation generated by doxygen.
More Information
Acknowledgment
This work is supported by 1R01CA111288, 5U41RR019703, 5P01CA067165, 1R01CA124377, 5P41RR013218, 5U54EB005149, 5R01CA109246 from NIH. Its contents are solely the responsibility of the authors and do not necessarily represent the official views of the NIH.
References
In revew ...