HOME

TheInfoList



OR:

A rapidly exploring random tree (RRT) is an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
designed to efficiently search
nonconvex A convex polytope is a special case of a polytope, having the additional property that it is also a convex set contained in the n-dimensional Euclidean space \mathbb^n. Most texts. use the term "polytope" for a bounded convex polytope, and the wor ...
, high-dimensional spaces by randomly building a
space-filling tree Space-filling trees are geometric constructions that are analogous to space-filling curves, but have a branching, tree-like structure and are rooted. A space-filling tree is defined by an incremental process that results in a tree for which every ...
. 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 problem. RRTs were developed by Steven M. LaValle and
James J. Kuffner Jr. James J. Kuffner Jr. (born 1971) is an American roboticist and chief executive officer (CEO) of Woven Planet Holdings. Dr. Kuffner is also Chief Digital Officer and member of the Board of Directors of Toyota Motor Corporation. Kuffner continu ...
They easily handle problems with obstacles and differential constraints (
nonholonomic A nonholonomic system in physics and mathematics is a physical system whose state depends on the path taken in order to achieve it. Such a system is described by a set of parameters subject to differential constraints and non-linear constraints, ...
and kinodynamic) and have been widely used in autonomous robotic
motion planning Motion planning, also path planning (also known as the navigation problem or the piano mover's problem) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination. The term is used ...
. RRTs can be viewed as a technique to generate open-loop trajectories for nonlinear systems with state constraints. An RRT can also be considered as a
Monte-Carlo Monte Carlo (; ; french: Monte-Carlo , or colloquially ''Monte-Carl'' ; lij, Munte Carlu ; ) is officially an administrative area of the Principality of Monaco, specifically the ward of Monte Carlo/Spélugues, where the Monte Carlo Casino is ...
method to bias search into the largest Voronoi regions of a graph in a configuration space. Some variations can even be considered
stochastic Stochastic (, ) refers to the property of being well described by a random probability distribution. Although stochasticity and randomness are distinct in that the former refers to a modeling approach and the latter refers to phenomena themselve ...
fractal In mathematics, a fractal is a geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scales, as il ...
s. RRTs can be used to compute approximate control policies to control high dimensional nonlinear systems with state and action constraints.


Description

An RRT grows a tree rooted at the starting configuration by using random samples from the search space. As each sample is drawn, a connection is attempted between it and the nearest state in the tree. If the connection is feasible (passes entirely through free space and obeys any constraints), this results in the addition of the new state to the tree. With uniform sampling of the search space, the probability of expanding an existing state is proportional to the size of its Voronoi region. As the largest Voronoi regions belong to the states on the frontier of the search, this means that the tree preferentially expands towards large unsearched areas. The length of the connection between the tree and a new state is frequently limited by a growth factor. If the random sample is further from its nearest state in the tree than this limit allows, a new state at the maximum distance from the tree along the line to the random sample is used instead of the random sample itself. The random samples can then be viewed as controlling the direction of the tree growth while the growth factor determines its rate. This maintains the space-filling bias of the RRT while limiting the size of the incremental growth. RRT growth can be biased by increasing the probability of sampling states from a specific area. Most practical implementations of RRTs make use of this to guide the search towards the planning problem goals. This is accomplished by introducing a small probability of sampling the goal to the state sampling procedure. The higher this probability, the more greedily the tree grows towards the goal.


Algorithm

For a general configuration space ''C'', the algorithm in
pseudocode In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine re ...
is as follows: Input: Initial configuration ''q''''init'', number of vertices in RRT ''K'', incremental distance ''Δq'' Output: RRT graph ''G'' ''G''.init(''q''''init'') for ''k'' = 1 to ''K'' do ''q''''rand'' ← RAND_CONF() ''q''''near'' ← NEAREST_VERTEX(''q''''rand'', ''G'') ''q''''new'' ← NEW_CONF(''q''''near'', ''q''''rand'', ''Δq'') ''G''.add_vertex(''q''''new'') ''G''.add_edge(''q''''near'', ''q''''new'') return ''G'' In the algorithm above, "RAND_CONF" grabs a random configuration ''q''''rand'' in ''C''. This may be replaced with a function "RAND_FREE_CONF" that uses samples in ''C''''free'', while rejecting those in ''C''''obs'' using some collision detection algorithm. "NEAREST_VERTEX" is a function that runs through all vertices ''v'' in graph ''G'', calculates the distance between ''q''''rand'' and ''v'' using some measurement function thereby returning the nearest vertex. "NEW_CONF" selects a new configuration ''q''''new'' by moving an incremental distance ''Δq'' from ''q''''near'' in the direction of ''q''''rand''. (According to in holonomic problems, this should be omitted and ''q''''rand'' used instead of ''q''''new''.)


Variants and improvements for motion planning

* RRT-Rope, a method for fast near-optimal path planning using a deterministic shortening approach, very effective in open and large environments. *Parti-game directed RRTs (PDRRTs), a method that combines RRTs with the parti-game method to refine the search where it is needed (for example around obstacles) to be able to plan faster and solve more
motion planning Motion planning, also path planning (also known as the navigation problem or the piano mover's problem) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination. The term is used ...
problems than RRT * Closed-loop rapidly-exploring random (CL-RRT), an extension of RRT that samples an input to a stable closed-loop system consisting of the vehicle and a controller It has been shown that, under 'mild technical conditions', the cost of the best path in the RRT converges almost surely to a non-optimal value. For that reason, it is desirable to find variants of the RRT that converges to an optimum, like RRT*. Below follows is a list of RRT*-based methods (starting with RRT* itself). Not all of the derived methods do themselves converge to an optimum, though. * Rapidly-exploring random graph (RRG) and RRT*, a variant of RRT that converges towards an optimal solution * LQR-RRT, a kinodynamic variant for complex or underactuated dynamics * RRT, a family of RRT-based planners aiming to generate solutions for high-dimensional systems in real-time, by progressively searching in lower-dimensional subspaces. * RRT*-Smart, a method for accelerating the convergence rate of RRT* by using path optimization (in a similar fashion to
Theta* Theta* is an any-angle path planning algorithm that is based on the A* search algorithm. It can find near-optimal paths with run times comparable to those of A*. Description For the simplest version of Theta*, the main loop is much the same as ...
) and intelligent sampling (by biasing sampling towards path vertices, which – after path optimization – are likely to be close to obstacles) * A*-RRT and A*-RRT*, a two-phase
motion planning Motion planning, also path planning (also known as the navigation problem or the piano mover's problem) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination. The term is used ...
method that uses a
graph search algorithm In computer science, graph traversal (also known as graph search) refers to the process of visiting (checking and/or updating) each vertex in a graph. Such traversals are classified by the order in which the vertices are visited. Tree traversal ...
to search for an initial feasible path in a low-dimensional space (not considering the complete state space) in a first phase, avoiding hazardous areas and preferring low-risk routes, which is then used to focus the RRT* search in the continuous high-dimensional space in a second phase * RRT*FN, RRT* with a fixed number of nodes, which randomly removes a leaf node in the tree in every iteration * RRT*-AR, sampling-based alternate routes planning * Informed RRT*, improves the convergence speed of RRT* by introducing a heuristic, similar to the way in which A* improves upon
Dijkstra's algorithm Dijkstra's algorithm ( ) is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years ...
* Real-Time RRT* (RT-RRT*), a variant of RRT* and informed RRT* that uses an online tree rewiring strategy that allows the tree root to move with the agent without discarding previously sampled paths, in order to obtain
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
path-planning in a dynamic environment such as a computer game * RRT and RRT, optimization of RRT* for dynamic environments * Theta*-RRT, a two-phase
motion planning Motion planning, also path planning (also known as the navigation problem or the piano mover's problem) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination. The term is used ...
method similar to A*-RRT* that uses a hierarchical combination of
any-angle search Any-angle path planning algorithms are a subset of pathfinding algorithms that search for a path between two points in space and allow the turns in the path to have any angle. The result is a path that goes directly toward the goal and has relative ...
with RRT motion planning for fast trajectory generation in environments with complex
nonholonomic A nonholonomic system in physics and mathematics is a physical system whose state depends on the path taken in order to achieve it. Such a system is described by a set of parameters subject to differential constraints and non-linear constraints, ...
constraints * RRT* FND, extension of RRT* for -dynamic environments *RRT-GPU, three-dimensional RRT implementation that utilizes hardware acceleration * APF-RRT, a combination of RRT planner with Artificial Potential Fields method that simplify the replanning task * CERRT, a RRT planner modeling uncertainty, which is reduced exploiting contacts *MVRRT*, Minimum violation RRT*, an algorithm that finds the shortest route that minimizes the level of unsafety (the "cost" of the environment rules that have been violated, e.g. traffic laws) *RRT-Blossom, RRT planner for highly constrained environments. *RRV, efficiently expand the tree around obstacles and through narrow passages, using dominant eigenvectors around tree nodes. *RBT, uses simple distance computations in the workspace to expand the tree instead of expensive collision check. *TB-RRT, Time-based RRT algorithm for rendezvous planning of two dynamic systems. *RRdT*, a RRT*-based planner that uses multiple local trees to actively balances the exploration and exploitation of the space by performing local sampling.


See also

:*
Any-angle path planning Any-angle path planning algorithms are a subset of pathfinding algorithms that search for a path between two points in space and allow the turns in the path to have any angle. The result is a path that goes directly toward the goal and has relativ ...
:*
Probabilistic roadmap The probabilistic roadmap planner is a motion planning algorithm in robotics, which solves the problem of determining a path between a starting configuration of the robot and a goal configuration while avoiding collisions. The basic idea behind P ...
:*
Space-filling tree Space-filling trees are geometric constructions that are analogous to space-filling curves, but have a branching, tree-like structure and are rooted. A space-filling tree is defined by an incremental process that results in a tree for which every ...
:*
Motion planning Motion planning, also path planning (also known as the navigation problem or the piano mover's problem) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination. The term is used ...
:*
Randomized algorithm A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performa ...


References


External links

*{{Commons category-inline, Rapidly exploring random tree
Java visualizer of RRT and RRT* including map editorC++ implementation of RRT using Dubins minimum-time paths
Search algorithms Robot navigation Probabilistic data structures