ntnu-arl / mbplanner_ros

Motion-primitives Based Planner for Fast & Agile Exploration
BSD 3-Clause "New" or "Revised" License
305 stars 83 forks source link

mbplanner_ros

Install and run:

Select the mapping framework

The planner supports two mapping frameworks: Voxblox and Octomap

Voxblox

By default, the planner is compiled with Voxblox. Voxblox can be used with two mapping modes, Euclidean Signed Distance Fields (ESDF) and Truncated Signed Distance Fields (TSDF). By default TSDF is used in which the distance (to the closest occupied voxel) of a voxel is truncated to a fixed value.
In order to switch to ESDF make the following changes:
In the file planner_common/include/planner_common/map_manager_voxblox_impl.h comment the following line:

#define TSDF

In the file mbplanner/launch/mbplanner_m100_sim.launch comment the following line:

<remap from="global_planner_node/tsdf_map_in" to="mbplanner_node/tsdf_map_out"/>

Uncomment the following line:

<!-- <remap from="global_planner_node/esdf_map_in" to="mbplanner_node/esdf_map_out"/> -->

Octomap

To compile with Octomap, set the flag USE_OCTOMAP to 1:

catkin build -DCMAKE_BUILD_TYPE=Release -DUSE_OCTOMAP=1 mbplanner

Also change the config to Octomap in the mbplanner/launch/mbplanner_m100_sim.launch file Replace:

<arg name="map_config_file" default="$(arg voxblox_config_file)"/>

With:

<arg name="map_config_file" default="$(arg octomap_config_file)"/>

Tutorial:

You could find a short tutorial on the plannning algorithm and the overall architecture on our website: Link

Reference:

If you use this work in your research, please cite the following publication.

@inproceedings{mbplanner2020,
  title={Motion Primitives-based Agile Exploration Path Planning for Aerial Robotics},
  author={Dharmadhikari, Mihir and Dang, Tung and Solanka, Lukas and Loje, Johannes and Nguyen, Huan and Khedekar, Nikhil and Alexis, Kostas},
  booktitle={2020 IEEE International Conference on Robotics and Automation (ICRA)},
  year={2020},
  organization={IEEE}
}

Please contact us for any question: