Skip to content

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.

image

Building Solvers

  1. Acados:
    In order to generate an Acados solver in CRS, you need to run the corresponding create_solver script: ./script/create_solver.sh
    As an example, if you want to build the nominal MPC solver:
    navigate to the directory roscd acados_pacejka_solver and execute ./script/create_solver.sh.

  2. 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

Available Solvers

Available Specific Implementations