CrowdNav is a simulation based on SUMO and TraCI that implements a custom router that can be configured using kafka messages or local JSON config on the fly while the simulation is running. Also runtime data is send to a kafka queue to allow stream processing and logger locally to CSV.
- Python version >=3.7 (tested for v3.7)
- SUMO version >=1.2 (tested for v1.2)
- Download the CrowdNav code
- Run
python setup.py install
to download all dependencies - Install SUMO & set environment variable SUMO_HOME to point to SUMO installation folder
- Install Kafka (we recommend this Docker image) and set kafkaHost in Config.py
- Run
python run.py
A first guide on how to use (i.e. adapt, measure, optimize) CrowdNav with the RTX tool is available at this Wiki page.
- Normal mode (
python run.py
) with UI to Debug the application. Runs forever. - Parallel mode (
python parallel.py n
) to let n processes of SUMO spawn for faster data generation. Stops after 10k ticks and reports values.
- Runtime variables are in the knobs.json file and will only be used if
kafkaUpdates = True
is set to false inConfig.py
. Else the tool uses Kafka for value changes. - To disable the UI in normal mode, change the
sumoUseGUI = True
value inConfig.py
to false.
- To let the system stabalize, no message is sent to kafka or CSV in the first 1000 ticks .