while (1) butt.kick();
Introduction Design
Process
Mechanical
Hardware
Electrical
Hardware
Software Gems of
Wisdom
Pictures/
Video
Links

Design Process

Our strategy was to construct a fast and reliable robot that would complete the game as quickly as possible while scoring the maximum number of points possible. This design objective necessitated a number of robot features.

Points

In order to maximize number of points (and because not all 20 balls could fit in goal 3), as many balls as possible needed to be dumped in goal 3 and the rest into goal 2. For this reason, our robot incorporated a ball sorter that could separate balls into a hopper that dropped balls into goal 3 and a shooter that fired balls into goal 2. However, it was important to make sure that all black balls are deposited into goal 3. To do this, a ball sensor was designed which could indicate whether a yellow or black ball was on the sorter.

Speed

In order to complete the game as quickly as possible, robust beacon detection and beacon following were developed. It was observed that beacon following allowed for shorter travel distances than tape following which was more roundabout. Two sets of stereo IR detectors were designed, so that the robot was capable of driving towards a beacon using bang-bang control. In addition, four tape sensors were included, in order to follow tape when it was needed, and also to detect tape in order to determine position on the game field. Tape following was implemented using bang-bang control.

Reliability

It was observed that battery voltage had a large effect on the performance of the drive motors. In order to remove the effect of battery voltage, an encoder was installed on the robot wheels using a modified coin sensor. Robot drive speed was maintained using PID control, thereby removing the effect of battery voltage. PID control also allowed the robot to detect when it hit a wall and could not move (or had difficulty moving) by returning the requested duty cycle of the motors. A high duty cycle (>90%) indicated that a wall or some other obstruction had been hit. In addition, the robot also had the capability to "push through" obstructions by increasing motor duty cycle.

A list of the robot features and game completion strategy follows. More detailed explanations of components and code can be found in the mechanical, electrical, and software design pages.

Robot features

Sensors:

IR: Our robot has two pair of “eyes” (IR detectors) one at the front and one at the shooter. Stereo pairs of IR detectors help the robot not only find a beacon but can also line up perfectly to that beacon (and follow it).

Encoder: 2 encoders are mounted on the wheels (the resolution is 180 / revolution). This is a key feature as it provides feedback information on speed and allows us to design a very reliable PID speed control. Our robot performs the same way despite the fluctuation of battery!

Ball Sensor: The robot can sense the color of the balls and sort them accordingly.

More sensors: 4 tape sensors to detect black, greed and red tape, button to detect ball dispenser, and of course, a flash detector for the start.

Actuators:

Our robot use 2 Maxon motors for the wheels, one DC motor for the ball sorter, two door-lock motors for the hopper and the shooter.

Control Strategies

Two main strategies are: bang-bang control for tape following and beacon following, PID control for speed controlling.

Game chronology

The Robot does subsequently the following tasks during the game:
  1. Wait for the flash to start
  2. Try to get out of the starting corner: the ‘bot compares its effort (PWM duty cycle) to the resulting speed to know if it is hitting a wall and react accordingly.
  3. Turn around to find beacon 50 (ball dispenser). Depending on the relative position of beacon 50 and its nearest neighbor (90 of the opponent field), figure out the playing side.
  4. Move toward ball dispenser, acquire the second tape, follow tape to dispenser
  5. Take 5 ball, wait 10 seconds (this is the best solution as it takes more then 10 seconds to drive to goal 3, dump balls and get back) then take another 5 balls
  6. Back up, find beacon 90 (goal 3) follow it until the goal, drop the first 10 balls. (the first run the robot doesn’t sort balls)
  7. Turn toward ball dispenser, take 5 balls, wait, and take the other 10 balls. This time the balls are sorted.
  8. Go to goal 3, dump black balls and yellow ball if necessary to have a total of 16 balls in goal 3.
  9. Find goal 2, follow that beacon, shoots 4 balls into it.
  10. Game ends.