• This repository has been archived on 09/Jul/2022
  • Stars
    star
    199
  • Rank 196,105 (Top 4 %)
  • Language
  • License
    MIT License
  • Created over 4 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

"Safety-Critical Model Predictive Control with Discrete-Time Control Barrier Function" by J. Zeng, B. Zhang and K. Sreenath https://arxiv.org/abs/2007.11718

Status: This repository is archived. For latest work about discrete-time CBF, please refer to the collection repository.

MPC-CBF

We propose a control framework which unifies the model predictive control and control barrier functions, where terminal cost function serves as control Lyapunov functions for stability. This is the reference implementation of our paper:

Safety-Critical Model Predictive Control with Discrete-Time Control Barrier Function

PDF | Code: Double Integratror | Code: Car Racing

Jun Zeng, Bike Zhang and Koushil Sreenath

Citing

If you find this project useful in your work, please consider citing following work:

@inproceedings{zeng2021mpccbf,
  title={Safety-critical model predictive control with discrete-time control barrier function},
  author={Zeng, Jun and Zhang, Bike and Sreenath, Koushil},
  booktitle={2021 American Control Conference (ACC)},
  year={2021},
  volume={},
  number={},
  pages={3882-3889}
}

For analysis of feasibility, safety and computational complexity, please check out the following paper:

@inproceedings{zeng2021mpccbf-feasibility,
  title={Enhancing feasibility and safety of nonlinear model predictive control with discrete-time control barrier functions},
  author={Zeng, Jun and Li, Zhongyu and Sreenath, Koushil},
  booktitle={2021 Conference on Decision and Control (CDC)},
  year={2021},
  volume={},
  number={},
  pages={6137-6144}
}

Instructions

The 2D double integrator is assigned to reach the target position at origin while avoiding obstacles. We have three classes for different controllers: DCLFDCBF.m (DCLF-DCBF), MPCCBF.m (MPC-CBF) and MPCDC (MPC-DC), respectively.

Moreover, to illustrate the performance among them, we have:

  • test.m: Run DCLF-DCBF/MPC-CBF/MPC-DC respectively.
  • testGamma.m: Run analysis for different hyperparameter $\gamma$.
  • testHorizon.m: Run analysis for different horizon.
  • testBenchmark.m: Run analysis for some benchmark.

We illustrate the performance between DCLF-DCBF/MPC-DC/MPC-CBF

DCLF-DCBF MPC-DC (N=8)
MPC-CBF (N=1) MPC-CBF (N=8)

and also the safety performance for different numbers of horizon and hyperparameters

Different hyperparameter Different horizon

Dependencies

The packages needed for running the code are Yalmip and IPOPT.

We also provide the zipped version of precompiled .mex files for IPOPT in the folder packages in case you don't have it. Unzip that file and add those .mex files into your MATLAB path.

More Repositories

1

CBF-CLF-Helper

Matlab Interface for Control Barrier Function (CBF) and Control Lyapunov Function (CLF) based control methods.
MATLAB
243
star
2

GenLoco

Python
226
star
3

NMPC-DCLF-DCBF

A collection of work using nonlinear model predictive control (NMPC) with discrete-time control Lyapunov functions (CLFs) and control barrier functions (CBFs)
MATLAB
205
star
4

car-racing

A toolkit for testing control and planning algorithm for car racing.
Python
164
star
5

cbf

An open source repository for control, planning and navigation about control barrier functions.
Python
153
star
6

Lane-Change-CBF

Rule-Based Safety-Critical Control Design with Application to Autonomous Lane Change https://arxiv.org/abs/2103.12382
MATLAB
88
star
7

quadruped_nmpc_dcbf_duality

C++
83
star
8

prompt2walk

Code for Prompt a Robot to Walk with Large Language Models https://arxiv.org/abs/2309.09969
Python
78
star
9

isaac_berkeley_humanoid

Python
45
star
10

multiple-quadrotor-flexible-hose

Multiple quadrotors carrying a flexible hose: dynamics, differential flatness and control
MATLAB
37
star
11

CBF-Pointwise-Feasibility

"Safety-Critical Control using Optimal-decay Control Barrier Functions with Guaranteed Point-wise Feasibility" by J. Zeng, B. Zhang, Z. Li and K. Sreenath https://arxiv.org/pdf/2103.12375.pdf
MATLAB
25
star
12

berkeley_humanoid_description

OpenSCAD
16
star
13

ilqr-iterative-tasks

i2LQR: Iterative LQR for Iterative Tasks in Dynamic Environments (CDC 2023) https://arxiv.org/abs/2302.14246
Python
15
star
14

geometric-toolbox

Contains all the functions (such as hat map, rotations, transport map, etc.) used during the development of geometric mechanics and control of robotic systems.
MATLAB
15
star
15

Quad-Load

Geometric control and differential flatness of a quadrotor UAV with a cable-suspended load.
MATLAB
9
star
16

PPQL

Differential flatness based path planning with direct collocation on hybrid modes for a quadrotor with a cable-suspended payload (RA-L 2020)
MATLAB
6
star
17

dynamics_on_manifolds

Symbolic Computation of Dynamics on Smooth Manifolds
Scala
5
star
18

vo-polytope

Velocity Obstacle for Polytopic Collision Avoidance for Distributed Multi-Robot Systems (RA-L 2023)
Python
5
star
19

Quad-Load-Pulley

"Geometric Control and Differential Flatness of a Quadrotor UAV with Load Suspended from a Pulley" by J. Zeng, P. Kotaru and K. Sreenath https://ieeexplore.ieee.org/document/8815173
MATLAB
5
star
20

ball-and-beam-project

EE222/ME237 Nonlinear Systems, Spring 2022, Starter code for the course project.
MATLAB
4
star
21

Quad-Load-Offset

"Geometric Control of a Quadrotor with a Load Suspended from an Offset" by J. Zeng and K. Sreenath https://ieeexplore.ieee.org/document/8814939
MATLAB
3
star
22

depth_cbf

Point Cloud-Based Control Barrier Function Regression for Safe and Efficient Vision-Based Control
2
star