Regularization parameters

Hello acados community :wave:

I have been playing around with acados on python for a project (MPC Control of Inverted pendulum) and am facing some problems with the swing up part of the pendulum.
The error I got during swing up is :

SQP_RTI: QP solver returned error status 3 QP iteration 43.

I came to understand that this might be because I had not regularized my Hessian. So, I added this bit of code

ocp.solver_options.regularize_method = 'CONVEXIFY' # regularization method 

But the error message still persists. If anyone has any idea how to solve this issue, please leave a message.
Cheers

1 Like

Just to add to this, I also noticed the term eps which is set to 1e-4 as a default value. I cannot seem to find any way to change or modify this value, or understand what this value means. Any help with this issue would also be greatly appreciated.

Hi,

I think a setter for the epsilon in the regularization module is indeed missing in the higher level interfaces.
Although the inverted pendulum example is pretty simple, QPs can get infeasible also for reasons other than the Hessian.
You can try to add Levenberg-Marquardt regularization term Python Interface — acados documentation
You are also welcome to add a setter for the epsilon and make a pull request.

Cheers!

1 Like

Hello,

Thank you for your reply. I tried doing the Levenberg-Marquardt regularization as well, but there was no noticeable difference in the output.
I think the solver is able to compute the solution but the error is due to some mechanical fault in the actual pendulum. This may cause some inputs to be skipped and can render the problem infeasible.

Thank you once again for your reply.
Cheers