3D Collision Avoidance for Navigation in Unstructured Environments using OctoMap

This Spring, Armin Hornung from the Humanoid Robots Lab at University of Freiburg in Germany visited us to work on 3D representations for manipulation and navigation in unstructured environments.

Armin made major improvements to the OctoMap 3D mapping library. Scan insertions are now twice as fast as before for real-time map updates and tree traversals are now possible in a flexible and efficient manner using iterators. The new ROS interface provides conversions from most common ROS datatypes, and Octomap server was updated for incremental 3D mapping.

Armin also worked on creating a dynamically updatable collision map for tabletop manipulation. The collider package uses OctoMap to provide map updates from laser and dense stereo sensors at a rate of about 10Hz.

Finally, Armin extended the ideas from collider to allow for navigation in complex three-dimensional environments. The 3d_navigation stack enables navigation with untucked arms for various mobile manipulation tasks such as docking the robot at a table, carrying trays, or pick and place tasks. The full kinematic configuration of the robot is checked against 3D collisions in a dynamically-built OctoMap in an efficient manner. The new planners based on SBPL exploit the holonomic movements of the base.

For more details, please see Armin's presentation below (download PDF) or check out octomap_mapping, collider, or the 3d_navigation stack at ROS.org. There is also a presentation and demo of the system scheduled at the PR2 workshop coming up at IROS 2011. Armin's improvements to OctoMap are part of OctoMap 1.2 as well as the latest octomap_mapping stack.