Plus applications user manual  2.9.0.e3e8b4a
Software library for tracked ultrasound image acquisition, calibration, and processing.
NDI Vega, Polaris and Aurora pose trackers

Supported hardware devices

Any NDI tracking device is supported that uses the common API, such as Polaris optical and Aurora electromagnetic pose trackers.

Supported platforms

Installation

Device configuration settings

Example configuration file Vega PlusDeviceSet_Server_NDIVega.xml

<PlusConfiguration version="2.1">
<DataCollection StartupDelaySec="1.0" >
<DeviceSet
Name="PlusServer: NDI Vega tracker with passive markers"
Description="Broadcasting tool tracking data through OpenIGTLink
For NDI Vega: Tool (8700339), Stylus (8700340), Reference (8700449)" />
<Device
Id="TrackerDevice"
Type="NDITracker"
NetworkHostname="192.168.0.30"
NetworkPort="8765"
ToolReferenceFrame="Reference" >
<DataSources>
<DataSource Type="Tool" Id="Stylus" RomFile="NdiToolDefinitions/8700248.rom" />
</DataSources>
<OutputChannels>
<OutputChannel Id="TrackerStream" >
<DataSource Id="Stylus"/>
</OutputChannel>
</OutputChannels>
</Device>
<Device
Id="VideoDevice"
Type="OpenCVVideo"
VideoURL="rtsp://192.168.0.30/video">
<DataSources>
<DataSource Type="Video" Id="Video" ImageType="RGB_COLOR" PortUsImageOrientation="MF" />
</DataSources>
<OutputChannels>
<OutputChannel Id="VideoStream" VideoDataSourceId="Video" />
</OutputChannels>
</Device>
<Device
Id="TrackedVideoDevice"
Type="VirtualMixer" >
<InputChannels>
<InputChannel Id="TrackerStream" />
<InputChannel Id="VideoStream" />
</InputChannels>
<OutputChannels>
<OutputChannel Id="TrackedVideoStream"/>
</OutputChannels>
</Device>
</DataCollection>
<CoordinateDefinitions>
<Transform From="Image" To="Reference"
Matrix="
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1"
Error="0.554951" Date="012617_105449" />
<Transform From="StylusTip" To="Stylus"
Matrix="
1 0 0.000203823 0.0180449
3.31529e-09 -1 -1.62655e-05 -0.00144002
0.000203823 1.62655e-05 -1 -88.5321
0 0 0 1"
Error="0.554951" Date="012617_105449" />
</CoordinateDefinitions>
<PlusOpenIGTLinkServer
MaxNumberOfIgtlMessagesToSend="1"
MaxTimeSpentWithProcessingMs="50"
ListeningPort="18944"
SendValidTransformsOnly="true"
OutputChannelId="TrackedVideoStream" >
<DefaultClientInfo>
<MessageTypes>
<Message Type="IMAGE" />
<Message Type="TRANSFORM" />
</MessageTypes>
<ImageNames>
<Image Name="Image" EmbeddedTransformToFrame="Reference" />
</ImageNames>
<TransformNames>
<Transform Name="StylusTipToReference" />
</TransformNames>
</DefaultClientInfo>
</PlusOpenIGTLinkServer>
</PlusConfiguration>

Example configuration file Polaris PlusDeviceSet_Server_NDIAurora_NDIPolaris.xml

