Some information are from jkoendev/optimal-control-literature-software: List of literature and software for optimal control and numerical optimization.
List of software packages for optimal control
Survey papers
- F. Topputo and C. Zhang, “Survey of Direct Transcription for Low-Thrust Space Trajectory Optimization with Applications,” Abstract and Applied Analysis, vol. 2014, Article ID 851720, 15 pages, 2014. [edited
Software
NiceHans D. Mittelmann
mintOC
(good) Python, Matlab, Cacados/acados: Fast and embedded solvers for nonlinear optimal control
(pass) AMPL with TACO extension (commercial)
(pass) Forces (commercial)
(pass) gPROMS (commercial)
(pass) Mujoco, domain specific for robotics/contact, simulator (commercial)
(pass) Optimica, Dymola (commercial)
(pass) PROPT (commercial)
Python
(good)BYU-PRISM/GEKKO: GEKKO Python for Machine Learning and Dynamic Optimization
(good)casadi/casadi: CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
ethz-adrl/control-toolbox: The Control Toolbox - An Open-Source C++ Library for Robotics, Optimal and Model Predictive Control
Dynamic Optimization with pyomo.DAE — Pyomo 6.4.1 documentation
OpenMDAO/dymos: Open Source Optimization of Dynamic Multidisciplinary Systems
Shunichi09/PythonLinearNonlinearControl: PythonLinearNonLinearControl is a library implementing the linear and nonlinear control theories in python.
Examples — opty 1.2.0.dev0 documentation
wanxinjin/Pontryagin-Differentiable-Programming: A unified end-to-end learning and control framework that is able to learn a (neural) control objective function, dynamics equation, control policy, or/and optimal trajectory in a control system.
C++
GoodPSOPT/psopt: PSOPT Optimal Control Software
Very GoodDownload – Bocop – The optimal control solver
loco-3d/crocoddyl: Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on various efficient Differential Dynamic Programming (DDP)-like algorithms
towr, domain specific for legged robots [github]
Julia
infiniteopt/InfiniteOpt.jl: An intuitive modeling interface for infinite-dimensional optimization problems.
RoboticExplorationLab/TrajectoryOptimization.jl: A fast trajectory optimization library written in Julia
FHoltorf/MarkovBounds.jl: A Julia package for the computation of hard, theoretically guaranteed bounds on the moments of jump-diffusion processes with polynomial data
odow/SDDP.jl: Stochastic Dual Dynamic Programming in Julia
ai4energy/OptControl.jl: A tool to solve optimal control problem
thowell/DirectTrajectoryOptimization.jl: A Julia package for constrained trajectory optimization using direct methods.
baggepinnen/DifferentialDynamicProgramming.jl: A package for solving Differential Dynamic Programming and trajectory optimization problems.
Matlab
ICLOCS2 [github] [web]
DIDO
GPOCS2Home | GPOPS-II - Next-Generation Optimal Control Software
Everglow0214/The_Adaptive_Dynamic_Programming_Toolbox
nurkanovic/nosnoc: NOSNOC is an open source software package for NOnSmooth Numerical Optimal Control.
OpenOCL/OpenOCL: Open Optimal Control Library for Matlab. Trajectory Optimization and non-linear Model Predictive Control (MPC) toolbox.
MatthewPeterKelly/OptimTraj: A trajectory optimization library for Matlab
acado/acado: ACADO Toolkit is a software environment and algorithm collection for automatic control and dynamic optimization. It provides a general framework for using a great variety of algorithms for direct optimal control, including model predictive control, state and parameter estimation and robust optimization.
Automatic differentiation
3.3. Optimal Control
eleurent/phd-bibliography: References on Optimal Control, Reinforcement Learning and Motion Planning
mintOC
Julia: Jump + InfiniteOpt
Jump is powerfull!!!
jump-dev/JuMP.jl: Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)
InfiniteOpt is powerfull!!!
pulsipher/InfiniteOpt.jl: An intuitive modeling interface for infinite-dimensional optimization problems.
GAMS unified softwareGAMS Documentation Center
GAMS-dev/gams.jl: A MathOptInterface Optimizer to solve JuMP models using GAMS
Matlab: Yalmip unifiedYALMIP
Python: unifiedPyomo/pyomo: An object-oriented algebraic modeling language in Python for structured optimization problems.
Solver Manuals
Julia:
martinbiel/StochasticPrograms.jl: Julia package for formulating and analyzing stochastic recourse models.
odow/SDDP.jl: Stochastic Dual Dynamic Programming in Julia
PSORLab/EAGO.jl: A development environment for robust and global optimization
JuliaSmoothOptimizers/PDENLPModels.jl: A NLPModel API for optimization problems with PDE-constraints
JuliaControl
JuliaMPC/NLOptControl.jl: nonlinear control optimization tool
Python:
casadi is powerful!
python-control/python-control: The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems.
Shunichi09/PythonLinearNonlinearControl: PythonLinearNonLinearControl is a library implementing the linear and nonlinear control theories in python.
Matlab:
OpenOCL/OpenOCL: Open Optimal Control Library for Matlab. Trajectory Optimization and non-linear Model Predictive Control (MPC) toolbox.
jkoendev/optimal-control-literature-software: List of literature and software for optimal control and numerical optimization.