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)
| 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. |
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"