Fiducials configuration for spatial calibration with no streaming of 'StylusToProbe' transform

Hi (again…),

I am sorry for all the topics, 3D ultrasound is quite new for me and some aspects are still blurry…

I followed your tutorial U31 for spatial calibration of my ultrasound probe.
The problem is that the internally computing of the ‘StylusToProbe’ transform from ‘StylusToTracker’ and ‘ProbeToTracker’ by Plus is using too much RAM of our computer and the tracking lags.

I am therefore trying to perform this calibration by streaming only ‘StylusToTracker’ and ‘ProbeToTracker’ to Slicer3D. Is it possible ?
My hierarchy is the following :

I want to create ‘ImageToProbe’ transform to insert it to ‘ProbeToTracker’ and then be able to follow my ultrasound image in the 3D view.

So if I follow exactly the tutorial U31, the ‘ImageToProbe’ will not be the right one since my StylusTipToStylus is not in the Probe Reference ? The Fiducial Registration Wizard configuration in the U31 is the following :

Doing that I feel that the transform I am creating is the ImageToTracker transform (since StylusTip is in the Stylus reference which is in the Tracker reference) ? am I right ?
I do not know how to configure the Fiducial Registration Wizard to be able to create the ‘ImageToProbe’ with my configuration…

Thanks in advance for all of your help, your software and libraries are very powerful and we are very glad in our biomechanics lab to set it up, even if it takes some time …

Pivot calibration computation is trivial and does not require any extra RAM. Can you describe what configuration change you make exactly that slows things down?

If you don’t move the stylus tip relative to the tracker then you only need a single transformation stream for pivot calibration: StylusToTracker.

I would recommend to start with following the calibration tutorial exactly. If you have trouble completing any of the steps then let us know.

I am talking about ‘Spatial calibration’, not ‘pivot calibration’ (which I succeeded in doing and verified the transform matrix was OK).

The problem is that when I stream from PlusServer: ‘ProbeToTracker’ + ‘StylusToTracker’ + ‘StylusToProbe’, the tracking is lagging. I wanted to have the three of them to be able to visualize my Stylus and Probe independently moving in the Tracker frame.
However if I stream only ‘StylusToProbe’ for the spatial calibration, as explained in the tutorial, then it worked fine, and the tracking was not lagging. So for spatial calibration I will use a config file that is only streaming ‘StylusToProbe’.

I now would like to visualise my tracked ultrasound and verify that all is OK with my transform ImageToProbe.

So this time I use a config file which is streaming ‘ProbeToTracker’ and ‘StylusToTracker’ (I want to stream the stylus tracking, to use it to verify the location of my ultrasound image in the 3D view, see below). Then, I uploaded the previously calculated ‘StylusTipToStylus’ and ‘ImageToProbe’ transforms.

If I follow the tutorial U32, which is a bit different from my case since I stream ‘Image_image’ and not ‘image_reference’ (according to recommendations from your team in a previous post), I tried using the following hierarchy :
Do you confirm my hierarchy is correct ?

Then I followed the tutorial to display the ultrasound image in the 3D view :

The ultrasound image is displayed but if I put the StylusTip (represented by the needle model) in the plane of the ultrasound image, you can see that it is not at all in the image displayed, and even quite far …
Is it an ‘ImageToProbe’ transform problem ?

I found the problem, my Stylus geometry was not correct (3D printed in the office, I attached the marker plane not in the stylus plane) and therefore the StylusTipToStylus transform was incorrect (not taking into account the rotations) and therefore also my ImageToProbe transform…
All is good now, with a correct Stylus I succeeded in scanning an object both live and with a recorded sequence !

1 Like