10 #include <dynamic-graph/factory.h> 23 timeStep(TIME_STEP_DEFAULT),
24 forceSIN(NULL,
"sotIntegratorForce(" + name +
")::input(vector)::force"),
26 NULL,
"sotIntegratorForce(" + name +
")::input(matrix)::massInverse"),
28 "sotIntegratorForce(" + name +
")::input(matrix)::friction"),
30 "sotIntegratorForce(" + name +
")::input(matrix)::vprec")
33 velocityDerivativeSOUT(
35 velocityPrecSIN << forceSIN << massInverseSIN << frictionSIN,
36 "sotIntegratorForce(" + name +
37 ")::output(Vector)::velocityDerivative"),
39 velocityPrecSIN << velocityDerivativeSOUT,
40 "sotIntegratorForce(" + name +
")::output(Vector)::velocity")
43 massSIN(NULL,
"sotIntegratorForce(" + name +
")::input(matrix)::mass"),
47 "sotIntegratorForce(" + name +
")::input(matrix)::massInverseOUT") {
86 sotDEBUG(15) <<
"force = " << force << std::endl;
92 sotDEBUG(15) <<
"vel = " << vel << std::endl;
93 f_bv = friction * vel;
100 res = massInverse * f_bv;
129 res = mass.inverse();
dg::SignalPtr< dynamicgraph::Vector, int > velocityPrecSIN
virtual ~IntegratorForce(void)
void signalRegistration(const SignalArray< int > &signals)
#define sotDEBUGOUT(level)
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(Latch, "Latch")
dg::SignalPtr< dynamicgraph::Matrix, int > massInverseSIN
dynamicgraph::Vector & computeIntegral(dynamicgraph::Vector &res, const int &time)
#define sotDEBUGIN(level)
dynamicgraph::Vector & computeDerivative(dynamicgraph::Vector &res, const int &time)
static const double TIME_STEP_DEFAULT
dg::SignalTimeDependent< dynamicgraph::Vector, int > velocityDerivativeSOUT
dynamicgraph::Matrix & computeMassInverse(dynamicgraph::Matrix &res, const int &time)
dg::SignalTimeDependent< dynamicgraph::Matrix, int > massInverseSOUT
virtual void plug(SignalBase< Time > *ref)
dg::SignalPtr< dynamicgraph::Matrix, int > frictionSIN
dg::SignalPtr< dynamicgraph::Vector, int > forceSIN
dg::SignalTimeDependent< dynamicgraph::Vector, int > velocitySOUT
IntegratorForce(const std::string &name)
dg::SignalPtr< dynamicgraph::Matrix, int > massSIN