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
- Ubuntu 16.04
- ROS Kinetic
- Gazebo >= 7.16
- make >= 4.1
- gcc/g++ >= 5.4
~/workspace
|__ project
|__ simulator
$ mkdir ~/workspace
$ cd workspace
$ git clone https://github.com/AlexRookie/AppliedRoboticsEnvironment.git simulator/
$ cd simulator
$ catkin build
$ source ./environment.sh
$ cd workspace
$ git clone https://github.com/jhan15/robot_coordinated_evacuation.git project
$ cd project
$ mkdir build
$ cd build
$ cmake ..
$ make
$ source ../environment.sh
# terminor 1
$ AR_simulator
# terminal 2
$ AR_pipeline
# terminal 3
$ AR_rviz
# terminal 4
$ AR_run
# Modify the environment
$ gedit $AR_map_file