THE CONTEST.

 

THE PLAYERS.

 

THE TECHNOLOGY.

 

THE STRATEGY.

 

THE DESIGN.

 

THIS IS MIKE LIN?

 

THE LOG!

 

OUR 6.270 SAGA…

 

 

 

 

 

This is

MIKE

Lin

Team 26

 

A short time from now, in a galaxy very close by, the masses are in unrest.

 

The non-trademark-infringing Gedi Knights Council, droid masters, guardians of the free world, and practitioners of the ancient interlocking plastic brick parts, have suffered a huge loss. Their former leader, Chin-wala-kane-ra, better known as ”Chuck”,  has transcended to a higher plane of existence, and no longer will be around to keep the masses in check. An election will be held tonight to determine ”Chuck’s” replacement, for without a leader, the Gedi Knights will be powerless to stop the ever-growing threats of all-nighters in lab, freshman showering, and Red Sox fans.

 

Through many years of meditation and practice, the Gedi Knights have developed a keen ability to affect the subconsciouses of the weak-minded masses.  These abilities, colloquially known as ”mind tricks”, are channeled and focused

using autonomous mechanical contraptions, colloquially known as ”robots”.   As part of their droid master training, each Gedi Knight shall build a robot companion and train it to serve as their vehicle for power and influence.

 

Soon it will be Election Night. The robots will have only one mission – to influence as many votes as possible for their Gedi Master. Faithful as an R2 unit and about as well trained as a womp rat, these robots shall be set in their tasks. Strength of will, speed of mind-tricks, and reliability of gear trains will be tested. And one droid shall triumph above all, ushering in a new era of leadership for the Gedi Council.

 

Attack of the Drones:

May the Torque Be With You

 

 

THE CONTEST

 

6.270 is an “Autonomous Robot Design Competition” offered at MIT in January.  Nearly 60 teams of 2-3 students of varied backgrounds spend the month designing, building, and programming LEGO robots.  At the end of the month, robots compete against each other in a double-elimination tournament.  In the end, one robot is victorious.

 

The 6’ x 8’ board is covered with 22 green balls and 22 red balls.  Robots can “vote” for either green or red, by placing balls in the green or red “voting areas” (voting regions are illustrated by the green and red lines in the image of the game board).  Each ball placed in a voting area increases the vote for the color of the voting area.  At the end of the match, balls of the color with more votes are worth 2 points, while balls of the other are worth -1 points.  Points are scored by depositing balls in the black and white squares around the edge of the board.  One team is “black” and the other is “white.”  After 60 seconds, the robot that scored more points is declared the winner.

 

 

THE PLAYERS

 

David Carpenter.  To call Dave “the man,” would not do him justice.  Dave was responsible for the vast majority of our code.  He supplied an incredible amount of energy and dedication – not to mention countless sleepless nights.  Dave is a Course 22 senior, and a brother of Sigma Nu fraternity.

 

 

 

 

 

 

 

Ron Ron Cheng.  This is the energetic young grasshopper.  When our team decided to scrap everything and rebuild the robot, he was always up for the task.  Ron Ron was master builder for our robot and a great source of enthusiasm.   He is also the only member of the team who’s available, so don’t be shy, ladies….  Ron Ron is a Course 10 sophomore, and a brother of Sigma Nu fraternity.

 

 

 

 

 

 

 

Michael Gebauer.  This is the one who was “in it for the EDPs” … but ended up having a really great time in 6.270.  He even pulled a couple all-nighters rebuilding the robot.  Mike helped out with both the building and coding.  Mike is a Course 6 junior, and a brother of Sigma Nu fraternity.

 

 

 

 

 

 

 

 

ABOUT THE TECHNOLOGY

 

Several interesting and useful electronic components were available

 

Gyroscope: Basically, this little chip helped out robot to drive in a straight line…before we put this baby in, our robot would always veer a little to the left (or was it the right?).  It also helped us to make precise turns, achieving all this by calculating its rate of angular acceleration.

 

Phototransistors: At the beginning of each round, it was up to our robot to determine which color it was and in which orientation it was placed.  We used three of these IR sensors to take a reading at the very beginning of the round, and based on the color pattern of the three squares, our robot could decide which color it was and which direction it was facing

 

