24.09., 9:00 - 11:00: Due to updates GitLab will be unavailable for some minutes between 09:00 and 11:00.

CHANGELOG.md 12.9 KB
Newer Older
1 2
# Changelog: Vadere

3 4
**Note:** Before writing into this file, read the guidelines in [Writing Changelog Entries.md](Documentation/contributing/Writing Changelog Entries.md).

5 6 7 8
## In Progress:

### Added

9 10 11 12
- Added new scenario element `TargetChanger`. This scenario element has an arbitrary shape and changes the target of an agent. Either to another static target or to another agent (to get a follower behavior). A `TargetChanger` has two important parameters:
  * `changeTargetProbability`: This defines how many percent of the agents, who enter the area, should change their target.
  * `nextTargetIsPedestrian`: If `nextTargetIsPedestrian == false`, assign a new static target. Otherwise, randomly choose a pedestrian (with given target id) to follow.

Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
13
### Changed
14

Marion Goedel's avatar
Marion Goedel committed
15 16
- `FootStepProcessor` interpolates the pedestrian's foot step to obtain a more precise position.  
Was previously known as `PedestrianFootStepProcessor`
17 18 19 20 21
- Use following shortcuts for zooming and scrolling in the topography creator:
  * Ctrl + Mouse Wheel Scroll: Zoom in/out.
  * Mouse Wheel Scroll: Scroll vertically.
  * Shift + Mouse Wheel Scroll: Scroll horizontally.
  * Use Alt key to decrease the step size while scrolling.
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
22

23 24 25 26 27 28
# v1.4 (2019-09-05)

### Changed 

- Renamed "footStepsToStore" to "footstepHistorySize" in all scenario files.

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
## v1.3 (2019-07-31)

### Added 

- new `referenceCoordinateSystem` attributes in the topography element (default: `null`). This 
  object holds information about the base coordinate system and an optional translation used 
  on the coordinates in the topography. If the description field is a free text field which 
  can be used for miscellaneous information. (see osm2vadere converter)
```
"referenceCoordinateSystem" : {
      "epsgCode" : "UTM Zone 32U",
      "description" : "OpenStreetMap export osm2vadere.py-ed63d4e94898a15a6bf25fa59c05a5b2f73d8f74-dirty",
      "translation" : {
        "x" : 692152.0894735109,
        "y" : 5337384.6661008
      }
    }
```

### Changed 

- osm2vadere.py refactored. 
  - Extract osm-xml manipulation into `osm_helper.py`
  - Changes command line structure
- osm_helper.py: cl-based manipulation of osm xml to add additional information into the xml 
  structure readable by osm2vadere.py converter.

Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
56 57 58 59
## v1.2 (2019-07-13)

### Added

Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
- VadereServer:
  - Introducing TraCI server implementation for Vadere to allow remote control
    of Vaderes simulation loop.
  - VadereManager/target/vadere-server.jar will open a TCP socket and waits
    for connection request.
- FloorField Caching:
  - CellGrid based floorfields can be loaded from a persisted cache file.
  - Added attributes:
    - `cacheType: [NO_CACHE|TXT_CACHE|BIN_CACHE]`
    - `cacheDir: ""` relative path
  - Cache files will be saved in a `__cache__` directory beside (sibling) the
    scenario file. With `cacheDir` it is possible to create some structure within
    the cache directory. Important: If `cacheDir` is an absolute path the cache
    file will not be placed in `__cache__`.
  - A TXT_CACHE type will save the CellGrid in a human readable form (CSV) and
    BIN_CACHE will use a simple binary format for better performance and space
    reasons.
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
77 78 79 80 81 82 83 84 85
- TikzGenerator:
  - add configuration to show all traces of pedestrians, even if they
    left the simulation. Config: PostVis -> `Show all Trajectories on Snapshot`
  - add named coordinate for each scenario element. The coordinate represents the
    centroid point of the polygon and can be used as a point for relative placement
    of labels.
  - introduced id for reference: Source `src_XXX`, Target `trg_XXX`, AbsorbingArea `absorb_XXX`
    Obstacels `obs_XXX`, Stairs `str_XXX`, MeasurementArea `mrmtA_XXX`
- single step mode in GUI: Allows the user to step through the simulation one
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
86
  step at a time to identify bugs.
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
87
- simplify obstacles (with undo support): Merge multiple obstacles based on the
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
88
  convex hull their points create. The merge can be undon
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
89
- add features to open street map (osm) importer:
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
90 91 92
  - import 'open' paths as polygons with a specified width. With this it is
    possible to create walls or subway entrance
  - add option to include osm ids into each obstacle created
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
93

Benedikt Zoennchen's avatar
Benedikt Zoennchen committed
94
`PostVis` added functionalities:
Benedikt Zoennchen's avatar
Benedikt Zoennchen committed
95 96 97 98 99
- the PostVis works now on the basis of simulation time instead of time steps. Agents' position will be interpolated.
    - the user can jump to a specific simulation time
    - the user can step forward by steps as small as 0.01s
    - the user can make videos using also this new feature which results in very smooth movement
    - the frames per seconds (FPS) is now more accurate
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
100

