state-observation 1.7.0
General implementation of observers.
Loading...
Searching...
No Matches
ekf-flexibility-estimator-base.hpp
Go to the documentation of this file.
1
12
13#ifndef FLEXIBILITYESTIMATION_EKFFLEXIBILITYESTIMATORBASE_H
14#define FLEXIBILITYESTIMATION_EKFFLEXIBILITYESTIMATORBASE_H
15
16#include <boost/utility.hpp>
17
18#include <state-observation/api.h>
19#include <state-observation/observer/extended-kalman-filter.hpp>
20
22
23namespace stateObservation
24{
25namespace flexibilityEstimation
26{
34
35class STATE_OBSERVATION_DLLAPI EKFFlexibilityEstimatorBase : public FlexibilityEstimatorBase
36{
37public:
43
45 Index measurementSize,
46 Index inputSize,
47 const Vector & dx = Vector::Zero(0));
48
51
56 virtual void setFlexibilityGuess(const Matrix &) = 0;
57
59 virtual void setFlexibilityCovariance(const Matrix & P);
60
63
66 virtual void setProcessNoiseCovariance(const Matrix & Q);
67
70 virtual void setMeasurementNoiseCovariance(const Matrix & R);
71
74
77
79 virtual void setMeasurement(const Vector & y);
80
81 virtual Vector getMeasurement();
82
85 virtual void setInput(const Vector & u);
86
89 virtual void setMeasurementInput(const Vector & u);
90
91 virtual Vector getInput();
92
93 virtual Vector getMeasurementInput();
94
96 virtual const Vector & getFlexibilityVector();
97
99 virtual Matrix4 getFlexibility() = 0;
100
103
106
109 virtual Index getStateSize() const = 0;
110
113 virtual Index getMeasurementSize() const = 0;
114
117 virtual Index getInputSize() const = 0;
118
121
123 virtual void resetCovarianceMatrices() = 0;
124
127
130
133
136
139
140protected:
141 virtual void setJacobians(const Matrix & A, const Matrix & C);
142
143 virtual void useFiniteDifferencesJacobians(Vector dx);
144
146
147 bool finiteDifferencesJacobians_;
148
149 Vector dx_;
150
151 Vector lastX_;
152
153 TimeIndex k_;
154
155private:
156};
157} // namespace flexibilityEstimation
158} // namespace stateObservation
159#endif // FLEXIBILITYESTIMATION_EKFFLEXIBILITYESTIMATORBASE_H
virtual Matrix4 getFlexibility()=0
Gets an estimation of the flexibility in the form of a homogeneous matrix.
virtual const Vector & getFlexibilityVector()
Gets an estimation of the flexibility in the form of a state vector \hat{x_{k+1}}.
virtual Matrix getProcessNoiseCovariance() const
gets the covariance matrices for the process noises
virtual const stateObservation::ExtendedKalmanFilter & getEKF() const
Gets a const reference on the extended Kalman filter.
virtual stateObservation::ExtendedKalmanFilter & getEKF()
Gets a reference on the extended Kalman filter.
EKFFlexibilityEstimatorBase(Index stateSize, Index measurementSize, Index inputSize, const Vector &dx=Vector::Zero(0))
virtual Vector getLastPredictedMeasurement()
Get the last simulated measurement.
virtual Vector getInnovation()
Get the last vector of inovation of the Kalman filter.
virtual Vector getPredictedMeasurement()
Get the simulated measurement of the predicted state.
virtual void resetCovarianceMatrices()=0
Resets the covariance matrices to their original values.
virtual Matrix getFlexibilityCovariance() const
Gets the covariance matrix of the flexibility.
virtual Vector getSimulatedMeasurement()
Gets a simulation of the.
virtual void setFlexibilityCovariance(const Matrix &P)
Sets the covariance matrix of the flexibility Guess.
virtual Vector getLastPrediction()
Get the last predicted state.
virtual void setMeasurement(const Vector &y)
Sets the value of the next sensor measurement y_{k+1}.
virtual Matrix getMeasurementNoiseCovariance() const
gets the covariance matrices for the sensor noises
Definitions of base class for flexibility estimator.
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::MatrixXd Matrix
Dynamic sized Matrix.
Eigen::VectorXd Vector
Dynamic sized scalar vector.