RF receiver: A necessary component for all robots competing, this little board allowed each robot to receive RF transmissions from the 6.270 organizers with information about the start and end of matches, the location of both robots, and which color was winning the vote.  Updates were relayed several times a second, in an effort to make it as close to real-time as possible.  Our robot used certain RF data to make key decisions in its strategy.

 

Shaft encoders: These devices were able to measure the distance our robot had moved.  We used two shaft encoders, one for each wheel.  For each wheel, we attached a 6-hole pulley near the beginning of our gear train, and this pulley was placed, properly aligned, between the sensors of the shaft encoder.  The shaft encoder would emit light and count the number of times per second this light was interrupted by the non-hole portions of the pulley wheel.  With the proper code and calibration, our computer could take the shaft encoder’s measurements to determine how far the robot had moved (and whether it was moving at all).

 

 

THE STRATEGY

 

From the beginning, we decided that we wanted a very simple, yet very effective strategy.  Easy enough, right?  There are so many factors that can ruin a good strategy—namely, the other robot.  But in the end, we came up with something we hoped would work.

 

We decided that we would focus solely on scoring and ignore voting all together.  At the beginning of each round, our robot would determine its color and orientation.  Then, if necessary, it would rotate to face the center wall and ram it at full speed.  This was done to pick up a red and a green ball in front of the wall and also to ensure our robot was properly aligned.  After this, our robot would back up, hopefully knocking the two red and two green balls into our scoring zone, thereby ensuring that if the rest of our strategy failed, our robot had at least made an effort to score. [This was the “let’s just qualify” portion of our strategy.]

 

At this point, our robot would use the RF data to determine which half of the board the opponent’s robot was frequenting.  Based on this, our robot would follow a set path on the side of the board opposite of the other robot, in an effort to avoid confrontation.  The paths would be identical on either side of the board, just mirror images of each other.  With a combination of the gyroscope, shaft encoders, and good old fashioned wall following, our robot sought to gather all sixteen balls of one color on that half of the board

 

Once it had tried to gather all the balls in its path, our robot would be on the far end of the board, relative to where it had started.  It would then park in our scoring zone and wait.  At this point, we assumed one of three possible scenarios, each causing our robot to have a different reaction:

 

Plan A

If the balls we had gathered were of the vote-winning color, our robot would simply remain in our scoring zone, hopefully scoring a bajillion points.

 

Plan B

If we were losing the vote, our robot would wait until about 10 seconds were left in the match.  At this point, it would consult the RF data.  If the other robot was not sitting in its scoring zone adjacent to our robot, it would back up through the opponent’s scoring zone, knocking out any balls that had been placed there.  It would then park in that scoring zone, hopefully scoring half a bajillion negative points for the other team.

 

Plan C

The same scenario as in Plan B, except that the other robot was sitting in the adjacent scoring zone.  Our robot would attempt to cross back over to the other end of the board and park in the opponent’s scoring zone over there.

 

Weaknesses:

∙ In the event of Plan B or C, our strategy would be ineffective against very competent, high-scoring robots, since vote-losing balls were worth only -1 as opposed to +2 vote-winning balls.  If we were able to gather all the balls we intended to (17 of one color, 1 of the other), the maximum damage we could inflict to the other team would be -15 points.  While this would normally put us in good position, there were robots out there that could score 15+ points.

∙ It was impossible for our robot to follow its path perfectly, for one reason or another, so it could never gather all the balls it encountered.

∙ Our robot depended on RF data at the beginning to determine the route of the other robot.  If the color swatch on the other robot was placed just slightly off center, our robot would think that the opponent was going to that side of the board, even if it ended up going the other way.  This often resulted in the two robots going to the same side of the board, which resulted in confrontation.

∙ If Plan C were to occur, there was no guarantee that our robot could reliably make it to the other side of the board before time was up.

 

Strengths:

∙ Simplicity.  Our robot did not try to do too much at one time.  It had one task, and it performed that task fairly reliably.

∙ Assuming Plan A and barring interference from the other robot, our robot had the potential to garner a high score, which would help with seeding and contributing toward more favorable match-ups in later rounds.

∙ Since most other robots traditionally only scored a few points, if we were losing the vote, our robot could annihilate any score that the other robot had put up.

∙ Our robot did nothing special but instead was geared toward winning matches.

