This class gives the abstract definition of a feature. More...
#include <feature-abstract.hh>

| Public Member Functions | |
| FeatureAbstract (const std::string &name) | |
| Default constructor: the name of the class should be given.  More... | |
| void | featureRegistration (void) | 
| Register the feature in the stack of tasks.  More... | |
| virtual const std::string & | getClassName (void) const | 
| Returns the name class.  More... | |
| void | initCommands (void) | 
| virtual | ~FeatureAbstract (void) | 
| Default destructor.  More... | |
| Methods returning the dimension of the feature. | |
| virtual unsigned int & | getDimension (unsigned int &res, int time)=0 | 
| Verbose method.  More... | |
| unsigned int | getDimension (int time) | 
| Short method.  More... | |
| unsigned int | getDimension (void) const | 
| Shortest method.  More... | |
| Methods to control internal computation. | |
| The main idea is that some feature may have a lower frequency than the internal control loop. In this case, the methods for computation are called only when needed. | |
| virtual dynamicgraph::Vector & | computeError (dynamicgraph::Vector &res, int time)=0 | 
| Compute the error between the desired feature and the current value of the feature measured or deduced from the robot state.  More... | |
| virtual dynamicgraph::Matrix & | computeJacobian (dynamicgraph::Matrix &res, int time)=0 | 
| Compute the Jacobian of the error according the robot state.  More... | |
| virtual dynamicgraph::Vector & | computeErrorDot (dynamicgraph::Vector &res, int time) | 
| Reference | |
| virtual void | setReference (FeatureAbstract *sdes)=0 | 
| virtual void | unsetReference (void) | 
| virtual const FeatureAbstract * | getReferenceAbstract (void) const =0 | 
| virtual FeatureAbstract * | getReferenceAbstract (void)=0 | 
| virtual bool | isReferenceSet (void) const | 
| virtual void | addDependenciesFromReference (void)=0 | 
| virtual void | removeDependenciesFromReference (void)=0 | 
| void | setReferenceByName (const std::string &name) | 
| std::string | getReferenceByName (void) const | 
|  Public Member Functions inherited from dynamicgraph::Entity | |
| virtual void | display (std::ostream &os) const | 
| std::ostream & | displaySignalList (std::ostream &os) const | 
| Entity (const std::string &name) | |
| const std::string & | getCommandList () const | 
| virtual std::string | getDocString () const | 
| LoggerVerbosity | getLoggerVerbosityLevel () | 
| LoggerVerbosity | getLoggerVerbosityLevel () | 
| const std::string & | getName () const | 
| command::Command * | getNewStyleCommand (const std::string &cmdName) | 
| CommandMap_t | getNewStyleCommandMap () | 
| SignalBase< int > & | getSignal (const std::string &signalName) | 
| const SignalBase< int > & | getSignal (const std::string &signalName) const | 
| SignalMap | getSignalMap () const | 
| double | getStreamPrintPeriod () | 
| double | getStreamPrintPeriod () | 
| double | getTimeSample () | 
| double | getTimeSample () | 
| bool | hasSignal (const std::string &signame) const | 
| Logger & | logger () | 
| Logger const & | logger () const | 
| Logger & | logger () | 
| Logger const & | logger () const | 
| void | sendMsg (const std::string &msg, MsgType t=MSG_TYPE_INFO, const std::string &lineId="") | 
| void | sendMsg (const std::string &msg, MsgType t=MSG_TYPE_INFO, const std::string &lineId="") | 
| void | setLoggerVerbosityLevel (LoggerVerbosity lv) | 
| void | setLoggerVerbosityLevel (LoggerVerbosity lv) | 
| bool | setStreamPrintPeriod (double t) | 
| bool | setStreamPrintPeriod (double t) | 
| bool | setTimeSample (double t) | 
| bool | setTimeSample (double t) | 
| virtual SignalBase< int > * | test () | 
| virtual void | test2 (SignalBase< int > *) | 
| virtual std::ostream & | writeCompletionList (std::ostream &os) const | 
| virtual | ~Entity () | 
| Public Attributes | |
| Input signals: | |
| SignalPtr< Flags, int > | selectionSIN | 
| This vector specifies which dimension are used to perform the computation. For instance let us assume that the feature is a 3D point. If only the Y-axis should be used for computing error, activation and Jacobian, then the vector to specify is ![$ [ 0 1 0] $](form_45.png) .  More... | |
| SignalPtr< dynamicgraph::Vector, int > | errordotSIN | 
| Derivative of the reference value.  More... | |
| Static Public Attributes | |
| static const std::string | CLASS_NAME = "FeatureAbstract" | 
| Store the name of the class.  More... | |
| Output signals: | |
| SignalTimeDependent< dynamicgraph::Vector, int > | errorSOUT | 
| This signal returns the error between the desired value and the current value :  .  More... | |
| SignalTimeDependent< dynamicgraph::Vector, int > | errordotSOUT | 
| Derivative of the error with respect to time:  .  More... | |
| SignalTimeDependent< dynamicgraph::Matrix, int > | jacobianSOUT | 
| Jacobian of the error wrt the robot state:  .  More... | |
| SignalTimeDependent< unsigned int, int > | dimensionSOUT | 
| Returns the dimension of the feature as an output signal.  More... | |
| virtual std::ostream & | writeGraph (std::ostream &os) const | 
| This method write a graph description on the file named FileName.  More... | |
| virtual SignalTimeDependent< dynamicgraph::Vector, int > & | getErrorDot () | 
| Additional Inherited Members | |
|  Public Types inherited from dynamicgraph::Entity | |
| typedef std::map< const std::string, command::Command *> | CommandMap_t | 
| typedef std::map< std::string, SignalBase< int > *> | SignalMap | 
|  Protected Member Functions inherited from dynamicgraph::Entity | |
| void | addCommand (const std::string &name, command::Command *command) | 
| void | entityDeregistration () | 
| void | entityRegistration () | 
| void | signalDeregistration (const std::string &name) | 
| void | signalRegistration (const SignalArray< int > &signals) | 
|  Protected Attributes inherited from dynamicgraph::Entity | |
| CommandMap_t | commandMap | 
| Logger | logger_ | 
| std::string | name | 
| SignalMap | signalMap | 
This class gives the abstract definition of a feature.
 where
 where  is a robot configuration, which depends on the time
 is a robot configuration, which depends on the time  . By default a feature has a desired
