Today Cylon competed in the Seattle Robotics Society's Robo-Magellan contest
The goal was to cross about 100 meters of varied city park-like terrain (grass, rolling hills, sidewalks, benches, trees, trash-cans) and find and touch an orange traffic cone. The coolness of this contest is in the number of challenges you have to simultaneously solve in order to win. You have to:
Navigate 100+ m of distance via multiple waypoints and arrive within 3 m of your destination. This, for all intents and purposes, requires GPS because it is highly unlikely that you could get 3 m accuracy after 100 m of crossing this varied terrain with just dead-reckoning.
Because GPS is good for finding your approximate location over long distances but horrible at telling you your exact location and heading (it's good to +- 5 m or so, +- 5 degrees or so), you really should have some form of inertial navigation (compass / gyroscope plus dead reckoning) to allow you to move with reasonable accuracy 3-5 m between waypoints. You need enough accuracy to be able to dodge trees, benches, etc. that you just can't get from a GPS unit.
The traffic cone is in a particularly cluttered area of the park -- trees, benches, concrete pillars, trash cans, etc. surround the cone. In some places, there is less than a meter clearance. To avoid these obstacles, you need collision avoidance sensors like whiskers or IR/Sonar range finders.
To find and touch the traffic cone in the middle of the clutter, you need to be able to use some form of vision recognition system. Most people go with a simple system that relies on color detection -- if you see a large number of orange pixels to the left, you assume that that is the direction of the traffic cone.
To win this challenge a robot not only needs to be able to handle varied terrain and outdoor conditions, it needs to integrate all these sensors together. Getting it working properly on one robot is a heck of a challenge.
So, how did Cylon do? Well, poorly. I was, ah, a bit rushed assembling the final configuration. Bugs, a hardware failure here and there, you know the drill. I ended up not getting any time to test the robot at the actual contest site before the race. This proved to be a fatal problem.
I chose to use 802.11b wireless as my fail safe switch. Every robot in the contest must have a fail safe mechanism so it can be quickly turned off in case it goes wild and starts chasing a six year old around the park. This mechanism should stop working if there is a "lack" of something, similar to the lever you have to hold down on a lawn mower to keep the engine running. The theory is that for a potentially dangerous machine if the person or thing controlling it stops doing something, it automatically shuts off or "fails safely". In my case, if my laptop computer stopped sending a "heartbeat" signal every 300 ms the robot would shut itself off.
Something strange was in the air this morning. For some reason my robot and my laptop, even though they were only 2 m from each other, kept losing the 802.11b signal between them a couple of times per minute. At the starting line Cylon started up, drove a meter forward, lost the 802.11b signal, and shut off -- kind of anti-climatic for a passionate project composed of months of late nights. But heck, in the last robotic competition I was in I was solidly beat by a 10 year old boy with a wicked Mindstorms creation. :-)