Rescue Agents
From RoboCup
Contents |
Introduction
The Rescue Agents part of RoboCup Rescue (also known as the Agent Simulation Competition) is a simulated disaster scenario. A model of an earthquake in an urban centre is simulated and teams compete to produce efficient response policies for the simulated emergency services. The earthquake model covers building collapse, roads blocked by rubble and other debris, traffic movement, fire, and injuries to civilians and emergency services workers.
The Rescue Agents league has two main goals:
- Development of efficient response policies for emergency services given a set of simulators. This is the main competition aspect.
- Development of new simulators, scenarios and research problems. This is the "infrastructure" aspect of the competition.
The simulated world
The rescue agents league simulates an earthquake in an urban centre. The entities and their features that are simulated are:
- Buildings
- Fire
- Collapse
- Refuges are special buildings that will heal injured civilians and can refill fire brigades
- Roads
- Traffic movement
- Blocked roads due to rubble etc
- Emergency services
- Fire brigades
- Ambulance teams
- Police forces
See the Version 1 page for details of these entities.
Simulator Development and Documentation
Development and maintenance of new and existing simulators is strongly encouraged. SourceForge.net provides a number of tools for aiding software development, including a git repository and tools for reporting bugs, feature requests and submitting patches.
See Simulator Development for more information about filing bug reports and development.
We are currently working towards Version 1 of the rescue kernel. If you would like to help then please subscribe to the Robocup Rescue Simulation League developers mailing list and send an email describing your skills and what you would like to work on. Alternatively, you could just download the code and start hacking away and submit a patch when you're finished.
Developers can check out the latest source code with git: git clone git://roborescue.git.sourceforge.net/gitroot/roborescue
Agent Competition
The goal of the agent competition is to implement control policies for emergency services such that the maximum number of lives are saved and fires extinguished. Emergency services are split into platoon agents and centre agents that represent mobile emergency services (e.g. fire trucks) and their corresponding control centres (e.g. fire stations).
A quick overview follows; for more information see Agent Simulation Competition.
Score function
There are currently two score functions in use. The legacy score function measures the number of civilians and agents still alive and the proportion of buildings that are burnt. The score is:
<math>score = (A + \frac{H}{H_{initial}}) \times \sqrt{\frac{B}{B_{total}}}</math>
The new score function is the score vector. This was introduced in the 2009 competition and measures a greater range of variables, including distance travelled and the efficiency of the team. See the Score Vector page for more details.
Simulators
The agent competition uses a defined set of simulators.
- Fire: The fire simulator determines how fires spread and the effect of pouring water onto the fires.
- Traffic: The traffic simulator handles all movement commands, including loading/unloading of civilians into ambulances.
- Collapse: Simulates building collapse after the earthquake.
- Blockades: Determines the degree to which roads are initially blocked.
- Misc: Calculates civilian damage, buriedness and road clearing times.
Agents
There are three types of platoon agent and three types of centre agent in the competition.
Fire
- Platoon agents: fire brigades
- Centre agents: fire stations
The fire agents are responsible for extinguishing fires. Fire brigades can pour water onto fires at a limited rate, and they have a limited supply of water which can only be replenished at refuges. Fire brigades cannot pass blocked roads.
Ambulance
- Platoon agents: ambulance teams
- Centre agents: ambulance centres
Ambulance teams can rescue civilians that are trapped in collapsed buildings and transport them to refuges. Ambulances can only carry one civilian at a time but can work together to rescue a single civilian.
Police
- Platoon agents: police forces
- Centre agents: police offices
Police are responsible for clearing blocked roads. They can clear roads at a fixed rate and multiple police forces on a single road does not result in faster clearing of the road.
Infrastructure competition
This part of the competition is intended to promote development of the simulator. Teams present their contribution at the Robocup conference and an award is given by popular vote. Entrants are strongly encouraged to contribute their code to the development effort regardless of whether they win the infrastructure competition or not.
Getting Started
This is a quick step-by-step guide to installing the software.
1. Ensure you have the following tools to compile the software:
- Linux (there is no support for Windows at present)
- GCC 4.0
- Sun JDK 1.5
- Gnu Make
2. Download the latest version from sourceforge.
3. Unpack the software and you will get the following directory structure:
- rescue-<version>
- boot
- doc
- maps
- Kobe
- Foligno
- ...
- programs
- kernel
- librescue
- gis
- ...
4. Enter the "programs" directory and run "make" to compile all the components.
If you have any problems with installation then please consult the installation FAQ before contacting the package maintainers.
Running your agents
To run a simulation enter the "boot" directory and run the "all.sh" script. This will run the Kobe map by default, or you can specify the map to use by running "all.sh <mapname>". The directory "mapname" must exist in the "maps" directory. This will start up the kernel and all the simulators.
You can now start your agents.
See the FAQ for queries about running your agents.
See DevelopingAgents for more information about developing Robocup Rescue agents.
Description of the directories
boot is a collection of shell scripts used for running the simulation. For example, "all.sh" begins the simulation, using the Kobe map by default. "all.sh Foligno" begins it with another map.
doc contains some useful documentation.
maps contains various maps which may be used by the simulator. Each directory describes one map/scenario.
- blockades.lst - a list of road blockades
- road.bin/node.bin/building.bin - these three files describe the roads, road network and buildings in the map respectively.
- galpolydata.dat, shindopolydata.dat - these describe the earthquake parameters.
- gisini.txt - locations of civilians, fires, refuges and agents. This can be changed to generate a new scenario for the map.
Finally, programs contains all the simulator components.
- blockade - the road blockade simulator
- civilian - the civilian simulator
- collapsesimulator - building collapse simulator
- firesimulator - the fire simulator
- gis - GIS tool for reading the various map files
- kernel - the core of the simulator
- miscsimulator - miscellaneous simulator
- traffic - traffic simulator
- viewer - viewer component
- rescuecore/librescue - Java and C++ libraries for developing agents/simulators/viewers
Constitution
See the Constitution page for details of the simulation league constitution.

