WackBot: The Robot and the Legend

Team 21 - 6.270 IAP 2003


Looking back at previous contests, it became obvious that the winning strategy over the years was to score the quick, easy point and then block the other team from scoring. With this in mind, we decided to focus our main strategy around three basic goals:
  1. Finding a ball of our color,
  2. Placing it in the middle in some way that would prevent it from rolling down to the lower tier, and
  3. Going into attack mode, which would hopefully inhibit the other robot from scoring.
The rationale behind this strategy was our initial guesses as to how everyone else in the contest would do. We predicted that very few teams would successfully place the ball in the “lava island” at the bottom, though many would try to do so. As a result, we guessed that a robot that got one point would do reasonably well in the competition. (In the end, this hypothesis turned out to be mostly correct. Only three teams were able to place the ball in the cup with any reliability, only one of these teams accomplished it in competition, and most teams had robots that did nothing at all. If we had managed to score a single point, it probably would have been enough to advance through several rounds.)

Finding a ball of our color presented the largest initial obstacle. We centered our thoughts around the fact that, since our opponent arranged the balls on our side, we would have to scan up to three balls before finding one of our color. Our robot, therefore, had to include the capability to intake a ball, determine its color, and eject the ball if it was our opponent’s. We also wanted to eject the ball in some way that would disrupt our opponent, either by messing up the balls on their side of the table or by rolling it down to the lowest tier on their side of the table, blocking any attempts to use the lower wall for guidance.

As competition day drew closer, we realized that simply achieving the first goal was more than we could handle, so our final strategy involved simply retrieving a ball and parking in the middle, with no attempts to drop the ball or attack the opponent.


Our robot’s design was based on our goal to eject a ball in a way that would disrupt our opponent. We built the robot around a 5-6 inch “corridor” that ran through the robot. We took in a ball through an opening in the front, color-sensed it, and then used a lever arm to eject it out of one side of the robot. We would also like to take a minute to describe what we think are some of the cooler features of our robot. They include:
  1. A set of intake wheels that was mounted on a pivot, so that the wheels could be low enough to contact the balls and draw them in, but rose up when the ball passed underneath, so the entire robot was not lifted off the ground
  2. Two independently “servo-ed” steering wheels, which enabled us to spin on a dime
  3. A spring-loaded intake mechanism that allowed the ball to pass into the robot but not roll back out
  4. A servo controlled barrier that dropped down when we found the correct ball, working in conjunction with the intake mechanism to trap it within the robot
We used two motors to power both of our front drive wheels, each of which had a 75:1 gear ratio. (After much experimenting, we found that this provided the best compromise between speed and power.) We managed to build our gearboxes well enough that the robot drove relatively straight on its own, but the actual wheel revolution counts were further monitored by a pair of shaft encoders. As far as other sensors were concerned, we used one LED/Phototransistor combination to sense the color of the ball and four others to sense the color of the table. We also used a total of 7 bump sensors: one triggered the ball eject mechanism, two stopped the eject mechanism from swinging too far to either side, two acted as front bump sensors, and two were mounted on the sides of the robot and did nothing at all.


  1. At power on, use four light sensors to determine which side of the board we are on.
  2. Drive forward for 3”, or 40 encoder pulses per wheel, and then execute a 90 degree turn, pointing us towards the balls.
  3. Scan through the balls, ejecting them if they are of the opponents color.
  4. When we find a ball of our color, drop down barriers to trap it within the robot and reverse course to the center of the table, parking there for the remainder of the match.


Though we finally managed to make our robot work in lab, the competition tables were not as kind to us. Our robot seemed to have trouble with shaft encoding, oversteered on the first turn, and approached the balls at an unfavorable angle. It managed to correctly find one of our balls, but a piece of Lego broke off our robot and prevented it from backing up to the start area. As a result, we were eliminated in the second round.


Adam Champy, Akshay Patil, Rohit Rao - Two Kings and an Ace