Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
dynamicgraph::sot::FeaturePose< representation > Class Template Reference

Feature that controls the relative (or absolute) pose between two frames A (or world) and B. More...

#include <feature-pose.hh>

Inheritance diagram for dynamicgraph::sot::FeaturePose< representation >:
Inheritance graph
[legend]

Public Member Functions

template<>
const std::string CLASS_NAME
 
template<>
const std::string CLASS_NAME
 
virtual dynamicgraph::VectorcomputeError (dynamicgraph::Vector &res, int time)
 Computes $ {}^oM^{-1}_{fa} {}^oM_{fb} \ominus {}^{fa}M^*_{fb} $. More...
 
virtual dynamicgraph::VectorcomputeErrorDot (dynamicgraph::Vector &res, int time)
 
virtual dynamicgraph::MatrixcomputeJacobian (dynamicgraph::Matrix &res, int time)
 
virtual void display (std::ostream &os) const
 
 FeaturePose (const std::string &name)
 
virtual const std::string & getClassName (void) const
 Returns the name class. More...
 
virtual unsigned int & getDimension (unsigned int &dim, int time)
 Verbose method. More...
 
void servoCurrentPosition (const int &time)
 
virtual ~FeaturePose (void)
 
Dealing with the reference value to be reach with this feature.
 DECLARE_NO_REFERENCE ()
 
- Public Member Functions inherited from dynamicgraph::sot::FeatureAbstract
 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...
 
void initCommands (void)
 
virtual ~FeatureAbstract (void)
 Default destructor. More...
 
unsigned int getDimension (int time)
 Short method. More...
 
unsigned int getDimension (void) const
 Shortest method. More...
 
virtual void setReference (FeatureAbstract *sdes)=0
 
virtual void unsetReference (void)
 
virtual const FeatureAbstractgetReferenceAbstract (void) const =0
 
