/motion_planning

Robot path planning, mapping and exploration algorithms

Primary LanguageJupyter NotebookMIT LicenseMIT

Motion Planning

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