... | ... | @@ -112,6 +112,8 @@ UMANS will treat each boundary segment of each obstacle separately. It is techni |
|
|
|
|
|
The `Agents` element has 0 or more **child elements** named `Agent`.
|
|
|
|
|
|
**Warning:** If any of the specified `Agent` elements cannot be loaded, the simulation will show an error and it will not start.
|
|
|
|
|
|
### 'Agent' element
|
|
|
|
|
|
An `Agent` element describes a single agent in the simulation. It has the following **attributes**:
|
... | ... | @@ -140,4 +142,36 @@ An `Agent` element has the following **child elements**: |
|
|
|
|
|
# 'Policies' element
|
|
|
|
|
|
This section will be filled in soon. |
|
|
The `Policies` element has 0 or more **child elements** named `Policies`.
|
|
|
|
|
|
**Warning:** If any of the specified `Policy` elements cannot be loaded, the simulation will show an error and it will not start.
|
|
|
|
|
|
A `Policy` element describes a single navigation policy that agents in the simulation can use.
|
|
|
|
|
|
If you do not wish to write your own policies, you can use the pre-made example policy files in our repository. Each example policy replicates a specific collision-avoidance algorithm from literature.
|
|
|
|
|
|
However, if you want to make your own policies (or make changes to the existing ones), we encourage you to first read the scientific publication that describes the principles of UMANS:
|
|
|
|
|
|
> Wouter van Toll, Fabien Grzeskowiak, Axel López, Javad Amirian, Florian Berton,
|
|
|
> Julien Bruneau, Beatriz Cabrero Daniel, Alberto Jovane, Julien Pettré.
|
|
|
>
|
|
|
> [*"Generalized Microscopic Crowd Simulation using Costs in Velocity Space"*](https://project.inria.fr/crowdscience/generalized-microscopic-crowd-simulation-using-costs-in-velocity-space-i3d-2020/).
|
|
|
>
|
|
|
> In ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, 2020.
|
|
|
|
|
|
The remainder of this section assumes that you have read this paper.
|
|
|
|
|
|
### 'Policy' element
|
|
|
|
|
|
In line with the I3D 2020 publication, a policy has two main ingredients:
|
|
|
- one or more *cost functions* that assign a cost to the possible velocities that an agent can use,
|
|
|
- an *optimization method* that describes how to use these cost functions in the simulation.
|
|
|
|
|
|
In XML, cost functions are specified as child elements, and the optimization method is specified via attributes.
|
|
|
|
|
|
A `Policy` element has the following attributes:
|
|
|
|
|
|
| Attribute name | Mandatory? | Type, constraints | Description | Default value |
|
|
|
| ------ | ------ | ------ | ------ | ------ |
|
|
|
| `id` | Yes | integer, >= 0 | A unique ID for this policy. | *none* |
|
|
|
| `OptimizationMethod` | Yes | enum (`gradient`,`sampling`,`global`) | The optimization method that this policy should use. `gradient` means that the agent will follow the gradient of its cost functions. `sampling` means that the agent will sample several candidate velocities and choose the one with the lowest cost. `global` means that the agent will compute a velocity that has the lowest cost overall. (This last option defaults to sampling whenever the true global optimum is not specified.) | *none* | |
|
|
\ No newline at end of file |