Solvers
Solvers¶
Optimization based controllers, such as the MPCC controller, require solvers to solve the optimization problem at each time-step within milliseconds. As of today, a variety of different solvers exists with different license requirements.
The goal of the MPC Solver class is to create a generic interface which can be used in any mpc controller. The respective implementation of the interface can then easily be changed (e.g. swapping ACADOS for another solver) without introducing breaking changes in the generic controller.
There are two solvers used in the CRS framework, the FORCESPRO solver and the open sourced Acados solver.

Building Solvers¶
-
Acados:
In order to generate an Acados solver in CRS, you need to run the correspondingcreate_solverscript:./script/create_solver.sh
As an example, if you want to build the nominal MPC solver:
navigate to the directoryroscd acados_pacejka_solverand execute./script/create_solver.sh. -
FORCESPRO:
In order to build a the FORCESPRO based solver you will need to have access to a license. Step-by-step instructions on how to generate the solver using a proxy server is given here: FORCESPRO Solver