stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU Class Reference

This class implements the flexibility estimation of a robot with the hypothesis that the contact positions do not move. This constraint is expressed using fictious measurements but the interface is transparent to this assumption, the state is expressed using classical representation of position, velocity, acceleration, orientation (using (theta x mu) representation) angular velocity (omega) and acceleration (omega dot) More...

#include <state-observation/flexibility-estimation/fixed-contact-ekf-flex-estimator-imu.hpp>

Inheritance diagram for stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU:
Collaboration diagram for stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU:

Public Member Functions

 FixedContactEKFFlexEstimatorIMU (double dt=0.005)
 The constructor, it requires the value of the time discretization period. More...
 
virtual ~FixedContactEKFFlexEstimatorIMU ()
 Virtual destructor. More...
 
void setContactsNumber (unsigned i)
 Sets the number of contacts can be changed online. More...
 
void setContactPosition (unsigned i, Vector3 position)
 Sets the position of the i-th contact. More...
 
virtual void setMeasurement (const Vector &y)
 Sets the value of the next sensor measurement y_{k+1}. More...
 
virtual void setVirtualMeasurementsCovariance (double c_)
 Sets the covariance of the fictious measurements (not mandatory) More...
 
virtual double getVirtualMeasurementsCovariance () const
 Sets the covariance of the fictious measurements (not mandatory) More...
 
virtual void setProcessNoiseCovariance (const Matrix &Q)
 Sets the process covariance matrice. More...
 
virtual void setMeasurementNoiseCovariance (const Matrix &R)
 Sets the measurements covariance matrice. More...
 
virtual Matrix getProcessNoiseCovariance () const
 gets the covariance matrices for the process noises More...
 
virtual Matrix getMeasurementNoiseCovariance () const
 gets the covariance matrices for the sensor noises More...
 
virtual void setFlexibilityGuess (const Matrix &x)
 
virtual Matrix4 getFlexibility ()
 Gets an estimation of the flexibility in the form of a homogeneous matrix. More...
 
virtual const VectorgetFlexibilityVector ()
 Gets an estimation of the flexibility in the form of a state vector \hat{x_{k+1}}. More...
 
virtual Index getMeasurementSize () const
 
virtual Index getStateSize () const
 
virtual Index getInputSize () const
 
virtual void setSamplingPeriod (double)
 sets the sampling period More...
 
virtual void resetCovarianceMatrices ()
 Resets the covariance matrices to their original values. More...
 
- Public Member Functions inherited from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase
 EKFFlexibilityEstimatorBase (Index stateSize, Index measurementSize, Index inputSize, const Vector &dx=Vector::Zero(0))
 
virtual ~EKFFlexibilityEstimatorBase ()
 virtual destructor More...
 
virtual void setFlexibilityCovariance (const Matrix &P)
 Sets the covariance matrix of the flexibility Guess. More...
 
virtual Matrix getFlexibilityCovariance () const
 Gets the covariance matrix of the flexibility. More...
 
virtual Vector getMeasurement ()
 
virtual void setInput (const Vector &u)
 
virtual void setMeasurementInput (const Vector &u)
 
virtual Vector getInput ()
 
virtual Vector getMeasurementInput ()
 
virtual const stateObservation::ExtendedKalmanFiltergetEKF () const
 Gets a const reference on the extended Kalman filter. More...
 
virtual stateObservation::ExtendedKalmanFiltergetEKF ()
 Gets a reference on the extended Kalman filter. More...
 
virtual Vector getSimulatedMeasurement ()
 Gets a simulation of the. More...
 
virtual Vector getInnovation ()
 Get the last vector of inovation of the Kalman filter. More...
 
virtual Vector getPredictedMeasurement ()
 Get the simulated measurement of the predicted state. More...
 
virtual Vector getPrediction ()
 Get the predicted state. More...
 
virtual Vector getLastPredictedMeasurement ()
 Get the last simulated measurement. More...
 
virtual Vector getLastPrediction ()
 Get the last predicted state. More...
 
- Public Member Functions inherited from stateObservation::flexibilityEstimation::FlexibilityEstimatorBase
virtual ~FlexibilityEstimatorBase ()
 virtual destructor More...
 
 FlexibilityEstimatorBase ()
 The constructor. More...
 

Protected Types

typedef kine::indexes< kine::rotationVectorindexes
 

Protected Member Functions

virtual void updateCovarianceMatrix_ ()
 
- Protected Member Functions inherited from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase
virtual void setJacobians (const Matrix &A, const Matrix &C)
 
virtual void useFiniteDifferencesJacobians (Vector dx)
 

Protected Attributes

IMUFixedContactDynamicalSystem functor_
 
