Skip to content

Multi-Robot Coverage Planning for Cleaning Robots || AIITRA Robotics Challenge 2021

Notifications You must be signed in to change notification settings

revan-birfen/Multi-Robot-Coverage-Planning

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Robot Coverage Planning

Software stack for Cooperative Multi-Robot Coverage for Cleaning Robots.

ros-ci lint

Developed and Tested on ROS Noetic + Ubuntu 20.04 + Gazebo 11

Features

  • Solution for autonomous Multi-Robot SLAM using Frontier based exploration
  • Optimizer for finding optimal number of agents required to cover an occupancy grid
  • Coverage path planner based on Boustrophedon Cellular Decomposition
  • PID path tracking

Build

Clone the project

git clone https://github.com/nocoinman/Multi-Robot-Coverage-Planning.git
cd MRCP

Resolve dependencies using rosdep

rosdep install -y -i --from-paths ./src

Build workspace

catkin_make --cmake-args -DCMAKE_BUILD_TYPE=Release

Before Run the code you should make sure that the GUI parameter in the multi_robot.launch value="true"

You can change the number of agents by uncomment the return 1 and comment the return n_agent in the optimizer.py file def solve

Run the tests to make sure everything is setup correctly (optional)

catkin_make run_tests && catkin_test_results build/test_results

Usage

Shell 1

source devel/setup.bash
roslaunch simulation multi_robot.launch map:=map1

Available maps: map1, map2, map3, map4

Shell 2

source devel/setup.bash
roslaunch full_coverage_path_planner cover_map.launch map:=map1

Unpause physics to start simulation

Gazebo by default starts in headless mode, with physics paused. You'll have to unpause physics to start the simulation. You can do this in 2 ways.

For the shell geeks out there, you can unpause physics from the shell using rosservice

rosservice call /gazebo/unpause_physics

For the GUI fellas, we have conveniently added a custom panel to RViz to pause and unpause gazebo physics. Thank us later!

Workflow

Intended use of the software is as shown.

Coverage Path Planning

Coverage path is computed using Boustrophedon Cellular Decomposition. The plan is then divided into equal sub-plans and assigned to each agent.

Here is a demo of the path planning algorithm in action, ran on the occupancy grid generated using Multi-Robot SLAM on a complex office setting.

Path Tracking

Agents follow the designated path asynchronously. This is accomplished using simple PID control based path tracking.

About

Multi-Robot Coverage Planning for Cleaning Robots || AIITRA Robotics Challenge 2021

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 74.9%
  • Python 18.9%
  • CMake 5.7%
  • Shell 0.5%