∙ Thoroughness and Robustness:  our strategy was flexible enough to account for most competition factors and allowed our robot to respond accordingly.

 

 

THE DESIGN

 

Our robot, like most other teams’, was designed to gather balls.  The main functional feature of our robot was a one-way ball gate via a mechanical stop.  Unlike some other robots, our gate was “fixed” in the sense that there was no way for it to release balls on command.  We figured designing it any other way would be too complicated, and we were too lazy to figure it out.  This way, our robot would carry all balls that it had gathered underneath itself.  Maximum capacity was approximately 16-18 balls.  There was space created for the balls in such a way that they would not interfere with the wheels, gear train, or any other sensitive mechanical aspect of our robot.

 

We adopted a rear-wheel, independent drive system.  This meant that each wheel was independent from the other, driven by two motors each.  To go forward or backward, the motors spun wheels in the same direction.  To turn, motors spun wheels in opposite directions.  Our gear ratio was 1 to 125, which meant that the wheels spun at 1/125 the speed of the motors.  The more a robot is geared down, the slower the robot and the more powerful (and vice-versa).  Average gear ratios fall between 1 to 45 and 1 to 75.  We geared down our robot more in an effort to make it more powerful (handy in the event of confrontation!).  In fact, we started out with a gear ratio of 1 to 625, but we decided that this was a ridiculous amount of power.  On top of that, our robot at that gear ratio was slow as molasses, and it was not worth it to sacrifice speed for the power.

 

We mounted two shaft coders in the engine portion of our robot.  We also mounted three IR phototransistors on three corners of our robot.  These were the only sensors we chose to use.  Our robot was as “dumb” as it could be, from a sensory stand point.  We relied more heavily on our code instead of trying to gather information from our surroundings.  For example, we toyed with the idea of using bump sensors.  But instead, we just added a “timeout” feature to our code, where if the shaft encoders sensed that the robot was not moving for a period of a few seconds, then the robot would automatically back up.

 

We used 6 Volt Hawker batteries to power our four motors.

 

Near the end of the design period, the focus shifted from functionality more towards achieving aesthetic pleasure.  In short, we wanted our robot to look good as well.  We attached a sweet grille, made of axles and joints, onto the back of our robot.  We also used axles and joints to enclose the sides of our robot, as well as the Handyboard.  Not only did these modifications improve the look of our robot, they also served to protect it, in the event of collision with walls or the other robot.

 

Throughout the whole design period, we tried adhere to three guiding principles which we believe are important in designing any competition-worthy robot:

 

Strength, Stability, and Simplicity

 

 

 

THIS IS MIKE LIN?

 

Perhaps more importantly, who is Mike Lin?

 

 

Mike Lin is a Course 6 major who was a 6.270 TA for the second year in a row.  He is also a fellow brother of Sigma Nu fraternity.  Besides just being awesome, Mike Lin was an extremely competent TA who was able to effectively help us in our times of need.  I’m sure many other robots were touched by the healing hand of Mike Lin.

 

You may be saying (that is, if you’re not too cool to talk to yourself), “That’s great, but you could have just named your robot ‘Mike Lin.’  What’s up with ‘This Is Mike Lin?’  It doesn’t make sense!”  You’re right, it doesn’t make sense.  In fact, probably the only people who truly knew what was going on were those within our house.  This section is designed to elucidate the mean behind our seemingly enigmatic team name.

 

Our inspiration came from a certain Brazilian guy named Issao, in his campaign for Steward within our fraternity.  Watch the video, and you’ll instantly know the source of our name.  This video was a response to Mike Lin’s campaign ad.  Unfortunately, not enough people were able to see Issao’s response, as it was sent out too close to voting.  As a result, Issao lost the race to Mike Lin by two votes.

 

 

THE LOG

 

The following is a summary of our competition experience:

 

 

Opponent

Score

Result

Us

Op

Elimination Round

Team 8: Fishy Latin Hammer

18

0

WIN

Round 1

Team 4: 6jew70

-2

-11

WIN

Round 2

Team 45: Synchro-nyzed

6

2

WIN

Round 3

Team 25: Famazing

12

2

WIN

Round 4

Team 25: Famazing

2

-8

WIN

Round 5

Team 2: Linda Tao

3

28

LOSS

