Claire's dead reckoning robot
Like several of the other engineers here at Pololu, I made a robot to compete in the LVBots Dead Reckoning Competition that took place recently. This post describes my robot, Tryangle, and the decisions that went into making it. For more information about what dead reckoning is and how it is judged, see the LVBots dead reckoning rules.
For my robot, I decided to laser cut a chassis so I could have custom mounting holes to precisely place the rest of my components. I used two plates of acrylic, one stacked on the other with aluminum standoffs, to minimize my robot’s size. I wanted to have my robot’s wheels close together since I thought that would result in larger, easier to deal with, changes in the angle of my robot. Below are pictures of my robot with the major components labeled:
To get my robot moving, I used our 32×7 mm wheel pair and a Pololu ball caster with 3/4" metal ball, along with our 50:1 micro metal gearmotor HP with extended motor shaft. I chose those motors because they seemed to offer enough speed, but still have plenty of torque to help my robot make quick changes in direction during the line following part of the course.
I used a Baby Orangutan B-328 robot controller for the brain of my robot and our dual MC33926 motor driver carrier as the brawn. This combination gave me enough current capability to handle the 1.6 A stall current of the high-power motors I chose and was easy to implement since I had used it before on a line follower. For the line sensor, I used our QTR-8RC reflectance sensor array, and for encoders I used our 5 V optical encoder kit with the three tooth wheel. Everything on my robot was powered with a four cell AA NiMH battery pack attached to a 6 V step-up regulator, and Vcc for the QTR sensor and encoders was supplied by the 5 V output of the Baby Orangutan. Instead of using a breadboard, I made power buses by soldering a wire across one end of a strip of male headers.
Unfortunately, I did not have enough time before the competition to finish writing and debugging the code to track my robot’s position, so instead I programmed it to spin for a random amount of time and then drive straight for another random increment when it reached the end of the line.
During the competition I noticed that my robot, Tryangle, was slipping a lot (you can see it in this video of the event), which was causing it to go slower than it should and at one point lose traction and get thrown off course right at the end of the line. Cleaning the wheels and ball caster helped some, and it was able to finish the line, but there was still some slipping. I think part of the issue is coming from the metal ball caster that I chose being too far from my wheels and shifting the robot’s center of gravity, so the first modification that I am planning to make to my robot is switch the metal ball caster out for a plastic one. Other things on the robot that I plan to work on are making the wiring and power buses look nicer, speeding up the line following code, and of course, getting the dead reckoning algorithm working.