Team Members: Keith Battocchi, Andrew Gregg, Taku Iida
Two Bumper Sensors on the arms
Two Bumper Sensors on the front sides of the robot
One sensor inside the robot for activating the ball-catching mechanism
One sensor for turning off the lifting mechanism
Four distance sensors, two on each side
Two phototransistors to determine the side that the robot is on
Two phototransistors on the arms (one each on each arm) to determine the color of the ball
Two shaft encoders, one on each of the two wheels.
Two motors to lift the ball
Four motors to move the robot, two on each side
One servo for rotating the arms
One servo for helping the robot rotate smoothly and accurately
One servo for rotating the four small arms of the ball-catching mechanism
1. Using the two phototransistors on the bottom of the robot, we determine which side of the board we are on. With this information, we also determine the color of our balls.
2. The robot makes its way towards using shaft encoding. After a given number of rotations, the robot slows down.
3. Now using the distance sensors, the robot position itself a given distance away from the wall.
4. The robot keeps on moving slowly until at least one of the two front balls touches one of the two sensors on the arms. Once one of the ball touches one of the balls, the robot very slowly rotates itself towards the other ball.
5. Once both of the sensors are touched, two phototransistors determine the color of the two front balls.
6. If the front ball that is closer to the center of the board is our color, the robot will try to retrieve that ball. Otherwise, if the front ball that is closer to the wall is our color, the robot will try to retrieve that ball. If neither of the front two balls is our color, the robot will try to retrieve that the back ball that is closer to the center.
7. Once, the robot determines which ball to go for in step 6, it uses shaft encoding to slowly make its way toward the ball.
8. During the retrieval, if the sensors on the arms are touched, then it closes its arm slightly to increase the chance of the ball going into the robot.
9. Once the ball touches the sensor inside the robot, the lifting mechanism is activated. The lifting mechanism closes the four short arms using a servo to catch the ball, then lifts the ball using two motors until the it lifts the ball high enough to turn on the switch, at which point, the lifting is stopped.
10. The robot now makes its way toward the middle plateau using the wall following method, which uses the distance sensors on the sides.
We first tried line following but after facing many problems trying the method, we decided to use the wall-following method instead by using four distance sensors, two each on both sides. Although the wall-following method was somewhat successful, we tried to speed up the robot by implementing shaft encoding. In the end, we implemented both wall following and shaft encoding.
We also tried to put the ball in the cup, but gave up that idea as we ran out of time and realized how hard it would be let the robot figure out where it is after it retrieves the ball.
It took us a long time to perfect the retrieving of the ball. The robot generally positioned itself well enough to determine which ball it should be retrieving, but with three other balls being around, it took us a while to figure out a way to accurately make the robot rotate and move itself towards the right ball.