6.270 - IAP 2000
6.270 - IAP 2000
here's the contest site
main page
project log
team 4 - nication
group members: Chris Avrich / Albert Leija / Nick White
Final Design Report by Chris Avrich
I. Overall Summary
The basic idea of our design was to have a fairly speedy robot that
could pick up most of the blocks (including those from the opponent's
campus), and then come back to our campus where it was relatively
safe. Once there, we could sort the blocks (Hacker or non-Hacker,
Professors included), and then drop them either in our jail or out on
our campus, depending on their type. The basic route we chose was to
go down either the left or right side of the table to the opponent's
group of ten students, turn, collect those students, then turn again
and come back to our campus with the blocks. Note that this route
would also collect two valuable Professor blocks along the way.
Our robot's structure was divided into several components.
1) The Sucker: This construction is angled downward at the front of
the robot to bring blocks upward into the robot. We used six spinning
Lego tires to grip the blocks, and mounted them on shocks so that they
could flex a bit as they brought the blocks up. There is one motor
attached to each side of the sucker, geared down in a 2:75 ratio.
2) The Whacker: Once blocks are drawn into the Sucker, they pass into
a small chamber where they are (a) scanned with a red LED and a
phototransistor to determine their type, and (b) pushed in one
direction or the other using some Lego plates attached to a servo. We
mounted the base plate upside-down underneath the whacker, and the
whole section is tilted backward at a slight angle; this enables
blocks, when hit, to slide down into storage bins in the rear.
3) The Excretor: There are small gates at the back of each storage bin
that can be activated independently to release a certain type of block
at a given time. We planned to program the robot to "do a little jig"
when the flaps were opened, that is, to shake a bit by driving forward
and backward rapidly. This would help the blocks to slide out of the
bins more quickly and reliably. One thing to note about storing blocks
is that it made our robot fairly large, to accommodate as many blocks
as possible (in fact, we barely made the one foot cube limit).
4) The Collector: This is a plow at the front of the robot to direct
blocks into the sucker while the robot drives around the board. Rubber
bands are used to connect the two arms of the Collector, to provide
flexibility in case of a collision with a wall or the opponent. Since
our robot was quite large, we needed to have the Collector mounted
vertically at the start of a round, and then have it flip down at the
start. It was kept in place with a latch attached to the servo, and
when the servo was rotated, this latch would release. Rubber bands
were mounted so that the Collector, in the latched position, would be
under tension; this way, upon release, it would spring down to the
correct position.
The Collector in latched (starting) position:
The latch:
The Collector in deployed (down) position:
5) Drive wheels and gear train: This is all underneath the robot, and
mounted to the base plate. We have two drive wheels, using
differential drive, and there are two motors attached to each wheel at
a 1:27 gear ratio.
6) Sensors: We have one touch sensor at each back corner of our robot
one on each side near the wheel for wall detection. We also have two
touch sensors on each arm of the Collector to detect flexing, both
inward and outward. In addition, there are four orientation-sensing
photoresistors attached to the IR Beacon's dowel, an
LED/phototransistor pair mounted near the Whacker for block scanning,
three more LED/phototransistor pairs on the bottom for line following,
a photoresistor on the bottom for start light detection, and shaft
encoders on the drive motors to help the robot drive straight.
Due to the time constraints of the contest, worsened by the delay in
the controller boards this year, we had to scrap some of the features
of our original design before impounding time. We scrapped line
following, because we found that it was too inaccurate and slow to be
viable; we replaced it with a dead-reckoning (for distances) and
wall-following (for turns) strategy. The other big problem was with
block scanning: try as we might, we just couldn't get it to work
reliably enough. As time ran out before impounding, we took out the
Whacker entirely and just planned to let blocks flow into our robot
indiscriminately as we moved around the table. Then, we would release
them all on our campus, and that theoretically could net us 10 points
(6 for the two Professors, 1 for the two extra Innocents from the
opponent's group of 10, and -1 for the opponent for losing those
students).
II. Performance and Results
In the qualifying round, we qualified with a loss. Our robot managed
to orient itself properly, start on the signal, and deploy the
Collector. It then drove to the right, made a left, drove to the
opponent's side of the board, made another left, and drove about two
feet before stopping. Unfortunately, it sucked up one Innocent student
block and moved one Professor and two Innocent students to the
opponent's side of campus in this process, thus scoring points for the
opponent. But we had shown the ability to score, so we qualified.
In round 2, we took another loss to eliminate us from the contest. We
started and oriented properly, but we began facing left, which was an
orientation that we hadn't tested as well as others. We ended up just
driving and getting stuck in the corner. Also, we had the persistent
problem of not shutting down properly at 60 seconds, but it didn't
really matter since we'd lost anyway. In the finals, we had an
exhibition match, but by then our rubber bands for deployment of the
Collector had become less elastic, and our Collector deployed late,
getting stuck on the outside wall of the table and disallowing our
robot from further movement. However, we did manage to suck in the one
corner Hacker block and beat our opponent 2-0.
I would describe our robot's overall performance as "a valiant
attempt." In the qualifying round, we showed that our robot could at
least drive reasonably around the table (and at a good speed, too),
but problems just plagued us too much, and there was not enough time
to debug them all. However, we did manage to achieve some useful
functionality. The Sucker worked with a good degree of speed and
reliability. The drive motors and drive trains gave us few problems,
and were pretty speedy. The Collector deployed quite reliably, but we
had to watch out for rubber band degradation. Also, the start light
sensors worked, we were able to implement wall-following turns, and
other simple parts like the Excretors worked without a hitch.
III. Possible Redesign
If we could retake 6.270 with the same design goals, I think that our
strategy would be somewhat different. First of all, we would have a
much greater respect for the old adage "Keep it Simple, Stupid." There
was just no way we could have anticipated the amount of debugging we
needed to do, and a simpler design may have saved us a lot of sleep
loss and headaches.
Knowing what we know now about how hard it is to scan blocks for their
type, we would not have attempted to do it. Instead, we would have
probably worked with the high-scoring Professor blocks, since their
starting position is always known. We could have either implemented
something with arms to push the Professors on our side (a la "King
Louie," the winner), or perhaps a strategy that would collect the
Professors and deposit them in the opponent's jail. The key would be
to focus in on one particular task, and do it well. This would allow
us to debug in a much more focused and effective manner.
With our new design goal of simplicity, we would have been able to
better achieve a goal that, in reality, we had to relax a bit due to
the weight of our complex robot: Speed. I'd imagine that, with a new,
simpler construction, we would be able to build a much smaller, more
compact robot that would be able to quickly move in and score points
before a slower opponent could execute its strategy. I am in no way
opposed to a strategy that would cause our robot to actively come in
contact with the opponent - it'd make the competition more fun to
watch, and since our design would be smaller, we'd have much more
leeway to make our robot very structurally sound.
Finally, I would like to comment about the two Hackers in the corners
near the starting zone. I think a revised strategy would do well to
incorporate these, since a robot that doesn't scan blocks is much more
dependent on them. However, I think that it would be better not to
waste crucial time at the beginning bringing them to jail, when
instead, our robot could be bringing Professors to our side, pushing
Professors in the opponent's jail, or otherwise interfering with the
opponent's strategy. Speed is key, but more importantly, messing with
the opponent is fun.
IV. Contest Design Flaws
The contest was fairly well constructed, in my opinion. The board was
laid out well, especially the fact that the steps prevented getting
all four professors in one sweep (unless you used some sort of
arms). I liked the many different ways one could score, either by
putting Hackers in your jail, bringing Students and Professors on your
campus, or dropping Students and Professors in the opponent's
jail. The point values seemed fair, and scoring based on the end state
of the table was a good method.
The jail break option seemed underutilized in the competition, and I'm
not sure whether this was because of individual teams' preferences, or
whether it was simply a weak strategy. The same goes for the holes in
the blocks - it was good to have the option of using them for block
detection, but in my opinion they weren't all that useful for
anything. Blocks could easily be thrown out of orientation, and a
Professor could be read as a Hacker, for instance.
Finally, of course, having the control boards delayed by a week was
the biggest problem this year. It's not a design problem, but it did
prevent almost all groups from reaching their full potential, and made
the final contest generally less exciting. The strategy of trying to
detect blocks, while clearly encouraged in the design problem, simply
became unusable due to the lack of debugging time. However, the choice
of controller boards actually became an interesting facet of the
competition.