The robot was tasked with successfully carrying as many "sheep" (small balls) from the loading zone to the scoring zone. 5 balls at a time could be placed on the ground in the loading zone, with 1 point for each sheep in the lower area and 3 points for each sheep in the upper scoring basket. There were also mega sheep (large balls) on the field, which may be scored in the lower scoring area (10 points) or the upper basket (20 points). The field includes lines to facilitate line-following as well as a low wall and 4" obstacle holes.
Our strategy was to create a robot that could consistently score loads of 5 small balls in the upper basket. We focused on creating a robust intake and scoring mechanism. We selected line-following and ultrasonic sensing as our navigation methods. However as we tested on the real playing field, we found that using the walls to navigate and realign our robot was a more achievable strategy than ultrasonic sensing.
Subsystems
2 driven wheels (Pololu motors) are located at the front of the robot, while passive casters at the back of the robot allow for smooth motion. Differences in wheel speed lead to turning. Bearings and wheel mounts support the wheels.
While loading, an intake motor rotates gears, rotating the cylindrical roller. A belt over both rollers causes both to rotate, pulling any nearby balls into the compartment. At the scoring zone, the motor runs in the opposite direction, spitting balls out.
Once the robot reaches the scoring zone, the motor rotates the counterweighted arm so that the ball compartment sits over the scoring basket. Limit switches at both positions allow the robot to know when the loading and unloading positions have been hit.
Three sensors allowed for line-sensing to navigate. Ultrasonic sensors on either side and on the front allowed for wall sensing if desired, although unreliable on the field. The robot also used a strategy of running into walls to physically realign itself.
General Logic
The robot transitioned from state to state in order to intake, navigate, score, and return. At the loading zone, the robot performed a sequence of actions to intake up to 5 balls. Then, the robot navigated toward the loading zone by reversing along the line, rotating toward the wall, moving toward the wall, and then finally moving forward until the robot reached the scoring zone. At the scoring zone, the robot performed a series of actions to score up to five goals in the top basket. To return to the scoring zone, the robot navigated towards the line and then used line following to reach the loading zone.
At the start of the game, a timer was set to stop the robot at the end of 2 minutes and 10 seconds. To transition between states, we took advantage of the encoder counts, which indicated how far our robot had traveled.
Full Run
See More