Solve for the generalized coordinate coordinate forces (1 per degrees-of-freedom) That satisfy the unconstrained equations of motion given kinemtics: q, u, u_dot. More...
#include <InverseDynamicsSolver.h>
Public Member Functions | |
virtual | ~InverseDynamicsSolver () |
InverseDynamicsSolver (const Model &model) | |
Construct an InverseDynamics solver with the coordinate references as the goal of the InverseDynamics and (optional)constraint weight. | |
virtual SimTK::Vector | solve (SimTK::State &s, const SimTK::Vector &udot=SimTK::Vector(0)) |
Solve the inverse dynamics system of equations for generalized coordinate forces, Tau. | |
virtual SimTK::Vector | solve (const SimTK::State &s, const SimTK::Vector &udot, const SimTK::Vector &appliedMobilityForces, const SimTK::Vector_< SimTK::SpatialVec > &appliedBodyForces) |
Solve the inverse dynamics system of equations for generalized coordinate forces, Tau. | |
virtual SimTK::Vector | solve (SimTK::State &s, const FunctionSet &Qs, double time) |
Solve the inverse dynamics system of equations for generalized coordinate forces, Tau. | |
virtual void | solve (SimTK::State &s, const FunctionSet &Qs, const SimTK::Array_< double > ×, SimTK::Array_< SimTK::Vector > &genForceTrajectory) |
Same as above but for a given time series populate a Vector (trajectory)of generalized-coordinate forces. |
Solve for the generalized coordinate coordinate forces (1 per degrees-of-freedom) That satisfy the unconstrained equations of motion given kinemtics: q, u, u_dot.
The InverseDynamics equation: Tau = M*u_dot-G(q)-C(q,u)-A(q,u,t,x)
The InverseDynamicsSolver utiliizes efficient methods in Simbody(TM) to compute the generalized forces, Tau, without explicitly forming the Mass matrix, M. System gravity, G, centrifugal and coriolis, C, forces are computed internally. Caller provides q,u,t (supplied by the State), the desired u_dot and the applied loads, A. If applied loads are from forces in the model, these loads are automatically accounted for unless explicitly provided.
virtual OpenSim::InverseDynamicsSolver::~InverseDynamicsSolver | ( | ) | [inline, virtual] |
OpenSim::InverseDynamicsSolver::InverseDynamicsSolver | ( | const Model & | model | ) |
Construct an InverseDynamics solver with the coordinate references as the goal of the InverseDynamics and (optional)constraint weight.
An implementation of the InverseDynamicsSolver.
Defual is infitinet constraint weighting (i.e. rigidly enforced) during InverseDynamics.
model | to assemble |
virtual void OpenSim::InverseDynamicsSolver::solve | ( | SimTK::State & | s, | |
const FunctionSet & | Qs, | |||
const SimTK::Array_< double > & | times, | |||
SimTK::Array_< SimTK::Vector > & | genForceTrajectory | |||
) | [virtual] |
Same as above but for a given time series populate a Vector (trajectory)of generalized-coordinate forces.
virtual SimTK::Vector OpenSim::InverseDynamicsSolver::solve | ( | SimTK::State & | s, | |
const FunctionSet & | Qs, | |||
double | time | |||
) | [virtual] |
Solve the inverse dynamics system of equations for generalized coordinate forces, Tau.
Now the state is updated from known coordinates, q, as functions of time. Coordinate functions must be twice differentiable. NOTE: forces with internal states should be removed/disabled prior to solving if default state is inadequate
Vector OpenSim::InverseDynamicsSolver::solve | ( | const SimTK::State & | s, | |
const SimTK::Vector & | udot, | |||
const SimTK::Vector & | appliedMobilityForces, | |||
const SimTK::Vector_< SimTK::SpatialVec > & | appliedBodyForces | |||
) | [virtual] |
Solve the inverse dynamics system of equations for generalized coordinate forces, Tau.
Applied loads are explicity provided as generalized coordinate forces (MobilityForces) and/or a Vector of Spatial-body forces
Vector OpenSim::InverseDynamicsSolver::solve | ( | SimTK::State & | s, | |
const SimTK::Vector & | udot = SimTK::Vector(0) | |||
) | [virtual] |
Solve the inverse dynamics system of equations for generalized coordinate forces, Tau.
Applied loads are computed by the model from the state.