NDI tracking setup

Installation

Plus Toolkit installation

The Plus Toolkit provides tools for communication with tool tracking hardware (e.g. NDI and OptiTrack cameras).

  • Download from here.

Configuration

Plus Server device set specification

Plus Server will act as a bridge between the NDI camera and NaviNIBS. A Device set xml file is required to specify the devices for which Plus Server will relay pose information.

Example Plus Device sets
<PlusConfiguration version="2.1">
  <DataCollection StartupDelaySec="1.0" >
    <DeviceSet
      Name="PlusServer: NDI Polaris Vega Network Basic"
      Description="Broadcasting tool tracking data through OpenIGTLink" />
    <Device
      Id="TrackerDevice"
      Type="NDITracker"
      NetworkHostname="192.155.1.82"
      NetworkPort="8765"
      ToolReferenceFrame="Tracker" >
      <DataSources>
        <DataSource Type="Tool" Id="Coil1" RomFile="./tools/TMS-Coil-1.rom"  />
        <DataSource Type="Tool" Id="Coil2" RomFile="./tools/TMS-Coil-2.rom"  />
        <DataSource Type="Tool" Id="Pointer" RomFile="./tools/Pointer.rom"  />
        <DataSource Type="Tool" Id="Subject" RomFile="./tools/TMS-Reference.rom"  />
        <DataSource Type="Tool" Id="Calibration" RomFile="./tools/TMS-Calibration-Plate.rom"  />
      </DataSources>
      <OutputChannels>
        <OutputChannel Id="TrackerStream" >
          <DataSource Id="Coil1"/>
          <DataSource Id="Coil2"/>
          <DataSource Id="Pointer"/>
          <DataSource Id="Subject"/>
          <DataSource Id="Calibration"/>
        </OutputChannel>
      </OutputChannels>
    </Device>
  </DataCollection>
  <PlusOpenIGTLinkServer
    MaxNumberOfIgtlMessagesToSend="100"
    MaxTimeSpentWithProcessingMs="50"
    ListeningPort="18944"
    SendValidTransformsOnly="false"
    NumberOfRetryAttempts="10"
    OutputChannelId="TrackerStream" >
    <DefaultClientInfo>
      <MessageTypes>
        <Message Type="TRANSFORM" />
      </MessageTypes>
      <TransformNames>
        <Transform Name="Coil1ToTracker" />
        <Transform Name="Coil2ToTracker" />
        <Transform Name="PointerToTracker" />
        <Transform Name="SubjectToTracker" />
        <Transform Name="CalibrationToTracker" />
      </TransformNames>
    </DefaultClientInfo>
  </PlusOpenIGTLinkServer>
</PlusConfiguration>

See the Plus Toolkit NDI documentation for more information.

  • Create your Plus device set file.
    • Make sure to update your camera network address or serial port COM port in the device set file based on your own setup.

    • Make sure that .rom files are accessible for every tool you need to track.

  • Open Plus Server Launcher

  • Change the “Device set configuration directory” to the directory containing your device set file.

  • You should see your device set populate as one of the items in the “Device set:” dropdown. Select it.

  • Click “Launch server”

  • Confirm that tracking data is broadcasting.

  • Define tools in NaviNIBS, with trackerKey matching the Id of each device in the device set file.
    • Optionally, also define an NDI camera visibility tool with a fixed initial position to visualize the extent of the camera’s field of view.

  • (After defining suitable tools in NaviNIBS) launch CameraPanel in NaviNIBS to try viewing the tracked tools.

Usage

  • Launch Plus Server Launcher. Your previous device set should be selected automatically. Click “Launch server” to start streaming tracker poses.

  • Launch NaviNIBS. Behind the scenes, the NaviNIBS tool positions server should launch automatically, making streamed tool positions available throughout NaviNIBS.

  • Check tool visibility in NaviNIBS (e.g. in the Camera panel).