/Swarm-Formation

Distributed Swarm Trajectory Optimization for Formation Flight in Dense Environments

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Swarm-Formation

Swarm-Formation is a distributed swarm trajectory optimization framework for formation flight in dense environments.

  • A differentiable graph-theory-based cost function that effectively describes the interaction topology of robots and quantifies the similarity distance between three-dimensional formations.
  • A spatial-temporal optimization framework with a joint cost function that takes formation similarity, obstacle avoidance, and dynamic feasibility into account, which makes the swarm robots possess the ability to move in formation while avoiding obstacles.

Updates

  • April 12, 2022 - A distributed swarm formation optizamition framework is released. An example of normal hexagon formation navigation in random forest map is given.
  • Plan - A more general pipeline for swarm formation navigation in dense environment is on the way.

About

If our source code is used in your academic projects, please cite our paper. Thank you!

Author: Lun Quan*, Longji Yin*, Chao Xu, and Fei Gao, from Fast-Lab,Zhejiang University.

Paper: Distributed Swarm Trajectory Optimization for Formation Flight in Dense Environments, Lun Quan*, Longji Yin*, Chao Xu, and Fei Gao. Accpted in ICRA2022.

@article{quan2021distributed,
      title={Distributed Swarm Trajectory Optimization for Formation Flight in Dense Environments}, 
      author={Lun Quan and Longji Yin and Chao Xu and Fei Gao},
      journal={arXiv preprint arXiv:2109.07682},
      year={2021}
}

Video Links: Bilibili (only for Mainland China) or Youtube.

Quick Start within 3 Minutes

Compiling tests passed on ubuntu 18.04 and 20.04 with ros installed. You can just execute the following commands one by one.

sudo apt-get install libarmadillo-dev
git clone https://github.com/ZJU-FAST-Lab/Swarm-Formation.git
cd Swarm-Formation
catkin_make -j1
source devel/setup.bash
roslaunch ego_planner rviz.launch

Then open a new command window in the same workspace and execute the following commands one by one.

source devel/setup.bash
roslaunch ego_planner normal_hexagon.launch

Finally, you can see a normal hexagon formation navigating in random forest map.

If you find this work useful or interesting, please kindly give us a star ⭐, thanks!😀

Acknowledgements

There are several important works which support this project:

  • GCOPTER: An efficient and versatile multicopter trajectory optimizer built upon a novel sparse trajectory representation named MINCO.
  • LBFGS-Lite: An Easy-to-Use Header-Only L-BFGS Solver.
  • EGO-Swarm: A Fully Autonomous and Decentralized Quadrotor Swarm System in Cluttered Environments.

Licence

The source code is released under GPLv3 license.

Maintenance

We are still working on extending the proposed system and improving code reliability.

For any technical issues, please contact Lun Quan (lunquan@zju.edu.cn) or Fei Gao (fgaoaa@zju.edu.cn).

For commercial inquiries, please contact Fei Gao (fgaoaa@zju.edu.cn).