Choreonoid  1.5
ForwardDynamicsABM.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_BODY_FORWARD_DYNAMICS_ABM_H
7 #define CNOID_BODY_FORWARD_DYNAMICS_ABM_H
8 
9 #include "ForwardDynamics.h"
10 #include "exportdecl.h"
11 
12 namespace cnoid
13 {
18 {
19 public:
21 
24 
25  virtual void initialize();
26  virtual void calcNextState();
27 
28 private:
29 
30  void calcMotionWithEulerMethod();
31  void integrateRungeKuttaOneStep(double r, double dt);
32  void calcMotionWithRungeKuttaMethod();
33 
37  void calcABMPhase1(bool updateNonSpatialVariables);
38 
42  void calcABMPhase2();
43  void calcABMPhase2Part1();
44  void calcABMPhase2Part2();
45 
49  void calcABMPhase3();
50 
51  inline void calcABMFirstHalf();
52  inline void calcABMLastHalf();
53 
54  void updateForceSensors();
55 
56  // Buffers for the Runge Kutta Method
57  Position T0;
58  Vector3 vo0;
59  Vector3 w0;
60  std::vector<double> q0;
61  std::vector<double> dq0;
62 
63  Vector3 vo;
64  Vector3 w;
65  Vector3 dvo;
66  Vector3 dw;
67  std::vector<double> dq;
68  std::vector<double> ddq;
69 };
70 
71 };
72 
73 #endif
Definition: DyBody.h:115
Definition: ForwardDynamicsABM.h:17
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: ForwardDynamicsABM.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
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: ForwardDynamics.h:24