Optimal and Robust Control
BE3M35ORR + B3M35ORR + BE3M35ORCSoftware tools for numerical optimal control
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
GPOPS-II
- 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.