ROS Coverage Path Planning

Pheh Jing Jie ( JJ ) 彭靖杰
2 min readMay 6, 2022

--

What is a Coverage Path Planning (CPP) ?

Coverage Path Planning is the process of generating movement path that fully covers an area ie. a map. There are many applications of CPP, for examples, lawn moving robot, agriculture robot and mobile cleaning robot. There are many different Coverage Path Planning algorithms like the Boustrophedon Planner, Grid-based TSP Planner and even Neural Network-based Planner and each of the algorithms has different characteristics and efficiency for the coverage path that it generated.

Here is a video showing the cleaning path of the Mi Vacuum Robot https://www.youtube.com/watch?v=EauM8-3EAPo

Image from Wikipedia https://commons.wikimedia.org/wiki/File:Roomba_time-lapse.jpg

This article explore the installation and usage of the ROS package for CPP ‘ipa_coverage_planning’ which is based on the Indoor Coverage Path Planning: Survey, Implementation, Analysis Paper .

This article assumed that you had already install ROS Melodic Morenia on Ubuntu 18.04 Bionic Beaver OS.

How to install:

a. Installing Dependencies:

sudo apt-get install ros-melodic-opengmsudo apt-get install ros-melodic-libdlibsudo apt-get install ros-melodic-cob-navigationsudo apt-get install coinor-*

b. Compile

catkin build 
//OR
catkin_make

How to use:

*Tested on melodic_dev branch on Ubuntu 18.04, ROS Melodic Morenia

Source setup.bash in your ROS workspace:

source ./devel/setup.bash

Start exploration action server in the terminal:

roslaunch ipa_room_exploration room_exploration_action_server.launch

Start exploration action client in another terminal:

roslaunch ipa_room_exploration room_exploration_client.launch

Wait for approximately 30 secs and a demo map with coverage path will appear

Image by author

In my next article, I will share more about how to use the ipa_coverage_planning ROS package for your own custom map to generate its corresponding coverage path.

https://github.com/jjbecomespheh

If you like the article, feel free to give me a some claps or leave some comments! ☺️☺️☺️
Feel free to connect with me here https://www.linkedin.com/in/phehjingjie/

Support me here: https://www.buymeacoffee.com/jjbecomespheh

--

--