... | ... | @@ -30,6 +30,8 @@ Overall, an XML input file for UMANS has the following structure: |
|
|
- The `Agents` element lists all agents that (will) appear in the simulation.
|
|
|
- The `Policies` element lists all so-called navigation policies that agents can use. Each agent uses one of the policies from this list. A policy defines most of the agent's behavior, so this is the key component of UMANS.
|
|
|
|
|
|
More information about each element can be found further on this page.
|
|
|
|
|
|
### Using separate sub-files
|
|
|
|
|
|
For the `World`, `Agents`, and `Policies` elements, you are allowed (but not obliged) to create *separate XML files* containing their details. This way, the overall XML file remains compact, and you can easily re-use environments / agent layouts / navigation behavior without having to copy and paste them.
|
... | ... | @@ -53,11 +55,37 @@ Most of the examples in our [*examples*](https://gitlab.inria.fr/OCSR/UMANS/-/tr |
|
|
|
|
|
# 'Simulation' block
|
|
|
|
|
|
This section will be filled in soon.
|
|
|
The `Simulation` block has the following **attributes**:
|
|
|
|
|
|
| Attribute name | Mandatory? | Type, constraints | Description | Default value |
|
|
|
| ------ | ------ | ------ | ------ | ------ |
|
|
|
| `delta_time` | Yes | float, >0 | The length of a simulation time step, in seconds. | *none* |
|
|
|
| `end_time` | Yes (Console application) / No (GUI, Dynamic library) | float, >0 | The time (in seconds) after which the simulation should automatically stop. Only used in the console application. | *none* |
|
|
|
|
|
|
The `Simulation` block has the following **child elements**:
|
|
|
|
|
|
| Element name | Number of occurrences | Description |
|
|
|
| ------ | ------ | ------ |
|
|
|
| `World` | 1 | See below |
|
|
|
| `Agents` | 1 | See below |
|
|
|
| `Policies` | 1 | See below |
|
|
|
|
|
|
# 'World' block
|
|
|
|
|
|
This section will be filled in soon.
|
|
|
The `World` element has the following **attributes**:
|
|
|
|
|
|
| Attribute name | Mandatory? | Type, constraints | Description | Default value |
|
|
|
| ------ | ------ | ------ | ------ | ------ |
|
|
|
| `type` | No | enum (`Infinite`, `Toric`) | The type of world in which the simulation takes place. An `Infinite` world is an unbounded plane. A `Toric` world has a finite width and height, and it has a Pacman-like 'wrap-around' effect where agents can leave the environment on one side and re-appear on the other. | `Infinite` |
|
|
|
| `width` | Yes (if `type="Toric"`) / No (otherwise) | float, >0 | The width of the world, in meters. Only used for toric worlds. The x-coordinates of the world will then range from -`width`/2 to `width`/2. | *none* |
|
|
|
| `height` | Yes (if `type="Toric"`) / No (otherwise) | float, >0 | The height of the world, in meters. Only used for toric worlds. The y-coordinates of the world will then range from -`height`/2 to `height`/2. | *none* |
|
|
|
|
|
|
The `World` element has one optional **child element** named `Obstacles`.
|
|
|
|
|
|
The `Obstacles` element has 0 or more **child elements** named `Obstacle`.
|
|
|
|
|
|
An `Obstacle` element describes a single obstacle in the environment.
|
|
|
|
|
|
|
|
|
# 'Agents' block
|
|
|
|
... | ... | |