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 size_type & | getDimension (size_type &res, sigtime_t time)=0 |
| Verbose method. More... | |
| size_type | getDimension (sigtime_t time) |
| Short method. More... | |
| size_type | 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, sigtime_t 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, sigtime_t time)=0 |
| Compute the Jacobian of the error according the robot state. More... | |
| virtual dynamicgraph::Vector & | computeErrorDot (dynamicgraph::Vector &res, sigtime_t 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< sigtime_t > & | getSignal (const std::string &signalName) |
| const SignalBase< sigtime_t > & | 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 & | logger () |
| const Logger & | logger () const |
| const Logger & | 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< sigtime_t > * | test () |
| virtual void | test2 (SignalBase< sigtime_t > *) |
| virtual std::ostream & | writeCompletionList (std::ostream &os) const |
| virtual | ~Entity () |
Public Attributes | |
Input signals: | |
| SignalPtr< Flags, sigtime_t > | 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 . More... | |
| SignalPtr< dynamicgraph::Vector, sigtime_t > | 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, sigtime_t > | errorSOUT |
This signal returns the error between the desired value and the current value : . More... | |
| SignalTimeDependent< dynamicgraph::Vector, sigtime_t > | errordotSOUT |
Derivative of the error with respect to time: . More... | |
| SignalTimeDependent< dynamicgraph::Matrix, sigtime_t > | jacobianSOUT |
Jacobian of the error wrt the robot state: . More... | |
| SignalTimeDependent< size_type, sigtime_t > | 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, sigtime_t > & | 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< sigtime_t > * > | 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< sigtime_t > &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
is a robot configuration, which depends on the time
. 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:
. Here,
is the difference operator of Lie group in which
and
are. The documentation below assumes the Lie group is a vector space and
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
is:
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::FeaturePosture, dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, and dynamicgraph::sot::FeatureVector3.
|
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::FeaturePosture, dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, and dynamicgraph::sot::FeatureVector3.
| 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.
Short method.
Definition at line 111 of file feature-abstract.hh.
|
pure virtual |
Verbose method.
Implemented in dynamicgraph::sot::FeaturePosture, dynamicgraph::sot::FeaturePose< representation >, dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, and dynamicgraph::sot::FeatureVector3.
|
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<size_type, sigtime_t> 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, sigtime_t> dynamicgraph::sot::FeatureAbstract::errordotSIN |
Derivative of the reference value.
Definition at line 176 of file feature-abstract.hh.
| SignalTimeDependent<dynamicgraph::Vector, sigtime_t> dynamicgraph::sot::FeatureAbstract::errordotSOUT |
Derivative of the error with respect to time:
.
Definition at line 189 of file feature-abstract.hh.
| SignalTimeDependent<dynamicgraph::Vector, sigtime_t> 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, sigtime_t> 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
.
Definition at line 173 of file feature-abstract.hh.