PathPlanning
C++ Implementation of Path Planning Algorithms based on the Python Implementation by Huiming Zhou (https://github.com/zhm-real)
Install / Use
/learn @ahmedadamji/PathPlanningREADME
Path Planning Algorithms and Visualization in C++
Overview
This repository contains the C++ Implementation of Path Planning Algorithms of some common path planning algorithms used in robotics, including Search-based algorithms and Sampling-based algorithms based on the Python Implementation by Huiming Zhou. The algorithms can be visualized using the custom plotting class, which includes the generation of a new environment during each run for the grid-based planners, and an interactive dynamic environment developed to showcase dynamic algorithms. The related papers are listed in ZHM-REAL's original Python repository Papers.
Dependencies
The following dependencies are required to build and run the programs:
- OpenCV 2.4 or later: Install OpenCV from https://opencv.org/releases/ or use your package manager.
- ImageMagick++ (Magick++): Install ImageMagick++ from the official ImageMagick website or use your package manager. On many systems, installing
libmagick++-dev(for Debian/Ubuntu) usingsudo apt-get install libmagick++-devorImageMagick-c++-devel(for Red Hat/Fedora) usingsudo dnf install ImageMagick-c++-develshould suffice.
Please make sure you have installed the required dependencies before compiling and running the programs.
Compilation and Build
Clone the repository:
git clone https://github.com/ahmedadamji/PathPlanning.git
cd PathPlanning
Make sure you have CMake installed. If not, install it from https://cmake.org/download/.
Create a build directory and navigate into it:
mkdir build
cd build
Run CMake to configure the build:
cmake ..
Build the project:
Running the Programs
Search_2D
To run the search-based algorithms (A*, Dijkstra, Best-First, etc.):
Open the terminal and navigate to the build directory.
Run the executable for the search_2D program:
./PathPlanning
The program will visualize the path planning algorithms on a 2D grid environment.
RRT_2D
To run the sampling-based algorithm (RRT-Connect):
Open the terminal and navigate to the build directory.
Run the executable for the rrt_2D program:
./SamplingBasedPlanning2D
The program will visualize the RRT-Connect algorithm on a 2D grid environment.
Note: In each main file, you can comment/uncomment the specific algorithm instantiation to choose which algorithm to run.
Animations - Search Based Planning
<div align="center">BFS

DFS

Dijkstra

Best-First Search

A* Search

Repeated A* Search

Bidirectional A* Search

ARA* Search

LRTA* Search

RTAA* Search

Animations - Sampling-Based
<div align="center">RRT 2D

Goal Biased RRT

RRT Connect

Acknowledgments
Thanks to Huiming Zhou for providing the original Python implementation and related papers for the path planning algorithms.
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
research_rules
Research & Verification Rules Quote Verification Protocol Primary Task "Make sure that the quote is relevant to the chapter and so you we want to make sure that we want to have it identifie
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
