Skip to content

SLAMWang/3D_interpolation_vdbfusion_ros

Repository files navigation

Hi, this is the source code 1.0 of our submitted paper to TIM: Range Map Interpolation based 3D LiDAR Truncated Signed Distance Fields Mapping in Outdoor Environments.

We build our method on vdbfusion, which is an excellent baseline.

Here are some tips to use our code.

  1. if you want to know our algorithm, refer to VDBVolume_ros_kitti_maicity_new_final.cpp and VDBVolume_ros_ustc_final.cpp.
  2. If you want to run the code, there exist some absolute paths in our code, you should check and modify them according to yours.
  3. The steps to build the environment is the same to vdbfusion.
  4. Our code can be implemented on KITTI, Maicity, and our collected VLP-16 dataset.
  5. 'roslaunch vdbfusion_ros vdbfusion.launch config_file_name:=KITTI.yaml' is used to collect the lidar scans, then you should run "rosservice call /save_vdb_volume "path: '$Your saved map path$'", and the dense mapping process will be activated. "
  6. Notice that we use lidar range map projection, thus, when you use lidar sensors with differetn lines, you should change the corresponding parameters in imageprojection.cpp.

Any problem, please contact me via [email protected].

Notice that our paper is still under review. A more efficient version of our method will be relased after the paper is made decision.

The following is the readme of vdbfusion.

ROS-VDBFusion: Flexible and Efficient TSDF Integration

A ROS C++ wrapper to the vdbfusion library for flexible and efficient TSDF Integration

Installation

OpenVDB

# Install OpenVDB dependencies
sudo apt-get update && apt-get install --no-install-recommends -y \
    libblosc-dev \
    libboost-iostreams-dev \
    libboost-system-dev \
    libboost-system-dev \
    libeigen3-dev

# Install OpenVDB from source
git clone --depth 1 https://github.com/nachovizzo/openvdb.git -b nacho/vdbfusion && cd openvdb
mkdir build && cd build && cmake  -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DUSE_ZLIB=OFF .. &&  sudo make -j$(nproc) all install

VDBfusion

git clone --depth 1 https://github.com/PRBonn/vdbfusion.git && cd vdbfusion
mkdir build && cd build && cmake .. &&  sudo make -j$(nproc) all install

ROS

For now only ROS Noetic is supported.

As an extra dependency install: sudo apt install ros-noetic-tf2-sensor-msgs. On your catkin workspace, clone the vdbfusion_ros:

cd catkin_ws/src/
git clone https://github.com/PRBonn/vdbfusion_ros.git
catkin build

Usage

Configuration

  1. Create a config file compatible with your dataset and desired tsdf integration parameters using this template configuration
  2. The PointClouds should be a sensor_msgs/PointCloud2 message published on a custom topic name which needs to be specified in the config file
  3. The Transforms should be either a tf2_msgs/TFMessage or a geometry_msgs/TransformStamped. See the template configuration for more details
  4. The data can be published either through a rosbag file or directly from another ros node

Launch

roslaunch vdbfusion_ros vdbfusion.launch config_file_name:=<insert config file name here> path_to_rosbag_file:=<insert path to rosbag file here>

Save the VDB Grid and Extract Triangle Mesh

rosservice call /save_vdb_volume "path: '<insert filename and path to save the volume and mesh>'"    

Dataset Examples

Download the dataset rosbag files from the respective links

  • Convert the dataset into a rosbag file using kitti2bag
  • Use the sample config file provided for this dataset

Run the launch command providing config file and rosbag path corresponding to the dataset.

Use the rosservice to save the VDB volume and mesh

Citation

If you use this library for any academic work, please cite the original paper.

@article{vizzo2022sensors,
  author         = {Vizzo, Ignacio and Guadagnino, Tiziano and Behley, Jens and Stachniss, Cyrill},
  title          = {VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data},
  journal        = {Sensors},
  volume         = {22},
  year           = {2022},
  number         = {3},
  article-number = {1296},
  url            = {https://www.mdpi.com/1424-8220/22/3/1296},
  issn           = {1424-8220},
  doi            = {10.3390/s22031296}
}

Others ROS wrappers around VDBFusion

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages