CH:00 · YAW_RATE · ψ̇ rad/s · 50 Hz t-3.0 t-2.0 t-1.0 t-0.5 NOW
SESSION #A47-21 SRC openpilot/rlog.zst STATUS ARMED
Eng-Problem · 01 / 08

The engineering problem — sim-to-real correlation.

You tune against a model. Then reality disagrees. Closing that gap — and knowing where the model can't be trusted — is the job.

REALITY · MEASURED MODEL · PREDICTED RESIDUAL · Δ
t = 0.0 s1.0 s2.0 s3.0 s4.0 s5.0 s
Eng-Problem · 02 / 08 · The Data

Real car data — from the CAN bus.

Comma.ai openpilot logs. This is what the car's own controllers saw: the same signals openpilot drives on. Production hardware, real roads.

data/raw/segments$ tree -L 5
data/raw/segments/
├─ PLATFORM/ // HYUNDAI_IONIQ_5 · FORD_F150_LIGHTNING · …
│ └─ device/ // dongle_id
│ └─ route/ // 2024-03-12--14-08-21
│ └─ segment/ // 0 .. N (1-min chunks)
│ ├─ rlog.zst // log @ 50 Hz
│ ├─ qcamera.ts
│ └─ qlog.zst
CAN.STREAM · livebus 0 · 500 kb/s
Eng-Problem · 03 / 08 · The Fleet

Four cars — one model is about to treat all of these the same.

Tesla Model 3BEV · sedan
Wheelbase L 2.875 m
Mass · m [MODEL-BLIND] 2,035 kg
Ford Mustang Mach-EBEV · crossover
Wheelbase L 2.984 m
Mass · m [MODEL-BLIND] 2,336 kg
Hyundai Ioniq 5BEV · CUV
Wheelbase L 2.970 m
Mass · m [MODEL-BLIND] 2,084 kg
Ford F-150 LightningBEV · full-size truck
Wheelbase L 3.700 m
Mass · m [MODEL-BLIND] 3,084 kg

A 3-ton truck and a compact hatch. The baseline model is mass-independent — it predicts identical cornering for both.

Eng-Problem · 04 / 08 · The Virtual Model

KS — the "driving-school" model.

A rigid rod of wheelbase L, no tyre, no slip — the car goes exactly where the wheels point. Yaw rate falls straight out of geometry.

YAW RATE ψ̇ = (v / L) · tan(δ) geometric · no forces
LATERAL ACC a_y = v · ψ̇ no forces computed
state x= (x, y, ψ, v, δ)     input u= (δ̇, a)
L = wheelbase δ ψ v REAR FRONT SCHEMATIC · KS BICYCLE
Eng-Problem · 05 / 08 · The Scope

We give it speed & steering. It returns the lateral response.

◇ INPUT · MEASURED@50Hz clamped
v_mpsvehicle speed · m/s
delta_road_radroad-wheel angle · rad
◆ PREDICTED · BY KSforward-integrated
x_mposition · longitudinal
y_mposition · lateral
psi_radheading angle

Measured v and δ are clamped at every integration step, so the longitudinal channel is an input, not a prediction. What's left is purely lateral — and the model's lies are all lateral, so this isolates exactly the residual we want to measure.

Eng-Problem · 06 / 08 · How V0 is built · The file

One row per 50 Hz sample — four kinds of column.

delta_road_rad v_mps a_long_mps2 accel_pedal_pct yaw_rate_meas a_lat_meas yaw_rate_pred a_y_pred x_m y_m psi_rad yaw_resid a_y_resid
+0.018421.74+0.3117.4 +0.1372+2.984 +0.1391+3.023109.42.18+0.072 +0.0019+0.039
+0.018621.78+0.2817.8 +0.1389+3.022 +0.1408+3.067109.82.20+0.075 +0.0019+0.045
+0.019121.81+0.2217.2 +0.1402+3.058 +0.1444+3.149110.32.22+0.078 +0.0042+0.091
+0.019821.83+0.1816.9 +0.1418+3.094 +0.1497+3.267110.72.25+0.081 +0.0079+0.173
+0.020421.84+0.1116.4 +0.1431+3.124 +0.1543+3.369111.22.27+0.085 +0.0112+0.245
+0.021221.83+0.0415.9 +0.1444+3.148 +0.1602+3.498111.62.30+0.088 +0.0158+0.350
INPUTS · delta_road_rad · v_mps · a_long · accel_pct TRUTH · yaw_meas · a_lat_meas (Ford / Hyundai only) PREDICTION · yaw_pred · a_y_pred · x · y · ψ RESIDUAL · yaw_resid · a_y_resid (= pred − truth)

The truth columns exist in sim.csv — but not in what your model is given at inference.

Eng-Problem · 07 / 08 · The Task

Predict the lateral response better than V0.

Yaw-Rate RMSE

rad/s · per-sample · 50 Hz
ψ̇_meas ψ̇_pred

Instantaneous fidelity — how close the predicted yaw rate is to measured, every sample.

Cross-Track-Error RMSE

metres · integrated trajectory · uniform-distance resample
TRAJ_meas TRAJ_pred (bias)

Where the integrated trajectory actually ends up, resampled at uniform distance.

Not redundant: a tiny persistent yaw bias is nearly invisible per-sample but compounds into hundreds of metres of drift.

Eng-Problem · 08 / 08 · The Start Line

Beat these two numbers.

V0, scored on 534 held-out segments. Everything from here is measured against them.

YAW-RATE RMSErad/s
0.0163
CH:00 · ψ̇ · BASELINE LOCKED
CROSS-TRACK-ERROR RMSEm
254.0
CH:07 · xtrack · BASELINE LOCKED

The 254 m is the compounding-bias problem made concrete — integrate a slightly biased yaw rate over a minute of driving and the trajectory drifts off the map.

REC· 50 Hz· channel: rlog.zst