12#ifndef UNIDIMLIPMDCMBIASESTIMATOR_HPP
13#define UNIDIMLIPMDCMBIASESTIMATOR_HPP
15#include <state-observation/api.h>
37 constexpr static double defaultDt_ = 0.005;
42 constexpr static double defaultBiasDriftSecond = 0.002;
45 constexpr static double defaultZmpErrorStd = 0.005;
46 constexpr static double defaultDcmErrorStd = 0.01;
49 constexpr static double defaultDCMUncertainty = 0.01;
50 constexpr static double defaultBiasUncertainty = 0.01;
155 return filter_.getEstimatedState(filter_.getMeasurementTime());
186 void updateMatricesABQ_();
190 double biasDriftStd_;
The class of a Linear Kalman filter.
Definition linear-kalman-filter.hpp:48
1D version of the estimation of a bias betweeen the divergent component of motion and the correspondi...
Definition unidim-lipm-dcm-estimator.hpp:35
~UnidimLipmDcmEstimator()
Destroy the Lipm Dcm Bias Estimator object.
Definition unidim-lipm-dcm-estimator.hpp:98
void setBias(double bias)
Set the Bias object from a guess.
double getUnbiasedDCM() const
Get the Unbiased DCM filtered by the estimator.
LinearKalmanFilter & getFilter()
Get the Kalman Filter object This can be used to run specific Advanced Kalman filter related funcions...
Definition unidim-lipm-dcm-estimator.hpp:172
double getBias() const
Get the estimated Bias.
void setUnbiasedDCM(double dcm)
set the real DCM position from a guess
UnidimLipmDcmEstimator(double dt=defaultDt_, double omega_0=defaultOmega_, double biasDriftPerSecondStd=defaultBiasDriftSecond, double initDcm=0, double initZMP=0, double initBias=0, double dcmMeasureErrorStd=defaultDcmErrorStd, double zmpMeasureErrorStd=defaultZmpErrorStd, double initDcmUncertainty=defaultDCMUncertainty, double initBiasUncertainty=defaultBiasUncertainty)
Construct a new Unidimensional Lipm Dcm Estimator.
void setSamplingTime(double dt)
Set the Sampling Time.
void setDcmMeasureErrorStd(double)
Set the Dcm Measurement Error Standard.
void setUnbiasedDCM(double dcm, double uncertainty)
set the real DCM position from a guess
void setInputs(double dcm, double zmp)
Set the Inputs of the estimator.
void resetWithInputs(double measuredDcm, double measuredZMP, bool measurementIsWithBias=true, double biasDriftPerSecondStd=defaultBiasDriftSecond, double dcmMeasureErrorStd=defaultDcmErrorStd, double zmpMeasureErrorStd=defaultZmpErrorStd, double initBias=0, double initBiasuncertainty=defaultBiasUncertainty)
Construct a new Lipm Dcm Bias Estimator object.
void setBias(double bias, double uncertainty)
Set the Bias object from a guess.
Vector2 update()
Runs the estimation. Needs to be called every timestep.
Definition unidim-lipm-dcm-estimator.hpp:153
const LinearKalmanFilter & getFilter() const
Get the Kalman Filter object This can be used to run specific Advanced Kalman filter related funcions...
Definition unidim-lipm-dcm-estimator.hpp:179
void setBiasDriftPerSecond(double driftPerSecond)
Set the Bias Drift Per Second.
void setLipmNaturalFrequency(double omega_0)
Set the Lipm Natural Frequency.
void setZmpMeasureErrorStd(double)
Set the Zmp Measurement Error Stamdard devbiation.
Defines the class of a Linear Kalman filter.
Gathers many kinds of algorithms.
constexpr double gravityConstant
Definition definitions.hpp:663
Definition bidim-elastic-inv-pendulum-dyn-sys.hpp:21
Eigen::Matrix2d Matrix2
2D scalar Matrix
Definition definitions.hpp:106
Eigen::MatrixXd Matrix
Dynamic sized Matrix.
Definition definitions.hpp:100
Eigen::Matrix< double, 2, 1 > Vector2
2d Vector
Definition definitions.hpp:82
Eigen::Matrix< double, 1, 1 > Matrix1
1D scalar Matrix
Definition definitions.hpp:103