OpenSim Moco
0.1.0-preprint
Solve optimal control problems with OpenSim models
|
Once you have built your CasOC::Problem, create a CasOC::Solver to configure how you want to solve the problem, then invoke solve() to solve your problem.
This class assumes that the problem is solved using direct collocation.
#include <Moco/Moco/MocoCasADiSolver/CasOCSolver.h>
Public Member Functions | |
Solver (const Problem &problem) | |
void | setNumMeshIntervals (int numMeshIntervals) |
void | setMesh (std::vector< double > mesh) |
const std::vector< double > & | getMesh () const |
void | setTranscriptionScheme (std::string scheme) |
const std::string & | getTranscriptionScheme () const |
std::string | getDynamicsMode () const |
void | setMinimizeLagrangeMultipliers (bool tf) |
bool | getMinimizeLagrangeMultipliers () const |
void | setLagrangeMultiplierWeight (double weight) |
double | getLagrangeMultiplierWeight () const |
void | setImplicitMultibodyAccelerationBounds (Bounds bounds) |
Bounds | getImplicitMultibodyAccelerationBounds () const |
bool | getMinimizeImplicitMultibodyAccelerations () const |
void | setMinimizeImplicitMultibodyAccelerations (bool tf) |
double | getImplicitMultibodyAccelerationsWeight () const |
void | setImplicitMultibodyAccelerationsWeight (double weight) |
void | setImplicitAuxiliaryDerivativeBounds (Bounds bounds) |
Bounds | getImplicitAuxiliaryDerivativeBounds () const |
bool | getMinimizeImplicitAuxiliaryDerivatives () const |
void | setMinimizeImplicitAuxiliaryDerivatives (bool tf) |
double | getImplicitAuxiliaryDerivativesWeight () const |
void | setImplicitAuxiliaryDerivativesWeight (double weight) |
void | setInterpolateControlMidpoints (bool tf) |
Whether or not to constrain control values at mesh interval midpoints by linearly interpolating control values from mesh interval endpoints. More... | |
bool | getInterpolateControlMidpoints () const |
void | setOptimSolver (std::string optimSolver) |
const std::string | getOptimSolver () const |
void | setFiniteDifferenceScheme (const std::string &scheme) |
The finite difference scheme to be set on all CasOC::Function objects. More... | |
std::string | getFiniteDifferenceScheme () const |
The finite difference scheme to be set on all CasOC::Function objects. More... | |
void | setCallbackInterval (int callbackInterval) |
int | getCallbackInterval () const |
void | setSparsityDetection (const std::string &setting) |
"none" to use block sparsity (treat all CasOC::Functions as dense; default), "initial-guess", or "random". | |
void | setSparsityDetectionRandomCount (int count) |
If sparsity detection is "random", use this number of random iterates to determine sparsity. | |
void | setWriteSparsity (const std::string &setting) |
If this is set to a non-empty string, the sparsity patterns of the optimization problem derivatives are written to files whose names use setting as a prefix. | |
std::string | getWriteSparsity () const |
void | setParallelism (std::string parallelism, int numThreads) |
Use this to tell CasADi to evaluate differential-algebraic equations, path constraints, integrands, etc. More... | |
std::pair< std::string, int > | getParallelism () const |
void | setPluginOptions (casadi::Dict opts) |
const casadi::Dict & | getPluginOptions () const |
void | setSolverOptions (casadi::Dict solverOptions) |
const casadi::Dict | getSolverOptions () const |
Iterate | createInitialGuessFromBounds () const |
The contents of this iterate depends on the transcription scheme. | |
Iterate | createRandomIterateWithinBounds () const |
The contents of this iterate depends on the transcription scheme. | |
Solution | solve (const Iterate &guess) const |
|
inline |
The finite difference scheme to be set on all CasOC::Function objects.
|
inline |
The finite difference scheme to be set on all CasOC::Function objects.
|
inline |
Whether or not to constrain control values at mesh interval midpoints by linearly interpolating control values from mesh interval endpoints.
void CasOC::Solver::setParallelism | ( | std::string | parallelism, |
int | numThreads | ||
) |
Use this to tell CasADi to evaluate differential-algebraic equations, path constraints, integrands, etc.
in parallel across grid points. "parallelism" is passed on directly to the "parallelism" argument of casadi::MX::map(). CasADi supports "serial", "openmp", "thread", and perhaps some other options.