Home

Awesome

volumetric_mapping

A repository for 3D volumetric (occupancy) maps, providing a generic interface for disparity map and pointcloud insertion, and support for custom sensor error models.

Packages

volumetric_map_base - base class/package that all volumetric maps should inherit from, contains methods to handle ROS disparity maps and pointclouds.

volumetric_msgs - collection of messages for interacting with various maps.

octomap_world - an octomap-based volumetric representation, both with a library and a stand-alone ROS node.

Dependencies

In addition to ros-indigo-desktop-full, please install:

sudo apt-get install ros-indigo-octomap-mapping

And the following packages, which can be done all at once with the script below:
minkindr
minkindr_ros
eigen_catkin
eigen_checks
glog_catkin
gflags_catkin

cd ~/catkin_ws/src/
wstool init
wstool set catkin_simple       --git https://github.com/catkin/catkin_simple.git
wstool set eigen_catkin        --git https://github.com/ethz-asl/eigen_catkin.git
wstool set eigen_checks        --git https://github.com/ethz-asl/eigen_checks.git
wstool set gflags_catkin       --git https://github.com/ethz-asl/gflags_catkin.git
wstool set glog_catkin         --git https://github.com/ethz-asl/glog_catkin.git
wstool set minkindr            --git https://github.com/ethz-asl/minkindr.git
wstool set minkindr_ros        --git https://github.com/ethz-asl/minkindr_ros.git
wstool set volumetric_mapping  --git https://github.com/ethz-asl/volumetric_mapping.git
wstool update

On Mac OS X, see the mav_tools Wiki instructions.

Libraries

OctomapWorld - general library for handling insertion of pointclouds, can be run outside of a ROS node, and takes parameters as a struct.

OctomapManager - inherits from OctomapWorld, essentially a ROS wrapper for it. Reads parameters in from the ROS parameter server.

Nodes

octomap_manager

Listens to disparity and pointcloud messages and adds them to an octomap.

Parameters

For other parameters, see octomap_world.h.

Subscribed Topics

Published Topics

Services

Running

Run an octomap manager, and load a map from disk, then publish it in the map tf frame:

rosrun octomap_world octomap_manager _tf_frame:=map
rosservice call /octomap_manager/load_map /home/helen/data/my_awesome_octomap.bt
rosservice call /octomap_manager/publish_all