Fred, Robot #2Here's Fred, my robot #2. He's good at wandering aimlessly around the house simply trying to avoid getting stuck. He can typically go for a good hour before having a bad encounter with a chair or something. He always looks for the longest forward path and then heads in that direction. If he encounters an object, either by I/R distance sensors, by high motor amps (indicating a stall) or by front distance not changing, he takes evasive action, then continues on. Theoretically, carrying on will evolve into doing something useful, like bringing a beer from the kitchen. He has advanced to performing dead reckoning navigation based on wheel encoder measurements. He can almost do a circuit around the house and arrive where he started.
I recently replaced my 68HC12 processor with one of my ATMEGA128 boards. Total conversion time (hardware and software) was about 20 hours, pretty good I thought for a total brain transplant. Its a much more stable platform and is working well. In front is the Polaroid sonar unit (round black thing) that can sense distance from about 2' to 25'. Under the top board is a Sharp GP2D12 that can sense from 4" to 2'as an analog value - the two work together as a continuous measurement from 4" to 25'. The sensor right at the front is another GP2D12 aimed at a 45 degree angle downward used for stairs detection. I got tired of him trying to go down the stairs. This works very well. I get less false trips than I did with the basic I/R modules and can adjust the trip point.
The main motor control board is on the bottom level at the back. It uses two L293D H-bridge chips to control the two 12VDC gear head motors using PWM control signals. I sense motor current to each motor with a resister/op amp/schmidt trigger circuit - this was a tough one due to the extremely noisy signal resulting from the PWM control. Each wheel is run by a motor via a belt and pullies. On the wheel shaft is an encoder disk (100 slots/rev) that is read by an I/R sensor. The battery is a 6400 mAH lithium ion Gateway laptop battery. I had to build my own charger. This is working well - seems to run forever. 5 volt power is provided by a switching regulator (National Simple Switcher) - this is efficient and helps reduce the noise from the motors. This is a better solution that separate supplies.
I also have a Dinsmore compass module (still in R&D) that hopefully will correct my dead reckoning rotational errors.