virtual FeatureAbstractgetReferenceAbstract (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
 
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 ()
 
- Public Member Functions inherited from dynamicgraph::Entity
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::CommandgetNewStyleCommand (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
 
Loggerlogger ()
 
Logger const & logger () const
 
Loggerlogger ()
 
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
dynamicgraph::SignalPtr< MatrixHomogeneous, int > oMja
 Input pose of Joint A wrt to world frame. More...
 
dynamicgraph::SignalPtr< MatrixHomogeneous, int > jaMfa
 Input pose of Frame A wrt to Joint A. More...
 
dynamicgraph::SignalPtr< MatrixHomogeneous, int > oMjb
 Input pose of Joint B wrt to world frame. More...
 
dynamicgraph::SignalPtr< MatrixHomogeneous, int > jbMfb
 Input pose of Frame B wrt to Joint B. More...
 
dynamicgraph::SignalPtr< Matrix, int > jaJja
 Jacobian of the input Joint A, expressed in Joint A More...
 
dynamicgraph::SignalPtr< Matrix, int > jbJjb
 Jacobian of the input Joint B, expressed in Joint B More...
 
dynamicgraph::SignalPtr< MatrixHomogeneous, int > faMfbDes
 The desired pose of Frame B wrt to Frame A. More...
 
dynamicgraph::SignalPtr< Vector, int > faNufafbDes
 
Output signals
SignalTimeDependent< MatrixHomogeneous, int > faMfb
 Pose of Frame B wrt to Frame A. More...
 
SignalTimeDependent< Vector7, int > q_faMfb
 
SignalTimeDependent< Vector7, int > q_faMfbDes
 
- Public Attributes inherited from dynamicgraph::sot::FeatureAbstract
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< dynamicgraph::Vector, int > errordotSIN
 Derivative of the reference value. More...
 
SignalTimeDependent< dynamicgraph::Vector, int > errorSOUT
 This signal returns the error between the desired value and the current value : $ E(t) = {\bf s}(t) - {\bf s}^*(t)$. More...
 
SignalTimeDependent< dynamicgraph::Vector, int > errordotSOUT
 Derivative of the error with respect to time: $ \frac{\partial e}{\partial t} = - \frac{d{\bf s}^*}{dt} $. More...
 
SignalTimeDependent< dynamicgraph::Matrix, int > jacobianSOUT
 Jacobian of the error wrt the robot state: $ J = \frac{\partial {\bf s}}{\partial {\bf q}}$. More...
 
SignalTimeDependent< unsigned int, int > dimensionSOUT
 Returns the dimension of the feature as an output signal. More...
 

Static Public Attributes

static const std::string CLASS_NAME
 
- Static Public Attributes inherited from dynamicgraph::sot::FeatureAbstract
static const std::string CLASS_NAME = "FeatureAbstract"
 Store the name of the class. More...
 

Private Member Functions

MatrixHomogeneouscomputefaMfb (MatrixHomogeneous &res, int time)
 
Vector7computeQfaMfb (Vector7 &res, int time)
 
Vector7computeQfaMfbDes (Vector7 &res, int time)
 

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
 

Detailed Description

template<Representation_t representation = R3xSO3Representation>
class dynamicgraph::sot::FeaturePose< representation >

Feature that controls the relative (or absolute) pose between two frames A (or world) and B.

Template Parameters
representationspecify the difference operation to use. This changes
  • the descent direction,
  • the meaning of the mask. With R3xSO3Representation, the mask is relative to Frame A. If this feature is alone in a SOT, the relative motion of Frame B wrt Frame A will be a line. This is what most people want.

Notations:

Definition at line 62 of file feature-pose.hh.

Constructor & Destructor Documentation

◆ FeaturePose()

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::sot::FeaturePose< representation >::FeaturePose ( const std::string &  name)

◆ ~FeaturePose()

template<Representation_t representation = R3xSO3Representation>
virtual dynamicgraph::sot::FeaturePose< representation >::~FeaturePose ( void  )
virtual

Member Function Documentation

◆ CLASS_NAME() [1/2]

template<>
const std::string dynamicgraph::sot::FeaturePose< SE3Representation >::CLASS_NAME ( )

Definition at line 160 of file feature-pose.hh.

◆ CLASS_NAME() [2/2]

template<>
const std::string dynamicgraph::sot::FeaturePose< R3xSO3Representation >::CLASS_NAME ( )

Definition at line 162 of file feature-pose.hh.

◆ computeError()

template<Representation_t representation = R3xSO3Representation>
virtual dynamicgraph::Vector& dynamicgraph::sot::FeaturePose< representation >::computeError ( dynamicgraph::Vector res,
int  time 
)
virtual

Computes $ {}^oM^{-1}_{fa} {}^oM_{fb} \ominus {}^{fa}M^*_{fb} $.

Implements dynamicgraph::sot::FeatureAbstract.

◆ computeErrorDot()

template<Representation_t representation = R3xSO3Representation>
virtual dynamicgraph::Vector& dynamicgraph::sot::FeaturePose< representation >::computeErrorDot ( dynamicgraph::Vector res,
int  time 
)
virtual

Computes $ \frac{\partial\ominus}{\partial b} X {}^{fa}\nu^*_{fafb} $. There are two different cases, depending on the representation:

Reimplemented from dynamicgraph::sot::FeatureAbstract.

◆ computefaMfb()

template<Representation_t representation = R3xSO3Representation>
MatrixHomogeneous& dynamicgraph::sot::FeaturePose< representation >::computefaMfb ( MatrixHomogeneous res,
int  time 
)
private

◆ computeJacobian()

template<Representation_t representation = R3xSO3Representation>
virtual dynamicgraph::Matrix& dynamicgraph::sot::FeaturePose< representation >::computeJacobian ( dynamicgraph::Matrix res,
int  time 
)
virtual

Computes $ \frac{\partial\ominus}{\partial b} Y \left( {{}^{fb}X_{jb}} {}^{jb}J_{jb} - {{}^{fb}X_{ja}} {}^{ja}J_{ja} \right) $. There are two different cases, depending on the representation:

  • R3xSO3Representation: $ Y = \left( \begin{array}{cc} {{}^{fa}R_{fb}} & 0_3 \\ 0_3 & I_3 \end{array} \right) $
  • SE3Representation: $ Y = I_6 $

Implements dynamicgraph::sot::FeatureAbstract.

◆ computeQfaMfb()

template<Representation_t representation = R3xSO3Representation>
Vector7& dynamicgraph::sot::FeaturePose< representation >::computeQfaMfb ( Vector7 res,
int  time 
)
private

◆ computeQfaMfbDes()

template<Representation_t representation = R3xSO3Representation>
Vector7& dynamicgraph::sot::FeaturePose< representation >::computeQfaMfbDes ( Vector7 res,
int  time 
)
private

◆ DECLARE_NO_REFERENCE()

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::sot::FeaturePose< representation >::DECLARE_NO_REFERENCE ( )

◆ display()

template<Representation_t representation = R3xSO3Representation>
virtual void dynamicgraph::sot::FeaturePose< representation >::display ( std::ostream &  os) const
virtual

Reimplemented from dynamicgraph::Entity.

◆ getClassName()

template<Representation_t representation = R3xSO3Representation>
virtual const std::string& dynamicgraph::sot::FeaturePose< representation >::getClassName ( void  ) const
inlinevirtual

Returns the name class.

Reimplemented from dynamicgraph::sot::FeatureAbstract.

Definition at line 65 of file feature-pose.hh.

◆ getDimension()

template<Representation_t representation = R3xSO3Representation>
virtual unsigned int& dynamicgraph::sot::FeaturePose< representation >::getDimension ( unsigned int &  res,
int  time 
)
virtual

Verbose method.

res: The integer in which the dimension will be return.
time: The time at which the feature should be considered.
Returns
Dimension of the feature.
Note
Be careful with features changing their dimension according to time.

Implements dynamicgraph::sot::FeatureAbstract.

◆ servoCurrentPosition()

template<Representation_t representation = R3xSO3Representation>
void dynamicgraph::sot::FeaturePose< representation >::servoCurrentPosition ( const int &  time)

Member Data Documentation

◆ CLASS_NAME

template<Representation_t representation = R3xSO3Representation>
const std::string dynamicgraph::sot::FeaturePose< representation >::CLASS_NAME
static

Definition at line 64 of file feature-pose.hh.

◆ faMfb

template<Representation_t representation = R3xSO3Representation>
SignalTimeDependent<MatrixHomogeneous, int> dynamicgraph::sot::FeaturePose< representation >::faMfb

Pose of Frame B wrt to Frame A.

Definition at line 95 of file feature-pose.hh.

◆ faMfbDes

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<MatrixHomogeneous, int> dynamicgraph::sot::FeaturePose< representation >::faMfbDes

The desired pose of Frame B wrt to Frame A.

Definition at line 85 of file feature-pose.hh.

◆ faNufafbDes

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<Vector, int> dynamicgraph::sot::FeaturePose< representation >::faNufafbDes

The desired velocity of Frame B wrt to Frame A. The value is expressed in Frame A.

Definition at line 88 of file feature-pose.hh.

◆ jaJja

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<Matrix, int> dynamicgraph::sot::FeaturePose< representation >::jaJja

Jacobian of the input Joint A, expressed in Joint A

Definition at line 80 of file feature-pose.hh.

◆ jaMfa

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<MatrixHomogeneous, int> dynamicgraph::sot::FeaturePose< representation >::jaMfa

Input pose of Frame A wrt to Joint A.

Definition at line 74 of file feature-pose.hh.

◆ jbJjb

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<Matrix, int> dynamicgraph::sot::FeaturePose< representation >::jbJjb

Jacobian of the input Joint B, expressed in Joint B

Definition at line 82 of file feature-pose.hh.

◆ jbMfb

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<MatrixHomogeneous, int> dynamicgraph::sot::FeaturePose< representation >::jbMfb

Input pose of Frame B wrt to Joint B.

Definition at line 78 of file feature-pose.hh.

◆ oMja

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<MatrixHomogeneous, int> dynamicgraph::sot::FeaturePose< representation >::oMja

Input pose of Joint A wrt to world frame.

Definition at line 72 of file feature-pose.hh.

◆ oMjb

template<Representation_t representation = R3xSO3Representation>
dynamicgraph::SignalPtr<MatrixHomogeneous, int> dynamicgraph::sot::FeaturePose< representation >::oMjb

Input pose of Joint B wrt to world frame.

Definition at line 76 of file feature-pose.hh.

◆ q_faMfb

template<Representation_t representation = R3xSO3Representation>
SignalTimeDependent<Vector7, int> dynamicgraph::sot::FeaturePose< representation >::q_faMfb

Pose of Frame B wrt to Frame A. It is expressed as a translation followed by a quaternion.

Definition at line 99 of file feature-pose.hh.

◆ q_faMfbDes

template<Representation_t representation = R3xSO3Representation>
SignalTimeDependent<Vector7, int> dynamicgraph::sot::FeaturePose< representation >::q_faMfbDes

Desired pose of Frame B wrt to Frame A. It is expressed as a translation followed by a quaternion.

Definition at line 103 of file feature-pose.hh.


The documentation for this class was generated from the following file:


sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Wed Jun 21 2023 02:51:27