Team 37 - Brain Freeze

Team 37

Andrew Hsiao and Sam Weiss

The Evolution of Strategy:
    Our original strategy was to gather up all the balls, sort them, launch the bad ones (our opponents') over the side, and finally deposit our balls in the scoring areas. By the end of the first week we had actually made a working ball-launcher, but it would have been difficult to incorporate it properly into the robot and a rather inefficient use of legos considering the number of other pieces we would need to construct, so we settled on just store the opponents' balls so they would not be able to deposit them.  The second week we included the "dump one of our balls first to make sure we dont automatically lose" strategy, and also decided to be able to drop our opponents' balls (preferably over the edge of the playing surface) in case we got trapped in a scoring area at the end.
Check out the forklift!
A side view of the robot during early construction.  Check out the forklift!

Claw folded up
Brain-Freeze, all folded up.

Inside the robot
The insides of our robot; the base of the forklift.

Claw and Drawbridge expanded
The robot in all its intended glory.
Unfortunately, this glory did not all make it to competition.

Lego Dude
Probably the reason our steering gave us so much trouble.

The Mechanics:
The mechanics of our robot were extremely complex.  So complex in fact, that we won the Rube Goldberg Award, for machines that, in Aston's words, "do very simple things, in almost the most complicated way possible."  Here's a brief list and description of all our mechanical elements, some of which made it into the robot, so of which barely missed the final cut, and some of which really had no chance at all, but were pretty darn cool.
  • Gear Boxes - Our gear boxes had a ratio of 112.5:1, and with two motors each, they provided high and consistent torque to our wheels.  And most importantly they were built vertically to save precious floor-space.  Shaft encoders made from visible light sensors and pulley wheels were attached to the axle containing the first gear after the motor, resulting in 225 ticks of the shaft encoder per revolution of a wheel.
  • One-Way Claw - A hybrid between a one-way gate and a claw, this bad boy was intended to drop down from the front of the robot after it oriented itself.  Sliders on the front kept it off the ground, and it was released by our drawbridge motor and rubber band tension.
  • Spinners - Originally, two consecutive spinners were built for the front of the robot, but in our final design, only one was used.  After balls were trapped in the claw, they would be funneled into the spinner which would propel the ball up to the base of the forklift.  The gearbox for the spinners produced a 9:1 ratio for almost maximum speed.
  • Forklift - Perhaps the coolest mechanical element that made it into the competition, the forklift consisted of two scoops hooked onto a chain which wound around a gear near the top of the robot and a gear near the bottom.  Balls, after being deposited in a holding area by the spinners, would be lifted by the forklift to the second level of the robot.  The forklift was driven by the same motor as the spinners, but at a much lower gear ratio so that balls could be lifted without providing much torque on the motor.  Check out the cool videos below for some awesome spinner and forklift action.
  • Sorter - Designed to consist of a bump sensor, a visible light detector, and a servo controlling a sorting device, the sorter never quite came together.  Because of a lack of time, we did not install the visible light sensor, so we could not sort.  This worked out fine because we did not collect any balls during competition anyway, because we never quite moved out of the starting gate.
  • Drop Gate - For the balls that were theorhetically sorted correctly into the "good" bin, we built a gate attached to a servo that would spin 90 degrees to release exactly one ball, and then revert back to get ready to release another.  Although useless without a working sorter or driving system, this component did actually work.
  • Drawbridge - Alas, because of the incomplete sorter and lack of coding time (we had instead told all balls to be sorted "good"), the drawbridge did not make it to competition.  It consisted of a very small gear box with a very high (120:1) gear ratio by making use of a worm gear (which would also serve to hold the drawbridge in place).  When lowered, the balls in the "bad" bin would in fact dump out of the robot, and over a wall if the robot were near the edge.  It is in some of the pictures to the right, and would have been cool on the final robot.  Alas, all was not lost, because we rigged the gearbox to drop the claw.
  • Ball Shooter - This guy wasn't really close to making the cut, but it was pretty sweet nonetheless.  The draw-back mechanism consisted of two gears that rotated simultaneously but were mounted off-center and at 90 degrees to each other.  These two gears then contacted a line of flat gears so that during the first 180 degrees of rotation the gears drew the launcher back, and for the next 180 degrees there was no contact so the launcher could fire with rubber bands.  It did in fact work, but was neither space- nor lego-efficient.
  • Lego Dude - Yeah, he's cool too.
Ball makes it all the way up the forklift!

Woah! Let's see that again!

Wires, wires everywhere
Top view of our mess of wires, err, robot.

We confused our robot
Our Happyboard being not-so-happy with its input.

The Electronics:
    Sensonrs, Servos, and the Like:To accomplish all our goals of ball collection, sorting and depositing, we used all six motor ports in addition to two servos, six visible light sensors (two of which were converted into shaft encoders to measure distance traveled) and two bump sensors. Four motors were used for driving -- two for each of the drive wheels.  One motor was used for running both the rubber-band spinner to pick up balls and the forklift to raise balls to the upper level of our robot.  The last motor lowered a sort of drawbridge -- the emergency drop mechanism.  For ball-sorting we used a bump sensor to detect the presence of a ball, a visible light sensor for deducing the color, and finally a servo for pushing the ball in the right direction. The second servo and the second bump sensor were used to control a gate capable of dumping our balls in the scoring areas one at a time.  We used the last three visible light sensors to figure out our initial orientation, and then used the gyro for navigation.

   The Not-So-Happyboard:
Whether we confused our Happyboard or it confused us more is unclear, but check out the response (left) it gave to some of our code.  So much for artificial intelligence.  From printing problems to massive gyro errors (of drifting up to 1000 degrees per second... which if you think about it, is really only -80 degrees per second), our Happyboard was our nightmare.
And Now, Here's What Really Happened:
    In reality, most of the above strategy as well as our design choices got left behind as we approached impounding, mainly due to our gyro and its refusal to work until the release of Joyos v1.05 the morning of impounding, so our final strategy was to go for just our six balls, deposit at least one in a scoring area, and then rock back and forth in the center while the happyboard sang a song (check out the video to the right). this was decided about two hours before impounding when we realized there was no way to get everything working together. and actually we never got a chance to run and test the final code we loaded into our robot due to time constraints, which would explain its spectacular performance in the competition.
    Our "spectacular performance" consisted in turning (in the right direction!) but at the same time backing into a wall.  Because we had no time to test, our turn speed was too slow and we got caught on the wall, never to move again for the rest of the minute.  A timeout check would have fixed this, again, if we had had the time.

Can you figure out the song?

Final Notes:
  • We both really enjoyed ourselves throughout the process.  Or almost throughout.  A couple time simple coding errors or robot inconsistencies were pissing us off, but hey, all's well that ends.
  • And then there were those 22 hours straight we spent in lab leading up to impounding.  That was a fun experience.  So was taking a 20 minute power nap under a desk so as not to get stepped on.
  • By the end we were running so short on legos that we resorted to using pulleys and gears and 2x1 blocks as bushings.
  • As for the KISS principle, screw that.  Building the most complex robot was way more entertaining, and we feel that with a few more hours of coding and test time (or an earlier release of an OS that our gyro worked on) we could have had a truly functional robot.

Andrew Hsiao Sam Weiss
Andrew Hsiao and Sam Weiss, signing off.