nobleo / full_coverage_path_planner

Full coverage path planning provides a move_base_flex plugin that can plan a path that will fully cover a given area
Apache License 2.0
547 stars 156 forks source link

How to get the coverage plan for a particular polygonal area on the global map, instead of the whole global map. #5

Closed amyjohansson1994 closed 3 years ago

amyjohansson1994 commented 3 years ago

What params to specify so as to get coverage of only some particular zone on the map.

Thank you

Timple commented 3 years ago

Unfortunately there is no such feature yet. Hence the full_ in the name :wink: One option would be to enclose this area in the costmap so that the robot has no way out. In that case it should stay within the bounds.

amyjohansson1994 commented 3 years ago

@Timple Thanks for the help.

Trying to interpret your suggestion, I Understand that I need to have a script/package which will enclose the particular zone on the map from /map topic and publish it on another costmap2d topic. Then I need to specify this costmap2d topic to the full_coverage_path_planner package.

I would really appreciate if you can correct me or point me to a resource where I can try figure it out myself.

Timple commented 3 years ago

I meant enclosing a room in your costmap. Something like this but then with the 'door' closed:

image

If the robot cannot leave the room, the coverage path will stay within that room.

amyjohansson1994 commented 3 years ago

hi @Timple

I tried your recommendation. It worked great for most part, but there was one anomaly I couldn't understand.

As seen the picture below, the global path is not always same distance from the border (see the red arrows). I set robot_radius same as tool_radius = 0.5 meters

Thank you so much for your responses

spiral_test

Timple commented 3 years ago

In the current implementation the complete area is divided into a grid. The above artifacts are an unfortunate result of that.

A better implementation would be a finer grained grid where multiple rows are covered so these edge-cases would be taken into account. Unfortunately that is not there yet..