Home

Awesome

c-blox

c_blox_new_small

A TSDF-based mapping library based on Voxblox. C-blox adds sub-mapping to voxblox with the aim of allowing large(r)-scale mapping in the presence of imperfect pose estimates.

Paper

If using c-blox for scientific publications, please cite the following paper, available here:

Alexander Millane, Zachary Taylor, Helen Oleynikova, Juan Nieto, Roland Siegwart and Cesar Cadena. "C-blox: A Scalable and Consistent TSDF-based Dense Mapping Approach." 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018.

@inproceedings{millane2018cblox,
  author={Millane, Alexander and Taylor, Zachary and Oleynikova, Helen and Nieto, Juan and Siegwart, Roland and Cadena, C{\'e}sar},
  booktitle={2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  title={C-blox: A Scalable and Consistent TSDF-based Dense Mapping Approach},
  year={2018}
}

Installation

C-blox extends the voxblox library and runs on ROS. The first step of installation is to setup a catkin workspace and install voxblox as per the instructions here.

Then Navigate to the catkin src space and clone c-blox; if you've installed in the default location and are using ssh keys for github:

cd ~/catkin_ws/src/
git clone git@github.com:ethz-asl/c-blox.git

Compile:

catkin build cblox_ros

You're done!

Example Usage

We include (at the moment) two examples with the c-blox package:

Kitti Dataset

In this example we create a cblox map using the lidar data and "ground-truth" pose estimates from the kitti dataset. This simple example demonstrates the creation and display of submaps using c-blox - because we use drift-free pose estimates (rather than a SLAM system), no submap correction is required/used.

The produced map, viewed in rviz:

c_blox_new_small

And under construction

c_blox_new_small

To run the example download a kitti raw dataset. To produce the map above, we ran the "2011_09_30_drive_0018" dataset under the catagory "residential". Convert the data to a rosbag using kitti_to_rosbag.

Then, with cblox_ros built and your workspace sourced, run cblox:

roslaunch cblox_ros run_kitti.launch dataset_path:=PATH_TO_YOUR_BAG

Rviz should start up and you should see the submaps start to appear, as in the animation above.