5. Caveats
5.1. Missing features
We only support STL and OBJ meshes for the
visualdefined in the URDF. If anyvisualis defined using ageometry(sphere, box…) or another mesh format, it will not be displayed in SlicerROS namespaces are not supported yet. The current implementation allows multiple nodes but doesn’t provide a parameter to set the ROS namespace. Let us know if this is something you need.
The following ROS functionalities are missing:
Services (coming soon)
Parameter server (
vtkMRMLROS2ParameterNodeonly works as a client)
The current implementation assumes that all ROS2 nodes (
vtkMRMLROS2NodeNode) added to the scene should be spun by the module’s logic. This doesn’t provide an option for users to control how their ROS2 nodes spin (including rate).Saving and reloading the scene as a MRML scene has not been extensively tested and might not work.
5.2. Compiling 3D Slicer extensions
The 3D Slicer extension wizard is unfortunately not available when you compile Slicer from source. Therefore, if you want to use another extension, you will need to compile it on your machine.
Here is an example for SlicerIGT (a module that supports pivot calibration, point-to-point registration, etc.). Note that SlicerIGT has a dependency of SlicerIGSIO so we will build this too.
git clone https://github.com/SlicerIGT/SlicerIGT.git
mkdir SlicerIGT-build
git clone https://github.com/IGSIO/SlicerIGSIO.git
mkdir SlicerIGSIO-build
cd SlicerIGSIO-build
cmake ../SlicerIGSIO -DSlicer_DIR:PATH=/home/your_user_name_here/something_something/Slicer-SuperBuild-Debug/Slicer-build/
make
cd ../
cd SlicerIGT-build
cmake ../SlicerIGT -DSlicer_DIR:PATH=/home/your_user_name_here/something_something/Slicer-SuperBuild-Debug/Slicer-build/ \
-DSlicerIGSIO_DIR:PATH=/home/your_user_name_here/something_something/SlicerIGSIO-build/inner-build/
make
After the extensions are built, open 3D Slicer and press “Edit” in the
top left of the window, then “Applicaton settings”. A popup will come
up and you need to click the “Modules” menu within the popup. In the
space that says additional module paths you can press “Add” and enter
the path to the modules you just build
(ie. /home/your_user_name_here/something_something/SlicerIGSIO-build/inner-build/lib/Slicer5.x/qt-loadable-modules
and
/home/your_user_name_here/something_something/SlicerIGSIO-build/lib/Slicer5.x/qt-loadable-modules
and
/home/your_user_name_here/something_something/SlicerIGSIO-build/lib/Slicer5.x/qt-scripted-modules). Not
every extension will have loadable and scripted modules like SlicerIGT
does. After you have added these paths, restart Slicer and you should
now have access to the modules.