Robust CBF Safety Layer for Neural Policies / results.json

Mechanism confirmed, baseline not beaten

Raw ⬇ ZIP
  1{
  2  "math_verification": {
  3    "state": [
  4      0.25,
  5      0.35
  6    ],
  7    "M0": 8.0,
  8    "eps_grid": [
  9      0.0,
 10      0.19999999999999998,
 11      0.39999999999999997,
 12      0.6,
 13      0.7999999999999999,
 14      0.9999999999999999,
 15      1.2,
 16      1.4,
 17      1.5999999999999999,
 18      1.7999999999999998,
 19      1.9999999999999998,
 20      2.1999999999999997,
 21      2.4
 22    ],
 23    "margins": [
 24      8.0,
 25      7.6000000000000005,
 26      7.2,
 27      6.8,
 28      6.4,
 29      6.0,
 30      5.6000000000000005,
 31      5.2,
 32      4.8,
 33      4.4,
 34      4.000000000000001,
 35      3.6000000000000005,
 36      3.2
 37    ],
 38    "fitted_margin_slope": -1.9999999999999996,
 39    "predicted_margin_slope": -2.0,
 40    "predicted_eps_critical": 4.0,
 41    "observed_eps_critical": 4.0,
 42    "bound_shift_samples": [
 43      [
 44        0.1,
 45        0.10000000000000009,
 46        -0.10000000000000009
 47      ],
 48      [
 49        0.2,
 50        0.20000000000000018,
 51        -0.20000000000000018
 52      ],
 53      [
 54        0.4,
 55        0.3999999999999999,
 56        -0.3999999999999999
 57      ]
 58    ],
 59    "predicted_shifts": "lower +eps, upper -eps"
 60  },
 61  "closed_loop": [
 62    {
 63      "disturbance_amplitude": 0,
 64      "clip": {
 65        "max_violation": 0.0091926752499909,
 66        "mean_intervention": 0.0,
 67        "min_margin": 2.0,
 68        "bound_misses": 0
 69      },
 70      "ordinary_cbf": {
 71        "max_violation": 0.0,
 72        "mean_intervention": 0.09209308024722863,
 73        "min_margin": 0.1766289802259342,
 74        "bound_misses": 0
 75      },
 76      "robust_cbf": {
 77        "max_violation": 0.0,
 78        "mean_intervention": 0.13776788040696045,
 79        "min_margin": 0.22067309816553404,
 80        "bound_misses": 0
 81      }
 82    },
 83    {
 84      "disturbance_amplitude": 0.1,
 85      "clip": {
 86        "max_violation": 0.06395505507387211,
 87        "mean_intervention": 0.0,
 88        "min_margin": 2.0,
 89        "bound_misses": 0
 90      },
 91      "ordinary_cbf": {
 92        "max_violation": 0.0,
 93        "mean_intervention": 0.09246815894123397,
 94        "min_margin": 0.11050318146056881,
 95        "bound_misses": 0
 96      },
 97      "robust_cbf": {
 98        "max_violation": 0.0,
 99        "mean_intervention": 0.1389727859275357,
100        "min_margin": 0.15304052618469477,
101        "bound_misses": 0
102      }
103    },
104    {
105      "disturbance_amplitude": 0.2,
106      "clip": {
107        "max_violation": 0.12939310651646063,
108        "mean_intervention": 0.0,
109        "min_margin": 2.0,
110        "bound_misses": 0
111      },
112      "ordinary_cbf": {
113        "max_violation": 0.0,
114        "mean_intervention": 0.0942448629398561,
115        "min_margin": 0.019811605553199385,
116        "bound_misses": 0
117      },
118      "robust_cbf": {
119        "max_violation": 0.0,
120        "mean_intervention": 0.14117172847506754,
121        "min_margin": 0.060944574540135577,
122        "bound_misses": 0
123      }
124    },
125    {
126      "disturbance_amplitude": 0.3,
127      "clip": {
128        "max_violation": 0.19918425457061661,
129        "mean_intervention": 0.0,
130        "min_margin": 2.0,
131        "bound_misses": 0
132      },
133      "ordinary_cbf": {
134        "max_violation": 0.0,
135        "mean_intervention": 0.0934669684939966,
136        "min_margin": -0.1600706677047814,
137        "bound_misses": 0
138      },
139      "robust_cbf": {
140        "max_violation": 0.0,
141        "mean_intervention": 0.14311198618412072,
142        "min_margin": -0.0730810251499121,
143        "bound_misses": 0
144      }
145    },
146    {
147      "disturbance_amplitude": 0.4,
148      "clip": {
149        "max_violation": 0.26982926122464734,
150        "mean_intervention": 0.0,
151        "min_margin": 2.0,
152        "bound_misses": 330
153      },
154      "ordinary_cbf": {
155        "max_violation": 0.0,
156        "mean_intervention": 0.08429263047565698,
157        "min_margin": -0.4655228139022083,
158        "bound_misses": 330
159      },
160      "robust_cbf": {
161        "max_violation": 0.0,
162        "mean_intervention": 0.138539061566231,
163        "min_margin": -0.3429388500012269,
164        "bound_misses": 330
165      }
166    },
167    {
168      "disturbance_amplitude": 0.5,
169      "clip": {
170        "max_violation": 0.3378564279793159,
171        "mean_intervention": 0.0,
172        "min_margin": 2.0,
173        "bound_misses": 765
174      },
175      "ordinary_cbf": {
176        "max_violation": 0.0,
177        "mean_intervention": 0.07706391804602254,
178        "min_margin": -0.8207471685437446,
179        "bound_misses": 765
180      },
181      "robust_cbf": {
182        "max_violation": 0.0,
183        "mean_intervention": 0.12961441918895758,
184        "min_margin": -0.6686064464324026,
185        "bound_misses": 765
186      }
187    },
188    {
189      "disturbance_amplitude": 0.6,
190      "clip": {
191        "max_violation": 0.39818343793944866,
192        "mean_intervention": 0.0,
193        "min_margin": 2.0,
194        "bound_misses": 1213
195      },
196      "ordinary_cbf": {
197        "max_violation": 0.01201068098589908,
198        "mean_intervention": 0.07152283853905787,
199        "min_margin": -1.1811752636081865,
200        "bound_misses": 1213
201      },
202      "robust_cbf": {
203        "max_violation": 0.0,
204        "mean_intervention": 0.11631111745646536,
205        "min_margin": -1.1079472421296477,
206        "bound_misses": 1213
207      }
208    },
209    {
210      "disturbance_amplitude": 0.8,
211      "clip": {
212        "max_violation": 0.4589672174003294,
213        "mean_intervention": 0.0,
214        "min_margin": 2.0,
215        "bound_misses": 1983
216      },
217      "ordinary_cbf": {
218        "max_violation": 0.10248696514183786,
219        "mean_intervention": 0.0629673388508905,
220        "min_margin": -1.9186002411127068,
221        "bound_misses": 1983
222      },
223      "robust_cbf": {
224        "max_violation": 0.05609322303779174,
225        "mean_intervention": 0.0973398247649854,
226        "min_margin": -2.0004558044859664,
227        "bound_misses": 1983
228      }
229    },
230    {
231      "disturbance_amplitude": 1.0,
232      "clip": {
233        "max_violation": 0.4226248436458355,
234        "mean_intervention": 0.0,
235        "min_margin": 2.0,
236        "bound_misses": 2469
237      },
238      "ordinary_cbf": {
239        "max_violation": 0.1909981502689606,
240        "mean_intervention": 0.05567132310642432,
241        "min_margin": -2.3468801067817178,
242        "bound_misses": 2469
243      },
244      "robust_cbf": {
245        "max_violation": 0.11194821406588606,
246        "mean_intervention": 0.08111872641930463,
247        "min_margin": -2.58942968967079,
248        "bound_misses": 2469
249      }
250    }
251  ],
252  "notes": "Disturbance bound is eps=.35; actual sinusoid peak equals amplitude. Empty robust intervals use closest actuator endpoint emergency fallback."
253}