This repository represents the official implementation of the paper:
Yue Pan, Yves Kompis, Luca Bartolomei, Ruben Mascaro, Cyrill Stachniss, Margarita Chli
ETH Zurich | University of Bonn
1-min demo video | 7-min presentation | paper
Voxfield is an improved version of the volumetric mapping framework Voxblox on both the mapping accuracy and efficiency. Voxfield is heavily based on the original Voxblox implementation, with the additional capacity of a non-projective TSDF integration and an efficient ESDF integration based on TSDF map. The constructed TSDF and ESDF map can be used for 3D reconstruction and robot path planning in real-time.
This repository also provides the implementation of other state-of-the-art methods (Voxblox, FIESTA, EDT) on this task. A comparison of these methods' workflow are shown below.
Voxfield can be seamlessly integrated into those projects that originally use Voxblox as their volumetric mapping backbone (Cblox, Voxgraph, Kimera, etc). To make Voxfield directly compatible to those projects, we keep the name of our package as voxblox. In addition, we provide an example on a multi-resolution panoptic mapping framework Panmap for high-fidelity large-scale semantic reconstruction.
If you have installed ROS, set up the catkin workspace and the SSH key for github, you can use the following commands to install Voxfield:
cd ~/catkin_ws/src/
git clone git@github.com:VIS4ROB-lab/voxfield.git
wstool init . ./voxfield/voxfield_ssh.rosinstall # If you created a new workspace
wstool merge -t . ./voxfield/voxfield_ssh.rosinstall # If you use an existing workspace
wstool update
And then compile Voxfield with:
cd ~/catkin_ws/src/
catkin build voxblox_ros
To avoid the potential conflict, if the original voxblox was installed, it's better to remove voxblox from catkin_ws/src
.
For more details, please follow these instructions.
np_tsdf_server
and voxfield_server
. tsdf_server
and voxblox_server
. fiesta_server
.voxedt_server
.wget http://robotics.ethz.ch/~asl-datasets/iros_2017_voxblox/data.bag
wget http://robotics.ethz.ch/~asl-datasets/iros_2017_voxblox/voxblox_cow_extras.zip
bag_file
path in the launch files ./voxblox_ros/launch/voxfield_launch/cow_voxfield.launch
to the path storing the Cow & Lady bag file.roslaunch voxblox_ros cow_voxfield.launch
bag_file
path in the launch files ./voxblox_ros/launch/voxfield_launch/kitti_voxfield.launch
to the path storing the KITTI bag file.roslaunch voxblox_ros kitti_voxfield.launch
wget https://www.ipb.uni-bonn.de/html/projects/mai_city/mai_city.tar.gz
tar -xvf mai_city.tar.gz
bag_file
path in the launch files ./voxblox_ros/launch/voxfield_launch/mai_voxfield.launch
to the path storing the MaiCity bag file.roslaunch voxblox_ros mai_voxfield.launch
To change the mapping and visualization parameters such as voxel size and truncation distance, please configure the .yaml
files under ./voxblox_ros/cfg/param/
folder.
For the comparison with other state-of-the-art methods (Voxblox, FIESTA, EDT), set the bag_file
path in the corresponding launch file [dataset]_[method].launch
and launch it.
To evaluate the TSDF, mesh and ESDF mapping quality, one first need to use the ros service to save the corresponding map. You can configure the data path and evaluation setup here and conduct the evaluation by launching here. You may also check the evaluation metrics here.
Please check these instructions and the repository mav_voxblox_planning.
If you find this code useful for your work or use it in your project, please consider citing the paper:
@inproceedings{pan2022iros,
title={Voxfield: Non-Projective Signed Distance Fields for Online Planning and 3D Reconstruction},
author={Yue Pan and Yves Kompis and Luca Bartolomei and Ruben Mascaro and Cyrill Stachniss and Margarita Chli},
booktitle={Proceedings of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)},
year={2022}
}
We thanks greatly for the authors of the following opensource projects: