Bearing-Range Experiment Page

This page is a record of the experimental run of the vision scout grabbing and processing images for light landmarks and computing bearing and range to the extracted features.

Experiment of September 25, 2002.
Conducted by brad lisien (blisien@andrew.cmu.edu)

This experiment was arranged in SBP lab 2 here at Carnegie Mellon.

There were multiple purposes for this experiment including: testing the vision system, attempting online image processing, quantifying the speed at which we can process images, and gathering real bearing and range data with which we can test our model for the sensor. All of these goals fall under the focus of proving the vision system.

To carry out the experiment, the robot was commanded to travel 144 inches forward at a speed of 4 inches per second. As the Scout drove across the room, the camera recorded images that were processed online to extract and track a single light source based on intensity. To initialize the location of the light, image differencing was used whereby a base image was taken with the light turned off followed by another image where the light is turned on. The base image can be subtracted from the illuminated image thus leaving a region of large change in the location of the light. To track the light, at each step the algorithm started at the last light location in the image and searched outward for a region of large intensity. This method is not terribly robust except in the controlled environment of the lab. However, it does serve the purpose of allowing for experimentation while the color landmark extractor is being developed.

The data was plotted for analysis in Matlab assuming perfect odometry. This isn't a terribly restrictive assumption because of the well behaved floor surface, the nature of the straight-line path, and the placement of both the landmark and robot were probably less precise than the robot's odometry. The results are shown below.

Results:

relative x-y position
This is a plot of the relative x-y path of the robot, the landmark, and the locations of where the robot measured the landmark to be. The origin of the axes is the starting location of the robot, the actual landmark location was measured by hand. The robot's path, taken as truth from the odometry, is shown by the dot-dash line, the true landmark location with a magenta '+', and the measurement locations with the blue '.'. The data is clustered fairly well near the true location of the landmark. The separate cluster away from the main one shows a break down in the image location to range model. This error is more evident in the next plot.


Range comparison
Shown here is a plot of expected range reading, the red curve, and the actual range data plotted along the x location of the robot in its path. The most notable feature is the sections of relatively straight lines. This is the result of the linear interpolation of the data. To map the distance in image space to range, an experiment was conducted to gather data varying range and recording image distance. This data was used to form a lookup table with linear interpolation between the data points. As is obvious from the above graph, this data needs to be spaced more closely in order to better approximate the range.

Some systematic bias can be seen in the estimation of the range always being shorter than the expected value.

Discussion

The data show a good start in the modeling of our sensor. However, they also show some great room for improvement. The error evident in the data warants a more thorough sampling of the image location to range mapping.

The system was able to process approximately 5 frames per second. The time breakdown is as follows, the average time for a loop was 197 ms:
Scout communication: 134 ms (68%)
Take a picture: 63 ms (32%)
Image Processing: 0.026 ms (0.01%)
Other stuff: 0.003 ms (0.001%)
This is somewhat reassuring. The overwhelming majority of the time was taken up in communicating with the scout over its serial interface. This communication included a velocity command and a command to return the state of the robot at every step. The next largest chunk of time was taken up by grabbing the images off of the firewire card. This means that simply streaming images from the card could be managed at ~15 fps. It turns out that the image processing took up a very small amount of time. This should not be expected from the color landmark extractor; however, I would not expect the difference to be many orders of magnitude off. I will stand by my prediction of being able to take and process images at around 10 fps.

 


Go back to: H-SLAM Experiments Page | H-SLAM page

Jump to: People | Robots | Research | Events | Projects | Education | Papers | Software | Links

© Copyright 2002 Sensor Based Planning Lab, Carnegie Mellon University. All Rights Reserved.