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>
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 Vector & | getFlexibilityVector () |
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... | |
![]() | |
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::ExtendedKalmanFilter & | getEKF () const |
Gets a const reference on the extended Kalman filter. More... | |
virtual stateObservation::ExtendedKalmanFilter & | getEKF () |
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... | |
![]() | |
virtual | ~FlexibilityEstimatorBase () |
virtual destructor More... | |
FlexibilityEstimatorBase () | |
The constructor. More... | |
Protected Types | |
typedef kine::indexes< kine::rotationVector > | indexes |
Protected Member Functions | |
virtual void | updateCovarianceMatrix_ () |
![]() | |
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_ |
![]() | |
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 |
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)
|
protected |
|
explicit |
The constructor, it requires the value of the time discretization period.
|
virtual |
Virtual destructor.
|
virtual |
Gets an estimation of the flexibility in the form of a homogeneous matrix.
Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Gets an estimation of the flexibility in the form of a state vector \hat{x_{k+1}}.
Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Gets the input size this method is pure virtual and reauires to be overloaded in implementation
Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
gets the covariance matrices for the sensor noises
Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Gets the measurements size this method is pure virtual and reauires to be overloaded in implementation
Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
gets the covariance matrices for the process noises
Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Gets the state size this method is pure virtual and reauires to be overloaded in implementation
Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Sets the covariance of the fictious measurements (not mandatory)
|
virtual |
Resets the covariance matrices to their original values.
Implements stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setContactPosition | ( | unsigned | i, |
Vector3 | position | ||
) |
Sets the position of the i-th contact.
void stateObservation::flexibilityEstimation::FixedContactEKFFlexEstimatorIMU::setContactsNumber | ( | unsigned | i | ) |
Sets the number of contacts can be changed online.
|
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.
|
virtual |
Sets the value of the next sensor measurement y_{k+1}.
Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Sets the measurements covariance matrice.
Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
Sets the process covariance matrice.
Reimplemented from stateObservation::flexibilityEstimation::EKFFlexibilityEstimatorBase.
|
virtual |
sets the sampling period
|
virtual |
Sets the covariance of the fictious measurements (not mandatory)
|
protectedvirtual |
|
protected |
|
protected |
|
staticprotected |
|
staticprotected |
|
protected |
|
protected |
|
staticprotected |
|
protected |