Team 37 presents

Ninjas are cool, and by cool we mean totally sweet, and by totally sweet we mean totally cool. Bob for short.


6.270 Home | Competition | Robot | Strategy | Problems | Results | Tidbits | Advice


Team members:
  • Dave "I heat shrink wrapped my finger" Simmons
  • Rahul "I need a groidlet" Agrawal
  • Debbie "I slept on 3 lab stools" Wan
Team nickname:
  • Ninja Bob
Drive Train:
  • 1:27 gear ratio, double driven
Special Features:
  • The Totally Sweet Totally Cool Spinning Ninja Karate Chop

Team 37 at impounding.
Yeah, we know, we look horrible.


6.270

Top

The Lego Autonomous Robot Design Competition, known to MIT students as 6.270, is held every IAP (Independent Activities Period) at MIT. Using only Legos for the structure and gear trains, and a HandyBoard (tm) to control the robot, each team of 2-3 students works for 4 weeks to create a robot that is fully autonomous and can compete against other robots to score the most points in a competition round.

This year's competition theme was "Chicken." There were two holes on each side of the contest table, each hole leading to a scoring tube. Points are earned when the robots put balls into the tube, where "the nth ball in the tube earns n points" (Mouser, 2002).

The Robot

Top

"Ninjas are cool, and by cool we mean totally sweet, and by totally sweet we mean totally cool, Bob for short" was the result of 4 weeks of planning, building, and destruction, including 6 days of sleepless nights, 40+ hour "days" in lab, a drive to New Hampshire and a trip to Mattapan.

Our team built 4 fully functional robots plus 2.5 half robots before we finally settled on Ninja Bob's design. We first tried a 4 wheel differential drive design, with each side driven by 3 motors. Not only did our batteries drain after 30 seconds of use, but the robot was so powerful it tipped over when it tried to stop or turn. Our next design was to cut the drive train down to only 2 motors per side. However, we still were running out of power after about 45 seconds. It was then that we decided to try a 3 wheel design, with each drive train running on two motors. When we still had power drain problems, we finally realized our motor driver chips were overheating. A few heat sinks solved the problem.

After a few more structural changes, the final robot was born. Two front wheels with a 1:27 gear ratio were each driven by two motors, and a third undriven wheel in the rear allowed us to steer. The steering wheel was attached to a servo motor, which provided for accurate turning. We also designed an arm for the robot that collected balls. Basically it was a three sided rectangle, with the fourth open side connected to the body of the robot. Raising and lowering of the arm was controlled by a single servo, avoiding problems of aligning the servos and having them work in sync. The servo provided Ninja Bob with his characteristic Karate Chop action.

The Strategy

Top

Twelve hours before Round 1, we still had not decided on a complete strategy. Our goal from the start had been to make a fast robot. We knew speed was key. We wanted to be able to effectively counter the teams that used hole blocking as a strategy, so we knew we had to score quickly. Another key point for us in thinking of a strategy was keeping it simple. We knew we couldn't count on everything to work right every time, so the simpler the strategy, the less chance for something to go wrong.

We decided the best way was to get the two balls nearest us into the trough first. After START, we would orient ourselves away from the trough, use our arm to trap a ball, do an about face, and drive straight towards the trough. This would allow us to plow one ball in while also releasing the ball within our arm. After we scored our two balls, we would proceed to the other side of the table and wreak havoc upon the other team's balls. This was a counter strategy to the slow but accurate robots that very often put 4 or 5 balls into the trough every round.

At first we were worried about going over the limit for number of sensors that could be used, but in the end, we used very few sensors. We had two bumper sensors on the back of our robot that told us when we backed into a wall. We also had 5 phototransistors and 2 cds cells used for orientation and line following. We used a breakbeam sensor on each of our two drive wheels as shaft encoders so that we could turn and drive straight.




The Problems

Top

One of the first problems our team encountered was power drain. The first robot that we put together would only drive for about 30 seconds before becoming interminably slow. When we used a different gear ratio and drive train and got the same results, we decided the HandyBoard must be causing the problem. After consulting a few organizers and TAs, we decided to put heat sinks on the motor driver chips. This solved our problem. Basically what had been happening was our motor driver chips would overheat and shut off, cutting off current to our motors, and thus slowing them down immensely.

Another major problem for us was building a smooth gearbox. With a 1:27 gear ratio and two motors, our gearbox contained no less than 4 axles, 4 24-tooth gears, and 3 8-tooth gears. It required careful adjustment and spacing so that the gears and spacers would not get caught on each other. After testing, the gears sometimes shifted and ground against each other. Often, the motors would move just enough to cause the gearbox to get stuck, but not enough for us to realize that it was loose. 30 minutes before our first qualifying round, our gearbox was completely frozen. This was when we learned that the loose motors were causing all the anguish.

Not only did finicky gearboxes give us problems with moving, but turning was also a big issue. Almost 75% of the last week of working was spent calibrating turns. Because we used shaft encoders to count wheel rotations when turning, the sticky gearboxes often threw our calibrations off. The right number of turns on a wheel sometimes just didn't go far enough when the gearbox was tight. Also, we wanted to do turns at full speed, which caused the momentum of the robot to be a big factor in turns. We learned to power down the motors partway through the turn so that our momentum didn't carry us farther after the turn stopped.

Driving straight is not as easy as it seems. We tried using shaft encoders and line following to drive straight, and finally settled on using shaft encoders. We also used the walls to assist us in aligning ourselves straight. If we backed squarely into a wall, we knew we would be aligned straight even if our turns had missed slightly.

Ninja Bob's arm had a tendency to get caught on the walls when we tried to turn with a ball in our possession, but this was easily solved in two ways. First, we raised the arm higher so it would clear the wall, and added additional LEGO to the arm to prevent the ball from escaping. Secondly, we added a timeout to the code, so that if Ninja Bob realized he had not been moving for more than 5 seconds, he would turn himself slightly and proceed forward again. This was our "Help me" routine. We also had a "stuck in corner" timeout that allowed Ninja Bob to get himself out of a corner if he stopped moving for 5 seconds. Ninja Bob often backed up so fast that his back end would be slightly raised, preventing the rear sensors from triggering a wall.

The Results

Top

Ninja Bob was undefeated through 5 rounds, and had consistently scored two balls up to that point. In round 6, Ninja Bob missed a turn and lost a ball, causing us to lose to a team that scored 2 balls. In round 7, Ninja Bob suddenly stopped calibrating correctly and read his start orientation incorrectly. Luckily, we managed to back into a ball and score one point, tying with the other team. By then we realized something had gone seriously wrong and saw that our HandyBoard batteries had drained, despite having been charged the night before. Ninja Bob was essentially color blind. Between rounds 7 and 8, we tried to charge the HandyBoard, but to no avail. In round 8, the organizers allowed us to keep the HandyBoard on charge while we calibrated. While this allowed us to get somewhat decent readings, it was a lost cause. At the moment we were to arm our robots, Ninja Bob's heart stopped beating. Our HandyBoard had crashed. It was a no start for us, and the 2nd loss in a double elimination tournament.

We were one of the top 8 teams out of 60, but we like to think we could've won. Hey, let a ninja dream.

Tidbits

Top

Dave tried to heat shrink wrap his index finger. The heat gun was too hot so he used a soldering iron instead.

Debbie and Dave played chicken on the Longfellow Bridge at 3 in the morning, 14 hours before impounding.

Rahul learned to differentiate between male and female headers during 6.270.

Our team name was inspired by this website.

Our Advice to Future Contestants

Not that you'll listen to us...

Top