A goal is term in the cost functional to be minimized, or a set of endpoint constraints that must lie within provided bounds.
Goals depend on the phase's initial and final states and controls, and optionally on the integral of a quantity over the phase. Not all goals support endpoint constraint mode; see getSupportsEndpointConstraint(). If a goal does support endpoint constraint mode, then the default mode is available via getMode(). Use endpoint constraint mode if you require the goal to be met strictly and do not want to allow a trade-off between this goal and other goals. The calculation of the goal may differ between cost and endpoint constraint modes; cost mode may require that outputs are squared, for example.
- For developers
- Every time the problem is solved, a copy of this goal is used. An individual instance of a goal is only ever used in a single problem. Therefore, there is no need to clear cache variables that you create in initializeImpl(). Also, information stored in this goal does not persist across multiple solves.
- Examples:
- exampleSlidingMassAdvanced.cpp.
|
| MocoGoal (std::string name) |
|
| MocoGoal (std::string name, double weight) |
|
void | setEnabled (bool enabled) |
| Set whether this goal is used in the problem.
|
|
bool | getEnabled () const |
|
void | setWeight (double weight) |
| In cost mode, the goal is multiplied by this weight. More...
|
|
double | getWeight () const |
|
void | setMode (std::string mode) |
| Set the mode property to either 'cost' or 'endpoint_constraint'. More...
|
|
std::string | getModeAsString () const |
| This returns the default mode of the goal, unless the user overrode the default using setMode(). More...
|
|
Mode | getMode () const |
|
bool | getModeIsCost () const |
|
bool | getModeIsEndpointConstraint () const |
|
Mode | getDefaultMode () const |
| Types of goals have a class-level default for whether they are enforced as a cost or endpoint constraint. More...
|
|
bool | getSupportsEndpointConstraint () const |
| Can this constraint be used in endpoint constraint mode?
|
|
const MocoConstraintInfo & | getConstraintInfo () const |
| Get bounds for the constraints when using this goal in endpoint constraint mode. More...
|
|
MocoConstraintInfo & | updConstraintInfo () |
|
int | getNumOutputs () const |
| Get the length of the return value of calcGoal().
|
|
int | getNumIntegrals () const |
| Get the number of integrals required by this cost. More...
|
|
SimTK::Real | calcIntegrand (const SimTK::State &state) const |
| Calculate the integrand that should be integrated and passed to calcCost(). More...
|
|
void | calcGoal (const GoalInput &input, SimTK::Vector &goal) const |
| In cost mode, the returned cost includes the weight, and the elements of the returned vector should be summed by the caller to obtain the total cost. More...
|
|
void | initializeOnModel (const Model &model) const |
| For use by solvers. This also performs error checks on the Problem.
|
|
void | printDescription (std::ostream &stream=std::cout) const |
| Print the name type and mode of this goal. More...
|
|
|
virtual void | initializeOnModelImpl (const Model &) const =0 |
| Perform any caching before the problem is solved. More...
|
|
void | setNumIntegralsAndOutputs (int numIntegrals, int numOutputs) const |
| Set the number of integral terms required by this goal and the length of the vector passed into calcGoalImpl(). More...
|
|
virtual Mode | getDefaultModeImpl () const |
|
virtual bool | getSupportsEndpointConstraintImpl () const |
|
virtual void | calcIntegrandImpl (const SimTK::State &state, double &integrand) const |
|
virtual void | calcGoalImpl (const GoalInput &input, SimTK::Vector &goal) const =0 |
| The Lagrange multipliers for kinematic constraints are not available.
|
|
virtual void | printDescriptionImpl (std::ostream &stream=std::cout) const |
| Print a more detailed description unique to each goal.
|
|
const Model & | getModel () const |
| For use within virtual function implementations.
|
|
double | calcSystemDisplacement (const SimTK::State &initial, const SimTK::State &final) const |
|