tangjzh / Swarm-Control-Course-Additional-Work

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

集群控制附加作业

作业内容

Swarm-Formation 是一个分布式的编队轨迹优化框架,用于密集环境中的编队飞行规划。本作业需要基于 Swarm-Formation,完成无人机编队飞行以及编队变换的仿真。

作业要求

  1. 可以使用不限数量的无人机组成编队。
  2. 无人机在飞行过程中依次变换出"S","Y","S","U"四种队形,允许起始队形为字母"S"。
  3. 仿真场景已固定随机种子,请不要修改map_generator的代码以及normal_hexagon.launch文件中该节点的参数。

提交内容

  1. 源代码
  2. 飞行演示GIF
  3. 报告:简述实现思路,与演示结果截图,不超过3页;

提交截止时间另行通知。

完成结果

参考

  1. Distributed Swarm Trajectory Optimization for Formation Flight in Dense Environments, Lun Quan*, Longji Yin*, Chao Xu, and Fei Gao. Accepted in ICRA2022.
  2. Robust and Efficient Trajectory Planning for Formation Flight in Dense Environments,Lun Quan, Longji Yin, Tingrui Zhang, Mingyang Wang, Ruilin Wang, Sheng Zhong, Zhou Xin, Yanjun Cao, Chao Xu and Fei Gao. Accepted for IEEE Transactions on Robotics

请阅读以下内容,以快速启动本次作业。

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.

Table of Contents

1. About

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.

2. 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/SYSU-HILAB/Swarm-Control-Course-Addtional-Work.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.

  • flight_type = 2: use global waypoints
  • flight_type = 3: use "2D Nav Goal" to select goal

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!😀

2.1 Quick Start with Docker

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

3. Tips

  1. We recommend developers to use rosmon to replace the roslaunch
  • Why we use rosmon? : It is very developer-friendly, especially for the development of multi-robots.
  • How to use rosmon? : Install:
    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
    

4. Important updates

  • May 9, 2022 -Add Interface: Publish target points through "2D Nav Goal" in rviz for swarm formation navigation.
  • April 12, 2022 - A distributed swarm formation optizamition framework is released. An example of normal hexagon formation navigation in random forest map is given.

5. 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.

6. Licence

The source code is released under GPLv3 license.

7. 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).

About

License:GNU General Public License v3.0


Languages

Language:C++ 83.3%Language:CMake 6.4%Language:Python 4.9%Language:Cuda 2.3%Language:C 2.1%Language:CSS 0.7%Language:Makefile 0.2%Language:Fortran 0.1%Language:Dockerfile 0.1%Language:HTML 0.0%