6.270 Homepage | Competition | Robot | Strategy | Problems | Advice |


Team members:
  • Emily Prentice
  • Jamie Simmons
  • Kristen Whaley
Team nickname:
  • Team Orange
Robot's Name:
  • Hermi

Our beautiful robot, Hermi!


6.270

Top

6.270 is a 4-week Lego Autonomous Robot Design Competition. Each team (of 2-3 students) is given the same set of legos and a certain sensor budget for modifying their robots. Each robot must be fully autonomous and be able to move and react on its own once a round starts.

This year's competition theme was "Mission to Mars." The competition was meant to represent the need to gather materials on the surface of Mars. There were two different sized balls: blue large balls that were worth 4 points and smaller pink balls worth 1 point each. There were 14 small balls on the board which could be scored in your robot's goal. There were 4 larger balls, which could only be placed in the goal if the balls were lifted over a 4 inch wall. Another feature this year was a flagbox, centered on the playing board, where a robot could use tires or gears to spin the flag's gear box and raise your robot's flag. If your team's flag was higher than your opponent's, your robot doubled its points.

The Robot: Hermi

Top

The construction of our robot was definitely a learning experience. When we first got our lego kit, we weren't sure how half of the pieces could possibily be used to build anything. We quickly learned about bracing our robot so it wouldn't break when it was dropped or when it hit a wall or another robot. It took us a very long time to develop a chassis that wouldn't fall apart during the drop test. We basically built a box with wheels around our gear trains.

Our original design was very similar to our final design. Since we didn't have a lot of experience with any aspect of constructing and programming an autonomous robot, our design was very simple. We have a one-way gate across the front of our robot. This allows balls to enter the belly of Hermi, and not get out. Along the back of Hermi there is another gate that is controlled by a servo. When this back gate opened, the balls could be released and pushed into the goal by the backwards movement of Hermi.

Originally, we had a giant caster wheel on the back side of Hermi. We ended up changing this the night before impounding. The wheel was getting in the way of some of the balls exiting through the back gate. So we scrapped the giant wheel and placed two smaller caster wheels on the far corners of the backside. There are also two caster wheels on the front of Hermi, so that when it backed up it wouldn't do a wheelie (which was a problem because balls could then slip out under the back gates).

Our robot used two distance sensors to determine it's intial orientation. It also used shaft encoders and a PID system to drive straight. In order to turn to the proper angle, we used a gyro. One of our favorite features on Hermi is our spinning lego man, who is attached to a gear which is spun by a motor. Yes, we used a motor to do nothing useful.

The Strategy

Top

We knew that with our lack of experience and lack of time (a month flies by really fast) that we would need to keep our strategy simple. We decided to only go for the small balls. We originally planned to raise our flag, but we had unexpected issues with driving straight. Prioritizing, we focused on the driving code and didn't worry about going for the flag.

Our final code had our robot collect and score 4 small balls and then go and block the other team's flag box. In lab, the robot consistently collected these balls and scored them. Unfortunately in the competition, something went wrong, and our robot kept consistently turning too short on all of it's angles. We still managed to win one round despite our robot not following the lines correctly to collect the balls.

The Problems

Top

The biggest problem that we had was driving straight. But we'll get to that later.

The first problem that we ran into was dealing with the castor wheel. This is ironic since in the last 24 hours before impounding, we got rid of this over-complicated castor wheel and exchanged it for 4 small, simple castor wheels at the corners of our robot.

We used a 75:1 gear ratio. We didn't have any problems with the gear ratio itself. It generated plenty of force. The problem lay with the gear slop. The gears moved around a lot and even though the axes were supported on either side, there was definitely a lot of sliding around and bending going on inside our gear box. Especially in the early weeks during the first design iteration, the wheels would occasionally lock up completely and be unable to turn. And even at the end of the competition, we hadn't completely fixed this problem. While the wheels no longer locked up, the gear box was loud and the wheels were harder to turn than they should have been.

Driving straight sounds relatively easy. We certainly thought that it would be. Unfortunately, we struggled with this task for a long time. We began by using shaft encoders to try and drive straight, but for some reason our code didn't correct properly. So we switched to using the gyro even though we knew that it would probably be less accurate because of drift. Then, we switched over again to shaft encoders (about 2 days before impounding) so that we could use the PID Controller in a last ditch attempt to make our robot drive straight consistently. Luckily we were able to the get the PID Controller working well enough that our robot drove straight fairly well for long enough distances every time that it ran. Hooray!

Sometimes you start with a design and then rather than going back and fixing it when you realize that it's a little bit silly, you keep going until finally you realize that that design doesn't make any sense whatsoever. That happened to us. But we finally went back and fixed it a day before impounding.

Yet another problem is that our Happyboard had a bug in the OS so that it shut off sometimes instead of running our program. It wasn't our fault, but it was extremely annoying. For some reason, this bug affected us more than anyone else.

The overarching problem that we had during the development of our robot was that since we were very inexperience, we expected things to work perfectly, and when they didn't, we struggled with adapting. For instance, some of the LEGO pieces don't have easy to fit units, which caused some of the gear troubles mentioned above. Even worse was the fact that the sensors were extremely imperfect. They were still useful, but the code needed to be able to make up for their inaccuracy sometimes.

Our Advice to Future Contestants

After a month of making our own mistakes, here are our words of wisdom:

Top