The OctoMap library implements a 3D occupancy grid mapping approach, providing data structures and mapping algorithms. The map implementation is based on an octree.
- Authors: Kai M. Wurm and Armin Hornung
- License: BSD
Documentation
General information about OctoMap is available at http://octomap.github.com and in the publication "OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees" by A. Hornung, K. M. Wurm, M. Bennewitz, C. Stachniss, and W. Burgard (Autonomous Robots Journal, 2013).
BibTeX:
@ARTICLE{hornung13auro,
author = {Armin Hornung and Kai M. Wurm and Maren Bennewitz and Cyrill
Stachniss and Wolfram Burgard},
title = {{OctoMap}: An Efficient Probabilistic {3D} Mapping Framework Based
on Octrees},
journal = {Autonomous Robots},
year = 2013,
url = {http://octomap.github.com},
doi = {10.1007/s10514-012-9321-0},
note = {Software available at \url{http://octomap.github.com}}
}Please cite our paper if you use OctoMap in your research.
Doxygen documentation based on the latest OctoMap release is available at online.
Up to ROS electric, the octomap package contained in the octomap_mapping stack provides the OctoMap library by downloading a released tarball. Since fuerte, this was replaced with a regular library (see below).
If you want to use OctoMap in ROS, octomap_ros and octomap_msgs provide messages, wrappers and conversion methods. octomap_server provides map building and serving capabilities. A visualization tool is available at octovis.
Using OctoMap (Fuerte and later)
Run
sudo apt-get install ros-fuerte-octomap
to install OctoMap as stand-alone libraries with no ROS dependencies (so the package can also be used in a non-ROS setting). For ROS groovy, run
sudo apt-get install ros-groovy-octomap
This means that you compile against OctoMap without requiring any ROS-specific build tools or catkin macros (in fact, they won't work). For convenience, the system install includes CMake config files for easily finding and configuring OctoMap in your CMakeLists.txt using the regular find_package() macro:
find_package(octomap REQUIRED)
include_directories(${OCTOMAP_INCLUDE_DIRS})
link_libraries(${OCTOMAP_LIBRARIES})(Add link_directories(${OCTOMAP_LIBRARY_DIRS}) only if required - usually it's not needed).
Finally, add to you package.xml (groovy and later):
<build_depend>octomap</build_depend> <run_depend>octomap</run_depend>
For fuerte, instead add <rosdep name="octomap" /> to stack.xml).
Report a Bug
Report bugs or request features on GitHub. For questions and discussions, use the mailing list at http://groups.google.com/group/octomap






