A Probabilistic Language based upon Sampling Functions - Experimental results

Sungwoo Park, Frank Pfenning, Sebastian Thrun

Sensor readings

Range readings produced by a laser range finder. The robot faces a person on its right, visible as the shadows of two legs.

Samples from the action model.

Robot localization

To test the robot localizer, we use a Nomad XR4000 mobile robot in Wean Hall at Carnegie Mellon University. We use CARMEN for controlling the robot and collecting sensor readings. The robot localizer runs on a Pentium III 500Mhz with 384 MBytes memory.

We test the robot localizer for global localization. The initial probability distribution of robot pose is a uniform distribution over the open space in the map, which is approximated with 100,000 samples. The first batch of range readings is processed according to the update equation (4) in the paper. The resultant probability distribution, which is still approximated with 100,000 samples, is then replaced by its support approximated with 500 samples. The number of samples, 100,000 or 500, is chosen empirically --- both too many and too few samples prevent the probability distribution from converging to a correct pose.

We test the robot localizer with 8 runs, each of which takes a different path. In a test experiment, it succeeds to localize the robot on 5 runs and fails on 3 runs. The result should not be considered statistically significant. As a comparison, the CARMEN robot localizer, which uses particle filters and is written in C, succeeds on 3 runs and fails on 5 runs in a similar test experiment. Note that the same sequence of sensor readings does not guarantee the same result because of the probabilistic nature of the robot localizer. In the worst scenario, the initial probability distribution of robot pose may have no samples around the true pose, in which case the robot localizer is unlikely to recover from errors.

A grid map and its likelihood map

A probability distribution of robot pose after processing the first batch of range readings. Red pluses represent samples generated from the probability distribution. The robot starts right below character A, but there are relatively few samples around the true position of the robot.

Progress of a real-time robot localization run. Taken at 20 seconds, 40 seconds, and 80 seconds after processing the first batch of sensor readings. The first two pictures show that the robot localizer is still performing global localization. The last picture shows that the robot localizer has started pose tracking as the probability distribution of robot pose has converged to a single hypothesis.

Code for robot localization

People tracking

Progress of a real-time people tracking run. Taken at 0 seconds, 20 seconds, and 70 seconds after processing the first batch of sensor readings. Red pluses (+) represent robot poses and green crosses (x) represent positions of people. The second picture shows that the people tracker is still performing global localization. The last picture shows that the people tracker has started pose tracking; the position of each person in sight is indicated by a grey dot.

Range readings when the third picture above is taken. The right picture shows a view of the area around the robot. Note that a person may be occluded by another person or objects in the map, so grey dots do not always reflect the movement of people instantly.

Robotic mapping

To test the mapper, we use a data set collected with an outdoor vehicle in Victoria Park, Sydney (http://www.acfr.usyd.edu.au/homepages/academic/enebot/dataset.htm). The mapper runs on the same machine that is used in robot localization and people tracking (Pentium III 500Mhz with 384 MBytes memory). The data set is collected while the vehicle moves approximately 323.42 meters (according to the odometry readings) in 128.8 seconds. Since the vehicle is driving over uneven terrain, raw odometry readings are noisy and do not reflect the true path of the vehicle, in particular when the vehicle follows a loop.

Raw odometry readings in the experiment. Green crosses represent the true positions of the vehicle measured by a GPS sensor. The GPS sensor readings are available only for part of the entire traverse. Note that the odometry readings eventually diverge from the true path of the vehicle.

Result of the robotic mapping experiment in which we approximate the probability distribution with a single sample and use 1,000 samples for the expectation query and the Bayes operation. The circles represent landmark positions (mean of their probability distributions). The mapper successfully closes the loop, building a map of the landmarks around the path. The experiment, however, takes 145.89 seconds, which is 13.26% longer than it takes to collect the data set (128.8 seconds).