All Projects → uzh-rpg → high_mpc

uzh-rpg / high_mpc

Licence: other
Policy Search for Model Predictive Control with Application to Agile Drone Flight

Programming Languages

c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to high mpc

ParNMPC
A Parallel Optimization Toolkit for Nonlinear Model Predictive Control (NMPC)
Stars: ✭ 173 (-42.14%)
Mutual labels:  mpc
tokucore
A Simple, Powerful, Modular Library for Bitcoin Blockchain As a Service(BAAS)
Stars: ✭ 61 (-79.6%)
Mutual labels:  mpc
mpc
Autonomous control of an USV using Model Predictive Control
Stars: ✭ 102 (-65.89%)
Mutual labels:  mpc
MOTION
An efficient, user-friendly, modular, and extensible framework for mixed-protocol secure multi-party computation with two or more parties
Stars: ✭ 59 (-80.27%)
Mutual labels:  mpc
PPML-Resource
Materials about Privacy-Preserving Machine Learning
Stars: ✭ 93 (-68.9%)
Mutual labels:  mpc
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 (-70.23%)
Mutual labels:  mpc
Model-Predictive-Control
C++ implementation of Model Predictive Control(MPC)
Stars: ✭ 51 (-82.94%)
Mutual labels:  mpc
simple-mpc
A GNU Emacs frontend to mpc.
Stars: ✭ 38 (-87.29%)
Mutual labels:  mpc
Model-Predictive-Control
This project is to use Model Predictive Control (MPC) to drive a car in a game simulator. The server provides reference waypoints (yellow line in the demo video) via websocket, and we use MPC to compute steering and throttle commands to drive the car. The solution must be robust to 100ms latency, since it might encounter in real-world application.
Stars: ✭ 93 (-68.9%)
Mutual labels:  mpc
Mpc Hc
MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
Stars: ✭ 3,567 (+1092.98%)
Mutual labels:  mpc
CasADi MPC MHE Python
This repository is an implementation of the work from Mohamed W. Mehrez. I convert the original code in MATLAB to the Python
Stars: ✭ 44 (-85.28%)
Mutual labels:  mpc
WeDPR-Lab-Core
Core libraries of WeDPR instant scenario-focused solutions for privacy-inspired business; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件
Stars: ✭ 147 (-50.84%)
Mutual labels:  mpc
rofi-mpd
shell script for mpd that uses rofi to add songs, albums, playlist, jump to a song in the current playlist etc.
Stars: ✭ 19 (-93.65%)
Mutual labels:  mpc
Model-Predictive-Control
Udacity Self-Driving Car Engineer Nanodegree. Project: Model Predictive Control
Stars: ✭ 50 (-83.28%)
Mutual labels:  mpc
conclave
Query compiler for secure multi-party computation.
Stars: ✭ 86 (-71.24%)
Mutual labels:  mpc
emp-tool
No description or website provided.
Stars: ✭ 155 (-48.16%)
Mutual labels:  mpc
verifiable mpc
A scheme that produces a zero-knowledge proof of correctness for an MPC computation. The scheme allows anyone, particularly someone external to the secure computation, to check the correctness of the output, while preserving the privacy properties of the MPC protocol.
Stars: ✭ 15 (-94.98%)
Mutual labels:  mpc
mpc
Secure Multi-Party Computation (MPC) with Go. This project implements secure two-party computation with Garbled circuit protocol.
Stars: ✭ 41 (-86.29%)
Mutual labels:  mpc
WeDPR-Lab-iOS-SDK
iOS SDK of WeDPR-Lab-Core; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件iOS SDK
Stars: ✭ 13 (-95.65%)
Mutual labels:  mpc
WeDPR-Lab-Java-SDK
Java SDK of WeDPR-Lab-Core; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件通用Java SDK
Stars: ✭ 18 (-93.98%)
Mutual labels:  mpc

Policy Search for Model Predictive Control with Application to Agile Drone Flight

High_MPC_Demo

Policy Search and Model Predictive Control (MPC) are two different paradigms for robot control: policy search has the strength of automatically learning complex policies using experienced data, while MPC can offer optimal control performance using models and trajectory optimization. An open research question is how to leverage and combine the advantages of both approaches. In this work, we provide an answer by using policy search for automatically choosing high-level decision variables for MPC, which leads to a novel policy-search-for-model-predictive-control framework. Specifically, we formulate the MPC as a parameterized controller, where the hard-to-optimize decision variables are represented as high-level policies. Such a formulation allows optimizing policies in a self-supervised fashion. We validate this framework by focusing on a challenging problem in agile drone flight: flying a quadrotor through fast-moving gates. Experiments show that our controller achieves robust and real-time control performance in both simulation and the real world. The proposed framework offers a new perspective for merging learning and control.

Publication

If you use this code in a publication, please cite the following papers:

Y. Song and D. Scaramuzza, "Policy Search for Model Predictive Control with Application to Agile Drone Flight," IEEE Transaction on Robotics (T-RO), 2021. [PDF][Video]

Y. Song and D. Scaramuzza, "Learning High-Level Policies for Model Predictive Control," IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Las Vegas, 2020. [PDF][Video]

@article{song2022policy,  
  author={Song, Yunlong and Scaramuzza, Davide},  
  journal={IEEE Transactions on Robotics},   
  title={Policy Search for Model Predictive Control With Application to Agile Drone Flight},   
  year={2022}, 
  pages={1-17},  
  doi={10.1109/TRO.2022.3141602}
}
@inProceedings{song2020learning,
  title={Learning High-Level Policies for Model Predictive Control},
  author={Song, Yunlong and Scaramuzza, Davide},
  booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year={2020}
}

Demonstrations

Please find a list of demonstrations in here and in the video below:

Method

Installation

Clone the repo

git clone [email protected]:uzh-rpg/high_mpc.git

Installation Dependencies:

cd high_mpc
pip install -r requirements.txt

Add the repo path to your PYTHONPATH by adding the following to your ~/.bashrc

export PYTHONPATH=${PYTHONPATH}:/path/to/high_mpc

Run

Standard MPC

cd high_mpc
python3 run_mpc.py

Learning a High-Level Policy

python3 run_highmpc.py

Learning a Deep High-Level Policy

# collect training data for the MLP
python3 run_deep_highmpc.py --option 0

# train the deep high-level policy with pre-collected data
python3 run_deep_highmpc.py --option 1

# evaluate the performance with pre-trained deep high-level policy
python3 run_deep_highmpc.py --option 2
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].