I'm building my lawnmower robot using ROS2 and Nav2, and everything is working correctly. However, I can't seem to find any information on how to implement full coverage path planning using Nav2 in ROS2. While Nav2 helps me detect and avoid obstacles, I'm struggling to find guidance on achieving full coverage. Does anyone with more expertise have any suggestions?
2 Answers
$\begingroup$
$\endgroup$
I'm not aware of this being core functionality in Nav2: as you've seen, Nav2 is more focused on going to a goal location (or several) without collision.
With that in mind, there's two approaches you could go for here:
- There's a popular full coverage planner package that has a ROS 2 port.
- You could calculate your own points to achieve full coverage, then send those waypoints to Nav2. One common approach is to draw a lattice over the entire map, prune out areas that are in obstacles, and then connect the ends. Here's an open-access paper that talks about other approaches in the 'related works' section.
$\begingroup$
$\endgroup$
We're working on adding something like this in the coming weeks to months as part of a collaboration with a client company. Stay tuned!