vadere merge requestshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests2020-02-25T13:33:25+01:00https://gitlab.lrz.de/vadere/vadere/-/merge_requests/113upgrade suqc to v2.02020-02-25T13:33:25+01:00Ghost Userupgrade suqc to v2.0https://gitlab.lrz.de/vadere/vadere/-/merge_requests/112Add argparser argument2020-01-29T19:57:16+01:00Schuhbaeck, StefanAdd argparser argumenthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/111Add traci cmds2020-01-22T16:21:53+01:00Schuhbaeck, StefanAdd traci cmdshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/110add ResponseIdentifier to traci version packet2020-01-21T17:50:30+01:00Schuhbaeck, Stefanadd ResponseIdentifier to traci version packethttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/109Fix osm2vadere use config2020-01-20T21:15:02+01:00Schuhbaeck, StefanFix osm2vadere use confighttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/108cosmetic fixes in pythontraciwrapper2020-01-14T14:20:44+01:00Schuhbaeck, Stefancosmetic fixes in pythontraciwrapperhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/107checkbox to deactivate ScenarioChecker in GUI.2020-01-13T11:19:57+01:00Schuhbaeck, Stefancheckbox to deactivate ScenarioChecker in GUI.Before save actions and simulation run actions the
ScenarioChecker is still executed *once* to inform the
user of any errors. (deault = ScenarioChecker Off)
The checkbox setting is saved in the vadere config.Before save actions and simulation run actions the
ScenarioChecker is still executed *once* to inform the
user of any errors. (deault = ScenarioChecker Off)
The checkbox setting is saved in the vadere config.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/106Python Based TraCI Client for Vadere2020-01-13T08:51:15+01:00Schuhbaeck, StefanPython Based TraCI Client for Vaderepython based TraCI client for vadere.
main authors hm-schuegra / hm-schubae
* [misc] apply styleguide to VadereManager module
* [misc] autopep vadere-lauchner.py
* [pythontraciwrapper] Added second start method to Py4jClient
* [...python based TraCI client for vadere.
main authors hm-schuegra / hm-schubae
* [misc] apply styleguide to VadereManager module
* [misc] autopep vadere-lauchner.py
* [pythontraciwrapper] Added second start method to Py4jClient
* [pythontraciwrapper] Adding PythonTraCIWrapper to tools with git subtree
* [pythontraciwrapper] Extending pythontraciwrapper
* [pythontraciwrapper] Implemented _polygonapi_wrapper
* [pythontraciwrapper] Implemented a basic py4j client
* [pythontraciwrapper] Implemented pytraci controll commands
* [pythontraciwrapper] Improving py4j client
* [pythontraciwrapper] Move Py4jClient to pythontraciwrapper
* [pythontraciwrapper] Removing PythonTraCIWrapper from tools
* [pythontraciwrapper] Skeleton py4j TraCI Wrapper
* [pythontraciwrapper] apply code formatting
* [pythontraciwrapper] set version to 0.2
* [pythontraciwrapper] use list in subprocess instead of string. fix for linux.
* [TraCI] Adapt new createNew such that it uses the type of the peds in the simulation when reading the minimal attributes from JSON
* [TraCI] Add new start method to client to access sendFileFromPath via
the Py4j wrapper
* [TraCI] Add processors to scenario
* [TraCI] Added scenarios for ReinforcementLearning
* [TraCI] Allow multiple py4j clients to interact with vadere via traci, each client having its own manager
* [TraCI] Annotated some methods of polygonapi
* [TraCI] Automated start of manager and entrypoint in Py4jClient just for developement.
* [TraCI] Extending personapi on python side
* [TraCI] Find explanation for redundant command identifier byte in getVersion
* [TraCI] Fix bug in createTargetChanger builder
* [TraCI] Fix bug in poly.getIDList
* [TraCI] Fix getVersion bug
* [TraCI] Fix tests
* [TraCI] Implement more tests
* [TraCI] Implement pers.getMaximumSpeed
* [TraCI] Implement pers.getVelocity
* [TraCI] Implement poly.getTopographyBounds # Conflicts: # Tools/PythonTraCIWrapper/pythontraciwrapper/_personapi_wrapper.py
* [TraCI] Implement some tests for setters, extend tests for getters by one check
* [TraCI] Implemented createWaitingArea for traci, Example
* [TraCI] Implemented getSimTime for python wrapper
* [TraCI] Implemented getter and setter for nextTargetListIndex to make a workaround Issue #285 of possible
* [TraCI] Implemented getter for hasNextTarget
* [TraCI] Implemented poly.getCentroid, implemented poly.getDistance with a workaround
* [TraCI] Implemented py4j-wrapper for getter and setter of nextTargetListIndex
* [TraCI] Implemented setStimulusInfo, removed add/remove WaitingArea
* [TraCI] Implemented some methods of traci polygonapi
* [TraCI] Implemented some tests
* [TraCI] Integrated VadereAPI
* [TraCI] Kill entrypoint process when python program terminates withatexit
* [TraCI] Made py4j_client take either the parsed args or the raw args from the command line from the instantiator.
* [TraCI] Make createTargetChanger take json
* [TraCI] Make sendFile more flexible
* [TraCI] Make sendFileFromPath public to make API more flexible
* [TraCI] Make test for process_getCacheHash platform independent
* [TraCI] Move argParsing to py4j_client in the pythontraciwrapper package.
* [TraCI] Parameterised port of TraCIEntryPoint
* [TraCI] Refactor tests, implement new tests
* [TraCI] Refactored poly.getDistance
* [TraCI] Refactoring
* [TraCI] Refactoring & fixing a bug in client-side of removeTargetChanger and removeWaitingArea
* [TraCI] Refactoring VadereApi
* [TraCI] Removed hard-coded path and port number, inserted a check into test of process_getCacheHash
* [TraCI] Removed hard-coded paths from TraCIEntryPoint
* [TraCI] Resolving some problems in the python interface
* [TraCI] Test process_getCacheHash
* [TraCI] WIP reimplementing Polygon Api
* [TraCI] Workaround for ctr.getVersion bug
* [TraCI] Working on traci controll commands for python client
* [TraCI] add generic Json compound object
* [TraCI] create and add TargetChangerController process_addTargetChanger
* [TraCI] wrote test for getAllStimulusInfos
* [ReinforcementLearning] Adding scenarios with small crowd
* [ReinforcementLearning] Increase number of targets.
* [ReinforcementLearning]Add scenario as demo and test case forSchuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/105Visualisierung feature currere bugfix2019-12-27T16:24:05+01:00Ghost UserVisualisierung feature currere bugfixKleinere Fixes für die Visualisierung. Gerebaset von IF am 27.12.19Kleinere Fixes für die Visualisierung. Gerebaset von IF am 27.12.19https://gitlab.lrz.de/vadere/vadere/-/merge_requests/104Traci single client server2019-12-16T20:22:02+01:00Schuhbaeck, StefanTraci single client serverhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/102Korrektur scenario checker2020-05-26T16:12:47+02:00Schuhbaeck, StefanKorrektur scenario checkerThis will allow you to add a `fix` function to teach checker message. Look at `VadereSimulator/src/org/vadere/simulator/utils/scenariochecker/checks/topography/UnusedTargetsCheck.java`
how to use it.This will allow you to add a `fix` function to teach checker message. Look at `VadereSimulator/src/org/vadere/simulator/utils/scenariochecker/checks/topography/UnusedTargetsCheck.java`
how to use it.Marion GoedelMarion Goedelhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/101Cellular automaton2020-02-03T13:25:03+01:00Marion GoedelCellular automatonAdded spawning and attributes for a CA setup (extends OSM).Added spawning and attributes for a CA setup (extends OSM).https://gitlab.lrz.de/vadere/vadere/-/merge_requests/100new tasks2019-12-06T17:59:22+01:00Schuhbaeck, Stefannew taskshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/99Resolve "Measurements if no Agent is in the measurement area"2019-12-05T14:28:35+01:00Ghost UserResolve "Measurements if no Agent is in the measurement area"Closes #287Closes #287https://gitlab.lrz.de/vadere/vadere/-/merge_requests/98Dev/remove time credit2019-11-29T18:18:14+01:00Zoennchen, BenediktDev/remove time creditZoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/97WIP: MetaSeed implementation2019-11-29T18:20:41+01:00Schuhbaeck, StefanWIP: MetaSeed implementationFirst draft for MetaSeed issue #206
ToDo:
- [ ] finalize interface definition
- [ ] extensive unit tests
- [ ] integrate in VadereContext for simple usage throughout the simulation.
(This will mitigate the passing of Ra...First draft for MetaSeed issue #206
ToDo:
- [ ] finalize interface definition
- [ ] extensive unit tests
- [ ] integrate in VadereContext for simple usage throughout the simulation.
(This will mitigate the passing of Random Object down a call tree)
- [ ] finalize the metaSeed list
- [x] ensure new pedestrians will always receive a larger id than any previously id (even if that id no longer exists.)
metaSeedList:
```
metaSeeds.put(Source.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(Target.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(TargetChanger.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(MeasurementArea.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(Pedestrian.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put("misc", new VadereMetaSeed(random.nextLong()));
metaSeeds.put("traci", new VadereMetaSeed(random.nextLong()));
```
@BZoennchen @hm-lehmberg @hm-kleinmei @hm-mgoedel feel free to add ToDos or additional MetaSeeds.Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/96call fireChangeViewportEvent from awt Event Thread2019-12-02T12:06:59+01:00Schuhbaeck, Stefancall fireChangeViewportEvent from awt Event Thread@BZoennchen does that makes sense?
I had the issue that the packaged vadere GUI sometimes stoped after the first simulation step. After looking at
the threads via `jconsole` it seems that `fireChangeViewportEvent` (marked with `**` in...@BZoennchen does that makes sense?
I had the issue that the packaged vadere GUI sometimes stoped after the first simulation step. After looking at
the threads via `jconsole` it seems that `fireChangeViewportEvent` (marked with `**` in first stack trace) will
synchronize on the model and the awt event thread will do the same --> deadlock. This only happed for big scenarios
for what I saw.
If the fix is correct just merge it :)
```
Name: Thread-0
State: BLOCKED on java.awt.Component$AWTTreeLock@7d505529 owned by: AWT-EventQueue-0
Total blocked: 1 Total waited: 0
Stack trace:
java.awt.Component.resize(Component.java:2241)
java.awt.Component.setSize(Component.java:2227)
java.awt.Component.resize(Component.java:2275)
java.awt.Component.setSize(Component.java:2262)
javax.swing.JViewport.setViewSize(JViewport.java:1139)
org.vadere.gui.components.control.ViewportChangeListener.viewportChange(ViewportChangeListener.java:50)
org.vadere.gui.components.model.DefaultModel.notifyViewportListeners(DefaultModel.java:182) - locked org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel@6ce9b79f
** org.vadere.gui.components.model.DefaultModel.fireChangeViewportEvent(DefaultModel.java:268) - locked org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel@6ce9b79f
** org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel.popDrawData(OnlineVisualizationModel.java:143) - locked java.lang.Object@746b397e
org.vadere.gui.onlinevisualization.OnlineVisualization.postUpdate(OnlineVisualization.java:112)
org.vadere.simulator.control.simulation.Simulation.run(Simulation.java:279)
org.vadere.simulator.control.simulation.ScenarioRun.run(ScenarioRun.java:158)
java.lang.Thread.run(Thread.java:834)
```
```
Name: AWT-EventQueue-0
State: BLOCKED on org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel@6ce9b79f owned by: Thread-0
Total blocked: 123 Total waited: 433
Stack trace:
org.vadere.gui.components.model.DefaultModel.setViewportBound(DefaultModel.java:273) <--- needs lock on Model (not possible see above fireChangeViewportEvent)
org.vadere.gui.components.control.JViewportChangeListener.stateChanged(JViewportChangeListener.java:50)
javax.swing.JViewport.fireStateChanged(JViewport.java:1490)
javax.swing.JViewport.reshape(JViewport.java:954)
java.awt.Component.setBounds(Component.java:2326)
java.awt.Component.setBounds(Component.java:2477)
javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:888)
java.awt.Container.layout(Container.java:1537)
java.awt.Container.doLayout(Container.java:1526)
java.awt.Container.validateTree(Container.java:1722)
java.awt.Container.validate(Container.java:1657) - locked java.awt.Component$AWTTreeLock@7d505529
javax.swing.RepaintManager$3.run(RepaintManager.java:745)
javax.swing.RepaintManager$3.run(RepaintManager.java:743)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1889)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
java.awt.EventQueue$4.run(EventQueue.java:721)
java.awt.EventQueue$4.run(EventQueue.java:715)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
```Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/95Code cleaning and order of time and state update in Simulation.run()2019-11-29T15:48:17+01:00Ghost UserCode cleaning and order of time and state update in Simulation.run()Merge request to improve the readability of the main simulation run and clarify aspects?
* [ ] Why is `processManager.update` after `step++` and refreshing the `simulationState` state? This causes step in output to start at 1 and not ...Merge request to improve the readability of the main simulation run and clarify aspects?
* [ ] Why is `processManager.update` after `step++` and refreshing the `simulationState` state? This causes step in output to start at 1 and not 0. Could the `processManager.update` also be in `updateCallbacks` ? (cc @hm-mgoedel )
https://gitlab.lrz.de/vadere/vadere/-/merge_requests/94WIP: Generalize source to allow flexible inflow2021-12-17T11:37:51+01:00Ghost UserWIP: Generalize source to allow flexible inflowLater on the inflow can be from data (e.g. inflow measured from an experiment), a function or anything else.
For this the source had to be generalised and a new interface `SpawnDistributions` was introduced. The `ConstantDistribution` w...Later on the inflow can be from data (e.g. inflow measured from an experiment), a function or anything else.
For this the source had to be generalised and a new interface `SpawnDistributions` was introduced. The `ConstantDistribution` which so far was the only distribution used for sources is adapted to this new interface.
On a side, I also changed the handling for spawning. If a single pedestrian could not be placed in a source, then the loop interrupts. For this I increased the number of tries. This should have improve one of the bottlenecks we have, when the source is too small.
Problems and Todos:
* [ ] How to set up a general SpawnDistribution? This needs some flexibility in the JSON settings (each SpawnDistribution has specific parameter).
* [ ] Rename `ConstantDistribution` -> `ConstantSpawnDistribution` to indicate better that it is used for spawning pedestrians
* [ ] Write a `TotalNumberSpawnDistribution` which spawns total number of agents in as fast as possible.
Closes #283https://gitlab.lrz.de/vadere/vadere/-/merge_requests/93fix #280 nullpointer in gui while simulation setup2019-11-28T14:19:24+01:00Schuhbaeck, Stefanfix #280 nullpointer in gui while simulation setupThe problem occurred because the OnlineVisualization model is setup
during gui startup but was only valid after the first call to
OnlineVisualization#postUpdate where the DrawData object is created.
Only then was the OnlineVisualization ...The problem occurred because the OnlineVisualization model is setup
during gui startup but was only valid after the first call to
OnlineVisualization#postUpdate where the DrawData object is created.
Only then was the OnlineVisualization valid and capable of answering
all callbacks.
This commit will fix the problem but does not fix the design the problem.
The OnlineVisualization is still created at gui startup but all
callbacks to the model are removed util the OnlineVisualization model is
fully initialized.