The Strategy

Chances are: some nerds in 6.270 can write A.I. programs before they know English; some nerds in 6.270 had built robots larger than you in terms of body size and brain size. However, I can assure you with the advice that "The Hitchhiker’s Guide to the Galaxy" had once given me in big friendly letters:


DO NOT PANIC


We will walk you through with specific valuable hints. We hope that this page will be able to explain to you why there is absolutely nothing to panic about. The completion of the robot require 4 phases:

Strategy, Hardware, Lego Building, and Software.

We will place a red exclamation mark (!!!) next to any MUST-KNOW advise. Let us begin with strategies.

 

Strategy by Arthur Mak


Once you know what your competition is all about after the first lecture, look through the rules and the goals of the contest as thoroughly as possible. Then, spend a couple of days to BRAINSTORM in a productive way. Here are a couple of useful things to brainstorm about:
1) Who is doing what? Are the 3 of you going to split up to do separate things (i.e.. One doing hardware, one doing software and one doing lego building) or are you all going to work through each phase.
2) What kind of robot do you like?
An aggressive one that will score only little points and then run into and mess up the other robot?
A funky one that will disintegrate into separate components to block the other robot from scoring?
A fun one that will cheer the crowd and does absolutely jack all? (I strongly discourage you from building this type of robot)
Or, just a boring one that minds its own business? (like ours…)


!!! Please always remember that simplicity is the key of this competition. We know that you may possibly be one of the most talented and experienced robot builder, but we need to gently remind you with some rough stats from our competition.
Fact 1: We estimate that a third of the robots lose because it cannot even start moving.
Fact 2: If the team can score 1 ball out of 7 consistently, it can beat half of the 60 teams.
Fact 3: The team that won the competition only scored 2 balls out of 7 consistently.
So many great minds enter the 6.270 competition and it is surprising to see the number of disappointed faces when their robots become utter failures. During the first 2 weeks of the competition, almost every team was thinking about doing things than could not possibly be achieved in such a short span of time (IAP is a very short span of time to complete a 6.270 robot). Then, when there were only 2 days left, more than half the teams would scream out helplessly and hopelessly, "Crap! My stupid robot cannot even move straight."


!!! Make sure your robot can do the basic functions properly. If your robot can drive straight and make consistent turns, you should at least aim your robot to become the top 5 robots. Developing those two functions is the hardest part of our robot construction.


!!! Consistency: in our competition there were 14 rounds. If you robot malfunction only once every 20 matches, the chance of the robot working all the way through the competition is less than 50%.
There really is no point to countermeasure the tactics of every other team. It is only going to hurt the consistency and potential of your robot. So, please keep things simple in a clever way.

 

SPECIFICALLY, this was our Robot's strategy (written by Stolbach):

!!! Scoring quickly, and scoring often.

We saw the possibility for other robots to try to disrupt their opponent as their main strategy, and we felt that this could be defeated by ensuring that we had scored by the time a robot could make it to our side. The other obvious strategy was to worry only about one's own balls, effectively ignoring the other robot. Essentially, we just hoped that we could be better at this than the other robot. We also had to decide on a mechanism for controlling the balls. We chose to use a bar to keep the balls near the robot. This seemed effective since it could control one or two balls between the bar and the robot, while still free to push one or two additional balls with the lowered bar. We programmed our robot to turn towards the ball farthest from the goal first and then back the ball nearest to the goal into the scoring trough. Then our robot goes to the farthest ball and lowers the bar around it. It takes distance readings when it first begins, and then as it travels, so it knows if the block is near the start location, and if so, if it is near the goal, by the time it reaches this second ball. If the block is near the second ball, it backs up first and then turns around after it is past the block. Otherwise, the bar could potentially hit the block when turning. After scoring these first two, the strategy diverges depending on where the block is.

To see more of the strategy, find the 6.270 video tape.

 

Hardware by Arthur Mak


There are 2 areas of concern: Soldering and Sensors.

!!! Soldering (We know this will be hard to believe but this is one of the most important sections, so please do not skip this)

I, Arthur, had made every possible soldering mistake and they were painful. I would want you to read carefully and LEARN from my 2 most dreadful mistakes (which are quite common).


1) Read the diagram carefully 10 times – takes 5 min.
One single soldering mistake of mine – takes 15 hours to fix.
This is the truth, so I urge you to at least read and reread and reread and reread and reread the circuit diagram before you solder each component.


2) DO NOT UNDER ANY CIRCUMSTANCES
a) do soldering on the main board or extension board on the carpet
b) do soldering on the main board or extension board without grounding yourself.
c) put the main board or extension board in any container other than the provided conductive plastic bags.
My main board was fried by static charge – costs me $200.

Sensors
There are many types of sensors to choose from. It is a painstaking process but my valuable sensor-experience should ease your burden.

1) Shaft Encoder
This is my favorite sensor because it is extremely reliable for measuring the distance that each wheel of your robot traveled. These sensors help us tremendously to make the robot to drive straight. Remember to shield the sensors.

