gitmyhub

PathPlanning

Python ★ 9.3k updated 3y ago

Common used path planning algorithms with animations.

A collection of robotics path planning algorithms, A*, Dijkstra, RRT and many variants, each with a step-by-step animation so you can watch how a robot finds a collision-free route from start to goal.

Pythonsetup: easycomplexity 2/5

This repository implements a collection of path planning algorithms used in robotics, meaning algorithms that figure out how a robot (or any moving agent) should travel from a starting point to a goal while avoiding obstacles. The code is written in Python and each algorithm comes with an animation so you can watch the planning process unfold step by step.

The algorithms are split into two families. The first is search-based planning, which works by systematically exploring a grid or map. This group includes well-known methods like A* (pronounced A-star), Dijkstra's algorithm, and several variants that handle real-time replanning or anytime operation, meaning they can return a usable path quickly and then keep refining it. The second family is sampling-based planning, which works by randomly sampling points in space and connecting them into a tree. Methods like RRT (Rapidly-exploring Random Trees) and its many variants fall here. Sampling-based planners tend to work better in complex, high-dimensional spaces where grid search becomes too slow.

For each algorithm the README links to the original academic paper where that method was first published. This makes the repository useful both as running code and as a study guide. You can run an algorithm, watch the animation, then read the paper to understand the math behind it.

The practical use case for path planning algorithms is robotics and autonomous vehicles. A self-driving car needs to compute a collision-free route through a parking lot; a robot arm needs to move its joints to a target position without hitting itself or nearby objects. The algorithms here address the simpler 2D planning version of these problems, which is the standard starting point for learning the field.

If you are curious about how robots decide where to move, or you are studying robotics or autonomous systems, this repository gives you working code with visual output and pointers to the foundational literature in one place.

Where it fits