Bios for Team 40

Whonu (Manu Seth) manu@mit.edu

The leader, the idea man, the motivator, and slave-driver.

Whorav (Sourav Dey) sdey@mit.edu

The whiner, and part-time coder. And the brunt of all the jokes.

Whobav (Vibhav Rangarajan) vbranga@mit.edu

The part-time coder and instigator of all jokes against Whobav.

 

Design

We decided to scrap our original 'moving box' idea for a number of reasons. We were afraid that with such a large open space in the middle, we would not be able to effectively place the sensors we would need for line following and detecting the start light. The moving box also could have difficulty if it came up against a fence that an opponent put up to block us. Most importantly, the moving box was pretty boring and unoriginal.

Kirpal v.1.0
Kirpal v.2.0, close to final design

So we went about trying to come up with a design that would resolve the problems we would encounter with the box. We figured that a boring design is only justified with a first place finish. But if we weren't going to get first place, we'd rather have an interesting machine. Our goal was to come up with a design that would get us to the final round. We didn't think very far beyond that.

We decided that we wanted to create a machine that could carry multiple balls. We thought it would be best if the balls were held by the machine and not dragged on the ground since we had seen friction problems when multiple balls were being pushed. We also wanted to elevate the balls so that we could drop them out of our machine at a height that would enable them to fall over any opponent fences. We started to think of how we could create an elevator to lift the balls. We couldn't think of an effective way to create a vertical elevator with the legos and motors that we had. We then thought of a ramp that rotated about one end. This way, if we could push a ball onto the ramp, we could lift the ramp and have the ball roll to a holding area in our machine. We figured that if made the holding area inclined in the back and had it two inches above the ground, we could use a trap door to release the balls out the back. The next problem was coming up with a way to push the ball onto the ramp. Our first idea was to use arms on the sides to pull the ball in (in sort of a hugging motion). But we couldn't figure a way to do it with the one motor we had left. We then came up with the idea of having a spinning roller that would sweep over the top of the balls and pull them onto the ramp. We actually put the spinning tires slightly off of the axis of rotation so that they would hit the balls instead of just spinning over them. We weren't able to really test the spinner and the ramp together until it was quite late, but luckily they worked well.

   
Pictures coming soon!!
Soon to be developed and posted!

In the final design, the eccentric rotating tires pulled a ball into the machine and onto the ramp. The ball would trigger a button sensor on the ramp which would cause the ramp to lift up and move the ball back into the holding area. The ramp would go back down and could lift one more ball. When the second ball was lifted the ramp stayed up to hold it there. We didn't plan on it, but the machine could actually fit one more ball under the ramp. But under usual circumstances, the machine would collect one or two balls, then return to our side of the table and lift the rear door to release the balls.

 

Strategy

STAGE 1

1. Orient. Orientation was done using four phototransistor/LED arrays. These arrays allowed us to read the color -- then the code figured out which way to turn. The 90 degree and 180 degree turns had to be calibrated to the T for step 2 to work flawlessly. For our 180's we actually had to get out of that little 18 x 18 area -- otherwise Kirpal would just get stuck on the center block.

2. Go Straight until you hit the far wall. In the process Kirpal should hit the ball and suck it in. Then the ramp-button will be depressed causing Kirpal to "eat" the ball by lifting his ramp and setting the ball down into a resting area in the back. If the sucker happened to stall on the ball, running into the wall ensured the ball got in almot 95% of the time. After Kirpal detected the wall using his two front bump sensors, he proceeded to step 3.

3. Wall follow backward until the color on the board changes and then still go for about a second. Back wall-following was done using the side-back-left sensor and the side-front left sensor. Surprisingly (well actually not that surprisingly -- we worked a good DAY on wall-following) Kirpal wall-followed very well. Once he got to the position he was supposed to be in he opened up his back gate and dropped out his ball. Or as some fondly called it "crapped it out."

STAGE 2

After we got out first ball Kirpal proceeded to try to get as many more as he could. The second part of our routine worked as follows:

1. After "crapping out" the first ball, Kirpla reset his ball count to zero and penetrated into enemy territory again by forward wall-following until he got deep into the opposite side. Then he executed his "straighten against wall" code, which actually veered him of the wall a bit. After straightening himself against the wall, Kirpal executed a 90 degree rotation about the back left wheel and then straightened his back against the wall.

2. Kirpal the progressed to go straight along the line. We tried to to a line-following algorithm, but trashed that idea when Kirpal started going straight of it's own accord. That was the story of Kirpal. We tested him for straightness -- he sucked. So then for two days we wrote code to go straight using shaft-encoder, we got sensors and hooked them up to line-follow and then once we had all that stuff done and went to test it -- Kirpal went perfectly straight. These were the times that i wished to kick Kirpal (and not his dog).

3. While going straight Kirpal progressed to pick up whatever balls were in his path. We intially designed Kirpal to pick up two balls, but we found that he could actually handle three. Two on the ramp assembly and one underneath, kept in place by Kirpal's intense sucking power.

Upon reaching the far side Kirpal backed up a little and executed a 180 degree turn, backed up against the wall to straighten himself and then found his way back along the line.

4. Once Kirpal reached the near side he backed up a little again and di a 90 degree left turn. He then proceeded to back wall-follow his way all the way back to his own side.

5. And just sit on the line holding however many balls he had. Good ol' Kirpal.

We tested Kirpal's routine to NO END. The last three days we must've run this thing at least 200 times on the table. We had an impressive amount of safety code in there, just in case strange things happened -- which ALWAYS did. There were some things we wanted to put in there, but just didn't have time to test it so we left it out. All in all the strategy worked out really well -- as the next section can attest to.

 

Results

Our machine did remarkably well (much better than we first expected). We were undefeated for about 7 rounds. Our machine worked almost flawlessly every round. We consistently brought back two or more balls to our side. In one round we actually had a 7-0 shutout of our opponent (they helped us by accidentally pushing a couple of balls to our side). Even in cases where the opponent's machine was in our way, our timeouts and other error correcting code usually worked out.

In the seventh or eighth round we faced the Desi G Ride. This was a machine that placed a ramp on the center block and had a little car that came to our side to block. We probably had a very good chance of beating it, but after bringing one ball back, our machine stopped moving and jerked around spastically. We thought that it was a problem with our timeout code and a ball activating one of our rear sensors. But right before the next round Manu noticed that one of the gears in the drive train had slipped. So one of our wheels hadn't been able to move.

   
Pictures coming soon!
Soon to be posted!

We fixed it and won our next round. When there were only five teams left we had to face Maximus (the second place winner). Their machine went through its strategy of hitting the center ball, collecting one of our balls, and coming back to block. Our machine got their first ball without any problem. When it went back for a second ball, it was able to pick up a ball that Maximus had accidentally pushed. If our machine had immediately reversed back to our side, we would have won the match. But our machine tried to go through its normal path and got messed up since Maximus was in the way. Kirpal got lost and couldn't find its way back. It was a contingency we had thought of, but hadn't fixed in the code. The Desi G Ride also lost in this round, so we ended up tied for fourth place. With better luck, maybe we could have gotten up to second place. But we were very happy with our results and proud of our little autorickshaw.

Best of all, we became one of the crowd favorites. The crowd appreciated our mechanical design (the kids probably liked all of the moving parts) and the name of our machine. There had to have been more people yelling about kicked dogs and Kirpal than anything else. It was well worth the last week of working 30 hours, sleeping 10 and repeating the process six times.