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);