I’m a beginner, I already have a calibrated pointer. I have a tracker at my object in real life, the pointer should be relative to the tracker on my real life object/reference, right? So my pointer transform will be calculated with the reference or anchor of the tracker that I attached to my object. How do I do it? Because I see that there is only one in the fiducial registration wizard, so I only created it for my dcom/ctscan data.
I’m not sure what you mean by “tracker” (your tracking camera? a tracker marker attached to your “patient”?) and “at my object” (is the marker actually attached - clamped, screwed - to the object?). If you can describe very precisely what tracking markers you have and what transforms do you stream via PLUS then we have a better chance of answering. Just in case you have not seen it already, the SlicerIGT-U12_LandmarkRegistration tutorial gives a very detailed explanation of the whole process.
Hi Andras,
Thank you for your reply.
Let me clarify my setup more precisely.
By “tracker”, I mean a rigid body with optical markers (OptiTrack) that is physically attached to my phantom skull (like a reference marker, similar to a patient reference in navigation systems). It is fixed to the object and moves together with it.
So in my setup I have:
- A PhantomTracker (rigid body attached to the skull → serves as reference frame)
- A StylusTracker (rigid body attached to the pointer tool)
- Both are streamed via PLUS (OptiTrack → PLUS → OpenIGTLink → Slicer)
What I want to achieve is:
- The stylus position should be computed relative to the PhantomTracker (object reference), not relative to the global tracking coordinate system.
So effectively:
- StylusToPhantomTracker = StylusToTracker × inverse(PhantomTrackerToTracker)
Currently, I have:
- Performed pivot calibration for the stylus
- Performed fiducial registration between CT (DICOM) and the tracked object (phantom)
But I am unsure about:
- The correct way to define and use this object reference (PhantomTracker) in Slicer
- Whether this relative transform should be handled via PLUS configuration or within Slicer (e.g., transform chaining or scripting)
Also, in the Fiducial Registration Wizard, I only see one transform being generated (CT to tracker), so I’m not sure how to properly incorporate the PhantomTracker as a reference frame in this workflow.
Any clarification on the correct pipeline for this setup would be very helpful.
Thank you!
Best regards,
Zaky
What you describe is the basic patient registration use case, so you can follow the tutorial that I referenced above. I would recommend to use standard naming conventions (e.g., rename PhantomTracker to Reference, and pay attention to small differences, such as Stylus vs. StylusTip).