CasADi

Framework for building algorithms for optimization, simulation and optimal control. It is heavily based on algorithmic differentiation (AD, also called automatic differentiation). It is free and open source, downloadable at https://web.casadi.org/. Callable from C++, Python and Matlab. A short tutorial on using CasADi for optimal control design: https://web.casadi.org/blog/ocp/. Quite in the spirit of our homework (or the other way around – our homework in the spirit of this tutorial :-) Despite the availability of this control oriented tutorial and other example, CasADi on its own is not a tool for control design. It is a framework within which such tools/solver can be conveniently created. There are actually quite a few such projects that are based on CasADi, see acados, Rockit, OpenOCL. If you do not feel like writing your own solvers for your optimal control problems, you may want to have a look at these packages.

Acados

Fast and embedded solvers for nonlinear optimal control. Free and open source. Get from https://github.com/acados/acados. Interface for C, Python, Matlab, Octave. A recent paper

  • Verschueren, Robin, Gianluca Frison, Dimitris Kouzoupis, Jonathan Frey, Niels van Duijkeren, Andrea Zanelli, Branimir Novoselnik, Thivaharan Albin, Rien Quirynen, and Moritz Diehl. “Acados—a Modular Open-Source Framework for Fast Embedded Optimal Control.” Mathematical Programming Computation 14, no. 1 (March 1, 2022): 147–83. https://doi.org/10.1007/s12532-021-00208-8.
Rockit

An Optimal Control Problem abstraction class, built on top of CasADi's Opti. Made by KU Leuven MECO research team. https://gitlab.kuleuven.be/meco-software/rockit.

GPOPS-II

Patterson, Michael A, and Anil V Rao. A General-Purpose MATLAB Software for Solving Multiple-Phase Optimal Control Problems (version 2.3). Commercial, but free academic license available https://www.gpops2.com/. See also the paper

  • Patterson, Michael A., and Anil V. Rao. “GPOPS-II: A MATLAB Software for Solving Multiple-Phase Optimal Control Problems Using Hp-Adaptive Gaussian Quadrature Collocation Methods and Sparse Nonlinear Programming.” ACM Trans. Math. Softw. 41, no. 1 (October 2014): 1:1-1:37. https://doi.org/10.1145/2558904.
PROPT

Matlab Toolbox for optimal control, ODE and DAE. Commercial. http://tomdyn.com/

Tora.jl

Trajectory Optimization for Robot Arms. https://juliarobotics.org/TORA.jl/stable/.

TrajectoryOptimization.jl

Julia package for trajectory optimization. Free and open source, available at https://github.com/RoboticExplorationLab/TrajectoryOptimization.jl. Build on top of their ALTRO solver. See the tutorial.

Solvers for nonlinear programming

  • SNOPT
  • KNITRO - commercial
  • IPOPT - free and open source, interfaces to C, C++, Fortran, Java, Python, Matlab, Julia, ... Popular in the academic research community.
  • fmincon - standard NLP solver in Optimization Toolbox for Matlab
Naposledy změněno: středa, 6. dubna 2022, 16.30