our favorite mistake
   meet us!   |   pretty pictures   |   mechanics   |   strategery   |   doh!   |   crazy antics

Our original strategy took it for granted that we would be able to drive straight. And with the way our gyro performed so nicely for Assignment 3 ("Square Dancing" - make your robot drive straight, bump something, turn a right angle, drive straight again...) we figured implementing this strategy would be more of a coding challenge than anything else.

Steps in our original strategy

  1. Orient towards the two balls, and drive forward, moving them through a one-way gate and into the inner compartment of our robot.
  2. Drive backwards to our starting position and turn right.
  3. Drive forward and push the four balls into territory Z.
  4. Turn clockwise and back out of the territory towards the opponent's two balls. Turn clockwise again.
  5. Drive to territory Y, sweep out any balls with our robot arms, and sit until the end of the contest.

We had planned to sense the ridges defining the territories using a rolling bump sensor to toggle our location in our code.

Unfortunately, the night before impounding we discovered that our robot no longer drove straight due to a steadily drifting gyroscope. Rather than implementing shaft encoders overnight (we'd heard some debugging horror stories in lab) we settled for line-following and haphazard open-loop driving. We modified our strategy so that we could at least qualify for the contest, and expanded the routine just in time for impounding.

Steps in our final strategy

  1. Orient towards the two balls, and drive forward, pushing them into territory X.
  2. Back up until the bot hits the wall behind our starting position. Turn clockwise towards the four balls.
  3. Drive forward and push the four balls into territory Z.

Results
During the contest our robot performed step 1 very well. The place marked 1* on the diagram above is where things usually stopped working because another robot would run into ours, and both would just sit there until time was called. Here's a summary of our performance:

  • Round 1: Our robot didn't drive straight when it was moving towards territory X, so it only scored 1 ball. On step 3 it pushed some of the four balls into territory Z, but the other team's robot ran into ours and knocked off one of our robot arms! Having scored more points, the opposing team won the round and we took our first of two losses.
  • Round 2: Our robot scored 2 balls in territory X, but in step 2 it did not back up straight. So the back bump sensor was not hit and our robot spun in place and did not complete its routine. Luckily the other team scored the same amount as us, so there was a double-win. Our Favorite Mistake made it to the finals!
  • Round 3: At the start of the round we scored 2 balls in territory X, but our robot ran into the other team's robot near position 1*. When the robots came untangled, we turned a 90-degree angle and moved towards our own four balls, where the other robot ran into us again and the round ended. Double-win.
  • Round 4: Our robot misoriented, drove backwards towards territory X to score its 2 balls. Double-win.
  • Round 5: We scored only one ball in territory X because the other robot beat us there and blocked the area. We backed up at an angle, didn't turn a full 90 degrees, and swept 2 balls through territory Y and into the opponent's corner of the table. Luckily the opponent's ball-sorter malfunctioned and picked up one of our balls as well. Double-win.
  • Round 6: We started facing away from the two balls near territory X, and could not complete the 180-degree turn required to continue. This is probably due to the fact that one of the motors slowed down. We crashed into the left wall and got stuck. (We really should have included time-out code to make the bot move after a certain period of inactivity.) Our Favorite Mistake took its second loss.
Due to a lot of luck we made it into the top 15. Yes, we were very surprised.

   meet us!   |   pretty pictures   |   mechanics   |   strategery   |   doh!   |   crazy antics