Skip to content

Design a coordinated evacuation planner for multi-robots.

License

Notifications You must be signed in to change notification settings

jhan15/robot_coordinated_evacuation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

robot_coordinated_evacuation

The project is about designing a coordinated evacuation of a site cluttered by several obstacles. Three robots have to react to an emergency reaching a gate in minimum time.

Objectives

  • The robots move at a constant speed (so they can execute Dubins Manoeuvres).
  • The robots have to move without touching the border of the map and the obstacles.
  • The robots must not collide with each other.

Solution

  • A roadmap is created via Vertical Cell Decomposition algorithm
  • A path is computed from roadmap via Breadth First Search algorithm
  • Path optimization is conducted by looking-ahead the path vertices
  • Collision-free Multipoint Markov-Dubins curves are computed via Iterative Dynamic Programming
  • Asynchronous coordination is conducted via a time-step-based collision checking for the three robots
  • If a collision occurs, the second best path from BFS is employed for one robot

Demo

Environment

  • Ubuntu 16.04
  • ROS Kinetic
  • Gazebo >= 7.16
  • make >= 4.1
  • gcc/g++ >= 5.4

Structure

~/workspace
    |__ project
    |__ simulator

Setup

Simulator

$ mkdir ~/workspace
$ cd workspace
$ git clone https://github.com/AlexRookie/AppliedRoboticsEnvironment.git simulator/
$ cd simulator
$ catkin build
$ source ./environment.sh

Planner

$ cd workspace
$ git clone https://github.com/jhan15/robot_coordinated_evacuation.git project
$ cd project
$ mkdir build
$ cd build
$ cmake ..
$ make
$ source ../environment.sh

Usage

Run simulation

# terminor 1
$ AR_simulator
# terminal 2
$ AR_pipeline
# terminal 3
$ AR_rviz
# terminal 4
$ AR_run

Other usage

# Modify the environment
$ gedit $AR_map_file

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.3%
  • Other 0.7%