The following is a diagram of our plan of action for the mock competition and the qualifying rounds. Click on the picture to see an enlarged image. Our strategy for the actual competition was derived from this initial diagram and explained further below.

Path of Robot in Detail

  1. Move toward the wall, collect 2 balls.
  2. Push 4 balls into bin.
  3. Move to center cross, turn 180 degrees, push 2 balls into bin, return to cross.
  4. Collect 4 balls on default winning color side.
  5. Move across table to collect balls on other color side.
  6. Return to cross, wait.
  7. Turn to put winning color balls in our scoring area and push balls in.
Mock Competition

Honestly, we had no idea what our robot would do. Our aim was to collect a guaranteed 3 points, and then collect the balls along the baseline, park in the middle, and then turn to push the winning color balls into our own bin after waiting until a certain time when we estimated that the other robot would not be doing anything to affect the vote anymore. We didn't have a chance to test it, and we entered the competition just for the hell of it.

Qualifying Rounds/Seeding

We tried using the same strategy as the Mock Competition, but this time, we had tested our robot so that it would be able to perform with more accuracy.

Competition Day

For the contest, we used the strategy described above as the foundation for our robot's movements, but we refined many parts of it. At the start signal, our robot would orient itself and collect the two balls in the middle and the 4 balls in front of the scoring area to give us a guaranteed 3 points. Then, our robot would check the location of the other robot and would move to whichever side that robot went to and collect all 8 balls on that side, turn, drive across the board and collect the balls on the other side with the opposite gate. Then, it would drive back to the center cross in front of our scoring area, and with 53 seconds to go, our robot would listen for the vote count and turn to push the appropriately colored balls into our scoring area. We incorporated "timeouts" in several parts of our code. First, turning 90 degrees against the wall was often very difficult because the robot was pushing against a wall, so we programmed the robot to inch forward a little bit if it became stuck while turning so that we could complete the turns. Second, if a robot was coming down the side that our robot was on, our robot would stop to impede the other robot from getting to its own scoring area. We would wait until the other robot moved away because we figured that our 3 points would be higher than the 2 points that most people went for. This strategy worked pretty well. We lost once before the final round because we believe the RF system told our robot the incorrect winner, so we pushed in a bunch of negative points into our bin. Then, in the final round, we blame the RF system for our first run, when our robot went in the opposite direction of the other team. The second match was fair when the other team cornered our robot and made us score points for them.