Name | Citation | Language | License | Derivatives | Discretization | Implicit Dynamics | Solvers | Project Website |
---|---|---|---|---|---|---|---|---|
Casadi [1] | [@Andersson2013] | C++, Python, Octave, | LGPL | Automatic differentiation | None | Yes | IPOPT, WORHP, SNOPT, KNITRO | Casadi Website |
DIDO | [@Ross2002] | Matlab | Commercial | Analytic | Pseudospectral | Yes | built-in | DIDO Website |
DIRCOL | [@vonStryk1993] | Fortran | Non-commercial | Finite differences | Piecewise linear/cubic | Yes | NPSOL, SNOPT | DIRCOL Website |
DYNOPT | [@Cizniar2005] | Matlab | Custom Open Source, Non-commercial | Must be supplied by user | Pseudospectral | Mass matrix | fmincon | DYNOPT Code and Documentation |
FROST | [@Hereid2017] | Matlab, Mathematica | BSD 3-Clause | Analytic | ? | ? | IPOPT, fmincon | FROST Documentation |
GESOP | [@Gath2001] | Matlab, C, Fortan, Ada | Commercial | ? | Pseudospectral | No | SLLSQP, SNOPT, SOCS | Astos Solutions Gmbh |
GPOPS | [@PattersonRao2014] | Matlab | Commercial | Automatic differentiation | Pseudospectral | No | SNOPT, IPOPT | GPOPS Website |
opty | NA | Python | BSD 2-Clause | Analytic | Euler, Midpoint | Yes | IPOPT | opty Documentation |
OTIS | [@Hargraves1987] | Fortran | US Export Controlled | ? | Gauss-Labatto, Pseudospectral | Yes | SNOPT | OTIS Website |
PROPT | [@Rutquist2010] | Matlab | Commercial | Analytic | Pseudospectral | Yes | SNOPT, KNITRO | TOMDYN Website |
PSOPT | [@Becerra2010] | C++ | GPL | Automatic differentiation, Sparse finite differences | Pseudospectral, RK | Yes | IPOPT, SNOPT | PSOPT Website |
SOCS | [@Betts2010] | Fortran | Commercial | Finite differences | Euler, RK, & others | Yes | built-in | SOCS Documentation |
[1] | Casadi does not have a built in direct collocation transcription but includes examples which show how to do so for specific problems. |