This package is developed based on the package or_octomap, which can be used to give octomap support to OpenRAVE. General information about OctoMap is available here. More information about the octomap pipeline in ROS can be found at http://wiki.ros.org/octomap.
or_octomap_plugin documentation: https://crigroup.github.io/or_octomap_plugin/Once the camera is launched and the point cloud topic is being published, the octomap can be created by running:
In order to successfully create the octomap, some command line parameters need to be set correctly:
Some test results working with the ensenso camera, can be found at wiki/Test-Results
When the octomap is created, there is some annoying info Writing 181520 nodes to output stream... keep publishing, which could not be stopped from the command or code. The most efficient way to stop it is to add the following line #define NDEBUG to the file /opt/ros/kinetic/include/octomap/octomap_types.h, which would look like:
When or_octomap is created and enabled, or_octomap_checker will be set as the collision checker of OpenRAVE. When this is done, all collision checks get tested against the octomap before they are tested against other OpenRAVE kinbodies. In experiments, fcl collision checker is still at least ten times faster than the or_octomap_checker, therefore it is recommanded to load the generated octomap mesh file into OpenRAVE, and use fcl to make collision check.