Team Robo Monster™

Monday, August 08, 2005

Sensory Panel Types

During the last month we've been experimenting with different configurations of sensory panels. As described in earlier posts, each panel will form part of the outer body of the vehicle. The "sensor dense" approach makes each of these panels a sort of low-resolution visual system - providing 3D object and vector data to the vehicle, independent of cameras.

After some shuffling around, we have ended up with the following configurations:

"Panel" 1 - 5 sensors. 1 centrally-placed 40kHz Devantech sonar working out to 10 feet, with 4 surrounding Sharp IR threshold sensors working to about 4 feet. The total span covered by this panel is about 30cm x 20 cm. This is the configuration that will cover parts of the vehicle not aiming directly front, back, or to the sides. It provides a basic "skin".
a) For long-range detection, the panel only reports the distance along the z-axis - the object is assumed to be centered on the panel.

b) But if one of the IR sensors is tripped, the panel uses this to refine the position estimate for the object.

c) The object may cover 1, 2, 3 or all 4 IR sensors. This allows some discrimination of object shape - horizontal, vertical, and diagonal bars may be recorded.

d) IR sensors "hits" increase the reality of the sonar detection. If IR registers a hit and sonar does not, then the objects reality is lessened. In practice, this has never happened with the panel.

e) Movement is detected by comparing two successive samplings from the sensors. The data is used to generate a 3D motion vector.
The panel outputs several kinds of pseudo-NMEA strings:
a) Simple list of detections by sonar and IR. This data is output is a virtual "retina" with 9 pixels (3x3) and a z-axis divided into about 150 pixels, so the total volume is about 3x3x100, or 1000 pixels. The data may be used to develop an "evidence grid" for objects.

b) Object detection, sent as apparent location and minimum size, and shape in some cases.

c) Motion, as a difference map of the virtual "retina"

d) Object detection, sent as the apparention position and motion of the object, with lower limits to size.

e) Configuration, listing sensors by name, panel height/width, number, and sensor positions on panel.
Even this relatively simple panel takes a lot of computing. Already, it's become obvious that we need to allow feedback to the panel microprocessor. The microprocessor may integrate the data, but "watchdog" functions detecting faulty sensors are handled at a higher level. So, we are going to add an occasional pause where the microprocessor listens for commands from the upstream computers.

We're working on two other panels, which bracket the extremes between "Panel 1". "Panel 2" is a collection of "slow" sensors - in particular temperature, humidity, and magnetic compass, plus a tilt sensor. The Memsic tilt sensor is not really "slow", but the information is integrated over a couple of seconds to detect slow changes in the tilt of the vehicle. These panels (about 5) run in a strip along the top of the vehicle. "Panel 3" is currently being worked on. It is much more complex. The current testing design consists of 4 threshold IR detectors, 4 digital IR detectors (shorter range), One long-range sonar with light sensor, two short-range 235kHz sonars, and temperature sensors. This is also placement for a low-resolution "webcam" level camera.

The non-camera panels all use a single microprocessor to handle their data. The webcams get a dedicated computer. The output of the microprocessors from the non-camera data may be configured as a "retina" so the same image processing algorithms may be used for visual and IR/ultrasound data.

We've also written a simple visualizer for the panels in the Windows IDE, currently in visual basic. It processes the data reasonably well, but display updates are clearly not real-time. However, it really gives us a feel whether our panel software is actually working...