NTT DATA BEST Hackathon 2026  ·  Politecnico di Torino

Tire-Road
Friction ID

Real-time tire-road friction identification using ESC gradient analysis and Burckhardt NLS classification — per wheel, per braking event, without stopping the vehicle.

SS
Sajjad Shahali
MSc POLITO
OO
Omer Ozkan
MSc POLITO
KA
Kaan Sadik Aslan
MSc POLITO
BD
Berk Ali Demir
MSc POLITO
↗  View on GitHub 48 MATLAB simulations · 274,667 frames · Burckhardt NLS + ESC gradient identification

About the Data

48 closed-loop braking simulations generated in MATLAB/Simulink across 8 road scenarios, 3 brake force distributions, and 2 controller modes.

48
Simulations
8 scenarios × 3 brake distributions × 2 modes
765k
Raw rows
Timestep ~1 ms · 29 columns: slip, μ, ESC signals, ground truth
20.6k
Prepared rows
ABS filter · α>0.01 · stride=10 · balanced per surface
3
Surfaces
Dry asphalt · Wet asphalt · Snow
Preprocessing pipeline
Raw 765k → ABS filter (abs_active=1) → 479k
Confidence filter (α > 0.01) → 340k
Slip range (0.002 ≤ s ≤ 0.55) → 310k
Stride=10 (removes autocorrelation) → 48k
Balance Snow≤12k, Dry/Wet≤6k → 20,616 rows
Key signals per row
slip — wheel slip ratio (encoder)
mu_noisy — friction coefficient (force estimation)
g_esc — ESC gradient from LPF demodulator
a_esc — ESC dither amplitude
alpha — identifier confidence (0–1)
surface — ground truth label
Why these preprocessing steps?
  • ABS-active filter — only timesteps where the ABS is actively modulating brake force are retained. Outside of ABS intervention the tyre operates in the linear, low-slip regime where the Burckhardt curve is nearly flat and parameter estimation is ill-conditioned (Rajamani 2011, §5).
  • Confidence filter α > 0.01 — the ESC identifier reports a convergence confidence α. Low-α samples indicate the algorithm has not yet stabilised; including them would inject outliers into the training set.
  • Stride = 10 — consecutive timesteps at 1 ms are heavily autocorrelated. Subsampling at 10× decorrelates adjacent samples without losing scenario coverage, satisfying the persistent-excitation condition required for identifiability (Gustafsson 1997, §3).
  • Surface balancing — Snow produces ~3× more ABS-active frames than Dry/Wet (lower peak friction → longer braking distance). Capping per-surface count prevents the classifier from being biased toward Snow.
Gustafsson 1997 — Automatica 33(6)Rajamani 2011 — Vehicle Dynamics and Control §5

Animated NLS Curve Fitting

Watch the Burckhardt NLS fit converge in real time. Data points are drawn from a surface with additive Gaussian noise — the classifier identifies the surface once the fit stabilises.

c₁ (fitted)
c₂ (fitted)
c₃ (fitted)
Starting…
Reading this plot: the faded dashed curve is the true Burckhardt model for the selected surface — ground truth. The bright solid curve is the live NLS fit converging as noisy data accumulates. Each dot is one synthetic measurement with σ = 0.018 added Gaussian noise, matching realistic ABS wheel-speed and force-estimation error levels reported in the literature.
  • NLS (Non-Linear Least Squares) minimises ∑(μfit(sᵢ) − μᵢ)² over (c₁, c₂, c₃) using a multi-seed grid search — three starting points covering Dry, Wet and Snow to avoid local minima.
  • Classification fires once 50 points are accumulated. The fitted (c₁, c₂, c₃) vector is normalised and compared to the three surface prototypes via Euclidean nearest-neighbour. The dominant discriminant is c₂ — notice how Dry (c₂=24) and Wet (c₂=34) look visually similar but their curves peak at different slip values (s_opt ≈ 0.17 vs 0.13).
  • Ice is the most distinctive: its extremely sharp rise (c₂=306) means the curve peaks at s_opt ≈ 0.03 — just 3% slip — after which friction plummets. This is why ice is so dangerous for ABS-equipped vehicles at higher slip.
Burckhardt 1993 — FahrwerktechnikGustafsson 1997 — Automatica 33(6)

Burckhardt Friction Curves

All three road surfaces plotted in the Burckhardt model space — note how c₂ separates them clearly (24 / 34 / 94). Peaks and optimal slip points are annotated.

Dry asphalt (c₁=1.28, c₂=23.99, c₃=0.52)
Wet asphalt (c₁=0.857, c₂=33.82, c₃=0.347)
Snow (c₁=0.195, c₂=94.13, c₃=0.065)
Ice (c₁=0.050, c₂=306.4, c₃=0.001)
The Burckhardt model (1993) represents the tyre–road friction coefficient μ as a function of wheel slip ratio s using three physically interpretable parameters:
  • c₁ — asymptotic friction ceiling. Dry asphalt (c₁=1.28) can generate over 1.2g of braking force; ice (c₁=0.05) barely 0.05g.
  • c₂ — curve sharpness and the key discriminant. A large c₂ means the curve rises steeply and peaks at very low slip. Surfaces are separated by nearly a decade: 24 (dry) → 34 (wet) → 94 (snow) → 306 (ice). This wide natural gap makes nearest-neighbour classification robust even with sensor noise.
  • c₃ — post-peak slope. A small c₃ means friction stays high well past s_opt; a larger c₃ causes a sharper drop, making over-braking more dangerous.
