Skip to content
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

ADMM-based solvers only accept non-diagonal Q and R #22

Open
pablokrupa opened this issue Sep 3, 2021 · 2 comments
Open

ADMM-based solvers only accept non-diagonal Q and R #22

pablokrupa opened this issue Sep 3, 2021 · 2 comments
Labels
fix Things that need to be fixed

Comments

@pablokrupa
Copy link
Member

The functions that compute the ingredients (for instance, compute_ellipMPC_ADMM_ingredients.m) currently assume that Q and R are diagonal, which is not necessary. It should be changed so that they can be non-diagonal.

This change will also require changing the part of the C code of each solver where vector q is updated (see for instance code_ellipMPC_ADMM_C.c).

@pablokrupa pablokrupa added the fix Things that need to be fixed label Sep 3, 2021
@pablokrupa
Copy link
Member Author

Right now they need to be diagonal in the laxMPC, equMPC and ellipMPC solvers due to the way in which z_k is computed (I assume that the inverse of the Hessian is diagonal to speed up computations).

I have started working on making a version for non-diagonal matrices in the branch dev/non_diag, but I will not continue pursuing this line for now.

@pablokrupa
Copy link
Member Author

Support for non-diagonal Q and R matrices was added to the MPCT/EADMM solver in f030de1. A similar approach could probably be used in the other ADMM-based solvers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix Things that need to be fixed
Projects
None yet
Development

No branches or pull requests

1 participant