Randomized Potential Field Implementation
Com S 476 FINAL PROJECT - Spring 2001
Nick Mayer and Shaun Jurgemeyer
Project Description
 |
Our goal was to create a Randomized Potential Field (RPF) path planner that
efficiently solves most problems. This algorithm uses several different methods of finding
the goal and can be implemented in a variety of ways.
We started out with the basic model of an RPF solver in mind which includes descend,
backtrack and random walk functions. We created
functions for all three methods. We also implemented this idea for the inputs
on non-holonomic problems. We then spent a lot of time tweaking
parameters to make the functions work better. To help our random walk function
perform better, we modified it to use a bounce walk as the random walk function. This
allowed us to get free from local minima more quickly. We also implemented a smoothing function which
smooths out the bumps in our path. This helps to make a more realistic route to
the goal. |
We have created an efficient
implementation of this algorithm so that it will perform well on most cases.
Because of the randomness of this method there are some cases where the algorithm
will fail or produce an undesirable path. However, it is usually possible to
optimize the constants used by the RPF for a particular problem type. For
example, it is usually more desirable to have a lower stuck ratio for three
dimensional problems.
Our implementation of this algorithm followed the RPF idea in most aspects. The
major change that we made to the RPF algorithm given in class, was to use a bounce walk
in the place of a random walk. For non-holonomic problems, we modified the
descend and random walk functions to accommodate restricted inputs. We found these modifications improved our performance
greatly in most cases.
Examples
Simple Examples
- EXAMPLE 1: One of our best initial trials
- EXAMPLE 2: A less than optimal good solution
- EXAMPLE 3: Getting stuck
a little too easily
- EXAMPLE 4: Some bad luck on our
bounce walks, and falsely getting stuck near the goal
- EXAMPLE 5: A non-holonomic 3d trial (birdcage)
- EXAMPLE 6: A holonomic 3d trial (birdcage)
- EXAMPLE 7: A non-holonomic trial
- EXAMPLE 8:
Stuck function is working properly now.
- EXAMPLE 9: A new metric and
better stuck function create a good escape from a local minima.
Implementation Files