101 102
### Changed

Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
103 104 105 106 107
- version migration ensures that new attributes in the scenario file will be added
  with default values if no specific actions are defined in a Transformation class.
- TikzGenerator: style information for pedestrians are moved to dedicated style
  classes to simplify changes in generated tikz files.  

Benedikt Kleinmeier's avatar
Benedikt Kleinmeier committed
108
## v1.0 (2019-06-13)
Marion Goedel's avatar
Marion Goedel committed
109

110
### Added
111

112
- Open a trajectory file in the stand-alone application `vadere-postvis.jar` via drag and drop from file explorer.
Benedikt Kleinmeier's avatar
Benedikt Kleinmeier committed
113
- Scenario elements like obstacles and targets can now be resized using the mouse in the topography creator tab (first, select element via left-click and then move mouse to one of its edges to get the resize handles).
114
- Draw also Voronoi diagram in `TikzGenerator`.
115 116 117
- Added new scenario element `AbsorbingArea` to absorb agents immediately.
  * The new scenario element can be selected in `TopographyCreator` via the "emergency exit" button.
  * The new scenario element is also taken into account by `SettingsDialaog` and `TikzGenerator`.
Benedikt Kleinmeier's avatar
Benedikt Kleinmeier committed
118
- Configured 1-click-deployment in ".gitlab-ci.yml".
119
  * In short: Vadere is packaged as a single ZIP file containing following build artifacts: README.md Scenarios/ VadereGui/target/vadere-gui.jar VadereSimulator/target/vadere-console.jar
