Difficulty With Multiple Landmark Registrations

I was not sure if it was more appropriate to post this on the PlusLib or here, so I apologize for the repost.

I am on the last part of my arUco webcam project! I have the following setup:

*StationaryModel (STL)
*CT Data (.nrrd)

“NeedleTipToNeedle” was calculated using Pivot Calibration, where “Marker8” is the arUco marker on the stylus.

“TrackerToRas” was calculated using Landmark Registration by using “NeedleTipToNeedle” to place the “From” fiducials on a stationary physical model (i.e., the model will not move and it does NOT have an attached patient reference marker) and then placing the “To” fiducials on the virtual model. This was completed successfully!

Here is the issue I am having:
I need to introduce a new, custom STL model (“NewModel.stl”) that has an arUco marker (“Marker6”) attached to it. Furthermore, when I move this object in real life, I need it to move in the virtual RAS scene in relation to the other objects.

I know I need to perform Landmark Registration; however, I am incredibly confused how to setup this hierarchy. I have been through the tutorials, but am still stuck on this part.

Any advice is appreciated and sorry for all of the questions lately! This is the last step of my project and I cannot thank the community enough for all of the help!

Did you connect the plus with the slicer(IGT).

1 Like

Yes they are connected.

My confusion is how to setup the transform hierarchy (in relation to the hierarchy I posted above).

To clarify, I can get what I want through a very roundabout solution, but I cannot get there through landmark registration (which is more accurate and ideal in this scenario).

Here is my roundabout (but not ideal) solution:

         NewModel (stl)

Since I knew where the center of the marker is on the model, I created a transform called “ManualTransform” to manually reposition (using the Transform module sliders in 3D Slicer) the NewModel.stl to be aligned properly. Now this works for my purposes, but it would be more accurate if I used landmark registration to complete this task.

However, no matter what I do, I cannot get landmark registration to work correctly on this NewModel.stl.

Do you have any suggestions on how to accomplish this using landmark registration?

What does “NewModel (stl)” contains? Does it have landmarks that you can touch with a tracked pointer? If yes, then you can collect points in “Marker6” coordinate system and mark the corresponding points on the model (“NewModel” coordinate system) and landmark registration computes NewModelToMarker6Transform.

In general, if you name coordinate systems and transforms consistently then the you it is much easier to see what is the correct solution:

- TrackerToRas
    - Marker8ToTracker
      - NeedleTipToNeedle
        - NeedleModel_Needle
    - Marker6ToTracker
      - GuideToMarker6
        - NewModel_Guide
- CTData_Ras

A post was split to a new topic: Bone model registration for navigation