The other day my neighbor and I built a very simple autonomous robot up in the Åpen sone at IFI. We used a kit robot adding an arduino, a MotoProto shield to control it and a micro-switch to detect a collision.
The ModKit MotoProto shield was powered by the 5 AA batteries and controlled the two motors on the robot (blue connectors). Following the MotoProto schema on Sparkfun we figured how to control the MotoProto from the arduino:
The arduino was programmed so that when the micro-switch was activated the robot reversed, did a small turn and kept going in another direction (see video below). We did not make the turn time random, although this would have made the robot much better at exploring.
We had two main problems with the robot. The micro-switch required considerable force to activate and hitting the bumper off center simply made the robot stall, this was slightly alleviated by increasing the speed of the robot. Our second problem was that the two motors did not spin at the same speed, we should have had an encoder for each wheel, however manually setting the speed on the arduino sufficed.
Next up would be to use an infrared or ultrasonic rangefinder to detect walls and furniture instead of the micro-switch, add a trailing wet paper towel and presto…a cleaning robot.