QUIK CHOW team 23
team . mission . table . strategy . design . competition . journal . pictures!

Link to 6.270 page

team
Neil Chungfat (Computer Science '01)
Roxanne Lau (Chemical Engineering '01)
Justin Lin (Computer Science '01)


mission
In the not-so-distant future, the hacking tradition at MIT is alive and well. To enforce order and counteract the of these hackers, the campus police have decided to use autonomous robots to keep the peace.

In their pilot program, the campus police are evaluating the performance of different robots by having the robots compete against each other. The campus police will select for mass deployment the robot that best eliminates the hacker threat for its assigned campus.

Our mission was to design and construct an autonomous police robot (RoboCP for short) for the campus police to test. Each RoboCP must scour its assigned campus for hackers and neutralize this threat, while not harassing students or professors.

table


Above is a 3D graphic of the contest table rendered by Neil (ain't it cool???). As you can see there are three types of blocks on the table. The black ones are hacking students, the white are innocent students and the red are professors. In the middle of the board are four professors in the neutral territory of "Mass Ave." There are two campuses, "East Campus" and "West Campus." On each campus, there are 6 hackers and 6 non-hackers. The two blue areas are the campus jails. To the side of each jail are two hackers, and the rest of the hackers and non-hackers are randomly placed in set positions in front of Mass Ave. The goal is to move around the blocks into positions that will increase the score to your favor.

Scoring chart:

each block

On your campus

In your possession

In your jail

Off your campus

student

+1

-1

-3

0

hacker

-1

+1

+3

0

professor

+3

-3

-9

0



strategy
This year, there were a few differences in the board setup and layout, compared with the previous two years. First, instead of collecting foam balls, this contest utilized one-inch wooden cubes. While cubes would not slide around quite as easily as balls, it would make scooping or sucking them into a robot more difficult. Second, the dynamic arrangement of the hacker and student blocks imposed an additional restriction on our strategy. In effect, since we did not favor creating a purely aggressive attack robot, we had two options: sorting blocks, or gathering the blocks that we knew the identity of (i.e. the two side hackers and the professors). While a successful sorting robot would have a high yield of points, we decided against such a strategy since sensing the color of the blocks would require very precise alignment of the block with whatever sensors we used. Instead, we realized that we would be able to score a sufficient number of points if we were able to capture the two hackers in our jail, bring three of the four professor onto our side, and then try to push the remaining one into our opponent's jail. However, this strategy required that we reach a very precise position on the hill, at execute a perfect 90 degree turn. Worried that we would not be able to do this, we altered our strategy to first retrieve the left professor and then push the rightmost professor into our opponent's jail.

Click the image to see the 3D animation of our strategy created by Neil :)


design
In designing Quik Chow, our team had these things in mind: simplicity, modularity, and durability. Our strategy was simple, and implementation of the strategy called for a simple robot. We needed a robot with a front door, a back door, and the ability to move around the board.

We began with the gearbox. Since our strategy involved a lot of movement, we wanted a relatively low gear ratio of 45:1 powered by dual motors for good speed. After designing a compact gearbox for a rear wheel, we integrated a front wheel into the structure. By building each side separately, our channel was essentially created. We simply connected the two sides (at heights > height of a block), leaving an open path through which the blocks were to pass.

Although the construction of the driving mechanism was straightforward, we had to make several passes at the door design before we were satisfied. In the end, we decided to attach the doors to servos. This would ensure that the door remains in place when set and would give us an essentially one-piece operating door. Our only tasks involved attaching a flat plate (our door) onto the servo and the mounting of the servo. In other words, with this design, we did not need to concern ourselves with the actuating of the doors. A simple rotation of the servo performed the job.

Since our strategy required precise navigating around the board in order to find the blocks, turning became a very important issue. We didn't want to take the treads off the front wheels because we feared the loss of traction would hinder our ability to climb the steps easily (though we ended up not climbing the steps, we wanted to leave our options open). Of the remaining options, we decided that since we already had a rotation servo in the front of the robot, we could attach a wheel to it and align it along the opposite axis as the other wheels. When we rotated the servo to a specific angle, other than that assigned to the door, the free wheel would lift the robot off it's front wheels and allow the robot to turn at a radius defined by this free wheel via power from the back wheels (pictures available on this site might make it more clear).

Though we had a good idea of the robot's path, we feared the inaccuracies of the robot's movement. Thus, we attached 2 buttons on the back of our robot for alignment purposes. We also attached 4 light sensor on the bottom of our robot to assist in finding specific locations on the board (e.g. all black, or all white surfaces). In addition, we built a funnel out of our base plate in order to help bring blocks into our channel when our robot isn't perfectly aligned.

On a smaller note, we put most of the weight on the back of the robot in order to help our turning wheel lift the robot (we experienced some problems with alternative weight distributions).

When writing our software, we maintained these three principles: simplicity, modularity, and most importantly, robustness. We used shaft encoding for turning right angles and for travelling specific distances. A strong point of our code was the presence of many reflexes. We had correction code for all the movement, and stall code for all the correction movement. Our robot was not going to stop. If Quik Chow ran into walls (sensed by a side button sensor), it knew to back up and correct accordingly. All turning and driving had appropriate corrections.

Though there were many other design decisions made, we have highlighted the most important issues.
See pictures of the real Quik Chow


competition
In the first round, our robot performed better than we could ever hoped at that point. It was a nice suprise that everything was so smooth. As impounding time came near, we tested the robot over and over, making slight changes. However, in lab it was performing fine every time we tested. In the second round, the robot became disoriented early in the round. Somehow through luck, we managed to win anyway by a double win. We believed that it must have been a problem with the the wheels and that our robot swerved too soon because of the treads separating from the tire.

In the third round, we came up against King Louie. Had our robot done what it was supposed to do, we might have had a chance of at least running over the red bot and thus damaging its arms for the following rounds. But the alignment was again slightly off, and it ran into the ramp. It never performed well after that.

We got through five rounds before we were eliminated. The robot was over turning in each round. One theory is that there was a mechanical error that we could not see or fix in those last rounds.

It's a shame that our robot did not do in competition what it did in lab. If it had, we would have made quite a presence in the competition. But that's how the cookie crumbles. We're proud of the effort we put in and that we got as far as we did. Quik Chow (named after the place we ordered from so often during those long days in lab) was a fun project and it served us well enough. It got a little stage fright, but we love it anyway.