Swarm-Formation is a distributed swarm trajectory optimization framework for formation flight in dense environments.
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. Accepted 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}
}
If our source code is used in your academic projects, please cite our paper. Thank you!
Video Links: Bilibili (only for Mainland China) or Youtube.
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
Then use "2D Nav Goal" in rviz to publish the goal for swarm formation navigation. You need to specify the value of flight_type in run_in_sim.launch:
Now only two forms are supported to specify the target point.
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 :star:, thanks!:grinning:
If your operating system doesn't support ROS noetic, docker is a great alternative.
First of all, you have to build the project and create an image like so:
## Assuimg you are in the correct project directory
make docker_build
After the image is created, copy and paste the following command to the terminal to run the image:
xhost +
make docker_run
Then execute the following command;
roslaunch ego_planner normal_hexagon.launch
sudo apt install ros-${ROS_DISTRO}-rosmon
source /opt/ros/${ROS_DISTRO}/setup.bash # Needed to use the 'mon launch' shortcut
Run the simple example of our project:
source devel/setup.bash
roslaunch ego_planner rviz.launch
Then open a new command window in the same workspace and use rosmon:
source devel/setup.bash
mon launch ego_planner normal_hexagon.launch
There are several important works which support this project:
The source code is released under GPLv3 license.
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).