Multi-Agent Lab

Fall 2008

Purpose:

The purpose of this lab is as follows:

Pass off:

For this lab, you will be the green team, and you will control five agents. One of these agents will start out frozen in enemy territory. Your mission is to send one of your agents to thaw your teammate (by tagging it), while your other agents protect your flag and retrieve the TA’s flag. You must also tag at least one of the TA agents.

The TA team also has five agents. Two TA agents will attempt to steal your flag, two will guard the TA flag, and the other will wander aimlessly.
In bulleted form, to passoff you must:

IMPORTANT: Use the lab1_world map. Run your agent using the green team script, and the TA agents using the red team script.

Details:

If an agent is tagged while carrying a flag, the flag is sent back to the base.

In addition, obstacle information will only be available through the noisy occupancy grid, and the sensor readings from the BZFlag server contain noisy data with standard deviation of 5. These include flag positions and agent positions (excluding your own agents).

You are not allowed to "puppy-guard" your base, i.e. you cannot come within 50 units of it unless you are carrying your opponent's flag or they are carring yours.  (To get the base information, send command "bases" to BZRC server. If you are using Python or C++, just add the method to your BZRC class. Or you can just remember your flag's starting position and not worry about it.)

Internal States:

For this lab, you will need to keep track of the state that an agent is in.  You are free to define whatever states you want, and whatever rules you want for transitioning from one state to another.  Your list of states might look something like this: 

Of course there can be other states, as well as sub-states.  For example, in State 3, it might be important to store the callsign of the opponent you are attempting to freeze, so your agent doesn’t keep switching between two opponents, and freeze neither one of them.  Within each state, your code should implement the appropriate behaviors for each agent, probably coded as potential fields.  For example, in State 4, you probably want to have an attractive field around the opponents flag, and a repulsive field around enemy agents and obstacles.

Files to download: