Intended Strategy

We developed the basic concept of our robot and strategy in the first week of IAP. We planned to build a fast robot with a manipulator arm capable of grasping and carrying a ball, and of removing an opponent's ball from the lava island. The robot would drive uphill to the four balls on out side of the table, sort through them until it found one of our color, and then drive to the cup as quickly as possible and place the ball in the cup. Originally we planned to drop any balls of our oppponent's color off of the table, but we determined that it would take too much time and the behavior was more complicated than we wanted to program into the robot. We also considered building a receptacle on top of the robot that the arm would be able to place a ball into and remove it, but we abandoned the idea to save time and because the size of the balls made it difficult. We used three large diameter LEGO wheels for two tires, and powered both sides with two motors apiece with a 27:1 gear ratio. We had a small castor wheel in front to keep the robot stable on three points. We first planned to use line following for navigation, but after being warned that it was a slow method, we switched to shaft encoders, one in each gear train at a 9:1 gear ratio with the output shaft. The shaft encoders provided excellent feedback for driving straight, but were difficult to use to judge distances.

Qualification Strategy

We developed a simplified strategy to qualify. Since it didn't matter which color ball we scored with, we dispensed with color sensing entirely, corralling the balls on our side in the corner and grasping blindly. Rather than attempt to take a ball all the way to the lava island, we only brought it back to the middle plateau and raised it triumphantly over the robot.

Competition Strategy

As impounding approached, our color sensing code was still untested, we had only calibrated several distances on the table with the shaft encoders, and our robot had only a limited ability to determine if it had successfully grasped a ball. We modified our strategy, sending the robot across the top plateau to the other side, where we arranged the balls so that the two of our color were closest to the top wall. We hadn't calibrated distances to the cup, so our robot stopped on the middle plateau after attempting to get a ball. At the start of the round the robot determined which side it was on and turned uphill, to the left if it was white, and to the right if it was black. It drove straight into the middle of the balls on our side and turned towards the center of the table, knocking the balls out of their positions, then it proceded across the top of the table, attmpting to trap the two balls of our color in the opposite corner and grab one of them before turning downhill and returning to the middle plateau before time expired. In the second round, we competed against a placebo. Our robot made the first few movements accurately, but unfortunately knocked a green ball across the table where it came to rest in front of the white balls we wanted to pick up. That turned out not to matter, because the robot didn't drive straight to the corner like it was supposed to, but instead wound up at the top of the incline below the top plateau on the other side, where it almost grasped a green ball, knocking it down to the bottom plateau, before colliding with the placebo, becoming disoriented, and ending the round by driving into the top wall and raising its arm with the hand empty.

Revisions

Given more time and the chance to make our robot more intelligent, we would probably add an LED phototransistor pair to look in front of the robot for balls of our color at a range of 6 to 8 in. or so. This idea was never given serious consideration earlier in the planning stages, but it could have made our robot much more adept at picking up a ball of the correct color. Given more time we could also have improved our ability to navigate on the table, determining a better relationship between wheel revolutions and distance traveled. As it was the frustration of trying to calibrate our robot led us to declare that it was a non-deterministic system as the angles turned and distances travelled varied with each attempt. One option we considered for improving this situation was using roller switches and running the robot into walls to help it orient itself.