Gladiator Rodney is a 386SX microprocessor controlled robot whose lowest level instinct is movement. The heart of the Rodney system is a PCL-725 relay I/O board. This board features 8 SPST relay outputs and 8 opto-isolated digital inputs. Basically the system reads a port I/O address to sense input from its sensors and writes to a port I/O address to activate the wheels and other actuators. One of Rodney's more interesting features and what makes him "smarter than the average robot" is what I've termed the "mobility sensor". The mobility sensor is basically a caster wheel with magnets glued to the side peripheral of the wheel. A reed contact switch from a Radio Shack security system (#49-505) is then glued to the housing of the caster such that when the magnet is directly across from the switch it actuates the switch. As long as the caster wheel is turning the reed switch turns on and off alternately. Pipe that signal into the relay I/O card and as long as the signal is alternating the robot knows it's moving and is "happy". When the signal stops, the robot knows it's no longer moving and the program generates a random code that represents a motion pattern to do something to eliminate the stall condition. This is basically a homebrew disk encoder.
Rodney's drive system is two motorized wheels balanced by two casters. I like this system because it simplifies driving and steering. He has 8 possible motion patterns. Right forward, left forward, right reverse, left reverse, both forward, both reverse, clockwise, counterclockwise. The circuit for the motor control is shown below. Be sure and not actuate the first and second or the third and forth relay simultaneously or you will cause a short circuit. I've covered for that in software where the random number generator excludes "bad" numbers.
With the above mentioned configuration you would have a computer on wheels that would roam around, bump into obstacles and escape the stall condition with random motion. Now it's time to add some higher order behaviors. Autonomous Robotwars is based on Infrared (IR) Beacons or transmitters. The beacons and receivers are tuned for the opposing robot. Basically you put two receivers or "eyes" on the front of your 'bot. The program is written so that when the right "eye" sees the beacon (i.e. the opponent) it actuates the left wheel forward. When the left "eye" sees the opponent it actuates the right wheel forward. When both "eyes" see the opponent (that is, the opponent is directly ahead)... go forward (left and right forward). It's interesting to note that the same circuit that allows you to charge toward an IR beacon could be used for obstacle avoidance. That is, since infrared reflects off walls, you could change your program to move away from the IR transmission and the robot would detect the reflection and avoid obstacles. Cool huh?
Since this is war, Rodney must have a weapon system. In a home type configuration the weapon could be replaced with a vacuum cleaner or a gripper of some sort. Rodney's weapon is an actuated chainsaw. He has a flipper system that goes up and down. When he starts the flipper is up and the chainsaw is off. When both eyes sense the opponent the program starts the saw, lowers the flipper and charges forward. Once he hits the opponent the mobility sensor senses the stall condition and the program raises the flipper (saw still on) and goes back to search mode. I've built a companion (or sparring partner) for Rodney named Blue Lightning. Blue is the same basic system but with different wheels and a power drill weapon instead of a chainsaw.