Giter VIP home page Giter VIP logo

swarm's Introduction

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.

News

  • 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, Bilibili.
  • April 20, 2022 - A robust version v1.1 has been open-sourced for ICRA2022.

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

  • 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!๐Ÿ˜€

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 ([email protected]) or Fei Gao ([email protected]).

For commercial inquiries, please contact Fei Gao ([email protected]).

swarm's People

Contributors

samuraichamploo avatar radiance-nt avatar ylj6038 avatar pupillen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.