Package Summary

A path planner library, that searches a path from robot position to given goal on generalized Voronoi diagram (GVD) which is made up of regions around obstacles on costmap.

Overview

Someone may want to search path which keeps robot away from the obstacles instead of searching shortest path, as well-known A*-planners do.

voronoi_planner.jpg

voronoi_planner uses dynamicvoronoi package to make generalized Voronoi diagrams (GVD) which is made up of regions around obstacles on costmap.

Then it searches a path from robot position to given goal on GVD.

VoronoiPlanner

The voronoi_planner::VoronoiPlanner object exposes its functionality as a C++ ROS Wrapper. It operates withing a ROS namespace (assumed to be name from here on) specified on initialization. It adheres to the nav_core::BaseGlobalPlanner interface found in the nav_core package.

ROS Parameters

~<name>/publish_voronoi_grid (bool, default: true)

  • Publish Voronoi grid as costmap.
~<name>/smooth_path (bool, default: true)
  • Smooth path.
~<name>/weight_data (double, default: 0.5)
  • Weight of data when smoothing path.
~<name>/weight_smooth (double, default: 0.3)
  • Weight of smoothing when smoothing path.

Usage example

Planner was tested using husky_gazebo, husky_navigation and husky_viz. To use voronoi_planner you need to change base_global_planner of move_base in such a way:

    <arg name="base_global_planner" default="voronoi_planner/VoronoiPlanner"/>

Other parameters changed were global_costmap/width and global_costmap/height (in move_base.launch from husky_navigation):

    <param name="global_costmap/width" value="35.0" if="$(arg no_static_map)"/>
    <param name="global_costmap/height" value="35.0" if="$(arg no_static_map)"/>

Path generated is published in ~<name>/plan topic. Voronoi grid map is published (if publish_voronoi_grid parameter is true) in ~<name>/voronoi_grid. You should configure RViz to view it.

husky_navigation/Tutorials/Husky Move Base Demo may be useful.

Wiki: voronoi_planner (last edited 2015-09-08 18:58:46 by RomanFedorenko)