A reasonably efficient planner can be made by directly using the
algorithm in Figure 5.21 to grow a tree from
and periodically check whether it is possible to connect the RDT to
. An easy way to achieve this is to start with a dense
sequence
and periodically insert
at regularly
spaced intervals. For example, every
th sample could be
. Each time this sample is reached, an attempt is made to
reach
from the closest vertex in the RDT. If the sample
sequence is random, which generates an RRT, then the following
modification works well. In each iteration, toss a biased coin that
has probability
of being HEADS and
of being
TAILS. If the result is HEADS, then set
, to
be the next element of the pseudorandom sequence; otherwise, set
. This forces the RRT to occasionally attempt
to make a connection to the goal,
. Of course,
is
arbitrary, but it is in a range that works well experimentally. If
the bias is too strong, then the RRT becomes too greedy like the
randomized potential field. If the bias is not strong enough, then
there is no incentive to connect the tree to
. An alternative
is to consider other dense, but not necessarily nonuniform sequences in
. For example, in the case of random sampling, the probability
density function could contain a gentle bias towards the goal.
Choosing such a bias is a difficult heuristic problem; therefore, such
a technique should be used with caution (or avoided altogether).
Steven M LaValle 2020-08-14