Git Product home page Git Product logo

adaptive_swarm's Introduction

Adaptive Swarm

ToH CHI Thesis

Package description

This project is a layered path planner algorithm to solve multiple agents navigation problem in a cluttered environment. Please, refer to the Master Thesis for more details.

The general path planning problem is divided into approximate global trajectory construction, which is further smoothed by a local path planning method. The proposed approach provides a solution based on a leader-followers architecture with a prescribed formation geometry that adapts dynamically to the environment and avoids collisions.

The path generated by the global planner based on rapidly-exploring random tree (RRT) algorithm is corrected with the artificial potential fields (APF) method that ensures robots trajectories to be collision-free, reshaping the geometry of the formation when required by environmental conditions. Take a look at motion_planning repository for more examples.

Getting started

Execute the following command in order to see how the planner algorithm works in simulation:

python scripts/layered_planner/layered_planner_sim.py 

Real flight

Here I would like to describe how to use the package for autonomous path planning of a group of nano-quadrotors Crazyflies.

Dependencies

Install ROS (the package is tested with kinetic version and Ubuntu 16.04), setup a workspace and build the packages:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone --recursive https://github.com/whoenig/crazyflie_ros
git clone https://github.com/ethz-asl/vicon_bridge
git clone https://github.com/RuslanAgishev/adaptive_swarm.git
cd ~/catkin_ws
catkin_make
source devel/setup.bash

The path planning algrithm is built with a known map assumption. You can define obstacles location of your environment in layered_planner.py.

  • Launch external position estimator (Vicon motion capture system), and connect to drones:
roslaunch adaptive_swarm connect123.launch

Setup python path to swarmlib:

export PYTHONPATH=/path/to/catkin_ws/src/adaptive_swarm/scripts:$PYTHONPATH
  • Command the drones to fly in a formation through a map of obstacles:
rosrun adaptive_swarm layered_planner.py 

Citation

Feel free to cite the papers, if you find the package useful for your research.

@article{tsykunov2019swarmtouch,
  title={Swarmtouch: Guiding a swarm of micro-quadrotors with impedance control using a wearable tactile interface},
  author={Tsykunov, Evgeny and Agishev, Ruslan and Ibrahimov, Roman and Labazanova, Luiza and Tleugazy, Akerke and Tsetserukou, Dzmitry},
  journal={IEEE transactions on haptics},
  volume={12},
  number={3},
  pages={363--374},
  year={2019},
  publisher={IEEE}
}
@inproceedings{agishev:hal-02128383,
  TITLE = {{Tactile Interaction of Human with Swarm of Nano-Quadrotors augmented with Adaptive Obstacle Avoidance}},
  AUTHOR = {Agishev, Ruslan and Tsykunov, Evgeny and Labazanova, Luiza and Tleugazy, Akerke and Tsetserukou, Dzmitry},
  URL = {https://hal.science/hal-02128383},
  BOOKTITLE = {{1st International Workshop on Human-Drone Interaction}},
  ADDRESS = {Glasgow, United Kingdom},
  ORGANIZATION = {{Ecole Nationale de l'Aviation Civile [ENAC]}},
  YEAR = {2019},
  MONTH = May,
  KEYWORDS = {Human ; robot interaction ; tactile display ; wearable computers ; robot formation motion planning ; impedance control ; potential fields},
  PDF = {https://hal.science/hal-02128383/file/HDI_2019_paper_14.pdf},
  HAL_ID = {hal-02128383},
  HAL_VERSION = {v1},
}

License

Project is distributed under MIT License

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.