Mechanical design

With part selection nearly done, I focused on the mechanical design. Originally starting with a round chassis design, I ended up giving the robot a hexagonal shape to add some style. The laser-cut chassis is made up of two pieces: the bottom piece holds the microcontroller, motors, ball caster, and QTR sensors, while the top piece carries the battery holder, regulators, pushbutton power switch, and a few extra components added for convenience (more on that later). After looking at the height of the battery holder and motors/wheels, it became apparent that our 1 in. aluminum standoffs would work great as spacers for my two chassis plates. Before moving forward, I modeled Baby Blues in SolidWorks to get a better idea of how everything would fit together. Once most of the major components (mechanically speaking) were modeled, a side view of Baby Blues showed that our 3/8 in. ball caster would extend below the chassis a little more than the wheels (shown in the picture below) and cause the robot to tilt forward slightly. This ended up being advantageous as it moved the reflectance sensors closer to the ground and closer to their optimal sensing distance of 3 mm.

After laser cutting the acrylic chassis and assembling all of the major parts, I focused on adding some extra, non-essential, features. Baby Blues includes 3 user pushbuttons for easy debugging and control, a pushbutton power switch, charging port, and a 6-pin header to allow easy access to the Baby Orangutan’s ISP programming pins. The main purpose of these features was to avoid the need to take apart the chassis to charge the batteries or program the robot since I knew it would be a tight fit with all the wires. The pictures below show my completed robot.

Final results and considerations

With the deadline for the competition quickly approaching, I ran into a few unexpected problems. One of my encoders had a bad connection, which required me to take apart my robot and resolder some wires. After that, I could focus on debugging my code. Unfortunately, I had an issue in my code that caused the unit vectors I was using to track my orientation to decrease in magnitude over extended distances. About twenty minutes before the competition, with no clear solution to my problem, I decided to take a different approach. I programmed the robot to follow the line and, once it had finished, to rotate for a random amount of time, then drive forward for a random amount of time in whatever direction it ended up in. While this solution is far from ideal, it was able to offer some excitement and suspense. I could have done it in a more systematic way that would spread my results so that I was sure that at least one of them gave me a positive result, but I chose to leave it to luck—we are in Las Vegas after all.

Moving forward, I would still like to get Baby Blues dead reckoning properly. I will continue to work on it and try to smooth out the problems I ran into. If I were to do the dead reckoning competition again, I would leave more time for debugging my code and try to focus less on the convenient features until after the robot is functional. However, with its whole structure put together now, Baby Blues can also be repurposed for other competitions.