I'm sort of laying track in front of the train, now. I've long since used up the careful planning that went into the rest of the robot. Now it's hack time with prototyping boards and a rats nest of wires jammed in next to the somewhat neater existing installation.
I've mounted two very long range Sharp GP2Y0A710K 550cm IR sensors and a Maxbotix LV EZ1 5m sonar ranger. I've built an Arduino-compatible prototype board to read analog voltages from each ranger and report back through I2C to the mbed. The code on both sides is written and appears to be working properly.
What isn't working is the moving sensor data. The IR rangers aren't putting out anything usable, just a lot of spikes. The sonar is dropping out, bouncing between what might be a valid signal and 0. Point being, there's clearly a lot of work to do on the obstacle detection system.
As for machine vision, the AVRcam is now mounted on the Bus and I've written a serial-to-I2C interface using, of all things, a Parallax Propeller (the ATmega328P version didn't work out). Now I just need to etch and populate a board so I can start collecting data and figuring out what I can do with it.
With this menagerie of microcontrollers, maybe my robot will win for "Most Kludgey" or "Biggest Mess of Microcontrollers on a Single Robot". I've got an ARM, a Propeller, and three ATmega processors. Does the Sparc processor on the Venus GPS count?
The last and hardest parts (as if just getting usable data weren't hard enough) involve fusing all this data to reliably detect an obstacle and reliably ignore non-obstacles, then take evasive action to avoid collision.
But hey, I've got a whole week to perfect it in addition to fixing my steering and navigation issues and whatever other myriad bugs and problems crop up. No problem...