Setting up the Optitrack Motive => PLUS => Slicer IGT Watchdog

Hi everyone :wave:,
We’re using Optitrack DUO for to track tools in our setup. The PLUS server is set up to attach to a running motive and send only valid transforms to Slicer.
We see a problem that on the Slicer side that it continues to receive the last known transform of the tool even if the tool is out of the tracker camera’s sight.

As showed in the video - in Motive itself when the tool is out of sight the icon dims, so I assume that the Motive knows that the tool is not visible. In Slicer the transform update stops only when I turn PLUS server off completely.

I guess there is either some setting on the Motive side that should be toggled to prevent these transforms from being sent or some additional setting for the PLUS server configuration. Has anyone had similar issues or can advice on how to establish this MotiveToSlicer connection correctly?

In the config file, you can add "SendValidTransformsOnly=“TRUE” to the PlusOpenIGTLinkServer element, which should stop them from being sent.

<PlusOpenIGTLinkServer
  ...
  SendValidTransformsOnly="TRUE"
  ...

Thanks for the input. We see this behaviour when the SendValidTransformsOnly is "TRUE". (in the video on the right side there is a text editor open with the config that we’re using. line 38). If the tool is lost we continue to receive the transform update that shows the last known tool position.

We saw that Motive and PLUS send invalid transforms only if the tool is not registered in Motive. We did try switching the SendValidTransformsOnly to “not TRUE” earlier today and validated this.

I found this issue in PlusLib that is still open:

And this PR that I think was meant to address the issue: Otitrack valid tracking status by hgueziri · Pull Request #699 · PlusToolkit/PlusLib · GitHub

I can’t make it out in the video, what version of Plus are you using?

Thanks for pointing that out @Sunderlandkyl
Plus App version is 2.8.0.20191105-Win64 (latest stable)
I didn’t get from the discussion if it was fixed in 2020?

Yes, the PR changed the transform to be invalid if it was out of view, so it should have the correct behavior in the latest nightly version. Let me know if it works in the nightly.

1 Like

Hi @Sunderlandkyl ,

At first we’ve tried using the latest PLUS with the same config file and it failed to work with Motive. We’ve tried it with versions 2.1.1, 2.1.2, 2.2.0 and 2.3.0.

Previously we were using the combination of PLUS - Motive mentioned in the docs here (latest stable with 2.1.1).

I’ve uploaded the log file to this gist

After some poking around the logs, source code and the configs I have managed to launch the server by providing the Calibration parameter to the Device section of the configuration file like this:

Profile="MotiveProfile.motive"
Calibration="MotiveProfile.motive"

I suspect that the Calibration parameter became mandatory in this commit.

I can’t yet test the setup but I’ll update you on the results.

Thanks, the latest nightly 2.9 works

1 Like