The up-to-date version sits at https://github.com/M2-TE/chad_bench, which uses ros2 humble instead of ros1 noetic and can run outside of docker containers.
TSDF Slam using CHAD TSDF as its mapping backend
Noetic Slam was built to provide a testbed for comparison between CHAD TSDF, Voxblox, VDBFusion and Octomap. It runs within a docker container and therefore requires no dependencies, apart from docker itself. Scripts are provided to ease usage of pointcloud recording and playback, as well as registration and map writes.
The scripts are mainly tailored towards Ouster scanners, but should work with other setups that provide pointcloud and IMU topics.
Build and launch the docker container. The parameter allows passing through a GPU for rendering.
Pick one:
bash scripts/docker-run.sh none
bash scripts/docker-run.sh integrated
bash scripts/docker-run.sh nvidia
Once the container is up and running, three separate consoles are needed. They are not required to be run within a console attached to the docker container.
DLIO (Direct LiDAR-Inertial Odometry) is used for registration. Topics can be adjusted either in the dockerfile within the project root or in the DLIO launch script itself.
bash scripts/dlio-launch.sh
The mapping node will use one of the mapping backends of choice using registered points from DLIO. Adjust MAP_BACKEND_IDX in tsdf_map_node.cpp to choose a specific backend:
- 0: CHAD TSDF
- 1: Octomap
- 2: Voxblox
- 3: VDBFusion
rosrun tsdf_map tsdf_map_node
Once the DLIO and mapping nodes are running, replay or stream a pointcloud and IMU topic; this example shows three ways using either an Ouster or generic bagfile.
bash scripts/ouster-replay.sh bags/<bagfile>
bash scripts/ouster-stream.sh bags/<bagfile>
rosbag replay bags/<bagfile>
Jan Kuhlmann
- 0.1
- Initial Release