Motion Planning
Python
Python code for several path planning algorithms is located inside python_src folder. Let's go through a couple of examples.
APF
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
RRT
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 package, if you find it useful for your research.
@software{Agishev_Robot_path_planning_2019,
author = {Agishev, Ruslan},
month = {9},
title = {{Robot path planning, mapping and exploration algorithms}},
url = {https://github.com/RuslanAgishev/motion_planning},
version = {0.0.1},
year = {2019}
}