ocra-recipes
Doxygen documentation for the ocra-recipes repository
PartialState.h
Go to the documentation of this file.
1 
12 #ifndef __PARTIALSTATE_H__
13 #define __PARTIALSTATE_H__
14 
15 
17 #include "ocra/control/Model.h"
18 #include <ocra/util/Macros.h>
19 #include <Eigen/Core>
20 #include <boost/shared_ptr.hpp>
21 
22 namespace ocra
23 {
24 
34 {
36 
37 public:
38  PartialState(const std::string& name, const Model& model, const Eigen::VectorXi& selectedDofs, int whichPart);
39  virtual ~PartialState() = 0;
40 
41  const Model& getModel() const;
42  int getSize() const;
43  const Eigen::MatrixXd& getJacobian() const;
44 
45  virtual const Eigen::MatrixXd& getInertiaMatrix() const = 0;
46  virtual const Eigen::MatrixXd& getInertiaMatrixInverse() const = 0;
47  virtual const Eigen::VectorXd& q() const = 0;
48  virtual const Eigen::VectorXd& qdot() const = 0;
49  virtual const Eigen::VectorXd& qddot() const = 0;
50  virtual const Eigen::VectorXd& tau() const = 0;
51 
52 protected:
53  Eigen::VectorXi& getDofs() const;
54 
55 private:
56  struct Pimpl;
57  boost::shared_ptr<Pimpl> pimpl;
58 };
59 
60 
61 
67 {
69 
70 public:
71  PartialModelState(const std::string& name, const Model& model, const Eigen::VectorXi& selectedDofs, int whichPart);
72  virtual ~PartialModelState();
73 
74  virtual const Eigen::MatrixXd& getInertiaMatrix() const;
75  virtual const Eigen::MatrixXd& getInertiaMatrixInverse() const;
76  virtual const Eigen::VectorXd& q() const;
77  virtual const Eigen::VectorXd& qdot() const;
78  virtual const Eigen::VectorXd& qddot() const;
79  virtual const Eigen::VectorXd& tau() const;
80 
81 private:
82  struct Pimpl;
83  boost::shared_ptr<Pimpl> pimpl;
84 };
85 
86 
87 
93 {
95 
96 public:
97  PartialTargetState(const std::string& name, const Model& model, const Eigen::VectorXi& selectedDofs, int whichPart);
98  virtual ~PartialTargetState();
99 
100  virtual const Eigen::MatrixXd& getInertiaMatrix() const;
101  virtual const Eigen::MatrixXd& getInertiaMatrixInverse() const;
102  virtual const Eigen::VectorXd& q() const;
103  virtual const Eigen::VectorXd& qdot() const;
104  virtual const Eigen::VectorXd& qddot() const;
105  virtual const Eigen::VectorXd& tau() const;
106 
107  void set_q(const Eigen::VectorXd& q);
108  void set_qdot(const Eigen::VectorXd& qdot);
109  void set_qddot(const Eigen::VectorXd& qddot);
110  void set_tau(const Eigen::VectorXd& tau);
111 
112 private:
113  struct Pimpl;
114  boost::shared_ptr<Pimpl> pimpl;
115 };
116  // end group feature
118 
119 } //end of namespace ocra
120 
121 
122 #endif
Eigen::VectorXi & getDofs() const
Declaration file of the Model class.
Model class.
Definition: Model.h:38
#define DEFINE_CLASS_POINTER_TYPEDEFS(Class)
Definition: Macros.h:8
const Model & getModel() const
Optimization-based Robot Controller namespace. a library of classes to write and solve optimization p...
const Eigen::MatrixXd & getJacobian() const
virtual const Eigen::VectorXd & q() const =0
A abstract partial state.
Definition: PartialState.h:33
PartialState(const std::string &name, const Model &model, const Eigen::VectorXi &selectedDofs, int whichPart)
virtual const Eigen::VectorXd & tau() const =0
virtual const Eigen::VectorXd & qdot() const =0
virtual const Eigen::MatrixXd & getInertiaMatrixInverse() const =0
A partial state of the model.
Definition: PartialState.h:66
virtual const Eigen::VectorXd & qddot() const =0
virtual ~PartialState()=0
A target for a model partial state.
Definition: PartialState.h:92
int getSize() const
virtual const Eigen::MatrixXd & getInertiaMatrix() const =0