RAS 2024: A Decoupled Solution to Heterogeneous Multi-Formation Planning and Coordination for Object Transportation
Weijian Zhang, Charlie Street, Masoumeh Mansouri
University of Birmingham
A cooperative formation object transportation system for heterogeneous multi-robot systems that captures robot dynamics and avoids inter-formation collisions. Our paper has been selected as the Best Poster Award at The 7th IEEE UK & Ireland RAS Conference.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
-
A comprehensive H-MFPC framework which integrates formation generation, planning, and coordination techniques for heterogeneous formations.
-
An efficient formation generation approach for heterogeneous multi-robot systems which synthesizes collision-free and kinematically feasible trajectories in unstructured environments.
-
A cost-optimal formation planning method that maintains rigidity for heterogeneous formations.
-
A loosely-coupled multi-formation coordination algorithm for ensuring deadlock-free and collision-free navigation among formations.
- ROS Noetic or later
- Ubuntu 20.04 or later
- yaml-cpp 0.8.0 or later
- You'll also need a license for the Mosek optimization toolbox https://www.mosek.com/ (this package includes a downloader for the Mosek code, but you have to get your own license). Mosek has free licenses available for academic use.
- Create a new workspace:
$ mkdir -p ~/hmfpc_ws/src
$ cd ~/hmfpc_ws/src
$ catkin_init_workspace- Clone the package into the workspace:
$ git clone https://github.com/HyPAIR/Heterogeneous-formation-controller.git- Install dependencies:
$ cd ~/hmfpc_ws
$ rosdep install --from-paths src --ignore-src -r -y --skip-keys=ecbs- Build the workspace:
$ catkin_make-
Launch the simulation to visualize the task allocation result (24 robots with 12 car-like and 12 diff drive in 10 random obstacle environments):
$ roslaunch heterogeneous_formation_controller demo_ta_test.launch
-
Launch the simulation to visualize the formation generation result (24 robots with 12 car-like and 12 diff-drive in 10 random obstacle environments):
$ roslaunch heterogeneous_formation_controller demo_fg_test.launch
-
Launch the simulation to visualize the formation planning result (an irregular formation with 3 car-like and 4 diff-drive in 10 random obstacle environments)):
$ roslaunch heterogeneous_formation_controller demo_fp_test.launch
-
Launch the simulation to visualize the formation coordination result (2 triangular formations and 3 rectangular formations, wtih 10 car-like and 8 diff-drive in 10 random obstacle environments):
$ roslaunch heterogeneous_formation_controller fcoord_test.launch
-
Launch formation generation simulation, with 10 robots (6 car-like and 4 diff-drive) in 7 random obstacle environments.
roslaunch heterogeneous_formation_controller formation_generation.launch
Launch the control node:
roslaunch heterogeneous_formation_controller fg_test.launch
-
Launch formation planning simulation, with an irregular formation (3 car-like and 4 diff-drive) in a narrow corridor scene.
roslaunch heterogeneous_formation_controller heterogeneous_triangle.launch
Launch the control node:
roslaunch heterogeneous_formation_controller control_triangular_formation.launch
-
Launch formation coordination simulation, with 2 triangular formations (4 car-like and 2 diff-drive) in a "H" environment.
roslaunch heterogeneous_formation_controller formation_coordination.launch
Launch the control node:
roslaunch heterogeneous_formation_controller formation_coordination_demo.launch
A simulation video demonstrating our proposed framework can be found at bilibili/youtube.
If you find this work useful, please cite A decoupled solution to heterogeneous multi-formation planning and coordination for object transportation (pdf):
@article{zhang2024decoupled,
title={A decoupled solution to heterogeneous multi-formation planning and coordination for object transportation},
author={Zhang, Weijian and Street, Charlie and Mansouri, Masoumeh},
journal={Robotics and Autonomous Systems},
pages={104773},
year={2024},
publisher={Elsevier}
}
.png)
.png)
.png)
.png)
.png)
.png)







