14 #ifndef OPENHRP_FORWARD_DYNAMICS_MM_H_INCLUDED 15 #define OPENHRP_FORWARD_DYNAMICS_MM_H_INCLUDED 18 #include <boost/shared_ptr.hpp> 19 #include <boost/intrusive_ptr.hpp> 29 typedef boost::shared_ptr<Body>
BodyPtr;
49 virtual void initialize();
50 virtual void calcNextState();
52 void initializeAccelSolver();
53 void solveUnknownAccels(
const Vector3& fext,
const Vector3& tauext);
55 void sumExternalForces();
56 void solveUnknownAccels();
131 std::vector<double>
q0;
138 std::vector<double>
dq;
141 virtual void initializeSensors();
143 void calcMotionWithEulerMethod();
144 void calcMotionWithRungeKuttaMethod();
145 void integrateRungeKuttaOneStep(
double r,
double dt);
146 void preserveHighGainModeJointState();
147 void calcPositionAndVelocityFK();
148 void calcMassMatrix();
149 void setColumnOfMassMatrix(
dmatrix& M,
int column);
152 inline void calcAccelFKandForceSensorValues();
154 void updateForceSensorInfo(
Link* link,
bool hasSensorsAbove);
boost::shared_ptr< ForwardDynamicsMM > ForwardDynamicsMMPtr
std::vector< double > dq0
std::vector< ForceSensorInfo > forceSensorInfo
boost::shared_ptr< Body > BodyPtr
std::vector< Link * > highGainModeJoints
bool accelSolverInitialized
std::vector< double > ddq
std::vector< Link * > torqueModeJoints
bool isNoUnknownAccelMode