Production code testing MPC acados

Hi :wave:

I hope this message finds the acados community well! :rocket:

We’re currently utilizing acados in a production environment to control an autonomous inspection drone, and I wanted to express my gratitude to all the dedicated developers who make this incredible tool possible. :raised_hands:

I’ve run into a testing challenge in our codebase, particularly when it comes to verifying if we’re setting values correctly. We generate the solver in Python and then employ it in C++, dealing with tasks such as setting current states, constraint values, weights, references, and obtaining control input.

For instance, we’ve successfully tested the warm start functionality for our controller, thanks to the convenient getter and setter for the x and u at all stages. However, I’m facing a hurdle when it comes to testing other aspects like weights, constraint bounds, and yrefs, as there doesn’t seem to be a direct getter available (or I might have overlooked it).

I’m curious to learn how other developers in the acados community approach testing their solver codebase. We’ve implemented some runtime safety measures to ensure reasonable control input, but refining our testing strategy for these finer details is proving to be a valuable challenge—especially considering the limited documentation on the C interface side.

I’d greatly appreciate any insights, experiences, or tips that you, as developers, might have in testing acados controllers. Let’s collaborate and work towards a robust testing methodology to ensure our controllers are error-free.

Thanks a ton for your time and contributions!

Rinto :robot: