Top Right Link Text

GoRobotics.net - Robotics news, robot projects

Building A Maze Solving Robot – Part 3 … Well, it used to be one …

Posted on May 29th, 2001 by admin in Robots

As the dead line came closer and closer to when my ‘bot needed to be finished I became more and more frustrated, frantic, and sleep deprived. I worked for hours in 1st 3 weeks of February! Many all-day-ers and late nights. One night I even said "I’m staying up till it works!" … I finally went to bed a 2:00AM. I got lots of great coding done but it just WOULDN’T solve a path reliably. I tried and tried – adding new sensors, trying new code - but to no avail. Finally, exactly 8 days before the project deadline I came to the realization that "this just aint going to work!" Ok, time to change gears. BUT, before I finish my story I need to tell you what I DID get done.


As the dead line came closer and closer to when my ‘bot needed to be finished I became more and more frustrated, frantic, and sleep deprived. I worked for hours in 1st 3 weeks of February! Many all-day-ers and late nights. One night I even said "I’m staying up till it works!" … I finally went to bed a 2:00AM. I got lots of great coding done but it just WOULDN’T solve a path reliably. I tried and tried – adding new sensors, trying new code - but to no avail. Finally, exactly 8 days before the project deadline I came to the realization that "this just aint going to work!" Ok, time to change gears. BUT, before I finish my story I need to tell you what I DID get done.

Wheel Encoder Signal Board:

After messing with my wheel encoders for a bit I figured that I really needed to have a circuit that would process the signals and provided good clean 5v-0v signals. The circuit basically takes the different resistances that come from the phototransistor, does and voltage division using a resistor in-between those values, and puts that signal through a comparitor to get a on/off signal instead of a sine wave. The board also provides power for the LEDs. The comparitor is just a LM339 from Radio Shack.

More Servo Modifications:

Yes, once again I started hacking up my servos. Once I completed my signal board I realized that 6 CPR (count-per-revolution) wheel-encoders just wouldn’t work. More frustration. After a few multi-hour hacking sessions I got a reliable 180 CPR. I did this by drilling 4 holes into the 1st gear on the gear train, and positioning a LED (just plain red one) and the phototransistor across the hole. The tricky part was getting them in there without touching and grinding up against the other gears. I also had to recalculate and fix all the resistor values in my signal board. I was rewarded for this work by getting a great 180 CPR wheel count.

Left & Right Wall Sensors

To sense the left and right wall in my maze I built and wire-wrapped two IRPD emitter/detector packages. Because the intial distance was too great, I put in a potentiometer to adjust the distance the sensors detect.



Using the OOPic’s oPWM object, I generated a 38kHz signal to run the IR LEDs. My detectors then give a logic high for no object, and logic low for an object. I mounted these on the back sides of the robot.



The Code

Using the nifty new feature on the OOPic compiler I can generate the source code with the appropriate links. Click right here to view the source code.


What Happened:

At my moment of desperation I decided I’d try another, much easier, project – testing the accuracy of dead-reackoning vs. wheel- encoders. It was definately a God-given inspiration: I had everying ready. All I had to do was record the data. Things pro gressed well, and I was able to get some good data. I figured the amount of error in each method by running the robot down a straight line. I measured the amount of deviation from that line using both wheel-encoder and dead-reckoning. The data points to a much greater accuracy using the wheel-encoders. The only instance where the dead-reckoning appeared to be more accurate was when the wheel inaccuracies compensated for the different wheel surfaces. The wheel-encoders were typically 2x better than the dead-reckoning, while this may seem strange, this is attributed to the problems the OOPic has with precise servo control. The only wheel control I was able to get was off/on, so my control was a bit crude. The judges must have liked it, because I got 1st place and 97 points. Since I was the only person in my category the 1st place was default. The regional contest is in a few weeks.

What’s Next?

Next I’m planning on turning the ‘bot into a fire-fighter. Since I can’t make the annual contest, my only hopes for competing are at our local clubs contest. I’m trying to be as optimistic as I can about actually having it running in time. In anticipation of this I’ve added another 6×6in platform to the top of the ‘bot. At the center of this platform I’ve put a servo with it’s horn facing down. I plan on putting a Sharp GPDU12 analog ranger-finder. This will allow me to rotate the sensor back and forth to detect walls. Stay tuned next month for more additions.
Share the robot goodness:
  • Digg
  • del.icio.us
  • Facebook
  • StumbleUpon
  • Twitter

TrackBack URL

Leave a Comment