Hardware implementation

Hello everyone.
I am interested in implementing control algorithms on embedded platforms. Searching across the web, I found several software that generates c-codes for targetted platforms. Some of them were ACADO and ACADOS. I have a fair amount of experience solving optimal control problems numerically using CASADI. As a next step, I want to experiment with hardware implementation.
I have 3 questions

  1. What is the simplest way to tinker and learn how to implement algorithms onboard? [suggested platform for hardware implementation]
  2. How I can use ACADO/ACADOS in the process?
  3. Since ACADOS uses CASADI, is it possible to implement our own numerical method to solve OCPs?
    (I have used ACADO in MatLab to run closed-loop simulations. I am from an aerospace background and I don’t much knowledge of hardware implementation. I am learning C/C++ as I found them to be required for hardware prototyping)
    Many thanks in advance


we are glad that you want to start using acados.
Let me try to answer your questions directly.

  1. Right now, the simplest way to tinker with the acados algorithms is using it through the matlab MEX or the python interface.
    To use acados on an embedded device, the most convenient way is to generate templated code from a json file.
    The json file workflow is currently only supported from Python, but we are currently working on an automatic json file generation from the matlab MEX interface.
    Thus, I suggest you to first play around with acados from Matlab.
    To update numeric data, such as bound values and weighting matrices online, you will have to use the C API.

  2. What is the difference between acados and ACADO?

  3. acados implements SQP-like algorithms that can be used with a variety of settings.
    It implements the numerical methods and it should be enough for you to use it with specific options.
    Of course you are free to contribute features to acados or implement your own numerical method.


Thanks. Let me do some more ground work based on what you have suggested.