This class gives the abstract definition of a feature. More...
#include <sot/core/feature-abstract.hh>
Public Member Functions | |
virtual const std::string & | getClassName (void) const |
Returns the name class. More... | |
void | featureRegistration (void) |
Register the feature in the stack of tasks. More... | |
void | initCommands (void) |
FeatureAbstract (const std::string &name) | |
Default constructor: the name of the class should be given. More... | |
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 dg::Vector & | computeError (dg::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 dg::Matrix & | computeJacobian (dg::Matrix &res, int time)=0 |
Compute the Jacobian of the error according the robot state. More... | |
virtual dg::Vector & | computeErrorDot (dg::Vector &res, int time) |
Callback for signal errordotSOUT. More... | |
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 |
![]() | |
Entity (const std::string &name) | |
virtual | ~Entity () |
const std::string & | getName () const |
virtual std::string | getDocString () const |
bool | hasSignal (const std::string &signame) const |
SignalBase< int > & | getSignal (const std::string &signalName) |
const SignalBase< int > & | getSignal (const std::string &signalName) const |
std::ostream & | displaySignalList (std::ostream &os) const |
virtual std::ostream & | writeCompletionList (std::ostream &os) const |
virtual void | display (std::ostream &os) const |
virtual SignalBase< int > * | test () |
virtual void | test2 (SignalBase< int > *) |
const std::string & | getCommandList () const |
CommandMap_t | getNewStyleCommandMap () |
command::Command * | getNewStyleCommand (const std::string &cmdName) |
SignalMap | getSignalMap () const |
void | sendMsg (const std::string &msg, MsgType t=MSG_TYPE_INFO, const char *file="", int line=0) |
void | setLoggerVerbosityLevel (LoggerVerbosity lv) |
LoggerVerbosity | getLoggerVerbosityLevel () |
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] \). More... | |
SignalPtr< dg::Vector, int > | errordotSIN |
Derivative of the reference value. More... | |
Static Public Attributes | |
static const std::string | CLASS_NAME |
Store the name of the class. More... | |
Output signals: | |
SignalTimeDependent< dg::Vector, int > | errorSOUT |
This signal returns the error between the desired value and the current value : \( {\bf s}^*(t) - {\bf s}(t)\). More... | |
SignalTimeDependent< dg::Vector, int > | errordotSOUT |
Derivative of the reference value. More... | |
SignalTimeDependent< dg::Matrix, int > | jacobianSOUT |
This signal returns the Jacobian of the current value according to the robot state: \( J(t) = \frac{\delta{\bf s}^*(t)}{\delta {\bf q}(t)}\). 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 SOT_CORE_DEPRECATED bool | withErrorDot (void) const |
Return true for children that provide the errordot output signal. More... | |
virtual SignalTimeDependent< dg::Vector, int > & | getErrorDot () |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, SignalBase< int > * > | SignalMap |
typedef std::map< const std::string, command::Command * > | CommandMap_t |
![]() | |
void | addCommand (const std::string &name, command::Command *command) |
void | entityRegistration () |
void | entityDeregistration () |
void | signalRegistration (const SignalArray< int > &signals) |
void | signalDeregistration (const std::string &name) |
![]() | |
std::string | name |
SignalMap | signalMap |
CommandMap_t | commandMap |
Logger | logger_ |
This class gives the abstract definition of a feature.
In short, a feature is a data evolving according to time. It is defined by a vector \({\bf s}(t) \in \mathbb{R}^n \) where \( t \) is the time. By default a feature has a desired \({\bf s}^*(t) \). \({\bf s}^*\) 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: \( e(t) = {\bf s}^*(t) - {\bf s}(t) \). A feature is supposed to compute a Jacobian according to the robot state vector \( \frac{\delta {\bf s}(t)}{\delta {\bf q}(t)}\).
The task is in general computed from the value of the feature at the current instant \(f(q(t),t)\), the Jacobian \(J\) and evolution of the feature with respect to time: \(\frac{\partial f}{\partial t}\).
dynamicgraph::sot::FeatureAbstract::FeatureAbstract | ( | const std::string & | name | ) |
Default constructor: the name of the class should be given.
|
inlinevirtual |
Default destructor.
|
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::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeaturePoint6d, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeaturePoint6dRelative, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureVector3, and dynamicgraph::sot::FeaturePosture.
|
virtual |
Callback for signal errordotSOUT.
Copy components of the input signal errordotSIN defined by selection flag selectionSIN.
Reimplemented in dynamicgraph::sot::FeaturePoint6dRelative, and dynamicgraph::sot::FeaturePosture.
|
pure virtual |
Compute the Jacobian of the error according the robot state.
Implemented in dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeaturePoint6d, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeaturePoint6dRelative, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureVector3, and dynamicgraph::sot::FeaturePosture.
void dynamicgraph::sot::FeatureAbstract::featureRegistration | ( | void | ) |
Register the feature in the stack of tasks.
|
inlinevirtual |
Returns the name class.
Reimplemented from dynamicgraph::Entity.
Reimplemented in dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeaturePoint6dRelative, dynamicgraph::sot::FeaturePoint6d, dynamicgraph::sot::FeatureVector3, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, and dynamicgraph::sot::FeatureTask.
|
pure virtual |
Verbose method.
Implemented in dynamicgraph::sot::FeatureGeneric, dynamicgraph::sot::Feature1D, dynamicgraph::sot::FeaturePoint6d, dynamicgraph::sot::FeatureJointLimits, dynamicgraph::sot::FeatureLineDistance, dynamicgraph::sot::FeatureVisualPoint, dynamicgraph::sot::FeatureVector3, and dynamicgraph::sot::FeaturePosture.
|
inline |
Short method.
|
inline |
Shortest method.
|
inlinevirtual |
|
pure virtual |
|
pure virtual |
std::string dynamicgraph::sot::FeatureAbstract::getReferenceByName | ( | void | ) | const |
void dynamicgraph::sot::FeatureAbstract::initCommands | ( | void | ) |
|
inlinevirtual |
|
pure virtual |
|
pure virtual |
void dynamicgraph::sot::FeatureAbstract::setReferenceByName | ( | const std::string & | name | ) |
|
inlinevirtual |
|
inlinevirtual |
Return true for children that provide the errordot output signal.
|
virtual |
This method write a graph description on the file named FileName.
Reimplemented from dynamicgraph::Entity.
|
static |
Store the name of the class.
SignalTimeDependent<unsigned int,int> dynamicgraph::sot::FeatureAbstract::dimensionSOUT |
Returns the dimension of the feature as an output signal.
SignalPtr< dg::Vector,int > dynamicgraph::sot::FeatureAbstract::errordotSIN |
Derivative of the reference value.
SignalTimeDependent< dg::Vector,int > dynamicgraph::sot::FeatureAbstract::errordotSOUT |
Derivative of the reference value.
SignalTimeDependent<dg::Vector,int> dynamicgraph::sot::FeatureAbstract::errorSOUT |
This signal returns the error between the desired value and the current value : \( {\bf s}^*(t) - {\bf s}(t)\).
SignalTimeDependent<dg::Matrix,int> dynamicgraph::sot::FeatureAbstract::jacobianSOUT |
This signal returns the Jacobian of the current value according to the robot state: \( J(t) = \frac{\delta{\bf s}^*(t)}{\delta {\bf q}(t)}\).
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] \).