Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 1.53 KB

MPC_Solvers.md

File metadata and controls

25 lines (19 loc) · 1.53 KB

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](./forcespro solver)

Available Solvers

  • Acados
  • [FORCESPRO](./forcespro solver)

Available Specific Implementations

  • [Acados Pacejka MPCC Solver](./acados solver)
  • [Acados Pacejka Tracking MPC Solver](./acados tracking mpc solver)
  • [FORCESSPRO MPCC Solver](./forcespro mpcc solver)