Coder Social home page Coder Social logo

ruslanagishev / motion_planning Goto Github PK

View Code? Open in Web Editor NEW
312.0 4.0 71.0 173.1 MB

Robot path planning, mapping and exploration algorithms

License: MIT License

MATLAB 2.31% Jupyter Notebook 91.25% Python 6.44%
path-planning rrt random-walk exploration-method apf coverage-path-planning multi-robot-path-planning

motion_planning's Introduction

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

motion_planning's People

Contributors

dependabot[bot] avatar ruslanagishev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

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.