Date: Mon, 15 May 2006 23:18:36 -0500 (CDT) Subject: cloning Stanley's adaptive vision system X-UID: 172 I've decided to be practical and take the shortest path. To those who are not software engineers, it may seem strange that one would even consider being impractical and taking the longer path. But software engineers have big egos and think they can do everything. So there is that urge to reinvent the wheel. Foolish! I will avoid writing any numerical code if I can help it. That means this clone of Stanford's code will also use Intel's OpenCV. Because of the different coordinate systems implied by LIDAR (polar) and monocular camera (rectalinear), I think that some multigrid may make sense instead of trying to force all functions to the same discretized representation. When I was teaching myself basic electronics, all work basically stopped for six months while I worked through the textbook. I'm not doing that this time. I'm just going with it. So I'll have to concurrently learn what is going on theoretically as the system is implemented. Just flipping through _Image Processing The Fundamentals_ by Petrou and Bosdiogianni, Stanley's use of a circular image buffer is really about statistical image description. It seems that what sets Stanford's vision and control system apart from other robots is the more sophisticated stochastic mathematics involved. However, often a solution can be implemented without full understanding. So hopefully there will not be too many delays due to confusion. LIDAR is mentioned above. My robot does not use LIDAR. The SICK units cost $12K each. There are some miniaturized Japanese units that are under $3K each (but limited to 4 meter range). On my robot, the patch of ground a half meter in front of the robot will be presumed as safe driveable road. So long as the robot does not get in trouble, this assumption should hold for what I want it to do (drive autonomously down a road). However, a project goal is that this software be a drop-in for a DARPA GC class robot with LIDAR units. With current technology, LIDAR is almost a requirement. Optical cameras require too much computational power to be used alone. And SONAR has insufficient range and resolution. RADAR has the range but not the resolution. LIDAR is reliable with good range and resolution. Basically, I want to make it easy for anyone to convert a car or truck to autonomous operation. The other half of conversion is the IMU/GPS control system. That is not trivial either. But at this point, I feel that vision is the more important problem to address. Feedback I've received from a person with some experience with pulsed time of flight rangefinding, both with SONAR and LIDAR, is that the adaptive vision used on Stanley may have been unnecessary. If this is true, then here's my theory. Intel was basically Stanford's vision team. The NOVA show portrayed the Stanford team as a small laid back group. It was actually a huge effort comparable to Carnegie Mellon's Red Team. Intel's OpenCV product with the commercially licensed IPP (Intel Performance Primitives) underlies the image processing done by Stanley. So if after all of this work, it was ruled that the adaptive vision added nothing, that would be embarrassing. The adaptive vision is cool technology that does nothing to detract from performance even if the robot could probably get by exclusively with the 5 SICK LIDAR units mounted on the roof. And it could be that adaptive vision does work - just not as reliably as having 5 SICK LIDAR units casting out light curtains in all directions. So for many robots, most that can not afford $60K on laser rangefinders, adaptive vision may be the only realistic approach at the current state of technology.