-
Notifications
You must be signed in to change notification settings - Fork 5
Merge LQMPC (Gaussian) into master #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
i3ta
wants to merge
29
commits into
master
Choose a base branch
from
mpc-merge
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The commit that the vcpkg submodule was linked to depended on a version of zlib that was downloaded from the zlib website that is outdated. This commit updates the vcpkg to the newest version, which gets zlib directly from the github repository.
Roughly implemented the example code for MPC controller, based on the example from cloctools/lqmpc.
- The code for the MpcController is partially implemented (only necessary methods have been added, getters and setters need to be added) - Code still needs to be debugged (there are multiple memory leaks that need to be fixed)
Defined and renamed arma::SpMat<data_t> to the Sparse shorthand
…apper for OSQP that interfaces with Armadillo matrices
…es if problem is updated
Update OSQP Installation Process
…utReference method
Added MPC control for Poisson system, and added example to show it in action
Combining clones of kyle-mpc and aaron-implement-mpc
…erence, eg_plds_mpc WIP
Fixed the eg_glds_mpc example to remove unused code sections (imperfect model, disturbance) and modified output to include cost over time. Added output plotting matlab file.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implemented LQMPC in C++ using OSQP.
This PR adds an LQMPC implementation similar to the other LQR controllers. Functioning examples for Gaussian observations were also added for both controlling the state and the output. Partially functional implementations of LQMPC for Poisson observations are included, but the example (
eg_plds_mpc) does not work fully and still needs to be debugged.Changes
eg_glds_mpc: Same example aseg_glds_ctrlbut controlled with LQMPC with a perfect system and no disturbance, controlling the outputeg_lqmpc_ctrl: Same example as from the Python lqmpc repository, controlling the inputeg_plds_mpc: Same example aseg_plds_ctrlbut controlled with LQMPC; only partially functional. Also modified parts ofeg_plds_ctrlto produce the same trajectory and disturbance so the results of the two controllers can be compared