All Projects → HybridRobotics → MPC-CBF

HybridRobotics / MPC-CBF

Licence: MIT license
"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

Projects that are alternatives of or similar to MPC-CBF

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)
Stars: ✭ 38 (-64.15%)
Mutual labels:  model-predictive-control, ipopt, safety-critical-systems, mpc-control, obstacle-avoidance-algorithm, control-lyapunov-functions, control-barrier-functions
car-racing
A toolkit for testing control and planning algorithm for car racing.
Stars: ✭ 30 (-71.7%)
Mutual labels:  model-predictive-control, control-barrier-functions
CBF-CLF-Helper
Matlab Interface for Control Barrier Function (CBF) and Control Lyapunov Function (CLF) based control methods.
Stars: ✭ 79 (-25.47%)
Mutual labels:  control-lyapunov-functions, control-barrier-functions
mpc
Autonomous control of an USV using Model Predictive Control
Stars: ✭ 102 (-3.77%)
Mutual labels:  model-predictive-control
Self-Driving-Car-NanoDegree-Udacity
This repository contains code and writeups for projects and labs completed as a part of UDACITY's first of it's kind self driving car nanodegree program.
Stars: ✭ 29 (-72.64%)
Mutual labels:  model-predictive-control
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+776.42%)
Mutual labels:  model-predictive-control
autogenu-jupyter
An automatic code generator for nonlinear model predictive control (NMPC) and the continuation/GMRES method (C/GMRES) based numerical solvers for NMPC
Stars: ✭ 89 (-16.04%)
Mutual labels:  model-predictive-control
mpc-DL-controller
Deep Neural Network architecture as a predictive optimal controller for {HVAC+Solar cell + battery} disturbance afflicted system vs classic Model Predictive Control
Stars: ✭ 37 (-65.09%)
Mutual labels:  model-predictive-control
safe-exploration
Safe Exploration with MPC and Gaussian process models
Stars: ✭ 57 (-46.23%)
Mutual labels:  model-predictive-control
neural-mpc
No description or website provided.
Stars: ✭ 54 (-49.06%)
Mutual labels:  model-predictive-control
mpc
A software pipeline using the Model Predictive Control method to drive a car around a virtual track.
Stars: ✭ 119 (+12.26%)
Mutual labels:  model-predictive-control
ParNMPC
A Parallel Optimization Toolkit for Nonlinear Model Predictive Control (NMPC)
Stars: ✭ 173 (+63.21%)
Mutual labels:  model-predictive-control
emhass
emhass: Energy Management for Home Assistant, is a Python module designed to optimize your home energy interfacing with Home Assistant.
Stars: ✭ 54 (-49.06%)
Mutual labels:  model-predictive-control
ContactImplicitMPC.jl
Fast contact-implicit model-predictive control for robotic systems that make and break contact with their environments.
Stars: ✭ 51 (-51.89%)
Mutual labels:  model-predictive-control
Model-Predictive-Control
C++ implementation of Model Predictive Control(MPC)
Stars: ✭ 51 (-51.89%)
Mutual labels:  model-predictive-control
ddp-gym
Differential Dynamic Programming controller operating in OpenAI Gym environment.
Stars: ✭ 70 (-33.96%)
Mutual labels:  model-predictive-control
HashedExpression
Type-safe modelling DSL, symbolic transformation, and code generation for solving optimization problems.
Stars: ✭ 40 (-62.26%)
Mutual labels:  ipopt
o1heap
Constant-complexity deterministic memory allocator (heap) for hard real-time high-integrity embedded systems
Stars: ✭ 119 (+12.26%)
Mutual labels:  safety-critical-systems
panther
Perception-Aware Trajectory Planner in Dynamic Environments
Stars: ✭ 115 (+8.49%)
Mutual labels:  obstacle-avoidance-algorithm
CLF reactive planning system
This package provides a CLF-based reactive planning system, described in paper: Efficient Anytime CLF Reactive Planning System for a Bipedal Robot on Undulating Terrain. The reactive planning system consists of a 5-Hz planning thread to guide a robot to a distant goal and a 300-Hz Control-Lyapunov-Function-based (CLF-based) reactive thread to co…
Stars: ✭ 21 (-80.19%)
Mutual labels:  control-lyapunov-functions

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].