Files
PathPlanning/README.md
T

150 lines
9.5 KiB
Markdown
Raw Normal View History

2020-08-03 14:49:16 -07:00
Overview
------
2020-12-08 19:19:43 -08:00
This 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).
2020-08-03 14:49:16 -07:00
2020-06-19 19:00:08 -07:00
Directory Structure
------
.
└── Search-based Planning
2020-07-29 17:19:54 -07:00
├── Breadth-First Searching (BFS)
├── Depth-First Searching (DFS)
├── Best-First Searching
├── Dijkstra's
├── A*
├── Bidirectional A*
├── Anytime Repairing A*
├── Learning Real-time A* (LRTA*)
├── Real-time Adaptive A* (RTAA*)
├── Lifelong Planning A* (LPA*)
├── Dynamic A* (D*)
├── D* Lite
2020-11-17 09:54:03 -08:00
└── Anytime D*
2020-06-28 21:01:01 -07:00
└── Sampling-based Planning
2020-07-29 17:19:54 -07:00
├── RRT
├── RRT-Connect
├── Extended-RRT
├── Dynamic-RRT
├── RRT*
├── Informed RRT*
├── RRT* Smart
├── Anytime RRT*
├── Closed-Loop RRT*
├── Spline-RRT*
├── Fast Marching Trees (FMT*)
└── Batch Informed Trees (BIT*)
2020-12-08 19:19:43 -08:00
└── Papers
2020-06-20 00:10:50 -07:00
2020-07-24 13:43:57 -07:00
## Animations - Search-Based
2020-07-24 00:32:35 -07:00
### Best-First & Dijkstra
2020-06-20 13:43:09 -07:00
<div align=right>
2020-06-20 13:36:11 -07:00
<table>
<tr>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/BF.gif" alt="dfs" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/Dijkstra.gif" alt="dijkstra" width="400"/></a></td>
2020-06-27 17:16:03 -07:00
</tr>
</table>
</div>
### A* and A* Variants
<div align=right>
<table>
<tr>
2020-08-10 12:24:00 -07:00
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/Astar.gif" alt="astar" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/Bi-Astar.gif" alt="biastar" width="400"/></a></td>
2020-06-20 13:36:11 -07:00
</tr>
2020-06-28 20:47:51 -07:00
</table>
<table>
2020-06-28 20:45:07 -07:00
<tr>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/RepeatedA_star.gif" alt="repeatedastar" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/ARA_star.gif" alt="arastar" width="400"/></a></td>
2020-06-29 10:30:05 -07:00
</tr>
</table>
<table>
<tr>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/LRTA_star.gif" alt="lrtastar" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/RTAA_star.gif" alt="rtaastar" width="400"/></a></td>
2020-06-28 20:45:07 -07:00
</tr>
2020-06-20 13:36:11 -07:00
</table>
2020-07-04 18:37:24 -07:00
<table>
<tr>
2020-08-10 17:47:16 -07:00
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/D_star.gif" alt="lpastar" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/LPAstar.gif" alt="dstarlite" width="400"/></a></td>
2020-07-04 18:37:24 -07:00
</tr>
</table>
2020-07-24 00:22:45 -07:00
<table>
<tr>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/ADstar_small.gif" alt="lpastar" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/path-planning-algorithms/blob/master/Search_based_Planning/gif/ADstar_sig.gif" alt="dstarlite" width="400"/></a></td>
2020-07-24 00:22:45 -07:00
</tr>
</table>
2020-06-20 13:36:11 -07:00
</div>
2020-07-24 13:43:57 -07:00
## Animation - Sampling-Based
### RRT & Variants
<div align=right>
<table>
<tr>
2020-08-03 11:43:56 -07:00
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_2D.gif" alt="value iteration" width="400"/></a></td>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/Goal_biasd_RRT_2D.gif" alt="value iteration" width="400"/></a></td>
2020-07-24 13:43:57 -07:00
</tr>
</table>
2020-07-25 13:06:23 -07:00
<table>
<tr>
2020-08-03 11:43:56 -07:00
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_CONNECT_2D.gif" alt="value iteration" width="400"/></a></td>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/Extended_RRT_2D.gif" alt="value iteration" width="400"/></a></td>
2020-07-25 13:06:23 -07:00
</tr>
</table>
2020-07-28 12:43:32 -07:00
<table>
<tr>
2020-08-03 11:43:56 -07:00
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/Dynamic_RRT_2D.gif" alt="value iteration" width="400"/></a></td>
2020-07-30 10:04:47 -07:00
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_STAR2_2D.gif" alt="value iteration" width="400"/></a></td>
2020-07-28 12:43:32 -07:00
</tr>
</table>
2020-07-31 12:59:56 -07:00
<table>
<tr>
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/RRT_STAR_SMART_2D.gif" alt="value iteration" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/FMT.gif" alt="value iteration" width="400"/></a></td>
</tr>
</table>
2020-08-03 11:43:56 -07:00
<table>
<tr>
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/INFORMED_RRT_STAR_2D3.gif" alt="value iteration" width="400"/></a></td>
<td><img src="https://github.com/zhm-real/PathPlanning/blob/master/Sampling_based_Planning/gif/BIT2.gif" alt="value iteration" width="400"/></a></td>
</tr>
</table>
2020-07-24 13:43:57 -07:00
</div>
2020-07-03 15:47:33 -07:00
## Papers
2020-07-24 16:05:38 -07:00
### Search-base Planning
2020-08-05 12:53:19 -07:00
* [A*: ](https://ieeexplore.ieee.org/document/4082128) A Formal Basis for the heuristic Determination of Minimum Cost Paths
2020-07-29 00:29:17 -07:00
* [Learning Real-Time A*: ](https://arxiv.org/pdf/1110.4076.pdf) Learning in Real-Time Search: A Unifying Framework
* [Real-Time Adaptive A*: ](http://idm-lab.org/bib/abstracts/papers/aamas06.pdf) Real-Time Adaptive A*
2020-07-24 16:05:38 -07:00
* [Lifelong Planning A*: ](https://www.cs.cmu.edu/~maxim/files/aij04.pdf) Lifelong Planning A*
* [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
2020-07-29 00:29:17 -07:00
* [D*: ](http://web.mit.edu/16.412j/www/html/papers/original_dstar_icra94.pdf) Optimal and Efficient Path Planning for Partially-Known Environments
2020-07-03 15:56:44 -07:00
* [D* Lite: ](http://idm-lab.org/bib/abstracts/papers/aaai02b.pdf) D* Lite
* [Field D*: ](http://robots.stanford.edu/isrr-papers/draft/stentz.pdf) Field D*: An Interpolation-based Path Planner and Replanner
* [Anytime D*: ](http://www.cs.cmu.edu/~ggordon/likhachev-etal.anytime-dstar.pdf) Anytime Dynamic A*: An Anytime, Replanning Algorithm
2020-07-24 16:05:38 -07:00
* [Focussed D*: ](http://robotics.caltech.edu/~jwb/courses/ME132/handouts/Dstar_ijcai95.pdf) The Focussed D* Algorithm for Real-Time Replanning
* [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
* [Hybrid A*: ](https://ai.stanford.edu/~ddolgov/papers/dolgov_gpp_stair08.pdf) Practical Search Techniques in Path Planning for Autonomous Driving
### Sampling-based Planning
* [RRT: ](http://msl.cs.uiuc.edu/~lavalle/papers/Lav98c.pdf) Rapidly-Exploring Random Trees: A New Tool for Path Planning
* [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
* [Extended-RRT: ](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1.7617&rep=rep1&type=pdf) Real-Time Randomized Path Planning for Robot Navigation
* [Dynamic-RRT: ](https://www.ri.cmu.edu/pub_files/pub4/ferguson_david_2006_2/ferguson_david_2006_2.pdf) Replanning with RRTs
2020-07-25 14:57:51 -07:00
* [RRT*: ](https://journals.sagepub.com/doi/abs/10.1177/0278364911406761) Sampling-based algorithms for optimal motion planning
2020-07-29 10:49:08 -07:00
* [Anytime-RRT*: ](https://dspace.mit.edu/handle/1721.1/63170) Anytime Motion Planning using the RRT*
* [Closed-loop RRT* (CL-RRT*): ](http://acl.mit.edu/papers/KuwataTCST09.pdf) Real-time Motion Planning with Applications to Autonomous Urban Driving
2020-07-25 14:57:51 -07:00
* [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
* [LQR-RRT*: ](https://lis.csail.mit.edu/pubs/perez-icra12.pdf) Optimal Sampling-Based Motion Planning with Automatically Derived Extension Heuristics
2020-07-30 16:44:15 -07:00
* [RRT#: ](http://dcsl.gatech.edu/papers/icra13.pdf) Use of Relaxation Methods in Sampling-Based Algorithms for Optimal Motion Planning
* [RRT*-Smart: ](http://save.seecs.nust.edu.pk/pubs/ICMA2012.pdf) Rapid convergence implementation of RRT* towards optimal solution
2020-08-05 12:53:19 -07:00
* [Informed RRT*: ](https://arxiv.org/abs/1404.2334) Optimal Sampling-based Path Planning Focused via Direct Sampling of an Admissible Ellipsoidal heuristic
2020-07-29 00:29:17 -07:00
* [Fast Marching Trees (FMT*): ](https://arxiv.org/abs/1306.3532) a Fast Marching Sampling-Based Method for Optimal Motion Planning in Many Dimensions
2020-07-31 18:08:19 -07:00
* [Motion Planning using Lower Bounds (MPLB): ](https://ieeexplore.ieee.org/document/7139773) Asymptotically-optimal Motion Planning using lower bounds on cost
2020-07-29 00:29:17 -07:00
* [Batch Informed Trees (BIT*): ](https://arxiv.org/abs/1405.5848) Sampling-based Optimal Planning via the Heuristically Guided Search of Implicit Random Geometric Graphs
2020-07-30 16:44:15 -07:00
* [Advanced Batch Informed Trees (ABIT*): ](https://arxiv.org/abs/2002.06589) Sampling-Based Planning with Advanced Graph-Search Techniques ((ICRA) 2020)
* [Adaptively Informed Trees (AIT*): ](https://arxiv.org/abs/2002.06599) Fast Asymptotically Optimal Path Planning through Adaptive Heuristics ((ICRA) 2020)