Skip to content

Releases: OpenRoboTMS/SlicerRoboTMS

v1.0.0 — EMBC 2026

19 Apr 15:46

Choose a tag to compare

[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 STATUS messages
  • Registration — anatomical landmark-based MRI-to-patient registration using five predefined landmarks; reference point cloud transmitted to ROS via OpenIGTLink POLYDATA messages
  • 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 classes
  • BaseWidget — shared UI/timer base class providing a 30 Hz Qt timer and common widget lifecycle hooks
  • URDFParser — URDF-to-Slicer-scene loader that parses robot joint hierarchy and instantiates STL model nodes with correct transforms
  • LoggingUtils — per-module file and console logging with configurable log directory
  • PathSetup — runtime path resolution for models, URDFs, MRI data, and log directories
  • Config.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: TRANSFORM for spatial data, POLYDATA for geometric objects, STATUS for commands and readiness flags
  • Scene updates driven by a Qt timer at 30 Hz, matching optical tracking system refresh rates

Third-party submodules

Developer tooling

  • GitHub Actions CI: linting (flake8, pylint) and unit tests across Python 3.8–3.11
  • pre-commit hooks: Flake8, Pylint, trailing-whitespace removal, end-of-file normalisation, YAML validation, large-file guard
  • pyproject.toml with full package metadata and PyPI classifiers