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 Hitchhikers 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 (ones 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 robots 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 (ones 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. Dont 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!
|