The optimal slip s_opt = ln(c₁c₂ / c₃) / c₂ maximises friction — an ABS controller should target this point per wheel to achieve minimum stopping distance. The annotated dots show μ_peak at each s_opt: 1.17 (dry), 0.80 (wet), 0.19 (snow), 0.05 (ice).
Burckhardt 1993 — Fahrwerktechnik, Vogel-VerlagPacejka 2012 — Tire and Vehicle Dynamics §3Rajamani 2011 — Vehicle Dynamics and Control §5
Confusion Matrix — Batches (50 pts each)
Dry
Wet
Snow
Dry (pred)
17
0
0
Wet (pred)
0
17
0
Snow (pred)
0
0
48
82 batches total · 20% stratified hold-out · 0 misclassifications
F1 / Precision / Recall per Surface
F1 SCORE
Dry asphalt
1.000
Wet asphalt
1.000
Snow
1.000
WHY PERFECT?
c₂ separates surfaces: 24 (dry) vs 34 (wet) vs 94 (snow). The nearest-neighbour distance in normalised (c₁,c₂,c₃) space has a large margin. Noise erodes this only above σ≈0.05.

Three-Layer ESC Identifier

Three layers fire in cascade — each activates when its precondition is met.

Layer 1 — Always active
Lookup Table
Maps observed peak friction μ_max to a coarse c₂ estimate via linear interpolation.
μ_max → c₂_coarse
Layer 2 — ESC gradient available
ESC-Gradient Analytic
Converts ESC demodulator output to friction gradient, solves analytically for c₁ and c₃.
g_esc → c₁, c₃
Layer 3 — Sufficient slip excitation
Brent Root-Finding
Solves for c₂ from two curve points using Brent's method (guaranteed convergence).
|s_probe − s_peak| > δ → c₂_fine
Burckhardt Friction Model
μ(s) = c₁ · (1 − e−c₂|s|) − c₃ · |s|
c₁ — friction amplitude  ·  c₂ — curve sharpness (key discriminant: 24 dry / 34 wet / 94 snow)  ·  c₃ — slope after peak
How the three layers work together:
  • Layer 1 — Lookup Table is always active from the first braking event. It maps the observed maximum friction μ_max to a coarse c₂ estimate via linear interpolation over the four known surface presets. This gives an immediate, rough surface guess even before the ABS probes different slip values.
  • Layer 2 — ESC Gradient Analytic activates once the Extremum Seeking Control demodulator has settled. The ESC dither signal adds a small sinusoidal perturbation to the brake slip set-point; the demodulator extracts the local gradient g_esc = dμ/ds at the current operating point. Sign convention: g_true = −g_esc · 2 / a_esc. Knowing g_true plus a single (s, μ) measurement provides two constraints, enough to solve analytically for c₁ and c₃ — without ever needing to reach the friction peak. This works at any operating point, making it suitable for partial-braking manoeuvres (Tan et al. 2006).
  • Layer 3 — Brent Root-Finding refines c₂ when the ABS has probed two sufficiently different slip values (|s_probe − s_measured| > δ). Two curve points over-determine c₂; Brent's method solves the resulting scalar equation to tolerance 10⁻⁴ in at most 20 iterations — guaranteed convergence without derivative information (Press et al. 2007, §9.3).
The cascade design means the identifier degrades gracefully: under mild braking only Layer 1 fires; under full ABS all three layers combine for the most precise estimate.
Tan, Nesic & Mareels 2006 — Automatica 42(6)Gustafsson 1997 — Automatica 33(6)Press et al. 2007 — Numerical Recipes §9.3

Sensor Noise vs Classification Performance

Drag the slider to add Gaussian noise (σ_μ) on top of the real data.

0.0000.0050.0100.0200.0300.0500.0700.100
0.010
σ_μ added
0.724
F1 Macro
0.733
Bal. Accuracy
0.787
Precision
0.733
Recall
Dry (μ≈1.17)
Wet (μ≈0.80)
Snow (μ≈0.19)
Zero added noise. The mu_noisy column already includes realistic ABS sensor noise. Classifier achieves perfect F1 on the prepared dataset.
Why F1 macro + Balanced Accuracy? With equal batch counts per surface, F1 macro = BAC — neither inflates due to class imbalance. Key finding: Dry↔Wet confusion is the dominant failure mode. Snow stays identifiable to σ≈0.05 due to its distinctive c₂=94.
Understanding the noise sensitivity:
  • σ_μ = 0 (baseline) — the raw data already contains realistic ABS sensor noise from the MATLAB/Simulink simulation. The classifier achieves perfect F1 because c₂ separation (24 / 34 / 94) is much larger than the NLS fitting error at this noise level.
  • σ_μ = 0.010 — realistic vehicle sensors. This corresponds to approximately ±2% friction measurement error, typical of combined wheel-speed encoder quantisation and tire force estimation (Gustafsson 1997). F1 = 0.724 is the reference real-world operating point.
  • Dry↔Wet confusion dominates because their c₂ values (24 vs 34) differ by only 10 units — a 30% gap. At high noise the NLS fit uncertainty in c₂ spans this gap, causing misclassification. Snow (c₂=94) sits ~60 units away from Wet, so even large NLS errors rarely cross the decision boundary.
  • σ_μ = 0.050 — the critical threshold. Above this level the Dry/Wet NLS fit variance exceeds the c₂ margin. The practical implication: on degraded sensors (e.g., contaminated encoders), the system should report "Dry or Wet" rather than committing to one label.
