Please change branch to Bunker-DVI-Dataset-reg-1 for quick experiment.
This small toolset allows to integrate SLAM solution provided by genz-icp with HDMapping. This repository contains ROS 2 workspace that :
- submodule to tested revision of GenZ ICP
- a converter that listens to topics advertised from odometry node and save data in format compatible with HDMapping.
sudo apt install -y nlohmann-json3-devClone the repo
mkdir -p /test_ws/src
cd /test_ws/src
git clone https://github.com/marcinmatecki/GenZ-ICP-to-HDMapping.git --recursive
cd ..
colcon buildPrepare recorded bag with estimated odometry:
In first terminal record bag:
ros2 bag record /genz/local_map /genz/odometrystart odometry:
cd /test_ws/
source ./install/setup.sh # adjust to used shell
ros2 launch genz_icp odometry.launch.py topic:=<topic_name>
ros2 bag play <rosbag_file_name>.db3cd /test_ws/
source ./install/setup.sh # adjust to used shell
ros2 run genz-icp-to-hdmapping listener <recorded_bag> <output_dir>Download the dataset from NTU-VIRAL For this example, download eee_03.
rosbags-convert --src {your_downloaded_bag} --dst {desired_destination_for_the_converted_bag}ros2 bag record /genz/local_map /genz/odometry -o {your_directory_for_the_recorded_bag}cd /test_ws/
source ./install/setup.sh # adjust to used shell
ros2 launch genz_icp odometry.launch.py topic:=/os1_cloud_node1/points
ros2 bag play <rosbag_file_name>.db3In the terminal where the ros record is, interrupt the recording by CTRL+C
Do it also in ros launch terminal by CTRL+C.cd /test_ws/
source ./install/setup.sh # adjust to used shell
ros2 run genz-icp-to-hdmapping listener <recorded_bag> <output_dir>To run the complete pipeline using Docker:
./build-docker.sh./run_docker_convert_to_ros2.shNote: Only run this step if your dataset contains ROS1 .bag files that need to be converted to ROS2 format.
After conversion:
data
└── ConSLAM
├── sequence1
│ ├── converted
│ │ ├── converted.db3
│ │ └── metadata.yaml
│ ├── Copy of recording.bag
├── sequence2
│ ├── converted
│ │ ├── converted.db3
│ │ └── metadata.yaml
│ ├── Copy of recording.bag
./run_all_sequences.shThis script runs the GenZ-ICP odometry processing for all sequences using Docker Compose.
./run_docker_convert_result_to_hdmapping.shThis script converts the recorded GenZ-ICP results to HDMapping-compatible format for all processed sequences.
data
└── ConSLAM
├── sequence1
│ ├── converted
│ │ ├── converted.db3
│ │ └── metadata.yaml
│ ├── Copy of recording.bag
│ ├── results-genz-icp
│ │ └── rosbag2_2025_10_20-21_08_46
│ │ ├── hdmapping
│ │ └── rosbag2_2025_10_20-21_08_46_0.mcap
├── sequence2
│ ├── converted
│ │ ├── converted.db3
│ │ └── metadata.yaml
│ ├── Copy of recording.bag
│ ├── results-genz-icp
│ │ └── rosbag2_2025_10_20-21_16_05
│ │ ├── hdmapping
│ │ └── rosbag2_2025_10_20-21_16_05_0.mcap