Project repository for Intelligent Transportation Systems course in Fall 2022 at University of Tartu.
You can find a 3 to 2 lane merge scenario on a highway and differnent approaches to resolve emerging congestions including reinforcment learning and classical rule-based approaches.
In order to learn about our outcome you can read ITS_Report-VSL.pdf
.
Embed the cloned project in a PyVenv (or conda env if you prefer) and install the requiremnts listed in requirements.txt
And get yourself the SUMO traffic simulation.
New speed limits are calculated/ set every 30 s in order to change it change aggregation_time in the respective files.
Differnt traditional algorithmic approaches can be found in control_algotihms.py which can be applied to the scenario by setting approach=
in variable_speed_environment.py and running it.
A try to solve the congestion problem with reinforcement learning can be found in the custom OpenAI Gym-environment in rl_utils/rl_gym_environments. Models can be trained using rl_learn.py - pre-trained models are provided under rl_models/. Their outcome can be assessed running rl_test.py.
Unfortunatelly no algorithm convincingly resolved the congestion so eye-test cannot be used to assess their achievements. Run algorithmns store their metrics in metrics/ - most importantly the mean speed of cars over the whole stretch of the road. To combine the metrics of different approaches visually run metrics/combine.py.
To Ellen Grumert - partially you can find implementations in the SUMO simulation that have been described in her work.