Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[sumo-dev] New Feature Road Friction

Hi everybody,

 

I have finally gotten around to integrating the friction feature we have been using for a while now.

It was already presented at the SUMO User Conference in 2019 (https://doi.org/10.29007/cqps

“Introducing Road Surface Conditions into a Microscopic Traffic Simulation”), but now I managed to clean it up and create a pull request.

 

 

What it is:

 

Basically, just an extension of the network properties by a "friction" attribute, representing the available friction between a vehicle and the road. (See publications)

  • Netloader and Netbuilder has been adapted to load "old" networks and set a default friction value of 1.0
  • neteditor full integration
  • Full TraCI integration (get/set) via lane or edge. In case of edge, it is actually the mean friction value of all the lanes of that edge.
  • There is an "additional" implemented named "VariableFrictionCoefficient" working like the VariableSpeedSign, just for the friction value if you need it to be dynamic.
  • otherwise, change it via TraCI at runtime (that is what I usually did using matlab and python scripts for sets of simulations...)

 

However, it comes with two adapted CarFollowing Models, KraussFric (the default one with an adaptation) and ACCFric:

  • KraussFric mimics a Human drivers behavior of going a little slower with deteriorating Weather (= friction) conditions (see also the reference publications listed below).
  • ACCFric enhances the "safety" distance and adapts speed (if necessary) depending on the prevalent friction value.

 

Note that in both cases, they behave exactly like their parent for a value (default) of 1.0! --> That is a feature :)

 

Furthermore, it comes with a device (MSDevice_Seeroad) that mimics a sensor system that you can equipp to a vehicle that "measures" the value on the road. It comes with a statistical model. For simplicity, it is only white noise. You can adapt:

  • the standard deviation "device.Seeroad.stdev"
  • and add a fixed offset (systematic measurement error) "device.Seeroad.offset"

if you want via the custom attributes.

 

I pulled and merged with the version from Mar 16 2022 11 a.m. (1.12.xxx) and compiled Windows and Ubuntu 20.04 LTS both working and passing my tests.

 

You can find example scenarios to play and test with here: (same github as the fork that you need for them to work)

https://github.com/ewht/friction_example_scenarios

 

References:

 

Dissertation: (English)

https://doi.org/10.17185/duepublico/75278

On the Potential of a Weather-Related Road Surface Condition Sensor Using an Adaptive Generic Framework in the Context of Future Vehicle Technology

 

Abschlussbericht: (Final Project Report (German))

https://doi.org/10.2314/KXP:1741603366

Sensorsystem zur autonomen Fahrbahnzustandserkennung (SEEROAD) : Abschlussbericht : Teilvorhabenbezeichnung: Fahrzeugmodell, Fahrzeugsimulation : Laufzeit: 1. März 2017-29.Februar 2020

 

SUMO User Conference 2019 (English)

https://doi.org/10.29007/cqps

Introducing Road Surface Conditions into a Microscopic Traffic Simulation

 

For questions, feel free to contact me anytime here or via: thomas.markus.weber@xxxxxxxxxx

 

Best Regards,

Thomas Weber

 


Back to the top