Files
sunnypilot/docs/ford_feedback_delay_v21_validation.json
T

392 lines
15 KiB
JSON

{
"baseline_commit": "baeabfaa807c7a07baf183968e570f2c1d3fd665",
"tests": {
"passed": 722,
"subtests_passed": 2
},
"total_cycles": 583599,
"total_wire_checks": 58362,
"code_sha256": {
"openpilot/selfdrive/controls/lib/ford_model_action.py": "d1730a79307297b32b44ba18e9792df216a1961a3f32927c5e6acf28014d288d",
"openpilot/selfdrive/controls/controlsd.py": "3427212538fcb1cf4d8a44f6be62c54b31ab5ba1a3eb16d958bb58f9c52abecf",
"openpilot/selfdrive/controls/lib/latcontrol_torque.py": "83ea33d37c349b10eca994150dae2a5841ec56b7038402432205a74054c917ee",
"tools/ford_pscm_lab/filtered_driver_replay.py": "9c210b31df62cb6f41e6cf10d76e2e7ba15eefbbfcb30a8ea0244e095365543a"
},
"method": "Same frozen recorded inputs for v20, v21 using logged lateralDelay, and v21 with zero delay. The latter must exactly match v20 at every cycle. No counterfactual wheel response is predicted.",
"limitations": "Supplied delay is not an identified C0/C1-specific response model. Lower command steps do not establish physical stability. Feedback demand is lower on rising and falling requests; entry and unwind can weaken.",
"points": [
{
"meaning": "Clean entry shortfall",
"t": 302.64934647200005,
"desired_angle": 141.37510681152344,
"old_c0": -2.1900000000000004,
"new_c0": -1.7300000000000004,
"old_c1": -0.36950000000000005,
"new_c1": -0.3135,
"old_i": -0.05458394920016066,
"new_i": -0.02249363859059498,
"old_reference": -0.03498964384198189,
"new_reference": -0.030434442684054375
},
{
"meaning": "Release following driver input; command comparison only",
"t": 307.502298498,
"desired_angle": 22.443912506103516,
"old_c0": 1.52,
"new_c0": 1.04,
"old_c1": 0.0655,
"new_c1": 0.035499999999999976,
"old_i": 0.018708751669361232,
"new_i": 0.01363232660438634,
"old_reference": -0.005546241067349911,
"new_reference": -0.010331000201404095
}
],
"routes": {
"162": {
"cycles": 49003,
"wire_checks": 4901,
"zero_delay_matches_baseline": true,
"feedback_delay_requested_min_median_max": [
0.16894637048244476,
0.16894637048244476,
0.16894637048244476
],
"feedback_delay_used_min_median_max": [
0.16,
0.16,
0.16
],
"baseline_recorded_error_p50_p95_p99_max": {
"c0": [
2.3841861818141297e-09,
5.2452087118126656e-08,
0.39000000458657785,
2.5800000023841863
],
"c1": [
0.001499999597668611,
0.07550000331401825,
0.11149999844551088,
0.24500000381469733
]
},
"latched_angle_match_fraction": 1.0,
"command_changes": {
"c0": [
0.019999999999999574,
0.22000000000000064,
0.4300000000000006,
0.839999999999999
],
"c1": [
0.003500000000000003,
0.02899999999999997,
0.04049999999999998,
0.0635
]
},
"variants": {
"old": {
"feedback_switches_active": 218,
"feedback_switches_low_speed": 95,
"low_speed_c0_steps_over_025m": 70,
"low_speed_c1_steps_over_005rad": 50,
"low_speed_step_p99": {
"c0": 0.16000000000000014,
"c1": 0.019949999999999843
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.0,
"c1_bound_active_s": 1.0580744659999937
},
"new": {
"feedback_switches_active": 218,
"feedback_switches_low_speed": 95,
"low_speed_c0_steps_over_025m": 68,
"low_speed_c1_steps_over_005rad": 44,
"low_speed_step_p99": {
"c0": 0.13999999999999968,
"c1": 0.018449999999999786
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.0,
"c1_bound_active_s": 0.9192208439999945
}
},
"method": "Compare Ford feedback variants on recorded references and frozen vehicle motion.\n\nInput: extract.py route.npz/model_paths.npz/metadata.json directories. This checks\ncommand continuity and overrides; it does not predict a changed wheel response.\nBoth controllers receive the logged selected curvature. Recorded-command agreement\nis expected only for routes driven with the selected baseline and fixed 7 m C0.\n",
"provenance": {
"baseline_commit": "baeabfaa807c7a07baf183968e570f2c1d3fd665",
"baseline_controller_sha256": "b34a55f84fdbf6c432ce89cdc378aaaf9bbd765ca4e6934845059f586e6f0773",
"candidate_controller_sha256": "d1730a79307297b32b44ba18e9792df216a1961a3f32927c5e6acf28014d288d",
"fixed_c0_distance_m": 7.0
},
"sources_sha256": {
".cache/ford_route162/full/route.npz": "a725f9ca309b90a2d750d51a9b9d5b459d99119a54ab048631bc0fce07348af8",
".cache/ford_route162/full/model_paths.npz": "cffe310b122d9ae26a53ee504608156b4242a6bba5f681898d5b661951ac5ce5",
".cache/ford_route162/full/metadata.json": "ef3ac1caca0eaec31f7140a0743bd3b98885ce143cb0f97a8eee615b33943d7f",
".cache/ford_route162/intake.npz": "9455b01e1d1d3dcba08276b382a8c6cd54ff6fb19cb417b72d0ac89cf193034b"
},
"baseline_matches_archived_v20_commands_and_integral": true
},
"157": {
"cycles": 76554,
"wire_checks": 7656,
"zero_delay_matches_baseline": true,
"feedback_delay_requested_min_median_max": [
0.0,
0.16894637048244476,
0.16894637048244476
],
"feedback_delay_used_min_median_max": [
0.16,
0.16,
0.16
],
"baseline_recorded_error_p50_p95_p99_max": {
"c0": [
0.009999999999999787,
0.41999999010562905,
1.3956999619007082,
5.39999999165535
],
"c1": [
4.291534405620467e-09,
0.03549999962002037,
0.06600000168576836,
0.4085000002384186
]
},
"latched_angle_match_fraction": 1.0,
"command_changes": {
"c0": [
0.009999999999999787,
0.21999999999999975,
0.4900000000000002,
1.5100000000000007
],
"c1": [
0.0030000000000000027,
0.028999999999999915,
0.039000000000000035,
0.09049999999999997
]
},
"variants": {
"old": {
"feedback_switches_active": 224,
"feedback_switches_low_speed": 148,
"low_speed_c0_steps_over_025m": 137,
"low_speed_c1_steps_over_005rad": 59,
"low_speed_step_p99": {
"c0": 0.20000000000000018,
"c1": 0.022499999999999964
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.2999506119999751,
"c1_bound_active_s": 6.521285587999955
},
"new": {
"feedback_switches_active": 224,
"feedback_switches_low_speed": 148,
"low_speed_c0_steps_over_025m": 110,
"low_speed_c1_steps_over_005rad": 51,
"low_speed_step_p99": {
"c0": 0.16000000000000014,
"c1": 0.01750000000000007
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.2999506119999751,
"c1_bound_active_s": 5.943273473999852
}
},
"method": "Compare Ford feedback variants on recorded references and frozen vehicle motion.\n\nInput: extract.py route.npz/model_paths.npz/metadata.json directories. This checks\ncommand continuity and overrides; it does not predict a changed wheel response.\nBoth controllers receive the logged selected curvature. Recorded-command agreement\nis expected only for routes driven with the selected baseline and fixed 7 m C0.\n",
"provenance": {
"baseline_commit": "baeabfaa807c7a07baf183968e570f2c1d3fd665",
"baseline_controller_sha256": "b34a55f84fdbf6c432ce89cdc378aaaf9bbd765ca4e6934845059f586e6f0773",
"candidate_controller_sha256": "d1730a79307297b32b44ba18e9792df216a1961a3f32927c5e6acf28014d288d",
"fixed_c0_distance_m": 7.0
},
"sources_sha256": {
".cache/ford_route157/full/route.npz": "e2e2573f904aa11ee9e10450e7f5b965d475657b61127e827a67eadcd6b857fb",
".cache/ford_route157/full/model_paths.npz": "25fc2526e092fde5ceb5aab63a5aa4f73a2c989a3263cedb0a26faf8da61c47b",
".cache/ford_route157/full/metadata.json": "f2d72c9a877ed6694e4da6831841113dc0c05987e2c76cca51f358d12411b235",
".cache/ford_route157/intake.npz": "5dffd86fde68197727d6c6b9c5eae82320a456fa1206c4cf18e5e9c69419dde4"
},
"baseline_matches_archived_v20_commands_and_integral": true
},
"151": {
"cycles": 325708,
"wire_checks": 32571,
"zero_delay_matches_baseline": true,
"feedback_delay_requested_min_median_max": [
0.16894637048244476,
0.16894637048244476,
0.16894637048244476
],
"feedback_delay_used_min_median_max": [
0.16,
0.16,
0.16
],
"baseline_recorded_error_p50_p95_p99_max": {
"c0": [
0.010000000223516992,
0.2000000013411043,
1.010000009727478,
4.550000023841858
],
"c1": [
0.004999999240040742,
0.02900000113248826,
0.07250000010803342,
0.28449999523162844
]
},
"latched_angle_match_fraction": 1.0,
"command_changes": {
"c0": [
0.009999999999999787,
0.07999999999999999,
0.2900000000000002,
1.2599999999999998
],
"c1": [
0.0025000000000000022,
0.02250000000000002,
0.038500000000000034,
0.07650000000000001
]
},
"variants": {
"old": {
"feedback_switches_active": 259,
"feedback_switches_low_speed": 101,
"low_speed_c0_steps_over_025m": 77,
"low_speed_c1_steps_over_005rad": 42,
"low_speed_step_p99": {
"c0": 0.13999999999999968,
"c1": 0.014499999999999957
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.029249633000290487,
"c1_bound_active_s": 4.042117826999856
},
"new": {
"feedback_switches_active": 259,
"feedback_switches_low_speed": 101,
"low_speed_c0_steps_over_025m": 65,
"low_speed_c1_steps_over_005rad": 36,
"low_speed_step_p99": {
"c0": 0.10000000000000053,
"c1": 0.01050000000000001
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.0,
"c1_bound_active_s": 3.8897953380001127
}
},
"method": "Compare Ford feedback variants on recorded references and frozen vehicle motion.\n\nInput: extract.py route.npz/model_paths.npz/metadata.json directories. This checks\ncommand continuity and overrides; it does not predict a changed wheel response.\nBoth controllers receive the logged selected curvature. Recorded-command agreement\nis expected only for routes driven with the selected baseline and fixed 7 m C0.\n",
"provenance": {
"baseline_commit": "baeabfaa807c7a07baf183968e570f2c1d3fd665",
"baseline_controller_sha256": "b34a55f84fdbf6c432ce89cdc378aaaf9bbd765ca4e6934845059f586e6f0773",
"candidate_controller_sha256": "d1730a79307297b32b44ba18e9792df216a1961a3f32927c5e6acf28014d288d",
"fixed_c0_distance_m": 7.0
},
"sources_sha256": {
".cache/ford_route151/full/route.npz": "41a5b8bd388cf5a3d553f784542376ac9355fcdc5be4f427053d0504537babe1",
".cache/ford_route151/full/model_paths.npz": "980b3843cec04254280d744a5801cee1bf0f8ef371052398327ff245f9eee01b",
".cache/ford_route151/full/metadata.json": "937825317a0edd470c54647240b922be8f79dda5b3365ffdd61281f0aca877a1",
".cache/ford_route151/intake.npz": "18bbefb7738cebd0071dc987e90f74469a0c8ed456f9412324030592cafd68c9"
},
"baseline_matches_archived_v20_commands_and_integral": true
},
"149": {
"cycles": 132334,
"wire_checks": 13234,
"zero_delay_matches_baseline": true,
"feedback_delay_requested_min_median_max": [
0.16894637048244476,
0.16894637048244476,
0.16894637048244476
],
"feedback_delay_used_min_median_max": [
0.16,
0.16,
0.16
],
"baseline_recorded_error_p50_p95_p99_max": {
"c0": [
0.02999999910593054,
0.8400000008046626,
2.1400000276565554,
4.560000002980233
],
"c1": [
0.015500000141560999,
0.10499999982118613,
0.32499999746203423,
0.43149999833107
]
},
"latched_angle_match_fraction": 1.0,
"command_changes": {
"c0": [
0.009999999999999787,
0.1999999999999993,
0.4900000000000002,
1.3100000000000005
],
"c1": [
0.0040000000000000036,
0.03200000000000003,
0.04999999999999999,
0.08850000000000002
]
},
"variants": {
"old": {
"feedback_switches_active": 354,
"feedback_switches_low_speed": 171,
"low_speed_c0_steps_over_025m": 197,
"low_speed_c1_steps_over_005rad": 111,
"low_speed_step_p99": {
"c0": 0.1999999999999993,
"c1": 0.02150000000000002
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.0,
"c1_bound_active_s": 16.08094779300012
},
"new": {
"feedback_switches_active": 354,
"feedback_switches_low_speed": 171,
"low_speed_c0_steps_over_025m": 159,
"low_speed_c1_steps_over_005rad": 95,
"low_speed_step_p99": {
"c0": 0.16000000000000014,
"c1": 0.017500000000000016
},
"raw_crossing_c0_steps_over_025m": 0,
"c0_bound_active_s": 0.0,
"c1_bound_active_s": 13.22902962499984
}
},
"method": "Compare Ford feedback variants on recorded references and frozen vehicle motion.\n\nInput: extract.py route.npz/model_paths.npz/metadata.json directories. This checks\ncommand continuity and overrides; it does not predict a changed wheel response.\nBoth controllers receive the logged selected curvature. Recorded-command agreement\nis expected only for routes driven with the selected baseline and fixed 7 m C0.\n",
"provenance": {
"baseline_commit": "baeabfaa807c7a07baf183968e570f2c1d3fd665",
"baseline_controller_sha256": "b34a55f84fdbf6c432ce89cdc378aaaf9bbd765ca4e6934845059f586e6f0773",
"candidate_controller_sha256": "d1730a79307297b32b44ba18e9792df216a1961a3f32927c5e6acf28014d288d",
"fixed_c0_distance_m": 7.0
},
"sources_sha256": {
".cache/ford_route149/full/route.npz": "aa5902877343cd033ee286b3668d91a85336ffbf740861849fb0b76b0ca24ade",
".cache/ford_route149/full/model_paths.npz": "19827800b8fb5983f3d6b72fcfaf36e35a40170bb17cd7c1e49374744fb449fb",
".cache/ford_route149/full/metadata.json": "624fff03c25eb298661cb7b25f3dbe6d214d863f799d93635c0f4f05fc0d2b32",
".cache/ford_route149/intake.npz": "503919c4f1566ef850007c59f16ce074697ba57732f21beb7b158c1ca7be3a9d"
},
"baseline_matches_archived_v20_commands_and_integral": true
}
}
}