ocra-recipes
Doxygen documentation for the ocra-recipes repository
Model3T.h
Go to the documentation of this file.
1 #ifndef __MODEL3T_H__
2 #define __MODEL3T_H__
3 
4 
5 #include "ocra/control/Model.h"
6 
7 class Model3T: public ocra::Model
8 {
9 public:
10  Model3T(const std::string& robotName);
11  virtual ~Model3T();
12 
13 
14  virtual const Eigen::VectorXd& getJointPositions() const;
15  virtual const Eigen::VectorXd& getJointVelocities() const;
16  virtual const Eigen::Displacementd& getFreeFlyerPosition() const;
17  virtual const Eigen::Twistd& getFreeFlyerVelocity() const;
18 
19  virtual int nbSegments() const;
20  virtual const Eigen::VectorXd& getActuatedDofs() const;
21  virtual const Eigen::VectorXd& getJointLowerLimits() const;
22  virtual const Eigen::VectorXd& getJointUpperLimits() const;
23 
24  //CoM
25  virtual double getMass() const;
26  virtual const Eigen::Vector3d& getCoMPosition() const;
27  virtual const Eigen::Vector3d& getCoMVelocity() const;
28  virtual const Eigen::Vector3d& getCoMJdotQdot() const;
29  virtual const Eigen::Matrix<double,3,Eigen::Dynamic>& getCoMJacobian() const;
30  virtual const Eigen::Matrix<double,3,Eigen::Dynamic>& getCoMJacobianDot() const;
31 
32  //dynamic/static equation terms
33  virtual const Eigen::MatrixXd& getInertiaMatrix() const;
34  virtual const Eigen::MatrixXd& getInertiaMatrixInverse() const;
35  virtual const Eigen::MatrixXd& getDampingMatrix() const;
36  virtual const Eigen::VectorXd& getNonLinearTerms() const;
37  virtual const Eigen::VectorXd& getLinearTerms() const;
38  virtual const Eigen::VectorXd& getGravityTerms() const;
39 
40  //segment data
41  virtual const Eigen::Displacementd& getSegmentPosition(int index) const;
42  virtual const Eigen::Twistd& getSegmentVelocity(int index) const;
43  virtual const Eigen::Matrix<double,6,Eigen::Dynamic>& getSegmentJacobian(int index) const;
44  virtual const Eigen::Matrix<double,6,Eigen::Dynamic>& getSegmentJdot(int index) const;
45  virtual const Eigen::Twistd& getSegmentJdotQdot(int index) const;
46  virtual const Eigen::Matrix<double,6,Eigen::Dynamic>& getJointJacobian(int index) const;
47  virtual double getSegmentMass(int index) const;
48  virtual const Eigen::Vector3d& getSegmentCoM(int index) const;
49  virtual const Eigen::Matrix<double, 6, 6>& getSegmentMassMatrix(int index) const;
50  virtual const Eigen::Vector3d& getSegmentMomentsOfInertia(int index) const;
51  virtual const Eigen::Rotation3d& getSegmentInertiaAxes(int index) const;
52 
53 
54 protected:
55  virtual void doSetJointPositions(const Eigen::VectorXd& q);
56  virtual void doSetJointVelocities(const Eigen::VectorXd& q_dot);
57  virtual void doSetFreeFlyerPosition(const Eigen::Displacementd& H_root);
58  virtual void doSetFreeFlyerVelocity(const Eigen::Twistd& T_root);
59 
60  virtual int doGetSegmentIndex(const std::string& name) const;
61  virtual const std::string& doGetSegmentName(int index) const;
62 
63  virtual void update();
64 
65 private:
66  struct Pimpl;
67  boost::shared_ptr<Pimpl> pimpl; //where to save all the data
68 
69 
70 
71 //additional methods
72 public:
73  void testConstantData();
74  void testVariableData();
75 
76 };
77 
78 
79 
80 
81 
82 #endif
83 
84 
85 
virtual void doSetJointPositions(const Eigen::VectorXd &q)
Definition: Model3T.cpp:344
virtual const Eigen::Rotation3d & getSegmentInertiaAxes(int index) const
Definition: Model3T.cpp:336
virtual const Eigen::Vector3d & getCoMVelocity() const
Definition: Model3T.cpp:227
virtual const Eigen::Matrix< double, 3, Eigen::Dynamic > & getCoMJacobian() const
Definition: Model3T.cpp:237
virtual const Eigen::MatrixXd & getInertiaMatrix() const
Definition: Model3T.cpp:248
virtual const Eigen::VectorXd & getJointPositions() const
Definition: Model3T.cpp:171
virtual const Eigen::Twistd & getSegmentVelocity(int index) const
Definition: Model3T.cpp:284
virtual ~Model3T()
Definition: Model3T.cpp:163
virtual const Eigen::Matrix< double, 6, Eigen::Dynamic > & getJointJacobian(int index) const
Definition: Model3T.cpp:305
Definition: Model3T.h:7
virtual void update()
Definition: Model3T.cpp:395
virtual double getMass() const
Definition: Model3T.cpp:212
Declaration file of the Model class.
virtual const Eigen::Vector3d & getSegmentMomentsOfInertia(int index) const
Definition: Model3T.cpp:329
virtual const Eigen::MatrixXd & getDampingMatrix() const
Definition: Model3T.cpp:258
void testVariableData()
Definition: Model3T.cpp:470
virtual int doGetSegmentIndex(const std::string &name) const
Definition: Model3T.cpp:370
Model3T(const std::string &robotName)
Definition: Model3T.cpp:156
Model class.
Definition: Model.h:38
virtual const Eigen::Vector3d & getCoMJdotQdot() const
Definition: Model3T.cpp:232
virtual const Eigen::Matrix< double, 6, Eigen::Dynamic > & getSegmentJacobian(int index) const
Definition: Model3T.cpp:289
virtual const Eigen::VectorXd & getGravityTerms() const
Definition: Model3T.cpp:273
void testConstantData()
Definition: Model3T.cpp:438
virtual const Eigen::VectorXd & getJointLowerLimits() const
Definition: Model3T.cpp:201
virtual const std::string & doGetSegmentName(int index) const
Definition: Model3T.cpp:383
virtual const Eigen::VectorXd & getActuatedDofs() const
Definition: Model3T.cpp:196
virtual const Eigen::VectorXd & getJointUpperLimits() const
Definition: Model3T.cpp:206
virtual void doSetFreeFlyerPosition(const Eigen::Displacementd &H_root)
Definition: Model3T.cpp:356
virtual const Eigen::Twistd & getFreeFlyerVelocity() const
Definition: Model3T.cpp:186
virtual const Eigen::Displacementd & getSegmentPosition(int index) const
Definition: Model3T.cpp:279
virtual const Eigen::Vector3d & getSegmentCoM(int index) const
Definition: Model3T.cpp:317
virtual const Eigen::VectorXd & getJointVelocities() const
Definition: Model3T.cpp:176
virtual void doSetJointVelocities(const Eigen::VectorXd &q_dot)
Definition: Model3T.cpp:350
virtual int nbSegments() const
Definition: Model3T.cpp:191
virtual const Eigen::Matrix< double, 6, 6 > & getSegmentMassMatrix(int index) const
Definition: Model3T.cpp:323
virtual const Eigen::Matrix< double, 6, Eigen::Dynamic > & getSegmentJdot(int index) const
Definition: Model3T.cpp:294
virtual const Eigen::MatrixXd & getInertiaMatrixInverse() const
Definition: Model3T.cpp:253
virtual const Eigen::VectorXd & getNonLinearTerms() const
Definition: Model3T.cpp:263
virtual const Eigen::Twistd & getSegmentJdotQdot(int index) const
Definition: Model3T.cpp:299
virtual const Eigen::Matrix< double, 3, Eigen::Dynamic > & getCoMJacobianDot() const
Definition: Model3T.cpp:242
virtual void doSetFreeFlyerVelocity(const Eigen::Twistd &T_root)
Definition: Model3T.cpp:363
virtual const Eigen::Vector3d & getCoMPosition() const
Definition: Model3T.cpp:222
virtual double getSegmentMass(int index) const
Definition: Model3T.cpp:311
virtual const Eigen::Displacementd & getFreeFlyerPosition() const
Definition: Model3T.cpp:181
virtual const Eigen::VectorXd & getLinearTerms() const
Definition: Model3T.cpp:268