# Fiducial Registration Wizard transforms

**URL:** <https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770>\
**Category:** Support\
**Tags:** surgical-navigation\
**Created:** [April 17, 2026, 1:51pm UTC](https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770 "2026-04-17T13:51:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zaky\_Alfarizi](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/zaky_alfarizi/32/82224_2.png) [@Zaky\_Alfarizi](https://discourse.slicer.org/u/Zaky_Alfarizi)\
**Post date:** [April 17, 2026, 1:51pm UTC](https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770/1 "2026-04-17T13:51:44Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [April 18, 2026, 12:19am UTC](https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770/2 "2026-04-18T00:19:43Z")

</div>

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](https://www.slicerigt.org/wp/user-tutorials/) gives a very detailed explanation of the whole process.

---

<div class="post-metadata">

**Author:** ![Zaky\_Alfarizi](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/zaky_alfarizi/32/82224_2.png) [@Zaky\_Alfarizi](https://discourse.slicer.org/u/Zaky_Alfarizi)\
**Post date:** [April 18, 2026, 3:06am UTC](https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770/3 "2026-04-18T03:06:56Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [April 18, 2026, 11:49am UTC](https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770/4 "2026-04-18T11:49:28Z")

</div>

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).

---

<div class="post-metadata">

**Author:** ![Zaky\_Alfarizi](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/zaky_alfarizi/32/82224_2.png) [@Zaky\_Alfarizi](https://discourse.slicer.org/u/Zaky_Alfarizi)\
**Post date:** [April 20, 2026, 9:59am UTC](https://discourse.slicer.org/t/fiducial-registration-wizard-transforms/46770/5 "2026-04-20T09:59:06Z")

</div>

thanks for your information before.  
Now, i have another problem, Although RMSE is low (1 mm), the CT skull model appears very far from the reference tracker. The stylus tracking itself seems correct. . Also, when i move the skull, the ct model moves but with unrealistic rotation (not around its center) eventhough actually the globe for reference representation its normal and realistic move.  
can u explain what happened ?  
thanks
