Home

Awesome

motion-planners

Flexible python implementations of several robotic motion planners.

Citation

Caelan Reed Garrett. Motion Planners. https://github.com/caelan/motion-planners. 2017.

Example

A simple motion planning problem in 2D workspace and 2D configuration space that only depends on Tkinter.

motion-planners$ python -m motion_planners.tkinter.run

<img src="images/eager_prm.png" height="200">

Algorithms

Single-Query

Sampling-Based:

<img src="images/rrt.png" height="200"><img src="images/birrt.png" height="200"><img src="images/rrt*.png" height="200">

Grid Search

<!--* [Dijkstra/Uniform-Cost Search(UCS)](https://github.com/caelan/motion-planners/blob/691100867352db24535f29d1f4065b6da059ade3/motion_planners/discrete.py#L40)-->

Other

<!--* Diverse * Random Restarts-->

<img src="images/lattice.png" height="200"><img src="images/rrt+shortcut.png" height="200">

Multi-Query

Sampling-based:

<!--* Star Roadmap-->

<img src="images/degree_prm.png" height="200"><img src="images/eager_prm.png" height="200"><img src="images/lazy_prm.png" height="200">

API

Each motion planner takes as input python functions that perform its primitive operations, allowing them to be flexibly used in many software environments.

Applications

<img src="images/turtlebot_motion.png" height="200"><img src="images/pr2_motion.png" height="200"><img src="images/se3.png" height="200">