diff --git a/README.md b/README.md index 1c9437a..80cf76e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This repository assumes that you have this [repo](https://github.com/pmusau17/Pl # RRT*: -Rapidly exploring random trees (RRTs) are a family of algorithms designed to efficiently search high-dimensional spaces by randomly building a space filling tree. The tree is constructed incrementally from samples drawn randomly from the search space and is inherently biased to grow towards large unsearched areas of the configuration space (robot's world). A great introduction to these algorithms can be found in the following [paper](https://people.eecs.berkeley.edu/~pabbeel/cs287-fa19/optreadings/rrtstar.pdf). In this paper, Sertac Karaman et al. proposed a new variant of RRT which had RRT∗ that has shown to be computationally efficient and possesses probabilistic completeness guarantees. The approach is also asymptotically optimal. What does that mean? An algorithm is said to be complete if it terminates in finite time, returning a valid solution if one exists, and failure otherwise. In this case, it will find a path if one exists, and the asymptotic optimality piece guarantees that eventually (asymptotically) the algorithm will find the shortest path between the start point and goal point that defines the planning problem. If you are like me then this becomes more clear with pictures and an underlying implementation. You can find two different implmentations of the rrt* algorithm in the [rrt_star](rrt_star/) and [rrt_star_ros](rrt_star_ros) directories. They were inspired (very similar) to the ones contained [here](https://github.com/zhm-real/PathPlanning) where you can find many more implementations of planning algorithms. The [rrt_star](rrt_star/) implementation using an explicit model of obstacles, while the latter [directory]([rrt_star_ros](rrt_star_ros)) does the planning over an occupancy grid. Below are gifs that show planning over the occupancy grid. +Rapidly exploring random trees (RRTs) are a family of algorithms designed to efficiently search high-dimensional spaces by randomly building a space filling tree. The tree is constructed incrementally from samples drawn randomly from the search space and is inherently biased to grow towards large unsearched areas of the configuration space (robot's world). A great introduction to these algorithms can be found in the following [paper](https://people.eecs.berkeley.edu/~pabbeel/cs287-fa19/optreadings/rrtstar.pdf). In this paper, Sertac Karaman et al. proposed a new variant of RRT which had RRT∗ that has shown to be computationally efficient and possesses probabilistic completeness guarantees. The approach is also asymptotically optimal. What does that mean? An algorithm is said to be complete if it terminates in finite time, returning a valid solution if one exists, and failure otherwise. In this case, it will find a path if one exists, and the asymptotic optimality piece guarantees that eventually (asymptotically) the algorithm will find the shortest path between the start point and goal point that defines the planning problem. If you are like me then this becomes more clear with pictures and an underlying implementation. You can find two different implmentations of the rrt* algorithm in the [rrt_star](rrt_star/) and [rrt_star_ros](rrt_star_ros) directories. They were inspired (very similar) to the ones contained [here](https://github.com/zhm-real/PathPlanning) where you can find many more implementations of planning algorithms. The [rrt_star](rrt_star/) implementation using an explicit model of obstacles, while the latter [directory]([rrt_star_ros](rrt_star_ros)) does the planning over an occupancy grid. Below are gifs that show planning over the occupancy grid. A lot of the terminology in this space lost me but this [textbook](http://lavalle.pl/planning/) by Steven Lavale was a Godsend. ![RRT_Biased](images/rrt_normal.gif)