. By default a feature has a desired  .
.  is provided by another feature of the same type called reference. The feature is in charge of collecting its own current state. A feature is supposed to compute an error between its current state and the desired one:
 is provided by another feature of the same type called reference. The feature is in charge of collecting its own current state. A feature is supposed to compute an error between its current state and the desired one:  . Here,
. Here,  is the difference operator of Lie group in which
 is the difference operator of Lie group in which  and
 and  are. The documentation below assumes the Lie group is a vector space and
 are. The documentation below assumes the Lie group is a vector space and  is the usual difference operator.
 is the usual difference operator.A feature computes:
 .
.  :
:  .
.The task is in general computed from the value of the feature at the current instant  . The derivative of
. The derivative of  is:
 is: 
![\[ \frac{dE}{dt} = J({\bf q}) \dot{q} + \frac{\partial e}{\partial t} \]](form_44.png) 
 
FeatureAbstract. Each feature has a reference of the same type and compute an error by comparing errorSIN signals from itself and from the reference."
Definition at line 76 of file feature-abstract.hh.
| FeatureAbstract::FeatureAbstract | ( | const std::string & | name | ) | 
Default constructor: the name of the class should be given.
Definition at line 24 of file feature-abstract.cpp.
| 
 | inlinevirtual | 
Default destructor.
Definition at line 93 of file feature-abstract.hh.
| 
 | pure virtual | 
| 
 | pure virtual | 
