ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

For anyone interested in writing a robust global planner plug-in for full coverage, the algorithm presented in the introduction of this published paper works well:

(https://scholar.google.com/scholar?q=planning+paths+of+complete+coverage+of+a+unstructured+enviroment+by+a+mobile&btnG=&hl=en&as_sdt=0%2C43)

The global planner algorithm steps are: 1) Use costmap2d (costmap_->getCost(x,y) in c++) to divide the map into occupied and free cells 2) Identify the closest cells to the desired start and end pose 3) Use a wavefront algorithm to assign the distance transform value at each cell 4) Iterate through these cells in a path of slowest decent as described in the paper

Next, you can implement the teb_local_planner for path following, but be sure to shorten the prune path value to something like 0.1m (found in teb_local_planner_ros.h). Otherwise the optimizer gets stuck. Id add a picture but i dont have enough karma...

For anyone interested in writing a robust global planner plug-in for full coverage, the algorithm presented in the introduction of this published paper works well:

(https://scholar.google.com/scholar?q=planning+paths+of+complete+coverage+of+a+unstructured+enviroment+by+a+mobile&btnG=&hl=en&as_sdt=0%2C43)

The global planner algorithm steps are: 1) Use costmap2d (costmap_->getCost(x,y) in c++) to divide the map into occupied and free cells 2) Identify the closest cells to the desired start and end pose 3) Use a wavefront algorithm to assign the distance transform value at each cell cell

EDIT: This image shows the full coverage path in yellow covering most of the willow garage map. I have include the z-axis to shed some light on the algorithm. the red points represent the distance transform cost of every free cell (higher=more cost), and the planner plans the slowest decent down this gradient funnel. Note the lowest area is the goal point. 4) Iterate through these cells in a path of slowest decent as described in the paper

Next, you can implement the teb_local_planner for path following, but be sure to shorten the prune path value to something like 0.1m (found in teb_local_planner_ros.h). Otherwise the optimizer gets stuck. Id add a picture but i dont have enough karma...

image description

For anyone interested in writing a robust global planner plug-in for full coverage, the algorithm presented in the introduction of this published paper works well:

(https://scholar.google.com/scholar?q=planning+paths+of+complete+coverage+of+a+unstructured+enviroment+by+a+mobile&btnG=&hl=en&as_sdt=0%2C43)

The global planner algorithm steps are: 1) Use costmap2d (costmap_->getCost(x,y) in c++) to divide the map into occupied and free cells 2) Identify the closest cells to the desired start and end pose 3) Use a wavefront algorithm to assign the distance transform value at each cell

EDIT: This image shows the full coverage path in yellow covering most of the willow garage map. I have include included the z-axis to shed some light on the algorithm. the red points represent the distance transform cost of every free cell (higher=more cost), and the planner plans the slowest decent down this gradient funnel. Note the lowest area is the goal point. 4) Iterate through these cells in a path of slowest decent as described in the paper

Next, you can implement the teb_local_planner for path following, but be sure to shorten the prune path value to something like 0.1m (found in teb_local_planner_ros.h). Otherwise the optimizer gets stuck. Id add a picture but i dont have enough karma...

image description

For anyone interested in writing a robust global planner plug-in for full coverage, the algorithm presented in the introduction of this published paper works well:

(https://scholar.google.com/scholar?q=planning+paths+of+complete+coverage+of+a+unstructured+enviroment+by+a+mobile&btnG=&hl=en&as_sdt=0%2C43)

The global planner algorithm steps are: 1) Use costmap2d (costmap_->getCost(x,y) in c++) to divide the map into occupied and free cells 2) Identify the closest cells to the desired start and end pose 3) Use a wavefront algorithm to assign the distance transform value at each cell

4) Iterate through these cells in a path of slowest decent as described in the paper

Next, you can implement the teb_local_planner for path following, but be sure to shorten the prune path value to something like 0.1m (found in teb_local_planner_ros.h). Otherwise the optimizer gets stuck. Id add a picture but i dont have enough karma...

EDIT: Thank you for the karma! This image shows the full coverage path in yellow covering most of the willow garage map. I have included the z-axis to shed some light on the algorithm. the red points represent the distance transform cost of every free cell (higher=more cost), and the planner plans the slowest decent down this gradient funnel. Note the lowest area is the goal point. 4) Iterate through these cells in a path of slowest decent as described in the paper

Next, you can implement the teb_local_planner for path following, but be sure to shorten the prune path value to something like 0.1m (found in teb_local_planner_ros.h). Otherwise the optimizer gets stuck. Id add a picture but i dont have enough karma...

image description

For anyone interested in writing a robust global planner plug-in for full coverage, the algorithm presented in the introduction of this published paper works well:

(https://scholar.google.com/scholar?q=planning+paths+of+complete+coverage+of+a+unstructured+enviroment+by+a+mobile&btnG=&hl=en&as_sdt=0%2C43)

The global planner algorithm steps are: 1) Use costmap2d (costmap_->getCost(x,y) in c++) to divide the map into occupied and free cells 2) Identify the closest cells to the desired start and end pose 3) Use a wavefront algorithm to assign the distance transform value at each cell

cell 4) Iterate through these cells in a path of slowest decent as described in the paper

Next, you can implement the teb_local_planner for path following, but be sure to shorten the prune path value to something like 0.1m (found in teb_local_planner_ros.h). Otherwise the optimizer gets stuck. Id add a picture but i dont have enough karma...

EDIT: Thank you for the karma! This image shows the full coverage path in yellow covering most of the willow garage map. I have included the z-axis to shed some light on the algorithm. the red points represent the distance transform cost of every free cell (higher=more cost), and the planner plans the slowest decent down this gradient funnel. Note the lowest area is the goal point.

image description