Gustafsson 1997 — Automatica 33(6), §4Canudas-de-Wit et al. 2003 — Vehicle System Dynamics 39(3)

Classifier Variants vs Noise

Monte Carlo simulation (60 batches × 8 σ levels × 2 axes) comparing four classifier strategies. Computed in-browser — click Run to start.

Baseline (batch=50, 3D NN)
Large batch (batch=100)
c₂-only classify (batch=50)
Majority vote ×3 (batch=50)
Not started
F1 vs σμ — friction noise (σs=0)
F1 vs σs — slip noise (σμ=0)
Two independent noise axes — why both matter:
  • Left plot — friction noise σ_μ models inaccuracy in the force estimation chain: wheel torque sensor noise, tyre radius uncertainty, and load transfer estimation. This directly corrupts the μ values fed to NLS fitting.
  • Right plot — slip noise σ_s models wheel-speed encoder quantisation and shaft compliance. Slip noise is typically smaller in practice (high-resolution encoders are cheap), but it distorts the shape of the fitted curve by misplacing points along the s-axis.
Why each variant helps:
  • Large batch (×2, 100 pts) — averaging more noisy points reduces the NLS fit variance by approximately √2. This is the most reliable improvement under both noise types.
  • c₂-only classification — instead of comparing all three fitted parameters (c₁, c₂, c₃), only c₂ is used. Since c₁ and c₃ are far more sensitive to noise than c₂ (they control amplitude and slope, not shape sharpness), dropping them removes noise dimensions from the decision boundary.
  • Majority vote ×3 — takes the most common prediction across three consecutive batches. This smooths single-batch outliers caused by an unlucky noisy window, at no computational cost beyond latency of two extra batches.
Åström & Wittenmark 1995 — Adaptive Control §6Gustafsson 1997 — Automatica 33(6)

Upload Your Own Dataset

Run the Burckhardt classifier on your own CSV file — processed entirely in-browser.

📂
Drop CSV file here or click to browse
Accepts .csv files · No data leaves your machine
Required CSV file structure
  • slip — Wheel slip ratio, float, range 0.002 – 0.55 (required)
  • mu_noisy — Measured friction coefficient, float (required)
  • surface — Ground truth: Dry asphalt / Wet asphalt / Snow — for accuracy scoring (optional)
  • alpha — ESC confidence 0–1; rows with α < 0.01 filtered out (optional)
  • Column names are case-sensitive. Minimum 50 rows needed per window.

Key References

The theoretical foundation behind this work spans tire mechanics, extremum seeking control, and online parameter identification.

[1]
M. Burckhardt
Fahrwerktechnik: Radschlupfregelsysteme
Vogel-Verlag, Würzburg, 1993
Burckhardt Model
[2]
F. Gustafsson
Slip-based tire-road friction estimation
Automatica, vol. 33, no. 6, pp. 1087–1099, 1997
Friction Estimation
[3]
C. Canudas-de-Wit, P. Tsiotras, E. Velenis, M. Basset, G. Gissinger
Dynamic friction models for road/tire longitudinal interaction
Vehicle System Dynamics, vol. 39, no. 3, pp. 189–226, 2003
Tire Dynamics
[4]
Y. Tan, D. Nesic, I. Mareels
On non-local stability properties of extremum seeking control
Automatica, vol. 42, no. 6, pp. 889–903, 2006
ESC Theory
[5]
R. Rajamani
Vehicle Dynamics and Control, 2nd ed.
Springer Science & Business Media, 2011
ABS / Vehicle Dynamics
[6]
H. B. Pacejka
Tire and Vehicle Dynamics, 3rd ed.
Butterworth-Heinemann, Oxford, 2012
Magic Formula / Tire Model
[7]
K. J. Åström, B. Wittenmark
Adaptive Control, 2nd ed.
Addison-Wesley, Reading, MA, 1995
Adaptive Identification
[8]
W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery
Numerical Recipes: The Art of Scientific Computing, 3rd ed. — §9.3 Van Wijngaarden–Brent method
Cambridge University Press, 2007
Brent Root-Finding

Authors
SS
Sajjad Shahali
Machine Learning Engineer
MSc · POLITO
OO
Omer Ozkan
Data Science & Engineer
MSc · POLITO
KA
Kaan Sadik Aslan
Mechatronic Engineering
MSc · POLITO
BD
Berk Ali Demir
Electrical Computer Engineering
MSc · POLITO