We are working on tracking images with Electromagnetic Tracker (Polhemus Fastrak) using PLUS/Slicer. We have position data from the emt and images from ultrasound system:
Q How do we obtain real-time transform matrices from the tracker ?
I am actually quite curious about that system. Can you get coordinates (e.g., as pointLists, or continuous curves) from that device directly into Slicer?
Yes, you can add the device to slicer using SlicerIGT and get the coordinate values from the EMT in real-time. These tutorials might be helpful: User tutorial | SlicerIGT
I’m not aware of an OpenIGTLink interface for Polhemus. Since cost of development, testing, optimization, maintenance, and support of a new interface would be higher than the cost of an already supported electromagnetic tracker (such as NDI Aurora or Ascension), probably most people end up buying an already supported tracker instead. Surgical navigation users may also end up choosing NDI instead of Polhemus, because NDI appears to be used in many more clinical products.
If somebody already has several Polhemus tracking systems or wants to use some unique characteristics of these systems then it would worth implementing an OpenIGTLink interface. Maybe a quick&dirty bridge can be put together in Python, which converts Polhemus VRPN messages (received by some VRPN Python package) to OpenIGTLink messages (sent by pyigtl).