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 (

“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. ( 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)




Dissertation: (English)

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))

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


SUMO User Conference 2019 (English)

Introducing Road Surface Conditions into a Microscopic Traffic Simulation


For questions, feel free to contact me anytime here or via:


Best Regards,

Thomas Weber


Back to the top