https://github.com/hybridrobotics/cbf-clf-helper
Matlab Interface for Control Barrier Function (CBF) and Control Lyapunov Function (CLF) based control methods.
https://github.com/hybridrobotics/cbf-clf-helper
cbf clf control-barrier-functions control-lyapunov-functions control-theory matlab safety-critical
Last synced: 16 days ago
JSON representation
Matlab Interface for Control Barrier Function (CBF) and Control Lyapunov Function (CLF) based control methods.
- Host: GitHub
- URL: https://github.com/hybridrobotics/cbf-clf-helper
- Owner: HybridRobotics
- Created: 2020-08-21T22:35:35.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-30T23:09:51.000Z (10 months ago)
- Last Synced: 2025-03-29T22:07:45.462Z (23 days ago)
- Topics: cbf, clf, control-barrier-functions, control-lyapunov-functions, control-theory, matlab, safety-critical
- Language: MATLAB
- Homepage:
- Size: 1.33 MB
- Stars: 298
- Watchers: 6
- Forks: 67
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CBF-CLF-Helper
Matlab library for Control Barrier Function (CBF) and Control Lyapunov Function (CLF) based control methods. The library is designed to let users easily implement safety controller based on CBFs and CLFs with Matlab. We provide:
- An easy interface for construction and simulation of nonlinear control-affine systems.
- Safety controllers including CLF-QP, CBF-QP, and CBF-CLF-QP as built-in functions.
- Demonstrations on toy examples.### Requirements
- Matlab
- [Symbolic Math Toolbox](https://www.mathworks.com/products/symbolic.html)### Usage
1. Create a class that inherit `CtrlAffineSys`.
2. Create a class function `defineSystem` and define your dynamics using the symbolic toolbox.
3. Create class functions `defineClf` and `defineCbf` and define your CLF and CBF in each function respectively using the same symbolic expressions.
4. To run the simulation or run the controller, create a class instance with parameters specified as a Matlab structure array, and use the built-in functions—dynamics and other controllers such as `ctrlCbfClfQp`, `ctrlClfQp`, etc.Please checkout the [Manual](https://github.com/HybridRobotics/CBF-CLF-Helper/blob/master/Manual_v1.pdf) for more details.
### Demos
Run files in the directory `demos` in Matlab.### Citation
```
@misc{choi2020cbfclfhelper,
author = {Jason J. Choi},
title = {CBF-CLF-Helper 1.0: Library for Control Barrier Function (CBF) and Control Lyapunov Function (CLF) based control methods},
year = {2020},
version = {1.0.0},
url = {https://github.com/HybridRobotics/CBF-CLF-Helper}
}
```### Notes
Unofficial 2.0 version is under development at [this repo](https://github.com/ChoiJangho/CBF-CLF-Helper).
If you want to see new demos, please check out this [folder](https://github.com/ChoiJangho/CBF-CLF-Helper/tree/feedback_linearization/demos).