{"id":15034277,"url":"https://github.com/zhm-real/pathplanning","last_synced_at":"2025-05-14T06:11:43.100Z","repository":{"id":37399048,"uuid":"272811260","full_name":"zhm-real/PathPlanning","owner":"zhm-real","description":"Common used path planning algorithms with animations.","archived":false,"fork":false,"pushed_at":"2023-02-06T07:54:46.000Z","size":11193,"stargazers_count":8452,"open_issues_count":30,"forks_count":1702,"subscribers_count":101,"default_branch":"master","last_synced_at":"2025-04-03T14:06:43.276Z","etag":null,"topics":["anytime-dstar","anytime-repairing-astar","astar","batch-informed-trees","dstar","dstar-lite","dynamic-rrt","extended-rrt","fast-marching-trees","informed-rrt-star","learning-realtime-astar","lifelong-planning-astar","path-planning","realtime-adaptive-astar","rrt","rrt-connect","rrt-star","rrt-star-smart"],"latest_commit_sha":null,"homepage":"https://github.com/zhm-real/PathPlanning","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhm-real.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-06-16T21:00:44.000Z","updated_at":"2025-04-03T13:33:48.000Z","dependencies_parsed_at":"2022-07-12T21:01:21.344Z","dependency_job_id":"74bfc48f-1352-4aa9-a53c-b5eb4f2f6219","html_url":"https://github.com/zhm-real/PathPlanning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FPathPlanning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FPathPlanning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FPathPlanning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhm-real%2FPathPlanning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhm-real","download_url":"https://codeload.github.com/zhm-real/PathPlanning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248313188,"owners_count":21082816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anytime-dstar","anytime-repairing-astar","astar","batch-informed-trees","dstar","dstar-lite","dynamic-rrt","extended-rrt","fast-marching-trees","informed-rrt-star","learning-realtime-astar","lifelong-planning-astar","path-planning","realtime-adaptive-astar","rrt","rrt-connect","rrt-star","rrt-star-smart"],"created_at":"2024-09-24T20:24:27.746Z","updated_at":"2025-04-10T23:22:56.000Z","avatar_url":"https://github.com/zhm-real.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Overview\n------\nThis repository implements some common path planning algorithms used in robotics, including Search-based algorithms and Sampling-based algorithms. We designed animation for each algorithm to display the running process. The related papers are listed in [Papers](https://github.com/zhm-real/PathPlanning#papers).\n\nDirectory Structure\n------\n    .\n    └── Search-based Planning\n        ├── Breadth-First Searching (BFS)\n        ├── Depth-First Searching (DFS)\n        ├── Best-First Searching\n        ├── Dijkstra's\n        ├── A*\n        ├── Bidirectional A*\n        ├── Anytime Repairing A*\n        ├── Learning Real-time A* (LRTA*)\n        ├── Real-time Adaptive A* (RTAA*)\n        ├── Lifelong Planning A* (LPA*)\n        ├── Dynamic A* (D*)\n        ├── D* Lite\n        └── Anytime D*\n    └── Sampling-based Planning\n        ├── RRT\n        ├── RRT-Connect\n        ├── Extended-RRT\n        ├── Dynamic-RRT\n        ├── RRT*\n        ├── Informed RRT*\n        ├── RRT* Smart\n        ├── Anytime RRT*\n        ├── Closed-Loop RRT*\n        ├── Spline-RRT*\n        ├── Fast Marching Trees (FMT*)\n        └── Batch Informed Trees (BIT*)\n    └── Papers\n\n## Animations - Search-Based\n### Best-First \u0026 Dijkstra\n\u003cdiv align=right\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/BF.gif\" alt=\"dfs\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/Dijkstra.gif\" alt=\"dijkstra\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n### A* and A* Variants\n\u003cdiv align=right\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/Astar.gif\" alt=\"astar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/Bi-Astar.gif\" alt=\"biastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/RepeatedA_star.gif\" alt=\"repeatedastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/ARA_star.gif\" alt=\"arastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/LRTA_star.gif\" alt=\"lrtastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/RTAA_star.gif\" alt=\"rtaastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/D_star.gif\" alt=\"lpastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/LPAstar.gif\" alt=\"dstarlite\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/ADstar_small.gif\" alt=\"lpastar\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/ADstar_sig.gif\" alt=\"dstarlite\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## Animation - Sampling-Based\n### RRT \u0026 Variants\n\u003cdiv align=right\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/Goal_biasd_RRT_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_CONNECT_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/Extended_RRT_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/Dynamic_RRT_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_STAR2_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_STAR_SMART_2D.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/FMT.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/INFORMED_RRT_STAR_2D3.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/BIT2.gif\" alt=\"value iteration\" width=\"400\"/\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## Papers\n### Search-base Planning\n* [A*: ](https://ieeexplore.ieee.org/document/4082128) A Formal Basis for the heuristic Determination of Minimum Cost Paths\n* [Learning Real-Time A*: ](https://arxiv.org/pdf/1110.4076.pdf) Learning in Real-Time Search: A Unifying Framework\n* [Real-Time Adaptive A*: ](http://idm-lab.org/bib/abstracts/papers/aamas06.pdf) Real-Time Adaptive A*\n* [Lifelong Planning A*: ](https://www.cs.cmu.edu/~maxim/files/aij04.pdf) Lifelong Planning A*\n* [Anytime Repairing A*: ](https://papers.nips.cc/paper/2382-ara-anytime-a-with-provable-bounds-on-sub-optimality.pdf) ARA*: Anytime A* with Provable Bounds on Sub-Optimality\n* [D*: ](http://web.mit.edu/16.412j/www/html/papers/original_dstar_icra94.pdf) Optimal and Efficient Path Planning for Partially-Known Environments\n* [D* Lite: ](http://idm-lab.org/bib/abstracts/papers/aaai02b.pdf) D* Lite\n* [Field D*: ](http://robots.stanford.edu/isrr-papers/draft/stentz.pdf) Field D*: An Interpolation-based Path Planner and Replanner\n* [Anytime D*: ](http://www.cs.cmu.edu/~ggordon/likhachev-etal.anytime-dstar.pdf) Anytime Dynamic A*: An Anytime, Replanning Algorithm\n* [Focussed D*: ](http://robotics.caltech.edu/~jwb/courses/ME132/handouts/Dstar_ijcai95.pdf) The Focussed D* Algorithm for Real-Time Replanning\n* [Potential Field, ](https://journals.sagepub.com/doi/abs/10.1177/027836498600500106) [[PPT]: ](https://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf) Real-Time Obstacle Avoidance for Manipulators and Mobile Robots\n* [Hybrid A*: ](https://ai.stanford.edu/~ddolgov/papers/dolgov_gpp_stair08.pdf) Practical Search Techniques in Path Planning for Autonomous Driving\n\n### Sampling-based Planning\n* [RRT: ](http://msl.cs.uiuc.edu/~lavalle/papers/Lav98c.pdf) Rapidly-Exploring Random Trees: A New Tool for Path Planning\n* [RRT-Connect: ](http://www-cgi.cs.cmu.edu/afs/cs/academic/class/15494-s12/readings/kuffner_icra2000.pdf) RRT-Connect: An Efficient Approach to Single-Query Path Planning\n* [Extended-RRT: ](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1.7617\u0026rep=rep1\u0026type=pdf) Real-Time Randomized Path Planning for Robot Navigation\n* [Dynamic-RRT: ](https://www.ri.cmu.edu/pub_files/pub4/ferguson_david_2006_2/ferguson_david_2006_2.pdf) Replanning with RRTs\n* [RRT*: ](https://journals.sagepub.com/doi/abs/10.1177/0278364911406761) Sampling-based algorithms for optimal motion planning\n* [Anytime-RRT*: ](https://dspace.mit.edu/handle/1721.1/63170) Anytime Motion Planning using the RRT*\n* [Closed-loop RRT* (CL-RRT*): ](http://acl.mit.edu/papers/KuwataTCST09.pdf) Real-time Motion Planning with Applications to Autonomous Urban Driving\n* [Spline-RRT*: ](https://ieeexplore.ieee.org/abstract/document/6987895?casa_token=B9GUwVDbbncAAAAA:DWscGFLIa97ptgH7NpUQUL0A2ModiiBDBGklk1z7aDjI11Kyfzo8rpuFstdYcjOofJfCjR-mNw) Optimal path planning based on spline-RRT* for fixed-wing UAVs operating in three-dimensional environments\n* [LQR-RRT*: ](https://lis.csail.mit.edu/pubs/perez-icra12.pdf) Optimal Sampling-Based Motion Planning with Automatically Derived Extension Heuristics\n* [RRT#: ](http://dcsl.gatech.edu/papers/icra13.pdf) Use of Relaxation Methods in Sampling-Based Algorithms for Optimal Motion Planning\n* [RRT*-Smart: ](http://save.seecs.nust.edu.pk/pubs/ICMA2012.pdf) Rapid convergence implementation of RRT* towards optimal solution\n* [Informed RRT*: ](https://arxiv.org/abs/1404.2334) Optimal Sampling-based Path Planning Focused via Direct Sampling of an Admissible Ellipsoidal heuristic\n* [Fast Marching Trees (FMT*): ](https://arxiv.org/abs/1306.3532) a Fast Marching Sampling-Based Method for Optimal Motion Planning in Many Dimensions\n* [Motion Planning using Lower Bounds (MPLB): ](https://ieeexplore.ieee.org/document/7139773) Asymptotically-optimal Motion Planning using lower bounds on cost\n* [Batch Informed Trees (BIT*): ](https://arxiv.org/abs/1405.5848) Sampling-based Optimal Planning via the Heuristically Guided Search of Implicit Random Geometric Graphs\n* [Advanced Batch Informed Trees (ABIT*): ](https://arxiv.org/abs/2002.06589) Sampling-Based Planning with Advanced Graph-Search Techniques ((ICRA) 2020)\n* [Adaptively Informed Trees (AIT*): ](https://arxiv.org/abs/2002.06599) Fast Asymptotically Optimal Path Planning through Adaptive Heuristics ((ICRA) 2020)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhm-real%2Fpathplanning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhm-real%2Fpathplanning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhm-real%2Fpathplanning/lists"}