This is the official code for CoRL 2024 work "Verification of Neural Control Barrier Functions with Symbolic Derivative Bounds Propagation".
We have released the Python implementation of data collection, neural CBF model training, and visualization to further facilitate the research community. Checkout Python Implementation for details.
The code is based on Julia and is tested with Julia v1.9.4. Check here to install Julia environment. Install ModelVerification.jl
from this repo and check out the branch verify_gradient
here. Install RobotZoo.jl
from this repo and TaylorModels.jl
from here.
To collect data for each robot dynamics, see Jupyter file collect_data.ipynb
for details.
For the model training under Point Robot, see Jupyter file train_naive_point.ipynb
for regular training and train_adv_point.ipynb
for adversarial training. For the model training under Dubins Car, see Jupyter file train_naive_car.ipynb
for regular training and train_adv_car.ipynb
for adversarial training. For the model training under Planar Quadrotor, see Jupyter file train_naive_planar_quad.ipynb
for regular training and train_adv_planar_quad.ipynb
for adversarial training.
For the verificaiton under Dubins Car, see Jupyter file verify_car.ipynb
. Similarly, verify_point.ipynb
is for point robot and verify_planar_quad.ipynb
is for planar quadrotor. Replace the corresponding path with naive
or adv
for different pre-trained models. Also, max_iter=1
in BFS
mehtod to specify NNCB-IBP and otherwise, it is for BBV baseline. There is a tutorial example on ModelVerification.jl
regarding verifying neural control barrier function here.
If you find the repo useful, please cite:
H. Hu, Y. Yang, T. Wei and C. Liu "Verification of Neural Control Barrier Functions with Symbolic Derivative Bounds Propagation", Conference on Robot Learning (CoRL). PMLR, 2024
@InProceedings{pmlr-v270-hu25a,
title = {Verification of Neural Control Barrier Functions with Symbolic Derivative Bounds Propagation},
author = {Hu, Hanjiang and Yang, Yujie and Wei, Tianhao and Liu, Changliu},
booktitle = {Proceedings of The 8th Conference on Robot Learning},
pages = {1797--1814},
year = {2024},
volume = {270},
publisher = {PMLR},
}