CS-424, Spring, 2009
Final Competition: RoboSoccerBU

RoboSoccerBU is a game for two robots. Each team will use and program an "Open 
Robot" which will compete against every other team's Open Robot. The point of the 
game is to score as many points as possible. The robot with the highest score at 
the end of the game wins that game. During game play one robot is on "offense" 
and the other is on "defense". Only the offensive robot can score by moving into 
a "goal" area at the far end of the playing field. The other robot is on "defense" 
and tries to prevent the offensive robot from scoring by bumping into it. If that 
happens, the robots change roles, with the offensive robot going on defense and 
the defensive robot going on offense. (The referees determine if and when a bump
has occurrred.)

Determining defensive and offensive robots (Pre-game):

The end of the playing field opposite to the goal end is divided into two equal-
sized rectangular areas of a given size: the "Pre-game Find" areas. At the start 
of each new game and also after a point is scored by either robot, each robot is 
placed at one corner of one of the two rectangular areas. A specially programmed 
RFID tag representing the soccer ball is placed at a random position in each 
rectangular area by the referee. The robots are started simultaneously and the 
one that finds its "ball" first becomes the offensive player; the other robot 
becomes the defensive player. After the offensive and defensive robots are 
determined, they will be placed on the playing field (as shown in the diagram of 
the playing field shown below), started, and begin their offensive scoring 
strategy or defensive strategy.

A Game: 

A game will continue until a total of 3 minutes have elapsed. After a point is 
scored by the offensive robot, the robots will be returned to the "Pre-game Find" 
area to once again determine which will be on offense and which on defense for the 
next round of the game. The winner of a game will be the robot that has accumulated 
the most points after the 3 minutes.

The Playing Field:

The playing field is divided into two parts: the actual field of play and the 
smaller "Pre-game Find" area in which the robots determine which will be on defense 
and which is on offense for the next round. (See the following diagram.) At the end 
of the actual field of play is the goal containing several RFID tags. The offensive 
robot can determine if it is in the goal area by detecting and reading the RFID tags. 
Immediately behind the goal there will be a strong source of white light that can 
be "seen" from anywhere on the field. The robot light sensors will be able to detect 
light from the light source.


The Offensive Robot:

The offensive robot is responsible for finding the goal and moving into it. It 
scores a goal any time it enters the goal area. Then it has 5 seconds to stop 
movement inside the goal. If it does not stop within 5 seconds, the team does 
not get a point and possession changes.

The offensive robot should try to avoid being tagged by the defensive robot.
It should also avoid running into the walls of the playing field.

The Defensive Robot:

The responsibility of the defensive robot is to prevent the offensive robot from 
scoring by bumping into it. If and when that happens the offensive and defensive 
robots will change roles.

The defensive robot is not permitted to enter and stay more than five seconds 
in the goal area. If it does so, it will be penalized by having one point deducted 
from its score.

Stopping a game:

At any time any of the referees (professor, TA, robot designer) may determine that 
a game must be stopped. 

Determining the winning team:

Each robot will play at least one game against every other robot. For each robot 
we will tabulate total number of goals scored by that robot and the number of games 
it won. The winner of a single game will be the robot that has scored the greatest 
number of goals for that game. In the case of a tie there will be no winner of that 
game. The final winner will be determined by a combination of most wins and most 
goals scored during all of the games of the competition. In other words, each will 
team be rated 6,5,4,3,2,1 in number of game victories and 6,5,4,3,2,1 based on total 
number of goals accumulated in all games. Those two numbers for each team will be 
added and the team that has the highest sum is the winner.


In order to receive a satisfactory grade in the competition, your robot must 
demonstrate that it:

1. can find a light source and move in its general direction

2. can stop when it detects an RFID tag

3. has a strategy for finding the "ball" RFID tag (VERY IMPORTANT)

4. has an offensive strategy

5. has a defensive strategy

6. can recognize and stop when it has entered the goal

7. can avoid the walls of the playing field

8. can seek/avoid the other robot when on defense/offense

Each team must submit a paper describing in detail the programs used to control its 
robot as well as the strategies used for each of the 8 points given above. The paper 
must be submitted by the Friday after the competition at noon. Diagrams (and/or 
especially photographs) as well as source code listings are an essential part of the 
paper. Each member of each team must also submit a numerical peer evaluation of each 
other team member indicating how he/she thinks the other members of the team have 
contributed to the overall effort and success of the team. The following is how the 
project grade will be determined:

The paper................................................................. 30%
Performance during the competition (professor/TA evaluation 
of how well the robot performed the eight requirements)................... 25%
Final score in the competition.............................................20%
Team member peer evaluations...............................................25%