Homepage > Motion planning > Software

One of the fundamental tasks robots have to perform is planning their motions while avoiding collisions with obstacles in the environment. This is the central topic of the thesis. We restrict ourselves to motion planning for two- and three-dimensional rigid bodies and articulated robots moving in static and known virtual environments.


SAMPLE: System for Advanced Motion Planning Experiments

We created SAMPLE: System for Advanced Motion Planning Experiments. This software makes it possible to set up (probabilistic) motion planning experiments very quickly. An experiment consists of choices that can be made in the Probabilistic Roadmap Method (PRM), see the figure. Such a choice is an actual implementation of the PRM component. For each implementation, a set of accompanying parameters can be specified.


The (Windows) framework can be downloaded here [2.16MB]. The zip file also contains all test environments and robots. Commercial usage is not allowed. Note: SAMPLE assumes MSXML 4.0 Service Pack 2 to be installed on your system. You can also download this file here.

Features of our framework

Specifying the PRM

First, an environment and robot has to be chosen. They can be specified by any VRML file or by our own XML based file format. At the moment, we support rigid body and articulated robots. Second, implementations for the construction step can be specified. This includes a sampling strategy, neighbor selecting strategy, distance metric, local planner and termination criterion. Then, the user can specify when the query (or queries) should be added to the roadmap. Each query consists of a start and goal configuration. For each configuration, the user can specify the values for each degree of freedom of the robot. Finally, a path that is extracted from the roadmap can be optimized by choosing a particular optimization strategy.


After the implementation of the PRM has been specified, the user can set up the actual experiment. There are two types of experiments possible.

First, the user can compare different instances of a PRM component by selecting those instances. For example, the user has selected the Sampling component and has chosen the Bridge test, Gaussian and Medial axis sampling techniques.

Second, the user can examine the influence of a particular parameter of an instance. This can be done by specifying the range and step size of parameter. For example, in Figure 6, we want to know what happens when we change parameter sigma in the Gaussian sampling strategy. One (or more) experiment(s) are performed for each different value of sigma [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0].

Finally, the user can specify how often the (set of) experiments have to be performed (by specifying the number of runs).


Many kinds of charts for many different statistics can be generated. Because the statistical data is processed automatically, the chance on errors is reduced.

Animations of some studied test scenes

Here you see some computed (and smoothed) paths in our test scenes (i.e. rooms, corridor, clutter, hole, house, respectively).

There are three rooms with lots of space and with narrow doors between them. So the density of obstacles is rather non-uniform. The table must move through the two narrow doors to the other room. The table is rather complex because it has four cylindrical legs, leading to more time-consuming collision checking.

Rooms scene

This is the most simple scene. An L-shaped object must translate and rotate through a winding corridor to the other end. Some obstacles force rotation of the object. We expect that all methods can solve this problem very quickly.

Corridor scene

This scene consists of 500 uniformly distributed tetrahedra. An L-shaped object must move among them from one corner to the other. The configuration space will consist of many narrow corridors. There are multiple solutions to the query.

Clutter scene

A rather famous test scene. The moving object consists of four legs and must rotate in a complicated way to get through the hole. The hole is placed off-center to avoid that certain grid-based method have an advantage. The configuration space will have two large open areas with (most likely) two narrow winding passages between them.

Hole scene

The house is a complicated scene consisting of 1600 polygons. It has many small rooms. As a result a large roadmap will be required to cover the free space. Also, because walls are thin, the collision checker must make rather small steps along the paths, resulting in much higher collision checking times.

House scene