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.
Execute the following command in order to see how the planner algorithm works in simulation:
python scripts/layered_planner/layered_planner_sim.py
Here I would like to describe how to use the package for autonomous path planning of a group of nano-quadrotors Crazyflies.
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
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},
}
Project is distributed under MIT License