A docker container with ROS2 and a ROS2 Package for LiDAR semantic segmentation

Read the DATA.md to learn how to configure the demonstration system.
We created an asset pack containing meshes, sensor recordings and pretrained models. You can download the assets from Zenodo.
Caution
The content of the asset pack is not provided by Apache 2.0 License.
The project is designed to be delevoped within vs-code IDE using remote container development.
# Enable xhost in the terminal
sudo xhost +
# Add user to environment
sh setup.sh
# Build the image from scratch using Dockerfile, can be skipped if image already exists or is loaded from docker registry
docker compose build --no-cache
# Start the container
docker compose up -d
# Stop the container
docker compose downCaution
xhost + is not a save operation!
Hit menu item "Terminal" and chose "Run Task...": -> execute the task "rviz start" -> Rviz window opens
Hit menu item "Terminal" and chose "Run Task...": -> execute the task "SemanticLiDAR start" -> Rviz window shows the output of the semantic node
In VS Code open two terminals:
# Terminal 1, start RVIZ
appuser@yourpc:~/ros2_ws$ source /opt/ros/humble/setup.bash
appuser@yourpc:~/ros2_ws$ source install/local_setup.bash
appuser@yourpc:~/ros2_ws$ ros2 run rviz2 rviz2 -d semantic_lidar.rvizsemantic
# Terminal 2, start SemanticLiDAR Node
appuser@yourpc:~/ros2_ws$ source /opt/ros/humble/setup.bash
appuser@yourpc:~/ros2_ws$ source install/local_setup.bash
appuser@yourpc:~/ros2_ws$ colcon build
appuser@yourpc:~/ros2_ws$ ros2 run semantic_lidar_package semantic_lidar_nodeOS: Ubuntu 22.04.4 LTS x86_64
Host: B550 AORUS ELITE
Kernel: 6.8.0-49-generic
CPU: AMD Ryzen 9 3900X (24) @ 3.800G
GPU: NVIDIA GeForce RTX 3090
Memory: 32031MiB [INFO] [1737031067.198220009]: Cycle Time Read Data: 3332684 nanoseconds, 3359665 nanoseconds
[INFO] [1737031067.212568632]: Cycle Time Inference: 13737361 nanoseconds 17725170 nanoseconds
[INFO] [1737031067.214456973]: Cycle Time Vis: 1351017 nanoseconds 19665629 nanoseconds
[INFO] [1737031067.229298125]: Cycle Time Publish Image: 14433504 nanoseconds 34605027 nanoseconds
[INFO] [1737031067.237311043]: Cycle Time Publish PC: 7383180 nanoseconds 42416655 nanoseconds
Check out the following repo if you want to learn how the models are trained: https://github.com/kav-institute/SemanticLiDAR
Caution
The SemanticLiDAR-ROS repo and its network defintion is behind the main branch of SemanticLiDAR. Use release v.1.2.0
This project is licensed under the Apache 2.0 License - see the LICENSE file for details. Note that the data, assets, and models are provided by a different licence!
@misc{reichert2025realtimesemanticsegmentation,
title={Real Time Semantic Segmentation of High Resolution Automotive LiDAR Scans},
author={Hannes Reichert and Benjamin Serfling and Elijah Schüssler and Kerim Turacan and Konrad Doll and Bernhard Sick},
year={2025},
eprint={2504.21602},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2504.21602},
}
@dataset{reichert_2025_16909829,
author = {Reichert, Hannes},
title = {Asset Pack For SemanticLiDAR ROS2 Demonstration
System
},
month = aug,
year = 2025,
publisher = {Zenodo},
doi = {10.5281/zenodo.16909829},
url = {https://doi.org/10.5281/zenodo.16909829},
}
Made with contrib.rocks.