Round 6

Team 2: Linda Tao

3

2

WIN

Round 7

Team 2: Linda Tao

2

1

WIN

Finals, Round 1

Team 29: Boba-F.E.T.

2

0

WIN

Finals, Round 2

Team 29: Boba-F.E.T.

9

2

WIN

 

The Endgame…

 

Team 26: This is Mike Lin, 9-1

6.270 Champions, IAP 2005

 

 

THE ROAD TO VICTORY…

 

Is paved with failure.  And this was certainly true of our 6.270 experience.  Here’s a little about how we got to this point.

 

On a cold day in October a 6.270 team was haphazardly thrown together and registered for the lottery.  One man needed the credit.  One man thought it would be cool.  And One man came in the name of love.

 

Fast forward to IAP…

 

It is probably safe to say that most teams come into 6.270 with the attitude, Gee, it’d be nice to win, but it probably isn’t going to happen.  (How many teams actually go into 6.270 honestly expecting to win it all?)  We certainly shared in the former attitude.  After we got our kit, we proceeded to secure a headquarters and organize ourselves for the class.  In jest, we found a whiteboard to write down our goals for the month, and we proceeded to create a To Do list for 6.270.  This list had three items:

 

1) WIN

2) Gloat

3) Drink

 

Yeah right.  These were lofty goals, and we didn’t even pretend to think that we could do the first two.  First we needed a robot and a working set of code.  So we got to work…

 

We decided on a rough design, a rough strategy, and we figured out division of labor.  The code was ready far in advance of the actual robot (which in retrospect, wasn’t a very efficient way to go about this).  Assignments were scheduled, assignments were completed.

 

By the beginning of the week before the competition, our team morale had visibly reduced.  We were tired, we were frustrated, and we didn’t even know if all our work would amount to anything.  We began with a prototype of our competition robot.  That week, we probably completely rebuilt that robot every other day, playing with LEGOs (or coding, depending on who you ask) late into the chilly night.  Gear trains were ripped out and replaced.  Bracing was added and subtracted.  Dimensions fluctuated.  Each new creation was virtually unrecognizable from its predecessor.

 

We intended to compete in the Mock Competition on the Friday before competition, to see how our robot stacked up against other teams.  We went into lab that night to test beforehand.  We told the organizers we wanted to compete that night.  Then disaster struck!  There was a problem with the interface between the motors and the gear train, leaving our robot unable to drive.  A coding error was present as well. We walked away with shame, never having had the chance to compete.

 

From this point on, our goal was simply to qualify.  We would be happy if we could just have the chance to compete in rounds on Wednesday.  Qualifying rounds occurred on Sunday, with these rounds also counting toward seeding in Wednesday’s competition.  Seeding would be based on cumulative point total.  After the disgrace of the Mock Competition, this was our robot’s chance to redeem itself.  In the face of a blizzard, we made the trek across the river to campus.  In spite of our efforts, our little robot failed to deliver, and we barely qualified with a cumulative point total of zero.

 

We went home that day, with little hope for success.  No building modifications occurred that day. Monday was an intense day of coding and furious building, but we failed to make it to lab to test.  Tuesday was our last chance to test everything out before impounding.  All Tuesday afternoon, we debugged like madmen, with our robot inching closer to our vision for it, at the same time as the impounding deadline crept closer and closer.

 

And then it was all done.  Our robot was now in the hands of fate and well-charged Hawker batteries.  We rested, and we waited for Wednesday to arrive…

 

 

In our elimination round in the morning, our robot churned out an amazing 18-0 victory, doing everything that it was supposed to do.  We suddenly became hopefully and reluctantly confident.  The first round of the evening’s competition was gut-wrenching, though, plunging us back into fear.  Our robot once false-started, and then we had forgotten to turn on our battery pack (which, ironically, had been turned off by Mike Lin).  As Ziggy eloquently stated, tragedy had struck on Table 1.  Technically, the two false starts should have counted as a loss, but the staff took pity on us and gave us a second chance.  This was the turning point of the competition, with a -2 to -11 win.

 

As teams were eliminated left and right, the frequency of matches increased, and the tempo of the competition accelerated.  In the fifth round of the evening, we were matched against Team 2, one of the top 2 seeded teams throughout the competition.  At this point, we had won five matches straight without a loss.  However, they had too.  Once the round started, our robots became entangled in confrontation, and our robot came away disoriented.  It drove into their scoring zone, giving the other team a large number of positive points.  We lost that round 3 to 28.

 

