Giter Club home page Giter Club logo

vswarm-drone's Introduction

vswarm

The vswarm package enables decentralized vision-based control of drone swarms without relying on inter-agent communication or visual fiducial markers.

This repository contains the source code accompanying our article:

F. Schilling, F. Schiano, and D. Floreano, "Vision-based Drone Flocking in Outdoor Environments," IEEE Robotics and Automation Letters (RA-L), vol. 6, no. 2, pp. 2954-2961, 2021. [arXiv] [IEEE Xplore] [Citation]

The package provides its main functionality in the following modules:

  • Visual detection of neighboring drones from omnidirectional images using a convolutional neural network
  • Relative localization based on camera parameters and the known physical size of the drones
  • Multi-target tracking to estimate the position and velocity of the drones
  • Multi-agent control using a Reynolds-inspired flocking algorithm

The following video provides a high-level overview of the method and a demonstration of vswarm in action:

vswarm

Requirements

This package requires Ubuntu 18.04 (Bionic) and ROS Melodic. The simulation environment is based on Gazebo. The majority of the code is written in Python 3.

Installation

The installation instructions for our simulation environment can be found in a dedicated installation.md. The code can also run onboard a physical drone with a suitable companion computer such as the NVIDIA Jetson TX2.

Usage

To launch three drones in Gazebo:

roslaunch vswarm vswarm_gazebo.launch n:=3

Use the vswarm command to let the drones take off and switch to offboard mode (i.e. to start the vision-based flocking algorithm):

vswarm takeoff    # Drones take off and hover at 2.5m altitude
vswarm offboard   # Drones start flocking

By default, the drones are migrating in a square according to a set of predefined waypoints.

The parameters of the most important nodes (object detection, relative localization, multi-target tracking, and flocking) can be adjusted using the dynamic reconfigure GUI:

rqt_reconfigure

Note: The reason for the relatively low confidence score of the detections despite the visually simple environment is the fact that the detection model has never been trained on simulated data (but on the dataset below).

Dataset

The vswarm drone detection dataset (~2GB) can be downloaded here: [Google Drive] [SWITCHdrive].

For more information about the dataset, check out the dataset.md

Citation

If you use this work in an academic context, please cite the following article:

@article{schilling_vswarm_2021,
    title   = {Vision-based Drone Flocking in Outdoor Environments},
    author  = {Schilling, Fabian and Schiano, Fabrizio and Floreano, Dario},
    journal = {IEEE Robotics and Automation Letters},
    year    = {2021},
    volume  = {6},
    number  = {2},
    pages   = {2954--2961},
    doi     = {10.1109/LRA.2021.3062298},
    issn    = {2377-3766}
}

Acknowledgments

We used a variety of third party tools and software libraries which we would like to acknowledge:

License

This project is released under the MIT License. Please refer to the LICENSE for more details.

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.