ForwardDynamicsABM.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008, AIST, the University of Tokyo and General Robotix Inc.
3  * All rights reserved. This program is made available under the terms of the
4  * Eclipse Public License v1.0 which accompanies this distribution, and is
5  * available at http://www.eclipse.org/legal/epl-v10.html
6  * Contributors:
7  * National Institute of Advanced Industrial Science and Technology (AIST)
8  */
14 #ifndef OPENHRP_FORWARD_DYNAMICS_ABM_H_INCLUDED
15 #define OPENHRP_FORWARD_DYNAMICS_ABM_H_INCLUDED
16 
17 #include "ForwardDynamics.h"
18 #include <vector>
19 #include <boost/intrusive_ptr.hpp>
20 #include <hrpUtil/Eigen3d.h>
21 #include "Config.h"
22 
23 
24 namespace hrp
25 {
26  class LinkTraverse;
27  class AccelSensor;
28  class ForceSensor;
29 
33  class HRPMODEL_API ForwardDynamicsABM : public ForwardDynamics {
34 
35  public:
36 
39 
40  virtual void initialize();
41  virtual void calcNextState();
42 
43  private:
44 
45  void calcMotionWithEulerMethod();
46  void integrateRungeKuttaOneStep(double r, double dt);
47  void calcMotionWithRungeKuttaMethod();
48 
52  void calcABMPhase1();
53 
57  void calcABMPhase2();
58  void calcABMPhase2Part1();
59  void calcABMPhase2Part2();
60 
64  void calcABMPhase3();
65 
66  inline void calcABMFirstHalf();
67  inline void calcABMLastHalf();
68 
69  void updateForceSensors();
70  void updateForceSensor(ForceSensor* sensor);
71 
72  // Buffers for the Runge Kutta Method
77  std::vector<double> q0;
78  std::vector<double> dq0;
79 
84  std::vector<double> dq;
85  std::vector<double> ddq;
86 
87  };
88 
89 };
90 
91 #endif
hrp::ForwardDynamicsABM::vo
Vector3 vo
Definition: ForwardDynamicsABM.h:80
hrp::ForwardDynamicsABM::q0
std::vector< double > q0
Definition: ForwardDynamicsABM.h:77
hrp::ForwardDynamicsABM::dq0
std::vector< double > dq0
Definition: ForwardDynamicsABM.h:78
hrp::ForwardDynamicsABM::ddq
std::vector< double > ddq
Definition: ForwardDynamicsABM.h:85
ForceSensor
Definition: server/UtDynamicsSimulator/Sensor.h:64
hrp::ForwardDynamicsABM::w0
Vector3 w0
Definition: ForwardDynamicsABM.h:76
hrp::ForwardDynamicsABM::R0
Matrix33 R0
Definition: ForwardDynamicsABM.h:74
hrp
Definition: ColdetModel.h:28
hrp::ForceSensor
Definition: hrplib/hrpModel/Sensor.h:68
hrp::ForwardDynamicsABM::dvo
Vector3 dvo
Definition: ForwardDynamicsABM.h:82
hrp::Vector3
Eigen::Vector3d Vector3
Definition: EigenTypes.h:11
hrp::ForwardDynamicsABM::vo0
Vector3 vo0
Definition: ForwardDynamicsABM.h:75
hrp::ForwardDynamicsABM::w
Vector3 w
Definition: ForwardDynamicsABM.h:81
hrp::BodyPtr
boost::shared_ptr< Body > BodyPtr
Definition: Body.h:315
hrp::ForwardDynamicsABM
Definition: ForwardDynamicsABM.h:33
ForwardDynamics.h
hrp::ForwardDynamicsABM::dq
std::vector< double > dq
Definition: ForwardDynamicsABM.h:84
hrp::ForwardDynamicsABM::p0
Vector3 p0
Definition: ForwardDynamicsABM.h:73
hrp::Matrix33
Eigen::Matrix3d Matrix33
Definition: EigenTypes.h:12
hrp::ForwardDynamics
Definition: ForwardDynamics.h:35
Eigen3d.h
hrp::ForwardDynamicsABM::dw
Vector3 dw
Definition: ForwardDynamicsABM.h:83
AccelSensor
Definition: server/UtDynamicsSimulator/Sensor.h:91


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:02