/sablas

Primary LanguagePython

Safe Control for Black-box Dynamical Systems via Neural Barrier Certificates

Installation

Clone the repository:

git clone https://github.com/Zengyi-Qin/adacbf.git

Install PyTorch>=1.9. GPU is not required, but recommended for training the ship controller. Then install other dependencies:

pip install numpy matplotlib tqdm

Testing Pretrained Models

Download data.zip from this link and unzip in the main folder. It contains the estimated dynamics of the models and the neural network weights for the controllers and control barrier functions.

Drone Control

python scripts/test_drone.py --vis 1

Ship Control

Testing in a random environment:

python scripts/test_ship.py --vis 1 --env ship

Testing in a river:

python scripts/test_ship.py --vis 1 --env river

Training

Drone

Since we assume that the system is a black box, we need to first learn the system dynamics from sampled data:

python scripts/sysid_drone.py

Then we train the control barrier function and controller:

python scripts/train_drone.py

Ship

First learn the dynamics from sampled data:

python scripts/sysid_ship.py

Then train the control barrier function and controller:

python scripts/train_ship.py

We use random environments in training. The trained controller can be tested in different environments.