2) Distance Sensor
If someone tells you that that the distance sensor is useless, do not believe him/her because he/she do not have a clue what he/she is talking about. The distance sensor is very accurate from the range ~8cm to ~30cm. However, SHIELD IT WELL. Many teams say that the distance sensors do not work. The reason is that the lighting conditions in the actual contest is totally different from the lab. The lighting in the contest is far far brighter with twenty spot lights shining at your robot. I suggest you to test your robot in the lab using a halogen lamp or something really bright.

3) Click Sensor (one’s with long metal strip)
Click sensors are fantastic. There are 2 things that you need to bear in mind. Firstly, you can easily break them when you are carrying them around. Secondly…
!!! here is the important trick. These sensor can take serious hits. BUT, you need to make sure that they do not bend the wrong way. They bend easily if you attach them perpendicular or towards your robot’s direction of travel. Attach them at an angle and this can allow them to take hundreds of serious hits.

4) LED Resistors
Useful for starting the competition because the competition starts by flashing light at the bottom of your robot. It can also recognize different colors BUT I advice against using these sensors for this purpose. The lighting in the contest will be likely to screw up the sensors.

5) LED Transistors
Yes, they are reliable. However, using them to track where your robot is going is not such a good idea. The response time of these LED transistors seem to be slow for some reason and you can only use them at the bottom of your robot (again, because the lighting conditions in the contest will be likely to screw up the transistors)

6) Click Sensor (one’s with no long metal strip and not as easy to ‘click’)
These sensors are useful when you are moving along the wall with the sensor constantly in contact with the wall. However, a couple of teams screwed up this year because the table was repainted for the contest, causing a lot of additional friction between the walls and the sensors.

7) Bumper Sensor
Trust me on this. Don’t use them. They are easy to break. Use the click sensors instead.

 

Lego Building by Maxwell Planck


I have many years of experience with Legos and I must say that nothing can take the place of hard core hands on experience. If you have not selected a teams as of yet, I recommend that you look for some one who played with Legos as a child.

If you are new to Legos, then you still have a great chance. Here are some hints for design as well as some hints for strategy.

Design:

1) Drive System:
The best and only drive system for 6.270 (in my opinion) is a differential drive with a third back wheel on a servo mount such that you have a full 180 degrees of rotation. The combination of varying differential speeds on your main axle and adjusting your back wheel is a wonderful way to maintain consistency of turns and driving straight. We used two motors for each wheel on the main axle It's up to you whether or not you want the extra power. I must warn you, however, that speed sacrifices accuracy.

!!! SPEED SACRIFICES ACCURACY

So, we ran our robot at 80% speed to assure more accurate driving. Remember to consider reducing your robot's overall speed if you are having a difficult time with a consistency.

2) Make it a TANK:
In past years of 6.270, they have always said that your robot should survive a waist high drop. This is a crucial truth. When building your robot, always think of the weak points of your structure and fortify as you build. Do not build a robot and then fortify, the small spaces will cramp your fingers. You may even realize that you need to dismantle the robot to make it stronger.

Most importantly, make your moving parts very strong. The most common source of inconsistency is somewhere in your moving parts. Our robots front bar could withstand a hit with the robot moving at full speed. By the way, I recommend making a bar to capture balls (if that is an object in your contest). It's reliable and easy to make (If you do plan on using a bar, do not rely on the simple rotation of a servo to lift the bar. Design a mechanism that physically lifts the bar. If you have questions about how I did it, just email: mplanck@mit.edu).

3) !!! Go at it:
Don't spend a whole lot of time conceptualizing how the robot is going to work. You never know how it is really going to turn out unless you just start building. Begin with the external pieces, like the bar or the back wheel. Then work into the middle axle leaving room for the bigger wheels. Oh yeah, use the biggest wheels in a pair. They are effective and fast.

 

Software by Matthew Stolbach


In writing our code, we attempted to be as modular as possible. This degenerated a little bit when we realized that certain functions would require passing about as many variables as lines of code in them. That is, we could have been more modular than we were. But that being said, we did a pretty good job there.

We had three good move functions, all of which called a move-while function in a while loop. One moved according to shaft encoder clicks, with the ability to take distance sensor readings over certain periods; one moved until two certain click sensors were hit; the last moved until only one click sensor was hit.

We could have used more modular braking functions, but in practice it was easier to fix all in one spot, since we knew that speeds would be the same for all functions. Our feedback in the move functions relied on changing our back wheel position and power linearly with the difference in shaft encoders on the left and right front wheels. We also used distance sensors to keep our robot away from the wall over certain stretches. The modularity of the moving programs aided us greatly in our refining the constants for these linear modifications.

!!! We also used a menu program to run various tests as we were going along. This was invaluable. All future contestants should do this!!!

Last, we wrote our own start code, which allowed us to arm our robot at the same time we were "ready for off." This really isn't that amazing, but it made us look cool, and no one knows what the hell the "score" was on the start_machine code that they give us. It took two seconds.

I really recommend you see our code to get a sense of the what we really did.

 

Good luck and may you see the gold chain, but more importantly, may you keep your eyes on it!

Website developed by Maxwell Planck • Keep Your Eyes on the Gold Chain envisioned by
Matthew Stolbach, Arthur Mak, and Maxwell Planck