This repo is multi-robot motion planner framework which uses CCBS as a global planner to determine non-collision paths for all robots. The paths are sent to local planners which determine the path segment for robots to follow. The packages work on ROS and Gazebo. They contains:
- ccbs (ROS package): the global motion planner - read the graph from a file, and received starts and goals of all robots, then determine robot's paths.
- cs685 (ROS package) - the local motion planner receive the paths from the ccbs package and send them to the each robot local planner (DWA). The action is used the monitor the robot movement.
- graph: it is a python code to generate a graph from a occupancy-grid map (graph_xml.py). The file display_graph_paths.py helps us see the paths which are generated by CCBS.
The packages are run on ROS noetic, ubuntu 20. We need to install navigation stack package.
To run the packages, we need to run on four terminals:
- roslaunch cs685 cs685_robots_gazebo.launch
- roslaunch cs685 cs685_3turtlebot_navigation.launch
- roslaunch ccbs ccbs_main.launch
- roslaunch cs685 cs685_move_control_main.launch
The results are shown in the following videos:
There are some points needed to be improved:
- Improve CCBS paths: (more nodes for graph or another approach)
- Improve the local motion planner (A robuster one than DWA)