A robot needs to move from A to B without hitting obstacles. One elegant approach is to grow a random tree: pick a random point in space, connect it to the nearest node already in the tree, and repeat until the tree reaches the goal. This is the idea behind RRT (Rapidly-exploring Random Tree), introduced by Steven LaValle in 1998.
RRT is fast and handles high-dimensional spaces well — but the path it finds is not particularly good. The tree grows in random directions and the route it eventually reaches the goal by is typically jagged and far from optimal. You can run RRT for as long as you like and it will never improve the path it already found.
RRT* (pronounced "RRT-star"), introduced by Sertac Karaman and Emilio Frazzoli in 2011, adds a single crucial insight: after each new node is inserted, rewire the tree so that nearby nodes adopt the new node as their parent whenever that gives them a shorter path from the start. This tiny change makes the algorithm asymptotically optimal — as the number of samples grows, the path length is guaranteed to converge to the true shortest path.
The difference between RRT and RRT* is the difference between "finds a path" and "finds the best path."
Comments
Loading comments...