MyBuddy

Team 36 members:
Tamara Yu (tamarind), Linda Hue (lhue), Nancy Kho (kho)

The Class

6.270 is one of the few classes at MIT that is painful but you won't regret taking in the end.

Our Robot - More Pictures!!

We built five robots altogether before arriving at a final design we liked 3 days before Round I. The gear boxes took us a long time to make.We wanted our robot to be extremely fast, so we mounted three motors on each of two wheels with a gear ratio of 27:1.
Our final robot, MyBuddy, also has two arms, each powered by a servo. When they are spread out, the robot is 33.5 inches wide. The arms are pretty strong and fold in and out pretty quickly. MyBuddy can be carried by its arms.
We used differential drive and also had a servo mounted on a third wheel in the front.

Strategy

Our robot was mostly a defensive robot. We changed our strategy a few times, which wasn't very good since there is not much time. Our original strategy was to get the first ball closest to the trough in and then run over to the other side and block the other robot, either by physically running at the robot or by patrolling along the side closest to the trough. Later, we decided we needed more points, so we gave the robot arms. With the arms extended, MyBuddy can spin and shot some balls over into the trough. However, this was imprecise and hard, and so we changed our strategy yet again. We also tried using the arms and just moving forward to push in some balls, but there just wasn't enough time to get things right.

Our robot was really fast and we wanted to use that. (Our robot could fly across the table.) After trying a few things that didn't really work, our final strategy came back to our first strategy - getting the first ball in and then running to the opposite side. My robot sits at the very end of the opponent's side, blocking the robot from scoring the far away ball. Then it goes to the middle and spreads the arms, blocking the opponent's side of the trough. Few robots score balls on the opponent's side, so blocking their side was probably sufficient.

We relied on shaft encoding and time to determine how long turns were. This ended up a pain. As the batteries went lower or motors wearing down, the numbers we used had to change. Also, since our robot was extremely fast, all the numbers we used were never really exact. We also tried wall following, which was pretty good and fast, but we could only use it if the robot made an accurate turn and did not get stuck.

I guess we didn't use the bump sensors as much as we should have. They would have helped a lot. We did not add much error correcting code. But we worked really hard and learned a lot. The last four days each of us got between 10-15 hours of sleep total, which we don't recommend. Sleep deprivation really slows you down and it's harder to get things done. In fact, just before impounding (at this point, we'd been in lab for 30 hours straight), when we were still trying to get the robot to turn correctly around the corner, we accidently commented out the code for turning. So we were quite taken aback by our robot in the competition night when it backed up to the wall rather than turning after scoring the first ball every time.

How to build a fast robot

Well, here's what we did:
We were given six motors total. We had two wheels and used three motors on each. We also had a very low gear ratio of 27:1.
You might think that you want a high gear ratio, but 27:1 was sufficient for us. At first we thought we might want a high gear ratio for more torque to block the other opponent, but if your robot can get in the way of the other robot, that's usually enough to mess it up. It's really hard to push another robot out of the way, just because of size and weight.
Speaking of gears, it is really important to have a good gear box. A bad gear box is really noisy - you will just hear the gears grinding. We spent an extreme amount of time working the gear boxes and mounting the motors so that they fit perfectly with the gears. We made everything very rectangular and braced it all so that once it was built, we did not have to worry about the gear box anymore.

Advice

Get a good physical robot built as soon as you can. You will need to do lots of testing to see what works and what days. Also, you can't really test your code until you have your robot.

Test your robot on the contest table early and often. Problems will surface earlier while you still have time to correct them. (We didn't test our robot until the last few days. That was when we realized the corner turn was much harder than we thought. And we spent most of our remaining days patching that up, unsuccessfully.)

Sleep.

Work in Lab- the TA's are really helpful and working with other teams around you is good too.

MIT Campus Police mouse pads are great for stuffing tires.

Shield all the light/IR sensors. We shielded all our sensors with black heat shrink and then cardboard. We didn't have any problems starting and orienting.

Neon-pink cloth tape gets you attention.

If you can't get your robot to work, don't get discouraged. Take a break or something. If you really can't get your robot to work, instead of quitting, make your robot do something funny. (60 seconds can be a long time.) It will at least entertain the crowd. Our robot just sat after getting the first ball it- we wished we had put some code with to make the robot move its arms around and dance. We put some in but were too tired to get the code to always run.

Have fun!

Consistency is really important. Even though our robot couldn't do anything elsebut get the first ball, it did that consistently. And that's probably the second most important factor in our decent performance in the competition (the first one was luck).

Results

Because of lots of luck and our consistency, we actually made it to the sixth round and finished in the top 15.

More Pictures!!

Thanks

Thanks to all our buddies who came out to 26-100 to watch us compete in the final round.
Thanks to Vivian for her pink tape and food she cooked.
Thanks to Julia for feeding us too and encouraging us.
Thanks to Brian for helping us with ideas and giving suggestions.