10 #ifndef __SOT_FEATURE_ABSTRACT_H__ 11 #define __SOT_FEATURE_ABSTRACT_H__ 18 #include <dynamic-graph/linear-algebra.h> 24 #include <dynamic-graph/all-signals.h> 25 #include <dynamic-graph/entity.h> 82 virtual const std::string &
getClassName(
void)
const {
return CLASS_NAME; }
85 void featureRegistration(
void);
87 void initCommands(
void);
104 virtual unsigned int &getDimension(
unsigned int &res,
int time) = 0;
113 getDimension(res, time);
122 return dimensionSOUT.accessCopy();
140 virtual dg::Vector &computeError(dg::Vector &res,
int time) = 0;
147 virtual dg::Matrix &computeJacobian(dg::Matrix &res,
int time) = 0;
153 virtual dg::Vector &computeErrorDot(dg::Vector &res,
int time);
197 virtual std::ostream &writeGraph(std::ostream &os)
const;
216 virtual void addDependenciesFromReference(
void) = 0;
217 virtual void removeDependenciesFromReference(
void) = 0;
220 void setReferenceByName(
const std::string &name);
221 std::string getReferenceByName(
void)
const;
226 FeatureSpecialized *ptr;
240 template <
class FeatureSpecialized>
243 ptr =
dynamic_cast<FeatureSpecialized *
>(sdes);
247 #define DECLARE_REFERENCE_FUNCTIONS(FeatureSpecialized) \ 248 typedef FeatureReferenceHelper<FeatureSpecialized> SP; \ 249 virtual void setReference(FeatureAbstract *sdes) { \ 250 if (sdes == NULL) { \ 252 if (SP::isReferenceSet()) \ 253 removeDependenciesFromReference(); \ 254 SP::unsetReference(); \ 257 SP::setReference(sdes); \ 258 if (SP::isReferenceSet()) \ 259 addDependenciesFromReference(); \ 262 virtual const FeatureAbstract *getReferenceAbstract(void) const { \ 263 return SP::getReference(); \ 265 virtual FeatureAbstract *getReferenceAbstract(void) { \ 266 return (FeatureAbstract *)SP::getReference(); \ 268 bool isReferenceSet(void) const { return SP::isReferenceSet(); } \ 269 virtual void addDependenciesFromReference(void); \ 270 virtual void removeDependenciesFromReference(void) 273 #define DECLARE_NO_REFERENCE \ 274 virtual void setReference(FeatureAbstract *) {} \ 275 virtual const FeatureAbstract *getReferenceAbstract(void) const { \ 278 virtual FeatureAbstract *getReferenceAbstract(void) { return NULL; } \ 279 virtual void addDependenciesFromReference(void) {} \ 280 virtual void removeDependenciesFromReference(void) {} \ 287 #endif // #ifndef __SOT_FEATURE_ABSTRACT_H__
Definition: feature-abstract.hh:225
SignalPtr< Flags, int > selectionSIN
This vector specifies which dimension are used to perform the computation. For instance let us assume...
Definition: feature-abstract.hh:170
SignalTimeDependent< unsigned int, int > dimensionSOUT
Returns the dimension of the feature as an output signal.
Definition: feature-abstract.hh:193
unsigned int getDimension(int time)
Short method.
Definition: feature-abstract.hh:111
void unsetReference(void)
Definition: feature-abstract.hh:234
virtual bool isReferenceSet(void) const
Definition: feature-abstract.hh:214
#define SOT_CORE_EXPORT
Definition: api.hh:20
unsigned int getDimension(void) const
Shortest method.
Definition: feature-abstract.hh:121
virtual ~FeatureAbstract(void)
Default destructor.
Definition: feature-abstract.hh:93
SignalTimeDependent< dg::Matrix, int > jacobianSOUT
Jacobian of the error wrt the robot state: .
Definition: feature-abstract.hh:190
static const std::string CLASS_NAME
Store the name of the class.
Definition: feature-abstract.hh:79
void setReference(FeatureAbstract *sdes)
Definition: feature-abstract.hh:241
virtual const std::string & getClassName(void) const
Returns the name class.
Definition: feature-abstract.hh:82
const FeatureSpecialized * getReference(void) const
Definition: feature-abstract.hh:237
SignalTimeDependent< dg::Vector, int > errorSOUT
This signal returns the error between the desired value and the current value : . ...
Definition: feature-abstract.hh:182
virtual SignalTimeDependent< dg::Vector, int > & getErrorDot()
Definition: feature-abstract.hh:199
virtual void unsetReference(void)
Definition: feature-abstract.hh:211
This class gives the abstract definition of a feature.
Definition: feature-abstract.hh:76
SignalPtr< dg::Vector, int > errordotSIN
Derivative of the reference value.
Definition: feature-abstract.hh:173
bool isReferenceSet(void) const
Definition: feature-abstract.hh:235
FeatureSpecialized * getReference(void)
Definition: feature-abstract.hh:236
FeatureReferenceHelper(void)
Definition: feature-abstract.hh:230
SignalTimeDependent< dg::Vector, int > errordotSOUT
Derivative of the error with respect to time: .
Definition: feature-abstract.hh:186
Definition: abstract-sot-external-interface.hh:17