120 121 122 123 124 125 126
  * Vadere is packaged for GNU/Linux and Microsoft Windows.
  * The ZIP file can be accessed on the website via: http://www.vadere.org/releases/
  * The website's filesystem contains three subdirectories for releases:
    - builds/master: For releases on "master" branch (automatically triggered when pushing to "master" branch).
    - builds/stable: For Git tags on on any branch (automatically triggered when pushing tags).
    - builds/branches: For releases of any other branch (manually triggered in web interface: https://gitlab.lrz.de/vadere/vadere/pipelines)
  * The link to the deployed items can be also found in the GitLab web interface: https://gitlab.lrz.de/vadere/vadere/environments
127 128 129 130 131 132 133 134 135
- Create a Facade for the logging in vadere. This will remove 3rd party
  dependencies in source most files. Only a small set of facade classes
  will have the dependency.
- Assertion output to StdErr is collected by a dedicated logger see `StdOutErrLog.java`.
  Each entrypoint must call `StdOutErrLog.addStdOutErrToLog()` to activate this
  Logging.
- Logging API did *not* change. Each log level has an additional String formater
  method like `log.errorf("Erron in %s with value of x: %d","ClassA", 42)`
- issues closed: [issue#163](https://gitlab.lrz.de/vadere/vadere/issues/163)
Benedikt Kleinmeier's avatar
Benedikt Kleinmeier committed
136
- Added script "osm2vadere.py" to "Tools" folder, to convert OpenStreetMap maps to a Vadere topography. (929d4775: Tools).
137 138 139
- `VadereConsole`: Add option `--logname <filename>` to specify the name for the log file.
  Please note that the log file `log.out` is always written (because this file is configured
  in the `log4j.properties` of each Vadere module (i.e., "gui", "meshing", ...). (c61a3946: Simulator)
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
140
- New outputprocessors
Marion Goedel's avatar
Marion Goedel committed
141 142
  * mainly for the BHM: QueueWidthProcessor (to evaluate queueWidth) and PedestrianBehaviorProcessor (evaluate behavior: step / tangential step / sideways step / wait)
  * solely for the OSM: PedestrianFootStepProcessor (logs every step instead of the positions at each time step )
143

Marion Goedel's avatar
Marion Goedel committed
144 145
- `TopographyChecker`: In package org.vadere.simulator.utils, added TopographyChecker to show
  user if the current topography contains problems. The  TopographyChecker
146 147 148
  will check for overlapping `ScenarioElements` and check for inconsistence
  settings such as missing  TargetIDs for sources or inconsistenct speed ranges
  for pedestrians. See this
149
  [table](Documentation/changelog/TopographyCheckerMessages.md) for
150
  supported warnings and erros as well as this
151
  [picture](Documentation/changelog/TopographyChecker.png) to see which
152
  kind of overlap produces erros or warnings.
Marion Goedel's avatar
Marion Goedel committed
153
- `VadereConsole`: Add `--output-dir [on, off]` (default: `on`) switch to  `scenario-run`
154 155
  sub-command. This will will turn the ScenarioChecker on or off for the command
  line. If the Checker detects an error  the simulation will not be executed.
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
156

Benedikt Zoennchen's avatar
Benedikt Zoennchen committed
157 158 159 160 161 162 163 164 165 166 167
- `TopographyCreator` added functionalities:
    - move all topography elements by some dx, dy [issue#171](https://gitlab.lrz.de/vadere/vadere/issues/171)
    - move the whole topography by some dx, dy [issue#148](https://gitlab.lrz.de/vadere/vadere/issues/148)
    - automatically merge overlapping obstacles by using the weiler algorithm.

- `Processors`:
    - new processors to compute the fundamental diagrams (by using different velocity, flow and density measurement methods)

- `GUI`:
    - improved coloring

Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
168
- `OutputFile`: Distinguish between indices (rows) and headers (columns), in code and with a new checkbox that when enables allow to write meta-data into output files. Furthermore, resolve naming conflicts (if they occur) in headers of output files (see #201).
Daniel Lehmberg's avatar
Daniel Lehmberg committed
169

170 171
### Changed

172 173 174 175
- Renamed Vadere JAR files.
  * vadere.jar -> vadere-gui.jar
  * postvis.jar -> vadere-postvis.jar
  * vadere-console.jar -> remained unchanged
176
- Header in output file have now the following form "[NAME]-PID[ID]". This avoids name conflicts and makes mapping to the relevant processor easy and fast.
177
- Migration to Java 11 (OpenJDK).
178
- Removed directory `Documentation/version-control` which contained the Git hooks. The Git hooks are not required anymore. Instead, added `git rev-parse HEAD` to file `VadereSimulator/pom.xml` to create `VadereSimulator/resources/current_commit_hash.txt` during each build via `mvn compile`.
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
179
  **Note:** The file `current_commit_hash.txt` is created during Maven's validation phase, i.e., before the actual build.
180

181
## v0.6 (2018-09-07)
182

183
### Added
184 185 186 187 188 189 190

- Graphical simulation result is displayed in a table view to show run-time and overlap information if the corresponding processors are loaded. The Simulation result dialog can be deactivated in the preferences. (5ffca5a3: Simulator, GUI)
- Added new OutputProcessors for Overlaps. (8028c523: Simulator)
- Added "fixedSeed" and "simulationSeed" to AttributesSimulation. (79268262: Simulator)
- VadereConsole.jar migrate will migrate all scenario files within the specified directory and all child directories. (37fde165: Simulator)
  * To exclude specific sub-trees or only specific directories the igonoreDirs List can be expanded.
  * DO_NOT_MIGRATE or .DO_NOT_MIGRATE: Ignore current directory but continue with existing child directories.
191
  * DO_NOT_MIGRATE_TREE or .DO_NOT_MIGRATE_TREE: Ignore the directories and the complete sub-tree.
192 193 194 195
- Added a new OutputProcessor, NumberOverlapsProcessor. This processor saves the number of overlaps that occurred during a simulation run. It needs the PedestrianOverlapProcessor. (57d90e93: Simulator, State)
- Added sub commands to "VadereConsole": project-run, scenario-run, suq, migrate (c7e0538c: GUI)
- In the onlinevisualization it is now possible to display the target potential field of a selected pedestrian. (123457aa: GUI)

196
### Changed
197 198 199 200 201 202 203

- PedestrianOverlapProcessor returns two values "distance", "overlaps"for each overlap detected. (5ffca5a3: Simulator)
  * If no overlap occurs the output is empty.
  * "distance": The distance between the center of the two pedestrians
  * "overlaps": The amount the two pedestrian overlap
- Moved and renamed attributes in scenario files. (c7e0538c: State)
  * Move /scenario/attributesModel/org.vadere.state.attributes.models.AttributesCGM/groupSizeDistribution to each source in /scenario/topography/sources/[]/groupSizeDistribution. This allows different group size distribution for each source
Stefan Schuhbaeck's avatar
Stefan Schuhbaeck committed
204
  * Rename /scenario/attributesModel/*/timeCostAttributes/standardDeviation to standardDeviation.
205

206
### Performance
207 208 209 210 211 212

- Faster distance computation. (6214738c: Simulator)
  * To compute the distance from a point x the closest obstacle we compute the distances on a Cartesian grid of cell size equal to the default value of AttributesFloorField.potentialFieldResolution. There are two methods to compute the distances.
  * Brute force (default): Compute the distance for a grid point x by computing all distances (for all obstacles) taking the minimal
  * Eikonal Equation solvers (unused): Use obstacles to be the targets are of the eikonal equation and solve the equation using one of the solvers (default is the Fast Marching Method).

213
## v0.2 (2016-12-22)
214

215
### Added
216

217
- Stability and usability improved, additional pedestrian simulation models are supported. (babf0b67: GUI, Simulator, State, Utils)
218

219
## v0.1 (2016-08-05)
220

221
### Added
222

223
- Initial release of the software as open source. (72391fab: GUI, Simulator, State, Utils)