We thought about various strategies for a little while, and decided to try to make a robot that gets a ball and dumps it into the cup. As became clearer in the end, making a wall across would probably have been more effective, but we thought it was more interesting and in the spirit of things to try to instead make a robot that actually steers and navigates. Once we decided to do that, we thought it was clear that we should go for the cup, since getting the ball in almost guarantees victory. The last part turned out to be a little challenging.
Since we needed to get the ball above the 2-inch cup walls, we figured we need to keep the ball somewhere inside the robot, elevated at about two inches. To get the ball inside, we had an arm that was free to rotate up and down, with rubber bands pulling it down, that had large, slowly rotating wheels powered by a motor. On the same gear train, closer to the inside of the robot, we had faster rotating off-center pully wheels. The large wheels would get the ball up, against the front of the robot, and the pulley wheels would hit the ball inside the robot. This was pretty solid, and one of the more effective devices of the sort we had seen--there was considerable leeway as to where the ball could be located and still get picked up. To deposit the ball, we had a servo-powered arm inside the cavity in the robot that rotated upwards and forced the ball to roll through the back. This was not too effective; it often missed.
Our robot was, if unimpeded, able to get a ball in the cup consistently. In the last day, we changed the logic somehow so that it wouldn't always get the right-color ball, and we were unable to find the error. We weren't ready for the first round and lost, then qualified later. A second loss in the first game of the second round put us away. We played against a wall-building robot, so our bot was stuck against the wall on the way back to the cup. The funny thing is that it got one of their balls, and scored a point for the other team. If the wall weren't their, it would have deposited that ball into the cup, scoring four points for the other team. Overall, we feel that we could have done better, but we were proud to have made a functional robot.
Movement and Navigation
The robot was powered by two differential big wheels, each at the end of a 45:1 gear train powered by two motors each. We didn't have time to investigate if the two motors helped; since would could have a maximum of six we just decided to put them in. The steering was done by a servo-powered wheel in the back.
After color sensors determined which side we were on, all of navigation was done with bump sensors, aided by calibrated movements with shaft encoders. We had two rolling sensors on each side to wall-follow backward and forward. We also had 4 touch sensors in the back that would allow us to line up the back of the robot against the wall and eventuall against the cup.
After the strategy was decided, the first big question was what kind of drive to make and how to steer. Synchro and steering drives did not seem to be worth the mechanical construction difficulty, so we went with differential. Next was a question of how to steer. At first we would just have a skid plate, and steer by varying the speeds of the wheels, but we decided to have a servo-powered navigational wheel. This wheel added some mechanical complexity, but it made turning a lot more fine-tuned and made it easier to go straight.
Next was a question of navigation. We first wanted to line-follow or distance-sensor wall follow. We could not get either one to work reliably, and wall following worked very well. We were first going to calibrate turns by time, or make the robot stop turning when some color scheme was reached, but neither was reliable. Shaft encoders worked much better for calibration.
Although we did not do spectacularly well, we could still offer a bit of help to the up and coming 6.270ers:
Front of the robot. The two bif wheels push the ball against the two smaller yellow wheels at the bottom(which are firmly stationary) and eventually raise it. The two pulley wheels, higher on the gear train and rotating faster, kick the ball into the cavity.
Front side. Note the monster gear train that drives the wheels at the top of the arm, which is free to rotate up and down around the hinge.
Top of the robot. The switch on the arm (white switch on the left side) lets us know when the arm is raised. Another switch, inside the cavity, lets us know when the ball is inside. The handyboard had to be put high so that the ball can fit underneath. Two of the batteries are seen in the rear left, the last one is in a similar position on the right.
View of the cavity, from back to front. servo we see sticking out controls the navigation wheel. A servo at the right (see attached to the gear at the right) raises the lever that rolls the ball backwards. Otherwise, the profile of the wall is made so that the ball rests against the servo.
Thanks to the TA's and the organizers for the ridiculous hours they put in.