feature-pose.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2019,
3  * Joseph Mirabel
4  *
5  * LAAS-CNRS
6  *
7  */
8 
9 #ifndef __SOT_FEATURE_POSE_HH__
10 #define __SOT_FEATURE_POSE_HH__
11 
12 /* --------------------------------------------------------------------- */
13 /* --- INCLUDE --------------------------------------------------------- */
14 /* --------------------------------------------------------------------- */
15 
16 /* SOT */
17 #include <sot/core/config.hh>
20 
21 /* --------------------------------------------------------------------- */
22 /* --- CLASS ----------------------------------------------------------- */
23 /* --------------------------------------------------------------------- */
24 
25 namespace dynamicgraph {
26 namespace sot {
27 
30 
61 template <Representation_t representation = R3xSO3Representation>
62 class SOT_CORE_DLLAPI FeaturePose : public FeatureAbstract {
63  public:
64  static const std::string CLASS_NAME;
65  virtual const std::string &getClassName(void) const { return CLASS_NAME; }
66 
67  public:
83 
96 
100 
109 
115  public:
116  FeaturePose(const std::string &name);
117  virtual ~FeaturePose(void);
118 
119  virtual size_type &getDimension(size_type &dim, sigtime_t time);
120 
122  virtual dynamicgraph::Vector &computeError(dynamicgraph::Vector &res,
123  sigtime_t time);
130  virtual dynamicgraph::Vector &computeErrorDot(dynamicgraph::Vector &res,
131  sigtime_t time);
138  virtual dynamicgraph::Matrix &computeJacobian(dynamicgraph::Matrix &res,
139  sigtime_t time);
140 
141  virtual void display(std::ostream &os) const;
142 
143  public:
144  void servoCurrentPosition(const sigtime_t &time);
145 
146  private:
147  MatrixHomogeneous &computefaMfb(MatrixHomogeneous &res, sigtime_t time);
148  Vector7 &computeQfaMfb(Vector7 &res, sigtime_t time);
149  Vector7 &computeQfaMfbDes(Vector7 &res, sigtime_t time);
150 
152 };
153 
154 template <typename T>
155 Vector6d convertVelocity(const MatrixHomogeneous &M,
156  const MatrixHomogeneous &Mdes,
157  const Vector &faNufafbDes);
158 
159 template <>
161 template <>
163 
164 #if __cplusplus >= 201103L
165 extern template class FeaturePose<SE3Representation>;
166 extern template class FeaturePose<R3xSO3Representation>;
167 #endif
168 
171 
172 } /* namespace sot */
173 } /* namespace dynamicgraph */
174 
175 #endif // #ifndef __SOT_FEATURE_POSE_HH__
176 
177 /*
178  * Local variables:
179  * c-basic-offset: 2
180  * End:
181  */
DECLARE_NO_REFERENCE
#define DECLARE_NO_REFERENCE
Definition: feature-abstract.hh:275
dynamicgraph::sot::SE3Representation
@ SE3Representation
Definition: feature-pose.hh:29
dynamicgraph::sot::FeaturePose::q_faMfbDes
SignalTimeDependent< Vector7, sigtime_t > q_faMfbDes
Definition: feature-pose.hh:103
dynamicgraph::sot::MatrixHomogeneous
Eigen::Transform< double, 3, Eigen::Affine > SOT_CORE_EXPORT MatrixHomogeneous
Definition: matrix-geometry.hh:75
dynamicgraph::sot::FeatureAbstract::errorSOUT
SignalTimeDependent< dynamicgraph::Vector, sigtime_t > errorSOUT
This signal returns the error between the desired value and the current value : .
Definition: feature-abstract.hh:185
dynamicgraph::SignalPtr< MatrixHomogeneous, sigtime_t >
dynamicgraph
dynamicgraph::sot::FeaturePose::jaJja
dynamicgraph::SignalPtr< Matrix, sigtime_t > jaJja
Jacobian of the input Joint A, expressed in Joint A
Definition: feature-pose.hh:80
dynamicgraph::sot::FeatureAbstract::selectionSIN
SignalPtr< Flags, sigtime_t > selectionSIN
This vector specifies which dimension are used to perform the computation. For instance let us assume...
Definition: feature-abstract.hh:173
dynamicgraph::Matrix
Eigen::MatrixXd Matrix
dynamicgraph::sot::FeatureAbstract::jacobianSOUT
SignalTimeDependent< dynamicgraph::Matrix, sigtime_t > jacobianSOUT
Jacobian of the error wrt the robot state: .
Definition: feature-abstract.hh:193
feature-abstract.hh
dynamicgraph::sot::FeatureAbstract
This class gives the abstract definition of a feature.
Definition: feature-abstract.hh:76
dynamicgraph::sot::R3xSO3Representation
@ R3xSO3Representation
Definition: feature-pose.hh:29
dynamicgraph::sot::FeaturePose::q_faMfb
SignalTimeDependent< Vector7, sigtime_t > q_faMfb
Definition: feature-pose.hh:99
dynamicgraph::sigtime_t
int64_t sigtime_t
dynamicgraph::sot::FeaturePose_t
FeaturePose< R3xSO3Representation > FeaturePose_t
Definition: feature-pose.hh:169
dynamicgraph::sot::FeaturePose
Feature that controls the relative (or absolute) pose between two frames A (or world) and B.
Definition: feature-pose.hh:62
dynamicgraph::sot::FeaturePoseSE3_t
FeaturePose< SE3Representation > FeaturePoseSE3_t
Definition: feature-pose.hh:170
dynamicgraph::sot::convertVelocity
Vector6d convertVelocity(const MatrixHomogeneous &M, const MatrixHomogeneous &Mdes, const Vector &faNufafbDes)
dynamicgraph::sot::FeaturePose::CLASS_NAME
static const std::string CLASS_NAME
Definition: feature-pose.hh:64
dynamicgraph::size_type
Matrix::Index size_type
display
dynamicgraph::Vector
Eigen::VectorXd Vector
dynamicgraph::sot::FeaturePose::getClassName
virtual const std::string & getClassName(void) const
Returns the name class.
Definition: feature-pose.hh:65
dynamicgraph::sot::Representation_t
Representation_t
Enum used to specify what difference operation is used in FeaturePose.
Definition: feature-pose.hh:29
dynamicgraph::sot::FeaturePose::faNufafbDes
dynamicgraph::SignalPtr< Vector, sigtime_t > faNufafbDes
Definition: feature-pose.hh:88
dynamicgraph::sot::FeaturePose::faMfbDes
dynamicgraph::SignalPtr< MatrixHomogeneous, sigtime_t > faMfbDes
The desired pose of Frame B wrt to Frame A.
Definition: feature-pose.hh:85
dynamicgraph::sot::FeaturePose::jaMfa
dynamicgraph::SignalPtr< MatrixHomogeneous, sigtime_t > jaMfa
Input pose of Frame A wrt to Joint A.
Definition: feature-pose.hh:74
dynamicgraph::sot::FeaturePose::jbJjb
dynamicgraph::SignalPtr< Matrix, sigtime_t > jbJjb
Jacobian of the input Joint B, expressed in Joint B
Definition: feature-pose.hh:82
matrix-geometry.hh
dynamicgraph::SignalTimeDependent< MatrixHomogeneous, sigtime_t >
dynamicgraph::sot::FeaturePose::oMjb
dynamicgraph::SignalPtr< MatrixHomogeneous, sigtime_t > oMjb
Input pose of Joint B wrt to world frame.
Definition: feature-pose.hh:76
dynamicgraph::sot::Vector7
Eigen::Matrix< double, 7, 1 > SOT_CORE_EXPORT Vector7
Definition: matrix-geometry.hh:84
dynamicgraph::sot::FeaturePose::jbMfb
dynamicgraph::SignalPtr< MatrixHomogeneous, sigtime_t > jbMfb
Input pose of Frame B wrt to Joint B.
Definition: feature-pose.hh:78
compile.name
name
Definition: compile.py:23


sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Tue Oct 24 2023 02:26:31