The following project is the implementation of collision avoidance in Dynamic environment using the global-local planner integration. The project consist of two stages of implementation.
- Stage - I
- Stage - II
In stage -I, the python implementation of global and local planner has been done. For global planner the RRT* algorithm has been implemented. The output of the implementation are as follows:
This is the implementation of RRT* for the first scenario:
This is the implementation of RRT* for the second scenario:
In case of the local planner, three variants of velocity obstacle has been implemented. They are as follows:
- Standard Velocity Obstacle
- Reciprocal Velocity Obstacle
- Hybrid Reciprocal Velocity Obstacle
In the below scenario, a simple velocity obstacle is implemented for four robots. The circle around the robot represents the horizon for the local planner. Within this region, the local planner alters the path of the robot with respect to the trajectory of the obstacle.
In this implementation, the major issue of the reciprocal velcoity obstacle algorithm has been shown. The four robot converge into an oscillatory motion resulting in the "Reciprocal Dance".
In the below scenario the HRVO implementation has been shown. The issue of Reciprocal dance has been resolved and it has been demosntrated in the below video.
The complete integration of the global and local planner implementation has been show below:
The two robots follows the path from the global planner. When encountered by the dynamic obstacles the local planner reacts in response, thus avoiding the collision with the obstacles.Github reference for Stage 1:https://github.com/MengGuo/RVO_Py_MAS We have referenced our work on this github link. We have added dynamic obstacles along with a combination of a local and global planner. Our work can be generalized for different maps and different global algorithms as well, just based on a black and white picture of the static map. In order to do so, modifications are required to functions we have written on map_generator.py and map_creator.py
Run hospital_1.py file This file directly runs the combined local + global planne on test_map1 The program saves each frame in the resulting simulation as a picture in the Data folder. In order to view the video you can run video creator file, which will compile all the images into a video
In hospital_1.py, refer to the MAP DEFINER code block. Here you can manually define lines based on start and end points to make a static map.
Currently we have manually input a reduced path from the global planner into the local planner. In order to run the global planner and to integrate with local planner uncomment the “Globalpath converter” to run the global path '''
roslaunch gopher_unity_endpoint gopher_presence_server.launch