DE Armadillo (TEAM 20) http://mit.edu/6.270/.

Team Members: Doris Lin, Jeff Moore, Kimberly Kam

more pictures

The game:
The object of the game is to get more points than the opponent robot. Points are obtained by placing balls in the squares in the back of the board. The robot that starts on the three black squares can score by placing balls in any of the black areas along the back walls, and the robot that starts on the three white squares can score in any of the white areas. Any ball can also be placed in either of the side slots. No points are given for balls placed here; however, the number of balls in these slots determines the point value of each color ball. If there are more balls in the red slot, for example, red balls are worth 2 points and green balls are worth -1 points.

The Setup:

Our strategy:

Our strategy is to first score a few points quickly to ensure that we will increase our score and have a chance of winning even if our robot malfunctions later in the match. To do this we simply oriented ourselves toward the back wall and pushed the two red and two green balls in the back center into our own scoring area. We then back up to the first black line, wait two seconds, checking every 0.25 seconds whether the other robot has gone beyond 6 inches toward either side of the board. As soon as (or up to 0.25 seconds after) the other robot leaves the center range, our robot turns and goes in the same direction as the other robot. We then pick up the eight balls on our side of the table to this side, go to the other side of the board, and drop these balls in the voting area on that side. This allows us to vote with balls that will be worth negative points, as long as the other robot does not vote for the other color with more balls than us. Then, we make a loop around the current side of the board and pick up all the balls of the other color (for which we have just voted) and carry them to our back-center scoring area.

The Robot:

The robot is built out of legos. It interacts with its environment using a variety of sensors, motors, and servos. The robot has a gear ratio of 75:1 and contains a one way ball gate, which can be lifted by a chain attached to a servo. Lifting the gate and driving the robot in reverse gives the robot the ability to release the balls it has collected. The robot has two mechanical pressure switches on its front, which allows it to sense the walls. It also has three collinear phototransistors underneath its chassis; these sensors can tell whether the floor below them is white or black. There is a distance sensor in the back of the robot, which is used only to sense the middle wall of the tablethis is how the robot determines whether it is oriented in the correct direction. A gyroscope allows the robot to drive straight and turn to specific angles. And like all of the other 6.270 robots, it contains an RF receiver so it can receive information about its position, the vote, and the other robot.

Implementing Our Strategy:

The robot drives straight using the gyroscope only. Although we generally follow lines, driving according to the gyroscope proved to be more accurate than trying to use the color of the lines to move. We do, however, use the color of the lines to tell where the robot is. For example, much of our strategy involves driving straight until all three phototransistors read black, meaning that the robot moves until it goes across a line. Unless it is bumped off course by the other robot, this gives it a pretty good idea of where it is.


Our robot won a few rounds, but ultimately ended up failing due to the lack of ability to deal with adverse situations. In the competition, it was constantly getting stuck against the wall when it is driving backwards across the board, and since it was not programmed to free itself from this situation (i.e. no bump sensors on the back nor checks to make sure it is still moving), it had no way of getting out of this situation. It could reliably score its initial points and vote, but got stuck on its final loop around the board in most cases.

look at our interactive C code.

look at our directory of pictures and videos.