Skip to content

RuslanAgishev/motion_planning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Motion Planning

Thesis ToH CHI

Python

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 .

Layered planner (RRT+APF)

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.

Coverage Path Planning

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 with a group of robots

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

MATLAB

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

Reference

License

Project is distributed under MIT License

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},
}