double virtualMeasurementCovariance_
 
Matrix R_
 
Matrix Q_
 
double dt_
 
- Protected Attributes inherited from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase
stateObservation::ExtendedKalmanFilter ekf_
 
bool finiteDifferencesJacobians_
 
Vector dx_
 
Vector lastX_
 
TimeIndex k_
 

Static Protected Attributes

static const Index stateSizeConst_ = 18
 
static const Index measurementSizeConst_ = 6
 
static const Index inputSizeConst_ = 15
 

Detailed Description

This class implements the flexibility estimation of a robot with the hypothesis that the contact positions do not move. This constraint is expressed using fictious measurements but the interface is transparent to this assumption, the state is expressed using classical representation of position, velocity, acceleration, orientation (using (theta x mu) representation) angular velocity (omega) and acceleration (omega dot)

Member Typedef Documentation

◆ indexes

Constructor & Destructor Documentation

◆ FixedContactEKFFlexEstimatorIMU()

stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::FixedContactEKFFlexEstimatorIMU ( double  dt = 0.005)
explicit

The constructor, it requires the value of the time discretization period.

◆ ~FixedContactEKFFlexEstimatorIMU()

virtual stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::~FixedContactEKFFlexEstimatorIMU ( )
virtual

Virtual destructor.

Member Function Documentation

◆ getFlexibility()

virtual Matrix4 stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getFlexibility ( )
virtual

Gets an estimation of the flexibility in the form of a homogeneous matrix.

Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getFlexibilityVector()

virtual const Vector& stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getFlexibilityVector ( )
virtual

Gets an estimation of the flexibility in the form of a state vector \hat{x_{k+1}}.

Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getInputSize()

virtual Index stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getInputSize ( ) const
virtual

Gets the input size this method is pure virtual and reauires to be overloaded in implementation

Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getMeasurementNoiseCovariance()

virtual Matrix stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getMeasurementNoiseCovariance ( ) const
virtual

gets the covariance matrices for the sensor noises

Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getMeasurementSize()

virtual Index stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getMeasurementSize ( ) const
virtual

Gets the measurements size this method is pure virtual and reauires to be overloaded in implementation

Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getProcessNoiseCovariance()

virtual Matrix stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getProcessNoiseCovariance ( ) const
virtual

gets the covariance matrices for the process noises

Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getStateSize()

virtual Index stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getStateSize ( ) const
virtual

Gets the state size this method is pure virtual and reauires to be overloaded in implementation

Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ getVirtualMeasurementsCovariance()

virtual double stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::getVirtualMeasurementsCovariance ( ) const
virtual

Sets the covariance of the fictious measurements (not mandatory)

◆ resetCovarianceMatrices()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::resetCovarianceMatrices ( )
virtual

Resets the covariance matrices to their original values.

Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ setContactPosition()

void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setContactPosition ( unsigned  i,
Vector3  position 
)

Sets the position of the i-th contact.

◆ setContactsNumber()

void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setContactsNumber ( unsigned  i)

Sets the number of contacts can be changed online.

◆ setFlexibilityGuess()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setFlexibilityGuess ( const Matrix x)
virtual

Sets a value of the flexibility x_k provided from another source can be used for initialization of the estimator

Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ setMeasurement()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setMeasurement ( const Vector y)
virtual

Sets the value of the next sensor measurement y_{k+1}.

Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ setMeasurementNoiseCovariance()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setMeasurementNoiseCovariance ( const Matrix R)
virtual

Sets the measurements covariance matrice.

Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ setProcessNoiseCovariance()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setProcessNoiseCovariance ( const Matrix Q)
virtual

Sets the process covariance matrice.

Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.

◆ setSamplingPeriod()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setSamplingPeriod ( double  )
virtual

sets the sampling period

◆ setVirtualMeasurementsCovariance()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setVirtualMeasurementsCovariance ( double  c_)
virtual

Sets the covariance of the fictious measurements (not mandatory)

◆ updateCovarianceMatrix_()

virtual void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::updateCovarianceMatrix_ ( )
protectedvirtual

Member Data Documentation

◆ dt_

double stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::dt_
protected

◆ functor_

IMUFixedContactDynamicalSystem stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::functor_
protected

◆ inputSizeConst_

const Index stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::inputSizeConst_ = 15
staticprotected

◆ measurementSizeConst_

const Index stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::measurementSizeConst_ = 6
staticprotected

◆ Q_

Matrix stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::Q_
protected

◆ R_

Matrix stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::R_
protected

◆ stateSizeConst_

const Index stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::stateSizeConst_ = 18
staticprotected

◆ virtualMeasurementCovariance_

double stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::virtualMeasurementCovariance_
protected

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