Date: Wed, 11 Jan 2006 02:03:39 -0600 (CST) Subject: orthodox sensor approaches X-UID: 120 Content-Type: IMAGE/JPEG; NAME="img2528.jpg" Content-Type: IMAGE/JPEG; NAME="img2530.jpg" Content-Type: IMAGE/JPEG; NAME="img2532.jpg" Content-Type: IMAGE/JPEG; NAME="img2535.jpg" For autonomous cars, the two conventional main sensor approaches are video cameras, often in a stereoscopic configuration, and pulsed time of flight laser rangefinders (the ubiquitous SICK modules). Both are proven technologies. From early on, I planned to use structured light in the form of laser line levels. I realize now this is impractical for a simple reason. Structured lighting only works in structured environments. That's why it is used indoors in factories, at the point of sale, in buildings, etc. These are all highly structured environments. The other idea was stereo cameras. What I found is that even with the 1.6 GHz laptop, running two cameras simultaneously incurs a significant performance overhead. There is a device driver setting that divides bus usage between two cameras. This roughly halves the frame rate of each. Without that setting, the cameras step on each other and corrupt each other's video. In theory, multiple bus mastering DMA devices can share the same bus without performance degradation. These webcams are USB full-speed (slow 1.1) devices. There's not that much data in the video stream. Whether due to device or device driver limitations, in practice more than one camera doesn't work very well. I'd almost say that in a production system, the safest design dedicates a separate computer for each camera. So the two main sensor ideas I had from early on are both impractical for my robot as it is today. This leads back to an entirely conventional approach - a monocular camera, which also happens to be the cheapest and technically most accessible solution. There may be multiple cameras. But only one is in active use at any one time. The robot will have to rely on monocular cues which means optic flow and feature detection. This moves the emphasis clearly onto software, algorithms and intelligence. Why did I have to spend so much time planning and making things that are now clearly wrong? I think that I needed to have failure to drive away wishful thinking. Without some cost of failure, I wouldn't listen to reason. So what does my reason tell me now? I think that the monocular image processing will be computationally expensive and difficult. In particular, feature detection is a hard problem. And my wishful thinking says - the ace up my sleeve is cheating by pre-computing to an arbitrary degree detailed mission profiles which constrain the problem enough for the robot computers to handle it. This is really the classic computer science tradeoff of space for time. It's the way precision guided ordnance like cruise missiles work. Here's some interesting hobby stuff that came up along the way. After potting the diode laser modules in epoxy, I tested them. One was visibly brighter than the other (which does not necessarily indicate higher power as the eye's sensitivity varies with wavelength). The bright one drew a current of 22 milliamps. The dim one drew a current of 66 milliamps. As the power supply boards for the two lasers are visibly different designs, it should not be surprising that the diode laser modules are different. I was surprised. Maybe I'll be able to use the diode laser modules in some manner. I'm kind of afraid of them as they certainly aren't toys even though they are class 3a (less than 5 milliwatts). The laser spot reflected off the wall does seem to be very bright. I wouldn't want that light to flash directly into an eyeball.