Open svigerske opened 4 years ago
Attachment testQPOASES.zip by gabrielenava created at 2018-08-02 17:16:13
FYI @gabrielenava @GiulioRomualdi @MiladShafiee
This issue is quite old by now, but in case someone else runs into this with a deadline too close to try switching to another solver (like me!), I ran into the same error with a very similar problem setup (but using the C++ interface) and have seemingly been able to resolve it. My problem included a constraint of the form Ax = b
, where A
is 6x9, and the problem is known to be feasible.
To fix it, I set the solver options to "reliable". In C++, this is:
qpOASES::Options options;
options.setToReliable();
// qp is my QProblem object
qp.setOptions(options);
(see page 30 of the user manual).
Thanks a lot @adamheins !
I have the same issue. setting
options.setToReliable();
didn't really solve the problem for me. I can solve a Problem with 148 constraints but as soon as the number of constraints is increasing, say to 180, I again get the error.
Issue created by migration from Trac.
Original creator: gabrielenava
Original creation time: 2018-08-02 17:15:32
Assignee: ferreau
Version: 3.2.0
Hi all, I think I may have found a bug inside the qpOASES algorithm when performing a constrained optimization with equality constraints in MATLAB. In particular, I considered the following optimization problem:
min |u|^2
s.t. Au = 0
where u is a [29 1] vector and A is a [6 29] matrix with rank 6. In theory, this problem is well posed and the solution is u = 0. However, for some valid constraint matrices A qpOASES cannot find a solution, and returns the following error:
Attached to this script there is a matlab code with an example. The constraint matrix is stored in a .mat file (attached to the issue, too). Also, relaxing the problem with inequality constraints of the form:
min |u|^2
did not solve the issue. As an additional information, I noted that in case the problem is really unfeasible the error from qpOASES is different.
May you help me in understanding this issue? Thanks in advance.