After recently completing the Design I robotics project I got to thinking of other ways to complete the project. One of my peers commented that the project was too “programming-oriented”. Whether you like it or not, you have to program these microcontrollers, but, what a challenge it would be to build a robot that could also complete the course but made from discrete components: resistors, capacitors, batteries, relays, transistors, and maybe opamps, a combination often called BEAM robotics. Possibly that would be a cool EE design project.
Returning to the microcontroller-powered robot paradigm, I was dreaming up ways around the dreaded relative motion issue. By relative motion I mean the robot never absolutely knows where it is, at best it knows it has been X seconds since the last bumper hit or some other event; and as time goes on the relative location information gets more and more inaccurate.
This got me thinking of new input devices. Perhaps a PC mouse could be attached to the bottom of the robot, returning accurate motion data. If this was attached in front or behind of the pivot point not only forward/reverse but also pivot data could be read. This type of input would eliminate the need for bumper stitches, the robot could simply ram into obstacles and would interpret the sudden drop in speed as having hit a wall. This would make the obstacle detection far more accurate as before it was noticed that robots can get tripped-up without the bumper switches contacting.
Implementing an optical senor would not even be difficult to do. I had tried to use an ancient ball RS232 mouse but moved to a notebook mini-mouse (Impression Optical Notebook Mouse, no model number on it?) based off of a ADNS2051 optical sensor module. This module has several PIC-friendly interfaces and can provide pixel brightness, surface smoothness, and peak brightness data in addition to delta_x/y info. Someone at Stanford has developed a very handy open source interface for this chip, available on their wiki.
I look forward to putting this hack together, probably for the Design II project, even though it is totally not necessary.