{"id":19526621,"url":"https://github.com/zju-fast-lab/swarm-formation","last_synced_at":"2025-04-05T04:11:00.954Z","repository":{"id":41178932,"uuid":"406249552","full_name":"ZJU-FAST-Lab/Swarm-Formation","owner":"ZJU-FAST-Lab","description":"Formation Flight in Dense Environments","archived":false,"fork":false,"pushed_at":"2024-01-24T02:01:12.000Z","size":10591,"stargazers_count":441,"open_issues_count":4,"forks_count":68,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-03-29T03:07:02.680Z","etag":null,"topics":["aerial-robotics","distributed-systems","formation-flight","motion-planning","multi-robot","spatial-temporal","swarm","trajectory-optimization"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZJU-FAST-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-09-14T06:23:09.000Z","updated_at":"2025-03-25T02:21:01.000Z","dependencies_parsed_at":"2024-01-09T09:32:32.961Z","dependency_job_id":"b3ea0722-d552-4105-9240-a39bb18de9d4","html_url":"https://github.com/ZJU-FAST-Lab/Swarm-Formation","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FSwarm-Formation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FSwarm-Formation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FSwarm-Formation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FSwarm-Formation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-FAST-Lab","download_url":"https://codeload.github.com/ZJU-FAST-Lab/Swarm-Formation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284949,"owners_count":20913704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aerial-robotics","distributed-systems","formation-flight","motion-planning","multi-robot","spatial-temporal","swarm","trajectory-optimization"],"created_at":"2024-11-11T01:11:04.670Z","updated_at":"2025-04-05T04:11:00.928Z","avatar_url":"https://github.com/ZJU-FAST-Lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Swarm-Formation\n\n**Swarm-Formation** is a distributed swarm trajectory optimization framework for formation flight in dense environments.\n- A differentiable graph-theory-based cost function that effectively describes the interaction topology of robots and quantifies the similarity distance between three-dimensional formations.\n- 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.\n\n## News\n- **October 9, 2022** - An improved version which achieves fully autonomous large-scale formation flight in dense environments with a complete formation navigation system has been submitted to IEEE Transactions on Robotics [Preprint](https://arxiv.org/abs/2210.04048), [Bilibili](https://www.bilibili.com/video/BV1wB4y177io/?spm_id_from=333.999.0.0).\n- **April 20, 2022** - A robust version [v1.1](https://github.com/ZJU-FAST-Lab/Swarm-Formation/releases/tag/v1.1) has been open-sourced for [ICRA2022](https://arxiv.org/abs/2109.07682).\n\n## Table of Contents\n* [About](#1-About)\n* [Quick Start within 3 Minutes](#2-Quick-Start-within-3-Minutes)\n* [Tips](#3-Tips)\n* [Important updates](#4-Important-updates)\n* [Acknowledgements](#5-Acknowledgements)\n* [Licence](#6-Licence)\n* [Maintenance](#7-Maintenance)\n\n## 1. About\n**Author**: [Lun Quan*](http://zju-fast.com/lun-quan/), [Longji Yin*](http://zju-fast.com/longji-yin/), [Chao Xu](http://zju-fast.com/research-group/chao-xu/), and [Fei Gao](http://zju-fast.com/research-group/fei-gao/), from [Fast-Lab](http://zju-fast.com/),Zhejiang University.\n\n**Paper**: [Distributed Swarm Trajectory Optimization for Formation Flight in Dense Environments](https://arxiv.org/abs/2109.07682), Lun Quan*, Longji Yin*, Chao Xu, and Fei Gao. Accepted in [ICRA2022](https://www.icra2022.org/).\n\n```\n@article{quan2021distributed,\n      title={Distributed Swarm Trajectory Optimization for Formation Flight in Dense Environments}, \n      author={Lun Quan and Longji Yin and Chao Xu and Fei Gao},\n      journal={arXiv preprint arXiv:2109.07682},\n      year={2021}\n}\n```\nIf our source code is used in your academic projects, please cite our paper. Thank you!\n\n\u003ca href=\"https://www.youtube.com/watch?v=lFumt0rJci4\" target=\"blank\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"fig/post.jpg\" width=\"600\"/\u003e\n  \u003c/p\u003e\n\u003c/a\u003e\n\nVideo Links: [Bilibili](https://www.bilibili.com/video/BV1qv41137Si?spm_id_from=333.999.0.0) (only for Mainland China) or [Youtube](https://www.youtube.com/watch?v=lFumt0rJci4).\n\n## 2. Quick Start within 3 Minutes\nCompiling tests passed on ubuntu 18.04 and 20.04 with ros installed. You can just execute the following commands one by one.\n```\nsudo apt-get install libarmadillo-dev\ngit clone https://github.com/ZJU-FAST-Lab/Swarm-Formation.git\ncd Swarm-Formation\ncatkin_make -j1\nsource devel/setup.bash\nroslaunch ego_planner rviz.launch\n```\nThen open a new command window in the same workspace and execute the following commands one by one.\n```\nsource devel/setup.bash\nroslaunch ego_planner normal_hexagon.launch\n```\nThen 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:\n\u003cp align = \"center\"\u003e\n\u003cimg src=\"fig/set_goal_normal_hexagon.gif\" width = \"800\" height = \"363\" border=\"2\" /\u003e\n\u003c/p\u003e\n\n**Now only two forms are supported to specify the target point.**\n- flight_type = 2: use global waypoints\n- flight_type = 3: use \"2D Nav Goal\" to select goal  \n\nFinally, you can see a normal hexagon formation navigating in random forest map.\n\n\u003cp align = \"center\"\u003e\n\u003cimg src=\"fig/normal_hexagon_2.gif\" width = \"800\" height = \"464\" border=\"2\" /\u003e\n\u003c/p\u003e\n\nIf you find this work useful or interesting, please kindly give us a star :star:, thanks!:grinning:\n### 2.1 Quick Start with Docker\nIf your operating system doesn't support ROS noetic, docker is a great alternative.\n\nFirst of all, you have to build the project and create an image like so:\n```bash\n## Assuimg you are in the correct project directory\nmake docker_build\n```\nAfter the image is created, copy and paste the following command to the terminal to run the image:\n\n```bash\nxhost +\nmake docker_run\n```\nThen execute the following command;\n\n```\nroslaunch ego_planner normal_hexagon.launch\n```\n\n## 3. Tips\n1. We recommend developers to use **[rosmon](http://wiki.ros.org/rosmon)** to replace the **roslaunch**\n- **Why we use rosmon?** : \n  It is very developer-friendly, especially for the development of multi-robots. \n- **How to use rosmon?** :\n  [Install](http://wiki.ros.org/rosmon):\n  ```\n  sudo apt install ros-${ROS_DISTRO}-rosmon\n  source /opt/ros/${ROS_DISTRO}/setup.bash # Needed to use the 'mon launch' shortcut\n  ```\n  Run the simple example of our project:\n  ```\n  source devel/setup.bash\n  roslaunch ego_planner rviz.launch\n  ```\n  Then open a new command window in the same workspace and use **rosmon**:\n  ```\n  source devel/setup.bash\n  mon launch ego_planner normal_hexagon.launch\n  ```\n  \u003cp align = \"center\"\u003e\n  \u003cimg src=\"fig/rosmon.jpg\" width = \"566\" height = \"379\" border=\"2\" /\u003e\n  \u003c/p\u003e\n\n## 4. Important updates\n- **May 9, 2022** -Add Interface: Publish target points through \"2D Nav Goal\" in rviz for swarm formation navigation.\n- **April 12, 2022** - A distributed swarm formation optizamition framework is released. An example of normal hexagon formation navigation in random forest map is given.\n\n## 5. Acknowledgements\n**There are several important works which support this project:**\n- [GCOPTER](https://github.com/ZJU-FAST-Lab/GCOPTER): An efficient and versatile multicopter trajectory optimizer built upon a novel sparse trajectory representation named [MINCO](https://arxiv.org/pdf/2103.00190v2.pdf).\n- [LBFGS-Lite](https://github.com/ZJU-FAST-Lab/LBFGS-Lite): An Easy-to-Use Header-Only L-BFGS Solver.\n- [EGO-Swarm](https://github.com/ZJU-FAST-Lab/ego-planner-swarm): A Fully Autonomous and Decentralized Quadrotor Swarm System in Cluttered Environments.\n\n## 6. Licence\nThe source code is released under [GPLv3](https://www.gnu.org/licenses/) license.\n\n## 7. Maintenance\nWe are still working on extending the proposed system and improving code reliability.\n\nFor any technical issues, please contact Lun Quan (lunquan@zju.edu.cn) or Fei Gao (fgaoaa@zju.edu.cn).\n\nFor commercial inquiries, please contact Fei Gao (fgaoaa@zju.edu.cn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Fswarm-formation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzju-fast-lab%2Fswarm-formation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Fswarm-formation/lists"}