On the note of confrontation, our robot was supposed to avoid it.  But more often than not, it would run into the other robot.  This usually worked to our advantage, as our robot was very strong.  And for other reasons, but back to the narrative…

 

We were one loss away from elimination.  Minutes later, we had to face the same team which had handed us such a humiliating loss.  Fortunately, we won this match very closely.  We were matched up once again, and once again, we won by a narrow margin, placing us in the Finals.  We had escaped elimination by Team 2 by sheer fortune.  But once we overcame this obstacle, we were able to miraculously continue to win our next two matches, thereby securing the 6.270 title.

 

It is absolutely unbelievable, incomprehensible, that we should have won it all in MIT’s Autonomous Robotics Competition.  We had all known other teams in the past who had not won.  In fact, it almost seemed like nobody ever won 6.270.  Now it had happened to us.

 

We looked back on the To Do list we had jokingly jotted down on Day 1.  Little did we know, that through all our work and multiple well-placed strokes of luck, we would go on to see number 1 on that list come to pass

 

 

CLOSING REMARKS

 

6.270 has been a wonderful experience for this team, and we would highly recommend it to anyone who has an interest in robotics, LEGOs, or programming in general.  When you get caught up in the fun and frustration of building and coding for a competition robot, you forget about the lack of sleep and malnutrition that goes hand-in-hand with taking the course.

 

Of course, no team has such success in and of itself.  We share in this victory with the people around us.  And here goes our “Thank You” list…

 

* To the 6.270 staff for giving us this chance to learn and compete…

* To all the sponsors who made our kit affordable…

* To all the teams that put their heart into this competition…

* To past 6.270 contestants who have given us invaluable advice about the contest, our robot, etc.…

* To two wonderful girlfriends who were patient when their boyfriends chose a robot over them…

* To heat, keeping us warm while we worked on this robot (when it was on, at least)…

* To the MBTA buses that got us back and forth between home and lab…

* To Mike Lin

* To Issao for inspiring us with a hilarious video with heavily accented English…

* To the brothers of Sigma Nu who put up with us occupying and making a mess of the chapter room all month…

* To all the awesome people who came to cheer us on…

* To the slightly less awesome people who didn’t brave the weather but watched the webcast anyway…

* To the anonymous person who dropped $10 on the street, for providing us with our 6.270 budget…

* To our mothers who carried us in their wombs and birthed us, for their sacrifices…

* To our families, for sending us to MIT…

* To Walt Disney, for Cinderella

* To George Lucas, for conceiving Star Wars, which was adapted to a 6.270 theme…

* To Wisconsin, for making sure the nation has enough cheese…

* To Atlanta, for the Braves…

* To Mississippi, for being the 50th most desirable state in which to live…

No thanks to California

* To George H. Bush, for letting Ron Ron’s family stay in the United States

* To Taiwan, for being home to people who eventually produced Mike Lin

* To the beautiful women in Course 6 (you know who you are)...

* To cotton, for being the fabric of our lives…

* To Little Stevie’s, for the countless number of Jumbo Pepperoni pizzas consumed this month…

* To the rioting Red Sox fans last October for not destroying our house…

* To Course 22, Course 6, and Course 10 for giving us degrees in the near future…

* To John Wang, University Village Preschool '89, MIT '04, for letting Ron Ron play his NES when they were kids...

* To Sigma Nu, for giving us the opportunity to form this team among brothers…

* To 105.7 WROR and 104.1 WBCN for broadcasting countless hours of music to work to…

* To everyone who has touched our lives or affected us in some positive way…

* To our little robot, who fought the good fight and came out on top…

* To chance

And to every single person who believed in us and our robot, “This is Mike Lin”

 

For all the Sigma Nu 6.270 teams of yore who never had the chance to win, this victory is for y’all.  We offer this shining moment of a 6.270 1st place finish up for the honor of Sigma Nu.

 

Respectfully yours,

 

 

David Carpenter, Michael Gebauer, and Ron Ron Cheng

Team 26: “This is Mike Lin”

6.270 Champions, IAP 2005