Team Famazing's 6.270 Robot

About Our 6.270 Robot

We wanted to employ a simple strategy that would be conducive to both reliable board movements and clean code. We therefore employed no learning algorithms, but decided to hard code a path that the robot would follow each round, regardless of external factors on the board and in the contest. At the end, one movement is chosen based on the vote tally.

Our movements were planned as pictured on this map of the board. The blue arrows represent the movements if starting on the white side of the board, and the purple arrows represent the movements if starting on the black side of the board. First, our robot rotates to face the center wall. It then moves backwards, taking two red and two green balls with it, until it hits the back wall. Having two balls of each color gives us two points regardless of the vote tally. It then moves forward until it reaches the spot where the black lines cross, and turns to the right. It moves forwards once again, picking up the four balls in its path, until it hits the wall. It then backs up slightly, turns to the left, and backs into the corner square of the board, the other team's scoring area. It waits there until close to the end of the round, where it makes a judgement based on the vote whetherto stay in the opponent's square or drive forwards across the board into our own scoring area, picking up some extra balls along the way.

If there is no opponent on the board interfering with our placed balls or changing the vote right at the end, we can predict the point outcome. If the vote is such that we do not drive across the board, we create a score of two for us and a score of negative four for the other team. If the vote is such that we do drive across the board, we create a score of twenty-six for us and a score of zero for the other team.

back to top

Design

The main guide that we kept in mind when designing our robot was simplicity and symmetry. From previous competition experience, we knew that a simply designed robot that was reliable and repeatable was superior to a complex robot that only works sporadically. The reason we kept symmetry was to evenly distribute the weight of the robot on the four wheels evenly to assure even traction.

Our robot was powered by differential drive with gearboxes having a ratio of 208:1. This high gear ratio was used to ensure that we could run our motors at full speed while not having our robot move as quickly but with greater torque. The back of our robot had two arms used to guide balls to the back wall and into the center scoring region. The front of the robot had a one way gate that would let balls in and trap them under the robot while still being able to drive around. To move, we used two-wheel, rear-wheel differential drive with two caster wheels in the front. This allowed our robot to pivot perfectly around the center of the rear axle. We used a gyroscope mounted on the controller board to maintain the accuracy of the angles of the turns. Our robot also had 4 built in sections where we could mount infrared sensors. These places were well shielded from any ambient light allowing us to read the color of the board below those spots very accurately and repeatably.

back to top

Code

For our own peace of mind, we attempted to keep our code as simple and elegant as possible. We split the code into two files, main.c and gyro.c, loading the two files with robot_files.lis. The gyro.c file contains utility functions for the gyroscope we used. This includes functions to interpret the gyroscope's output into usable data, as well as functions to drive perfectly straight using the gyroscope to measure and cancel turns, to turn to an exact angle, and keep an accurate measurement of the current angle. The main.c file includes functions to manipulate the motor in each wheel, as well as functions to manage the RF transmissions for each round and the routine to guide the robot along the path we designed.

back to top

Results

After seeing the designs of all the other robots, our robot was definitely the most simply built. Although it did not have as many features as other robots, ours performed much more reliably than other robots. Having our robot weigh less also helped in allowing our motors to use more power when driving up against other robots since excess power was not used in moving ourselves. We did quite well if the first four of five rounds against robots that did not score many points. The fact that ours scored at least two points right at the beginning of each round gave us an advantage over most teams. It was a double elimination tournament, and both of our losses were to the team that ended up winning the entire competition, so we considered our robot to be quite successful.

back to top

Photos

From The Top

From The Back

From The Front

From The Left

Gear Train Close-Up

With The Sign

back to top

Team

Phil Hum '06 is a Course 2 Mechanical Engineering Major.
Steph Yeh '06 is a Course 6 Computer Science Major.
Mike Fitzgerald '07 is a Course 6 Computer Science Major.

back to top

Contact Us | Content ©2005 Phillip Hum, Stephanie Yeh, and Michael Fitzgerald