Releases: OpenRoboTMS/SlicerRoboTMS
Releases · OpenRoboTMS/SlicerRoboTMS
v1.0.0 — EMBC 2026
[1.0.0] — 2026-04-17
Initial public release of SlicerRoboTMS, accompanying the paper accepted at EMBC 2026:
Bai, W., Guo, Y., Basu, B., Weightman, A., & Li, Z. (2026). SlicerRoboTMS: An Open-Source 3D Slicer Extension for Robot-Assisted Transcranial Magnetic Stimulation. IEEE EMBC 2026.
Added
Extension modules
- Calibration — hand-eye calibration between the Intel RealSense D455 tracking camera and the Franka Research 3 robot base using AprilTag fiducial markers; calibration command/status exchange via OpenIGTLink
STATUSmessages - Registration — anatomical landmark-based MRI-to-patient registration using five predefined landmarks; reference point cloud transmitted to ROS via OpenIGTLink
POLYDATAmessages - Navigation — real-time MRI-guided neuronavigation; user-defined markup plane on MRI volume used to compute and transmit a coil target pose to the robot; live MRI slice views track head movement at 30 Hz
Shared infrastructure
BaseLogic— shared OpenIGTLink connection management, scene initialisation, and state-polling base class for all module logic classesBaseWidget— shared UI/timer base class providing a 30 Hz Qt timer and common widget lifecycle hooksURDFParser— URDF-to-Slicer-scene loader that parses robot joint hierarchy and instantiates STL model nodes with correct transformsLoggingUtils— per-module file and console logging with configurable log directoryPathSetup— runtime path resolution for models, URDFs, MRI data, and log directoriesConfig.py— central configuration file for OpenIGTLink connection settings, model file names, update rates, and visualisation colours
Assets
- Franka Research 3 link mesh files (
models/fr3/) and full robot URDF (urdfs/fr3.urdf) - TMS coil, fixture, registration pen, and RealSense D455 STL models (
models/) - Head phantom and MRI brain surface STL models (
models/) - Example MRI volume in NIfTI format (
mri_data/mri.nii)
Communication
- OpenIGTLink over TCP/IP (default port 18944) as the sole inter-layer protocol
- Three message types:
TRANSFORMfor spatial data,POLYDATAfor geometric objects,STATUSfor commands and readiness flags - Scene updates driven by a Qt timer at 30 Hz, matching optical tracking system refresh rates
Third-party submodules
- OpenIGTLink v3.0 (
94244fe) - ROS-IGTL-Bridge (
72c5930) - 3D Slicer v5.8.1 (
11eaf62) - franka_description v1.0.2 (
4b8948e)
Developer tooling
- GitHub Actions CI: linting (
flake8,pylint) and unit tests across Python 3.8–3.11 pre-commithooks: Flake8, Pylint, trailing-whitespace removal, end-of-file normalisation, YAML validation, large-file guardpyproject.tomlwith full package metadata and PyPI classifiers