Plus applications user manual  2.7.0.3de27e5
Software library for tracked ultrasound image acquisition, calibration, and processing.
Frequently asked questions

How can I check if the coordinate systems are correctly specified?

All the coordinate frames are defined by transforms between them. All transforms are specified in the Device set configuration file .

Specification of coordinate frames

Example: this section defines three tool coordinate frames (Probe, Reference, Stylus) and a tracker reference frame (Tracker)

<Device 
  Id="TrackerDevice" 
  Type="Ascension3DG" 
  LocalTimeOffsetSec="0.0" 
  FilterAcWideNotch="1"
  ToolReferenceFrame="Tracker" >
  <DataSources>
    <DataSource Type="Tool" Id="Probe" PortName="0"  />
    <DataSource Type="Tool" Id="Reference" PortName="1"  />
    <DataSource Type="Tool" Id="Stylus" PortName="2"  />
  </DataSources>
  <OutputChannels>
    <OutputChannel Id="TrackerStream" >
      <DataSource Id="Probe"/>
      <DataSource Id="Reference"/>
      <DataSource Id="Stylus"/>
    </OutputChannel>
  </OutputChannels>
</Device>

Coordinate frames computed by calibration algorithms

Example: vtkPlusPivotCalibrationAlgo algorithm has two input coordinate frames and one frame that it defines (StylusTip)

<vtkPlusPivotCalibrationAlgo
  ObjectMarkerCoordinateFrame="Stylus"
  ReferenceCoordinateFrame="Reference"
  ObjectPivotPointCoordinateFrame="StylusTip"
/>

Custom coordinate frames defined in the CoordinateDefinitions section of the configuration file

Example: this section defines the TransducerOrigin frame that is defined by a transform linked to the Image coordinate frame and defines an alias for the Tracker coordinate frame by binding it to the AscensionDevice frame using an identity matrix

<CoordinateDefinitions>
  <Transform From="Image" To="TransducerOriginPixel"
    Matrix="1 0 0 410              0 1 0 5              0 0 1 0              0 0 0 1"
    Date="2011.12.06 17:57:00" Error="0.0" />    
  <Transform From="Tracker" To="AscensionDevice"
    Matrix="1 0 0 0              0 1 0 0              0 0 1 0              0 0 0 1"
    Date="2011.12.06 17:57:00" Error="0.0" />     
</CoordinateDefinitions>

Display of coordinate frames

fCal can display any of the existing coordinate frames by attaching a displayed object (coordinate system axes, a surface model, image, etc.) to the frame. These are defined in the Rendering section of the configuration file.

fCal application shows shows every object in its world coordinate system. This coordinate system is defined by the WorldCoordinateFrame attribute.

Following objects can be visualized:

Example:

<Rendering WorldCoordinateFrame="Reference">
<DisplayableObject Type="Model" ObjectCoordinateFrame="TransducerOrigin" File="L14-5_38_ProbeModel.stl"
ModelToObjectTransform="1 0 0 34.5 0 -1 0 1.5 0 0 -1 14 0 0 0 1"
/>
<DisplayableObject Type="Model" ObjectCoordinateFrame="StylusTip" File="Stylus_Example.stl"
ModelToObjectTransform="1 0 0 -210.0 0 1 0 0 0 0 1 0 0 0 0 1"
/>
<DisplayableObject Type="Model" ObjectCoordinateFrame="Phantom" Opacity="0.6" File="FCal_1.0.stl"
ModelToObjectTransform="1 0 0 -15.0 0 1 0 10.0 0 0 1 -5.0 0 0 0 1"
/>
<DisplayableObject Type="Image" ObjectCoordinateFrame="Image" />
<DisplayableObject Type="Axes" ObjectCoordinateFrame="Probe" />
</Rendering>

How to determine the what hardware SDK versions are actually used by Plus

The pre-built Plus binaries usually contain the latest hardware SDK. Run PlusVersion.exe to print the version of all the used hardware SDKs.

How to generate sequence metafile that contains ImageToReference transforms

Use Sequence metafile editor (EditSequenceFile) - see the examples.

What causes this error: "Angle difference between interpolated orientation is large, interpolation may be inaccurate"?

This message indicates that the angle difference between two subsequent pose measurements is too large.

Possible reasons:

Any questions?

To ask any questions, register at github.com and submit a new issue.