Compute the error between the desired feature and the current value of the feature measured or deduced from the robot state.
Implemented in dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureVector3, dynamicgraph::sot::FeaturePosture, and TestFeature.
| 
 | virtual | 
Callback for signal errordotSOUT
Copy components of the input signal errordotSIN defined by selection flag selectionSIN.
Reimplemented in dynamicgraph::sot::FeaturePose< representation >, and dynamicgraph::sot::FeaturePosture.
Definition at line 95 of file feature-abstract.cpp.
| 
 | pure virtual | 
Compute the Jacobian of the error according the robot state.
Implemented in dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureVector3, dynamicgraph::sot::FeaturePosture, and TestFeature.
| void FeatureAbstract::featureRegistration | ( | void | ) | 
Register the feature in the stack of tasks.
Definition at line 66 of file feature-abstract.cpp.
| 
 | inlinevirtual | 
Returns the name class.
Reimplemented from dynamicgraph::Entity.
Reimplemented in dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVector3, and dynamicgraph::sot::FeatureTask.
Definition at line 82 of file feature-abstract.hh.
| 
 | pure virtual | 
Verbose method.
Implemented in dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureVector3, dynamicgraph::sot::FeaturePosture, and TestFeature.
| 
 | inline | 
Short method.
Definition at line 111 of file feature-abstract.hh.
| 
 | inline | 
Shortest method.
Definition at line 121 of file feature-abstract.hh.
| 
 | inlinevirtual | 
Definition at line 202 of file feature-abstract.hh.
| 
 | pure virtual | 
| 
 | pure virtual | 
| std::string FeatureAbstract::getReferenceByName | ( | void | ) | const | 
Definition at line 88 of file feature-abstract.cpp.
| void FeatureAbstract::initCommands | ( | void | ) | 
Definition at line 52 of file feature-abstract.cpp.
| 
 | inlinevirtual | 
Definition at line 217 of file feature-abstract.hh.
| 
 | pure virtual | 
| 
 | pure virtual | 
| void FeatureAbstract::setReferenceByName | ( | const std::string & | name | ) | 
Definition at line 83 of file feature-abstract.cpp.
| 
 | inlinevirtual | 
Definition at line 214 of file feature-abstract.hh.
| 
 | virtual | 
This method write a graph description on the file named FileName.
Reimplemented from dynamicgraph::Entity.
Definition at line 70 of file feature-abstract.cpp.
| 
 | static | 
Store the name of the class.
Definition at line 79 of file feature-abstract.hh.
| SignalTimeDependent<unsigned int, int> dynamicgraph::sot::FeatureAbstract::dimensionSOUT | 
Returns the dimension of the feature as an output signal.
Definition at line 196 of file feature-abstract.hh.
| SignalPtr<dynamicgraph::Vector, int> dynamicgraph::sot::FeatureAbstract::errordotSIN | 
Derivative of the reference value.
Definition at line 176 of file feature-abstract.hh.
| SignalTimeDependent<dynamicgraph::Vector, int> dynamicgraph::sot::FeatureAbstract::errordotSOUT | 
Derivative of the error with respect to time:  .
. 
Definition at line 189 of file feature-abstract.hh.
| SignalTimeDependent<dynamicgraph::Vector, int> dynamicgraph::sot::FeatureAbstract::errorSOUT | 
This signal returns the error between the desired value and the current value :  .
. 
Definition at line 185 of file feature-abstract.hh.
| SignalTimeDependent<dynamicgraph::Matrix, int> dynamicgraph::sot::FeatureAbstract::jacobianSOUT | 
Jacobian of the error wrt the robot state:  .
. 
Definition at line 193 of file feature-abstract.hh.
This vector specifies which dimension are used to perform the computation. For instance let us assume that the feature is a 3D point. If only the Y-axis should be used for computing error, activation and Jacobian, then the vector to specify is ![$ [ 0 1 0] $](form_45.png) .
. 
Definition at line 173 of file feature-abstract.hh.