Error status 3: ACADOS_MINSTEP. Any configuration to alleviate it?

Hi :wave:

I am using python to generate C code for a contouring controller using HPIPM, and then use that C code in a C++ environment. However, sometimes I get this error:

image

which translates to ACADOS_MINSTEP error, if I am not mistaken.

Now, the question I have is: I am using SQP_RTI, why does it say that there are multiple iterations? I thought only one iteration was used. Also, is there any option that I can modify in the nlp solver to alleviate the occurrence of this error? Or is it inherently linked to the complexity of the cost function I am working with?

Thanks,

Angel.

1 Like

Hi Angel,

In RTI, a single QP is solved within every solver call.
However, the QP solver itself (here HPIPM) is also an iterative method.
Error status 3 in HPIPM corresponds to “NaN in solution detected”.

I am not really sure why this happens and don’t know your problem formulation.
Maybe regularizing the Hessian can help.
https://docs.acados.org/python_api/#acados_template.acados_ocp.AcadosOcpOptions.levenberg_marquardt

Best,
Jonathan

1 Like

Hi again,

Thanks a lot! this solution does in fact solve my problem! The cost function is the one in this paper ([2108.13205] Model Predictive Contouring Control for Near-Time-Optimal Quadrotor Flight), Eq. (16).

For me to understand better, is the levenberg_marquardt term the lambda in this paper https://people.duke.edu/~hpgavin/ce281/lm.pdf Eq. (12)? Is there any way to choose a good value?

Thanks again!

Best,
Angel.

1 Like

Hi,

sorry for the late reply.

It is implemented here:

It works like in the paper you linked, but the factor is then multiplied with the time step length for the intermediate stages.

Best,
Jonathan

1 Like