Choreonoid  1.5
ForwardDynamics.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_BODY_FORWARD_DYNAMICS_H
7 #define CNOID_BODY_FORWARD_DYNAMICS_H
8 
10 #include "Link.h"
11 #include <boost/shared_ptr.hpp>
12 #include "exportdecl.h"
13 
14 namespace cnoid {
15 
16 class DyBody;
17 typedef ref_ptr<DyBody> DyBodyPtr;
18 
25 
26 public:
28 
29  ForwardDynamics(DyBody* body);
30  virtual ~ForwardDynamics();
31 
32  void setGravityAcceleration(const Vector3& g);
33  void setEulerMethod();
34  void setRungeKuttaMethod();
35  void setTimeStep(double timeStep);
36  void enableSensors(bool on);
37  void setOldAccelSensorCalcMode(bool on);
38 
39  virtual void initialize() = 0;
40  virtual void calcNextState() = 0;
41 
42 protected:
43 
44  virtual void initializeSensors();
45 
56  static void SE3exp(Position& out_T, const Position& T0, const Vector3& w, const Vector3& vo, double dt);
57 
58  DyBodyPtr body;
60  double timeStep;
63 
64  enum { EULER_METHOD, RUNGEKUTTA_METHOD } integrationMode;
65 };
66 
67 typedef boost::shared_ptr<ForwardDynamics> ForwardDynamicsPtr;
68 
69 };
70 
71 #endif
Vector3 g
Definition: ForwardDynamics.h:59
Definition: DyBody.h:115
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: ForwardDynamics.h:27
double timeStep
Definition: ForwardDynamics.h:60
Definition: BasicSensorSimulationHelper.h:20
Eigen::Transform< double, 3, Eigen::AffineCompact > Position
Definition: EigenTypes.h:73
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
ref_ptr< DyBody > DyBodyPtr
Definition: DyBody.h:143
bool sensorsEnabled
Definition: ForwardDynamics.h:61
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
boost::shared_ptr< ForwardDynamics > ForwardDynamicsPtr
Definition: ForwardDynamics.h:67
DyBodyPtr body
Definition: ForwardDynamics.h:58
BasicSensorSimulationHelper sensorHelper
Definition: ForwardDynamics.h:62
Definition: ForwardDynamics.h:24