Python code for several path planning algorithms is located inside python_src folder. Let's go through a couple of examples.
In order to get familiar with the Artificial Potential Filds (APF) algorithm:
jupyter-notebook python_src/adaptive_formation/GradientBasedPlanning.ipynb
Real time potential fields-based obstacle avoidance method for robots formations with moving or static obstacles.
python python_src/adaptive_formation/gradient_interactive.py
Road map and path construction with Rapidly exploring Random Tree (RRT) algorithm:
python python_src/rrts/main_rrt2D.py
in 3D environment:
python python_src/rrts/3D/rrt3D.py
Here the RRT nodes and edges are depicted in blue, the retrieved path out of the tree is green, while the orange curve is a shortened trajectory .
An example of layered planner with RRT as a global path constructor and APF is responsible for local trajectory creation. The algorithm is provided not only for an ego-vechicle but also for a group of robots.
Multi-layered planner for formation of robots navigation based on RRT+APF algorithms:
python python_src/layered_planner/main_rrt_gradient.py
Take a look at the adaptive_swarm package for implementation details. There you will find how to apply a layered planner algorithm for a swarm of nano quadrotors.
Exploration of the environment with unknown obstacles location. Random walk algorithm implementation for a mobile robot equipped with 4 ranger sensors (front, back, left and right) for obstacles detection. An example of a robot with similar sensors setup could a Crazyflie drone with a multiranger deck mounted.
python python_src/exploration/random_goals_following/main.py
python python_src/exploration/random_walk/main.py
Coverage path planning for unknown map exploration. Robot's kinematics is taken into account in velocity motion model.
python python_src/exploration/coverage_path_planning/main3D.py
Mapping of an unknown environment using one or swarm of robots equipped with 4 ranger sensors. Here we assume that robots localization data is provided (prerecorded in csv files here). The occupancy grid is constructed from multiranger pointcloud data using Bresenham raytracing algorithm.
python python_src/mapping/2robots_occupancy_grid.py
Computational Motion Planning course from Penn.
Matlab implementation of the tasks can be found in
matlab_src folder.
Each of the subfolder includes run.m
script for simulation launching and helper functions.
In order to launch the algorithms simply execute from your Matlab command prompt:
run.m
Project is distributed under MIT License
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},
}