Probabilistic Safety under Arbitrary Disturbance Distributions using Piecewise-Affine Control Barrier Functions
This repository contains the safety filter implementations and experiments corresponding to the results in Section V of the paper "Probabilistic Safety under Arbitrary Disturbance Distributions using Piecewise-Affine Control Barrier Functions" by Matisse Teuwen, Mathijs Schuurmans and Panagiotis Patrinos.
Create a Python virtual environment (venv or conda).
Clone the repository, and from the root, run
pip install .to install our library. Reproducing the experiments from the paper
can be done using the scripts in the experiments directory as explained below.
All experiments from the paper can be reproduced using the scripts in ./experiments.
| Script | Section | Reproduces |
|---|---|---|
corridor_known_distribution.py |
V-A-1 | Table I (empirical exit probabilities) |
corridor_infeasibility.py |
V-A-1 | Figure 2 (σ–ε feasibility map) |
corridor_unknown_distribution.py |
V-A-2 | Table II (comparison with scenario and conformal methods) |
corridor_different_distributions.py |
V-A-2 | Figure 3 (comparison different noise distributions (Gaussian, Laplace, Student-t)) |
| Script | Reproduces |
|---|---|
path_planning_plot.py |
Figure 4 (path planning example) |
path_planning_timings.py |
Timing statistics of Algorithm 1 vs. MIQP |
miqp_solution_quality_compare.py |
Suboptimality of Algorithm 1 vs. MIQP |
If you use this code, please cite:
@article{teuwen2025-pwa-cbf,
title = "Probabilistic safety under arbitrary disturbance
distributions using piecewise-affine control barrier
functions",
author = "Teuwen, Matisse and Schuurmans, Mathijs and Patrinos,
Panagiotis",
month = dec,
year = 2025,
archivePrefix = "arXiv",
primaryClass = "math.OC",
eprint = "2512.04194"
}

