Lazy Probabilistic Roadmap Method (LazyPRM)

Computer Science 476 - Final Project - Spring 2001
Viviane Vasconcelos & James Richards

 

Problem Description:

The Probabilistic Roadmap Method (PRM) is a successful path-planning method that is used for a universe with many degrees of freedom. The main idea the PRM is to construct a roadmap of a universe with nodes and edges. Then, you simply find the shortest path from the initial state to the goal state. This works well for moderately -high dimensions (6-10) and is reasonably predictable. The problem of the PRM is the requirement of preprocessing and heavily relies on fast collision checking. Also, a normal PRM has problems when there is a narrow corridor that links two portions of the configuration space.


Image taken form here.

Our enhancement of this PRM is called the LazyPRM. The LazyPRM repeatedly searches for a shortest path. If a node/edge is found to be in a collision, we find nodes that surround that node, then we remove the node and start over again.

We used PRM.h and PRM.C as our base class, then changed it so that when a connection couldn't be made to a node, we would do node enhancement. This is a very efficient and effective way to search for collision-free paths. We have found that it works better than the normal PRM and faster too. It is ever capable of solving the problems above flawlessly (see Example 4)

Computed Examples:

2D Point: This example was part of the base Motion Strategy Library's data collection. The LazyPRM successfully finds it's way through the maze and more reliably than the normal PRM.
car1: This example was part of the base Motion Strategy Library's data collection. The LazyPRM successfully finds it's way through the space.
car2: This example was part of the base Motion Strategy Library's data collection. The LazyPRM successfully "lands" the car.
car3: This example was part of the base Motion Strategy Library's data collection. The LazyPRM successfully drives the car through the course.
consu: Our main goal was to successfully complete this problem. The normal PRM can not solve this (if it does "successfully" find a path, it goes through the pillar), but our modifications have made it so that you can find the correct path with the LazyPRM.

Implementation Files:

Motion Strategy Files:

lazy.C                        -File used to create the windows to see all of the data.

lazyPRM.C                -The implementation of the class

lazyPRM.h                -LazyPRM header file

Makefile                    -Makefile used to create "lazy"