state-observation 1.7.0
General implementation of observers.
Loading...
Searching...
No Matches
fixed-contact-ekf-flex-estimator-imu.hpp
Go to the documentation of this file.
1
12
13#ifndef FLEXBILITYESTMATOR_FIXEDCONTACTEKFFLEXIBILITYESTIMATOR_IMU_H
14#define FLEXBILITYESTMATOR_FIXEDCONTACTEKFFLEXIBILITYESTIMATOR_IMU_H
15
16#include <state-observation/api.h>
19
20namespace stateObservation
21{
22namespace flexibilityEstimation
23{
24
35
36class STATE_OBSERVATION_DLLAPI FixedContactEKFFlexEstimatorIMU : public EKFFlexibilityEstimatorBase,
37 private boost::noncopyable
38{
39public:
41 explicit FixedContactEKFFlexEstimatorIMU(double dt = 0.005);
42
45
47 void setContactsNumber(unsigned i);
48
50 void setContactPosition(unsigned i, Vector3 position);
51
53 virtual void setMeasurement(const Vector & y);
54
56 virtual void setVirtualMeasurementsCovariance(double c_);
57
59 virtual double getVirtualMeasurementsCovariance() const;
60
62 virtual void setProcessNoiseCovariance(const Matrix & Q);
63
65 virtual void setMeasurementNoiseCovariance(const Matrix & R);
66
69
72
75 virtual void setFlexibilityGuess(const Matrix & x);
76
79
81 virtual const Vector & getFlexibilityVector();
82
83 virtual Index getMeasurementSize() const;
84
85 virtual Index getStateSize() const;
86
87 virtual Index getInputSize() const;
88
90 virtual void setSamplingPeriod(double);
91
94
95protected:
97
98 virtual void updateCovarianceMatrix_();
99
101
102 double virtualMeasurementCovariance_;
103
104 Matrix R_, Q_;
105
106 static const Index stateSizeConst_ = 18;
107 static const Index measurementSizeConst_ = 6;
108 static const Index inputSizeConst_ = 15;
109
110 double dt_; // sampling period
111
112private:
113};
114
115} // namespace flexibilityEstimation
116} // namespace stateObservation
117#endif // FLEXBILITYESTMATOR_FIXEDCONTACTEKFFLEXIBILITYESTIMATOR_H
EKFFlexibilityEstimatorBase(Index stateSize, Index measurementSize, Index inputSize, const Vector &dx=Vector::Zero(0))
virtual void resetCovarianceMatrices()
Resets the covariance matrices to their original values.
virtual const Vector & getFlexibilityVector()
Gets an estimation of the flexibility in the form of a state vector \hat{x_{k+1}}.
virtual Matrix getMeasurementNoiseCovariance() const
gets the covariance matrices for the sensor noises
virtual Matrix getProcessNoiseCovariance() const
gets the covariance matrices for the process noises
virtual void setSamplingPeriod(double)
sets the sampling period
FixedContactEKFFlexEstimatorIMU(double dt=0.005)
The constructor, it requires the value of the time discretization period.
virtual double getVirtualMeasurementsCovariance() const
Sets the covariance of the fictious measurements (not mandatory).
virtual void setProcessNoiseCovariance(const Matrix &Q)
Sets the process covariance matrice.
virtual void setMeasurementNoiseCovariance(const Matrix &R)
Sets the measurements covariance matrice.
virtual Matrix4 getFlexibility()
Gets an estimation of the flexibility in the form of a homogeneous matrix.
void setContactsNumber(unsigned i)
Sets the number of contacts can be changed online.
virtual void setMeasurement(const Vector &y)
Sets the value of the next sensor measurement y_{k+1}.
virtual void setVirtualMeasurementsCovariance(double c_)
Sets the covariance of the fictious measurements (not mandatory).
void setContactPosition(unsigned i, Vector3 position)
Sets the position of the i-th contact.
This class describes the dynamics of a robot's flexibility this dynamics is the simplest possible sys...
Declare the class of the flexibility estimation using the extended Kalman Filter.
Definitions of the dynamical system of a robot flexibility with an IMU sensor.
Filtering of divergent component of motion (DCM) and estimation of a bias betweeen the DCM and the co...
Eigen::Matrix4d Matrix4
4x4 Scalar Matrix
Eigen::Vector3d Vector3
3D vector
Eigen::MatrixXd Matrix
Dynamic sized Matrix.
Eigen::VectorXd Vector
Dynamic sized scalar vector.