Date: Thu, 6 Apr 2006 02:37:00 -0500 (CDT) Subject: mockup of monocular image processing X-UID: 160 Here's a first pass at the image processing for monocular vision. My current approach is region segmentation. http://golem5.org/robot1/video/oil2826.mpg On the left is the original image. On the right is the processed one. Note how the road is typically clear while obstacles are solid and black. As a general rule, if a trapezoidal area in front of the robot is white, then the way is clear. Also note that the camera view is from the antenna mast so is over the top of the robot. The robot's view will be from directly in front so will not be obstructed. This image processing is done with a combination of djpeg from the jpeglib distribution and convert from ImageMagick. Each frame is 320x240. I am debating whether to use Python on the second onboard computer. This may allow bypassing writing/hacking a lot of image processing code. On the 1.6 GHz Pentium M laptop, the djpeg step takes about 50 milliseconds per frame. The convert step takes about 200 milliseconds. So that means about four frames per second. However, the CPUs on the robot are 266 MHz Pentiums (Geode). I venture a guess each one has a tenth of the computational performance. However, I don't need accuracy. There are many optimizations possible to increase speed. But that may require modifying these tools. The known quantity is C/C++. I don't know Python which adds more risk as would have to cram learn it in a few days. Note that the existing code on the first onboard computer could not work unless it were in C/C++. It handles radio communications, motor control and sensors. The POSIX.1b real time programming hooks are necessary. A scripting language would probably introduce too much overhead for it to work. However, for the second onboard computer that handles vision, localization, and navigation, very soft real time constraints are adequate. It operates at a higher level without the same timing constraints.