Note that in the discussion of variable-radius PRM in LaValle (2006), it is suggested that the
radius be chosen as a function of sample dispersion. (Recall that the dispersion of a point set
contained in a bounded set S ⊂ R
d
is the radius of the largest empty ball centered in S.) Indeed,
the dispersion of a set of n random points sampled uniformly and independently in a bounded set
is O((log(n)/n)
1/d
) (Niederreiter, 1992), which is precisely the rate at which the connection radius
is scaled in the PRM
∗
algorithm.
Algorithm 4: PRM
∗
1 V ← {x
init
} ∪ {SampleFree
i
}
i=1,...,n
; E ← ∅;
2 foreach v ∈ V do
3 U ← Near(G = (V, E), v, γ
PRM
(log(n)/n)
1/d
) \ {v};
4 foreach u ∈ U do
5 if CollisionFree(v, u) then E ← E ∪ {(v, u), (u, v)}
6 return G = (V, E);
Another version of the algorithm, called k-nearest PRM
∗
, can be considered, motivated by the
k-nearest PRM implementation previously mentioned, whereby the number k of nearest neighbors
to be considered is not a constant, but is chosen as a function of the cardinality of the roadmap n.
More precisely, k(n) := k
PRM
log(n), where k
PRM
> k
∗
PRM
= e (1 + 1/d), and U ← kNearest(G =
(V, E), v, k
PRM
log(n)) \ {v} in line 3 of Algorithm 4.
Note that k
∗
PRM
is a constant that only depends on d, and does not otherwise depend on the
problem instance, unlike γ
∗
PRM
. Moreover, k
PRM
= 2e is a valid choice for all problem instances.
Rapidly-exploring Random Graph (RRG): The Rapidly-exploring Random Graph algo-
rithm was introduced as an incremental (as opposed to batch) algorithm to build a connected
roadmap, possibly containing cycles. The RRG algorithm is similar to RRT in that it first at-
tempts to connect the nearest node to the new sample. If the connection attempt is successful, the
new node is added to the vertex set. However, RRG has the following difference. Every time a new
point x
new
is added to the vertex set V , then connections are attempted from all other vertices in
V that are within a ball of radius r(card (V )) = min{γ
RRG
(log(card (V ))/ card (V ))
1/d
, η}, where
η is the constant appearing in the definition of the local steering function, and γ
RRG
> γ
∗
RRG
=
2 (1 + 1/d)
1/d
(µ(X
free
)/ζ
d
)
1/d
. For each successful connection, a new edge is added to the edge set
E. Hence, it is clear that, for the same sampling sequence, the RRT graph (a directed tree) is a
subgraph of the RRG graph (an undirected graph, possibly containing cycles). In particular, the
two graphs share the same vertex set, and the edge set of the RRT graph is a subset of that of the
RRG graph.
Another version of the algorithm, called k-nearest RRG, can be considered, in which connections
are sought to k nearest neighbors, with k = k(card (V )) := k
RRG
log(card (V )), where k
RRG
>
k
∗
RRG
= e (1 + 1/d), and X
near
← kNearest(G = (V, E), x
new
, k
RRG
log(card (V ))), in line 7 of
Algorithm 5.
Note that k
∗
RRG
is a constant that depends only on d, and does not depend otherwise on the
problem instance, unlike γ
∗
RRG
. Moreover, k
RRG
= 2e is a valid choice for all problem instances.
Optimal RRT (RRT
∗
): Maintaining a tree structure rather than a graph is not only economical
in terms of memory requirements, but may also be advantageous in some applications, due to, for
instance, relatively easy extensions to motion planning problems with differential constraints, or
14