Date: Thu, 15 Jun 2006 02:24:16 -0500 (CDT) Subject: code keeps shrinking X-UID: 177 I am rewriting all of the onboard robot control system code except for the microcontroller firmware. This is now properly a mixture of C and object-based C++ using templates. Given all of the previous work, it constitutes "version 3" which is typically the "good one" (it takes three releases of any product before it matures). Right now, it looks like the entire system might fit under 2000 lines of code. That includes both source and header files. It's kind of difficult to explain what is going on. But I'm sure this is orthodox real-time design that I've just rediscovered through much trial and error. At a very high level, data flows through processes by means of pipes. System state is in the data flowing through the system at any time. Each process is itself stateless. In a way, it reminds me of the stateless client-server design patterns encountered in n-tier web application servers. For a first cut, I figure that the 3 cluster kMeans RGB histogram Stanford's robot used in the DARPA GC is overkill. I'll just try 1 cluster (average and standard deviation) with a grayscale intensity histogram. I'm hoping that by using a circular image buffer (ergodic assumption - time average and spatial averages are approximately equal) the road segmentation will be just good enough. Another reason for trying a simple approach first is to maintain a good frame rate. The system is operating close to its limits at all times as the computers are very underpowered.