vadere merge requestshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests2020-08-27T13:29:07+02:00https://gitlab.lrz.de/vadere/vadere/-/merge_requests/141Added further attributes to strategyModel2020-08-27T13:29:07+02:00Mayr, Christina MariaAdded further attributes to strategyModelThe strategy model layer has been extended by two additional attributes stored in the *.scenario file.
1. arguments: can be used to pass user-specific arguments, e.g. pass file names
2. requiredDataProcessorsIds: specify data processor w...The strategy model layer has been extended by two additional attributes stored in the *.scenario file.
1. arguments: can be used to pass user-specific arguments, e.g. pass file names
2. requiredDataProcessorsIds: specify data processor which are used in the strategy model. The scenario checker will give an error if a required data processor is missing.
The extension can be used for several purposes, e.g. pass file names as parameter when using the suqc.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/142Write data computed in strategy layer with data processor2020-08-28T12:39:24+02:00Mayr, Christina MariaWrite data computed in strategy layer with data processorThe strategy layer is able to change the locomotion behavior during the simulation e.g. by setting new targets.
These changes can not be observed with data processors directly.
To capture such changes, the data processor `StrategyDataP...The strategy layer is able to change the locomotion behavior during the simulation e.g. by setting new targets.
These changes can not be observed with data processors directly.
To capture such changes, the data processor `StrategyDataProcessor` can be used.
The `StrategyDataProcessor` receives changes from the strategy model directly.
For that purpose, the `IStrategyModel` was added to the simulation state which is read by the `StrategyDataProcessor`.Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/140Sfm parallel2020-08-31T09:56:41+02:00Marion GoedelSfm parallelI added the parallelization setup from the GNM in the SFM for speedup. I tested the results in a small scenario (fixedSeed) once and they were identical - with a speedup in computation time.
It would be great if one of you could have a...I added the parallelization setup from the GNM in the SFM for speedup. I tested the results in a small scenario (fixedSeed) once and they were identical - with a speedup in computation time.
It would be great if one of you could have a look at it and approve it if you believe that it makes sense - just to make sure that I'm not messing sth up (it's 34°C ;))
Thanks!Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/143Add artery support2020-09-09T19:22:07+02:00Schuhbaeck, StefanAdd artery support* add additional TraCI API calls to support coordinate transformation on both client and server side.
* add trace logging for TraCI
* use VadereArgumentParser for vadere-server.jar (log additional TraCI version)* add additional TraCI API calls to support coordinate transformation on both client and server side.
* add trace logging for TraCI
* use VadereArgumentParser for vadere-server.jar (log additional TraCI version)https://gitlab.lrz.de/vadere/vadere/-/merge_requests/144Removed Strategy Layer2020-10-28T12:29:58+01:00Mayr, Christina MariaRemoved Strategy LayerI removed the strategy Layer to keep Vadere as simple as possible,I removed the strategy Layer to keep Vadere as simple as possible,https://gitlab.lrz.de/vadere/vadere/-/merge_requests/145fix unstable VRectangle / VCircle contains calculation.2020-11-27T17:39:52+01:00Schuhbaeck, Stefanfix unstable VRectangle / VCircle contains calculation.see issue #322
For specific combinations of rectangles and circles, the generic `containsShape()` method which builds on the AWT `Area` class
hangs in an endless loop. This is most likely rooted in the problem that a circle is approxim...see issue #322
For specific combinations of rectangles and circles, the generic `containsShape()` method which builds on the AWT `Area` class
hangs in an endless loop. This is most likely rooted in the problem that a circle is approximated by bezier curves in the `Area` class and this causes numerical instabilities.
This fix only is implemented in the `VRectangle` class for now. Other `VShape` objects still use the old (numerical instable) `containsShape` implementation (which is based on AWT's `Area` class).Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/146More verbose traci error2020-12-10T15:50:34+01:00Schuhbaeck, StefanMore verbose traci errorhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/147fix crownet path2021-01-13T11:16:23+01:00Schuhbaeck, Stefanfix crownet pathhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/150Exp/ifim2021-02-25T14:16:01+01:00Zoennchen, BenediktExp/ifimMerge of the Informed Fast Iterative Method (IFIM) (PhD thesis B. Zoennchen, Section 9.5) into the master branch. Furthermore, I add some (hopefully) useful comments and removed some obsolete code that I used to debug my code. This is my...Merge of the Informed Fast Iterative Method (IFIM) (PhD thesis B. Zoennchen, Section 9.5) into the master branch. Furthermore, I add some (hopefully) useful comments and removed some obsolete code that I used to debug my code. This is my final code contribution.Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/152Exp/ifim2021-03-02T16:27:26+01:00Zoennchen, BenediktExp/ifimRemove unnecessary logging, add some more java doc and fix a bug that hides the OSM potential field in the GUI. If everything is fine now, this is my last commit :).Remove unnecessary logging, add some more java doc and fix a bug that hides the OSM potential field in the GUI. If everything is fine now, this is my last commit :).Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/153Controller2021-03-05T12:22:57+01:00Schuhbaeck, StefanControllerhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/154External input2021-05-18T19:23:01+02:00Mayr, Christina MariaExternal inputAllows to control vadere using TraCI.
The control commands are handled by a control model.
The respective reaction behavior is represented by a statistical model.Allows to control vadere using TraCI.
The control commands are handled by a control model.
The respective reaction behavior is represented by a statistical model.Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/155remove package size parameters2021-06-01T14:54:47+02:00Schuhbaeck, Stefanremove package size parametershttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/157Fix write bug2021-06-11T18:22:39+02:00Schuhbaeck, StefanFix write bughttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/160[ControlModel] Handle conflicting and recurring information2021-07-01T11:28:41+02:00Mayr, Christina Maria[ControlModel] Handle conflicting and recurring informationInteresting for crowd guidance strategies
Agents receive information
* directly as commands
* from a navigation app
In both cases, recurring and conflicting information needs to be handled.Interesting for crowd guidance strategies
Agents receive information
* directly as commands
* from a navigation app
In both cases, recurring and conflicting information needs to be handled.Mayr, Christina MariaMayr, Christina Mariahttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/161[GUI] display information state of an agent2021-07-05T16:59:09+02:00Mayr, Christina Maria[GUI] display information state of an agent## Visualize information state of an agent in the GUI (Online-Visualization + Post-Vis.)
Agents can receive different types of information, e.g.
* In the default setting, we assume agents have global knowledge about the location to tar...## Visualize information state of an agent in the GUI (Online-Visualization + Post-Vis.)
Agents can receive different types of information, e.g.
* In the default setting, we assume agents have global knowledge about the location to target (NO_INFORMATION).
* If the psychology layer is used, the information is set up as a stimulus.
* If the crowd is managed e.g. over TraCI, information can be passed as directly to an agent or as stimuli.
* If the reaction behavior is modeled, it is also possible that agents refuse to react to information (INFORMATION_UNCONVINCING_RECEIVED).
For that purpose, I have added the enum `InformationState.class`
```
public enum InformationState {
NO_INFORMATION,
INFORMATION_STIMULUS,
INFORMATION_RECEIVED,
INFORMATION_CONVINCING_RECEIVED,
INFORMATION_UNCONVINCING_RECEIVED,
}
```
The default value is `NO_INFORMATION`.
## What is new?
The user can pick a new option for agent coloring 'Coloring by Information State', see following image:
![new_setting_options](/uploads/b269893cac027418ff65d0cb3080122c/new_setting_options.png)
## New feature: Visualize CHANGE_TARGET and WAIT behavior
Currently, the two stimuli `ChangeTarget` and `Wait` are not being visualized in the post-visualization.
The reason is that these two stimuli happen in between two footsteps.
Therefore, the stimuli are not written out by the respective dataprocessors
- `FootStepMostImportantStimulusProcessor`
- `FootStepPsychologyStatusProcessor` -> its output file is used in the postvis!
- `FootStepSelfCategoryProcessor`
### Example output file `FootStepPsychologyStatusProcessor`
In the output file cannot see the WAIT stimuli that starts at t=0.0s and lasts until t=10.0s.
```
pedestrianId simTime endTime-PID1 startX-PID1 startY-PID1 endX-PID1 endY-PID1 targetId-PID2 mostImportantStimulus-PID3 selfCategory-PID3 groupMembership-PID3 informationState-PID3
1 0.4 0.9707501015618938 1.196 10.696 1.3303046975095987 9.934320210724556 1 **ElapsedTime** **TARGET_ORIENTED** OUT_GROUP NO_INFORMATION
2 0.4 1.1001829000111136 1.588 10.696 1.9348998058565199 10.095151911120729 1 **ElapsedTime** **TARGET_ORIENTED** OUT_GROUP NO_INFORMATION
...
1 10.343253453453453 1.5415002031237877 1.3303046975095987 9.934320210724556 1.7170196613925053 9.264510245232199 1 **ElapsedTime** **TARGET_ORIENTED** OUT_GROUP NO_INFORMATION
...
```
I propose, that in case of stimuli that are active in between footsteps (`CHANGE_TARGET` and `WAIT`), the stimuli should be mapped to the last available time step.
In this case, the output file looks like:
```
pedestrianId simTime endTime-PID1 startX-PID1 startY-PID1 endX-PID1 endY-PID1 targetId-PID2 mostImportantStimulus-PID3 selfCategory-PID3 groupMembership-PID3 informationState-PID3
1 0.4 0.9707501015618938 1.196 10.696 1.3303046975095987 9.934320210724556 1 **Wait** **WAIT** OUT_GROUP NO_INFORMATION
2 0.4 1.1001829000111136 1.588 10.696 1.9348998058565199 10.095151911120729 1 **Wait** **WAIT** OUT_GROUP NO_INFORMATION
...
1 10.343253453453453 1.5415002031237877 1.3303046975095987 9.934320210724556 1.7170196613925053 9.264510245232199 1 **ElapsedTime** **TARGET_ORIENTED** OUT_GROUP NO_INFORMATION
...
```Schuhbaeck, StefanMayr, Christina MariaSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/158[Remote] Fix bug in remote simulation run2021-07-07T09:24:56+02:00Mayr, Christina Maria[Remote] Fix bug in remote simulation runProblem:
The vadere thread is not closed properly.
Simulation output is not written. See #327
The thread is still running after the sim time limit has been reached.
Solution:
adjust the method that terminates the thread
adjust the s...Problem:
The vadere thread is not closed properly.
Simulation output is not written. See #327
The thread is still running after the sim time limit has been reached.
Solution:
adjust the method that terminates the thread
adjust the simulation step methodMayr, Christina MariaMayr, Christina Mariahttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/159Artery upstream2021-07-07T09:28:36+02:00Schuhbaeck, StefanArtery upstreamhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/156Same Target change behavior for all pedestrians in a group2021-07-07T09:29:12+02:00Mayr, Christina MariaSame Target change behavior for all pedestrians in a group**[Problem]**
Currently, targets are assigned to agents individually (sources, target changers). This can lead to a splitting of the group, e.g.:
* If some group-members step on a target changer and some others do not.
* If the target c...**[Problem]**
Currently, targets are assigned to agents individually (sources, target changers). This can lead to a splitting of the group, e.g.:
* If some group-members step on a target changer and some others do not.
* If the target changer algorithm provides different targets for each group member.
In the worst case, agents even get stuck.
Please find issue #309.
**[Solution]**
If a pedestrian is in a group, the target should be changed group-wise.
**[Steps]**
Adjust the `setTargets` method in `Pedestrian.class`.
Add all group members to `processedAgents` in the `TargetChangerController.class`.
**[Note]**
Adjusting the `TargetChangerController.class` only, is not suitable, because the target can also be changed using TraCI. Therefore, it must be directly changed in `Pedestrian.class`.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/164refactoring + bug fix2021-07-14T18:55:20+02:00Mayr, Christina Mariarefactoring + bug fixremove bugremove bugMayr, Christina MariaMayr, Christina Maria