Introduction and Acknowledgements
This work is supported by NA-MIC, NCIGT, and the Slicer Community.
This project is supported by National Institute of Health (5P01CA067165, 5R01CA124377, 5R01CA138586, 2R44DE019322, 7R01CA124377, 5R42CA137886, 8P41EB015898).
TrackerStabilizer module allows to output a filtered transform node based on an tracker input (transform node). Tracking sensors are particularly usefull to track surgical tools, robots, patient motion, etc... . However, data imported in 3D Slicer from these devices are often noisy. To reduce the noise and smoothly control objects, such as 3D Slicer camera, the TrackerStabilizer module will apply a low-pass filter on input data. The cut-off frequency (i.e. the smoothing parameter) is adjustable by the user. It is important to notice that filters induce delay, and the smoother the motion is, the bigger the delay between the raw data and the filtered position will be.
The TrackerStabilizer module could be used in any situation requiring stable tracking data and not requiring a "real-time" information. Indeed, applying a filter on raw data will induce a delay (depending on choosen parameters) on the filtered position/orientation. An example could be to drive Slicer's virtual camera. Having some noise on the transformation driving the camera will cause the camera to "shake" which could be really distracting and uncomfortable to look at. By filtering this raw data, camera motion is smoothed.
Panels and their useThe GUI of the TrackerStabilizer module contains 4 elements:
- Input Transform. This is the raw data, usually raw tracker data, represented by a vtkMRMLLinearTransformNode
- Output Transform. This is the filtered transform represented also by a vtkMRMLLinearTransformNode. This node can be created directly from the list
- Filter checkbox. This checkbox turn on/off the filtering
- Smoothing slider. This slider control the smoothing parameter. In the left, smoother, with relatively important delay. In the right, faster (almost no delay), but noisier.
Information for Developers
|Section under construction.|
This module is for now only a low-pass filter, but in the futur, several filters would be implemented to let the choice to the user.
Source code: https://github.com/lchauvin/Slicer-TrackerStabilizer