<PlusConfiguration version="2.1">
<DataCollection StartupDelaySec="1.0" >
<DeviceSet
Name="PlusServer: NDI Polaris tracker with passive markers"
Description="Broadcasting tool tracking data through OpenIGTLink
For NDI Polaris passive marker starting kit: Tool (8700339), Stylus (8700340), Reference (8700449)" />
<Device
Id="TrackerDevice"
Type="PolarisTracker"
ToolReferenceFrame="Tracker" >
<DataSources>
<DataSource Type="Tool" Id="Tool" RomFile="NdiToolDefinitions/8700339.rom" />
<DataSource Type="Tool" Id="Stylus" RomFile="NdiToolDefinitions/8700340.rom" />
<DataSource Type="Tool" Id="Reference" RomFile="NdiToolDefinitions/8700449.rom" />
</DataSources>
<OutputChannels>
<OutputChannel Id="TrackerStream" >
<DataSource Id="Tool"/>
<DataSource Id="Stylus"/>
<DataSource Id="Reference"/>
</OutputChannel>
</OutputChannels>
</Device>
<Device
Id="CaptureDevice"
Type="VirtualCapture"
BaseFilename="RecordingTest.igs.nrrd"
EnableFileCompression="TRUE"
EnableCapturingOnStart="TRUE" >
<InputChannels>
<InputChannel Id="TrackerStream" />
</InputChannels>
</Device>
</DataCollection>
<CoordinateDefinitions>
<Transform From="StylusTip" To="Stylus"
Matrix="
1 0 0.000203823 0.0180449
3.31529e-09 -1 -1.62655e-05 -0.00144002
0.000203823 1.62655e-05 -1 -88.5321
0 0 0 1"
Error="0.554951" Date="012617_105449" />
</CoordinateDefinitions>
<PlusOpenIGTLinkServer
MaxNumberOfIgtlMessagesToSend="1"
MaxTimeSpentWithProcessingMs="50"
ListeningPort="18944"
SendValidTransformsOnly="true"
OutputChannelId="TrackerStream" >
<DefaultClientInfo>
<MessageTypes>
<Message Type="TRANSFORM" />
</MessageTypes>
<TransformNames>
<Transform Name="StylusTipToReference" />
<Transform Name="ToolToReference" />
<Transform Name="ToolToTracker" />
<Transform Name="StylusToTracker" />
<Transform Name="ReferenceToTracker" />
</TransformNames>
</DefaultClientInfo>
</PlusOpenIGTLinkServer>
</PlusConfiguration>

Example configuration file Aurora PlusDeviceSet_Server_NDIAurora_NDIPolaris.xml

<PlusConfiguration version="2.1">
<DataCollection StartupDelaySec="1.0">
<DeviceSet
Name="PlusServer: NDI Aurora and Polaris tracker"
Description="Broadcasting tool tracking data through OpenIGTLink
Tracking a single EM pointer and an optical pointer and reference." />
<Device
Id="EmTracker"
Type="AuroraTracker"
SerialPort="5"
BaudRate="115200"
AcquisitionRate="20"
LocalTimeOffsetSec="0.0"
ToolReferenceFrame="EmTracker" >
<DataSources>
<DataSource Type="Tool" Id="Pointer" PortName="0" />
</DataSources>
<OutputChannels>
<OutputChannel Id="EmTrackerStream">
<DataSource Id="Pointer" />
</OutputChannel>
</OutputChannels>
</Device>
<Device
Id="OpticalTracker"
Type="PolarisTracker"
SerialPort="6"
BaudRate="115200"
AcquisitionRate="20"
LocalTimeOffsetSec="0.0"
ToolReferenceFrame="OpticalTracker" >
<DataSources>
<DataSource Type="Tool" Id="Stylus" RomFile="NdiToolDefinitions/8700340.rom" />
<DataSource Type="Tool" Id="Reference" RomFile="NdiToolDefinitions/8700449.rom" />
</DataSources>
<OutputChannels>
<OutputChannel Id="OpticalTrackerStream" >
<DataSource Id="Stylus"/>
<DataSource Id="Reference"/>
</OutputChannel>
</OutputChannels>
</Device>
<Device
Id="CombinedTracker"
Type="VirtualMixer" >
<InputChannels>
<InputChannel Id="EmTrackerStream" />
<InputChannel Id="OpticalTrackerStream" />
</InputChannels>
<OutputChannels>
<OutputChannel Id="CombinedTrackerStream"/>
</OutputChannels>
</Device>
</DataCollection>
<PlusOpenIGTLinkServer
MaxNumberOfIgtlMessagesToSend="1"
MaxTimeSpentWithProcessingMs="50"
ListeningPort="18944"
SendValidTransformsOnly="true"
OutputChannelId="CombinedTrackerStream" >
<DefaultClientInfo>
<MessageTypes>
<Message Type="TRANSFORM" />
</MessageTypes>
<TransformNames>
<Transform Name="ReferenceToOpticalTracker" />
<Transform Name="StylusToOpticalTracker" />
<Transform Name="PointerToEmTracker" />
</TransformNames>
</DefaultClientInfo>
</PlusOpenIGTLinkServer>
</PlusConfiguration>