29 #ifndef HECTOR_POSE_ESTIMATION_FILTER_EKF_H 30 #define HECTOR_POSE_ESTIMATION_FILTER_EKF_H 40 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
45 virtual std::string
getType()
const {
return "EKF"; }
55 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
59 ,
x_diff(filter->state().getVectorDimension())
60 ,
A(filter->state().getCovarianceDimension(), filter->state().getCovarianceDimension())
61 ,
Q(filter->state().getCovarianceDimension(), filter->state().getCovarianceDimension())
68 virtual bool predict(
double dt) = 0;
79 template <
class ConcreteModel,
typename Enabled =
void>
93 virtual bool predict(
double dt);
106 template <
class ConcreteModel,
typename Enabled =
void>
110 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
117 : Base(filter, model)
119 , y_pred(model->getDimension())
120 , error(model->getDimension())
121 , C(model->getDimension(), filter->state().getCovarianceDimension())
122 , CP(model->getDimension(), filter->state().getCovarianceDimension())
123 , S(model->getDimension(), model->getDimension())
124 , K(filter->state().getCovarianceDimension(), model->getDimension())
125 ,
update(filter->state().getCovarianceDimension())
137 virtual bool correct(
const typename ConcreteModel::MeasurementVector&
y,
const typename ConcreteModel::NoiseVariance& R);
138 virtual typename ConcreteModel::MeasurementVector
getResidual()
const {
return error; }
141 typename Model::MeasurementVector
y_pred;
142 typename Model::MeasurementVector
error;
143 typename Model::MeasurementMatrix
C;
145 typename Model::NoiseVariance
S;
146 typename Model::GainMatrix
K;
161 #endif // HECTOR_POSE_ESTIMATION_FILTER_EKF_H Filter::template Corrector_< ConcreteModel > Base
Model::MeasurementMatrix C
Matrix_< ConcreteModel::MeasurementDimension, Dynamic >::type CP
SymmetricMatrix Covariance
virtual bool doPredict(double dt)
TFSIMD_FORCE_INLINE const tfScalar & y() const
virtual bool predict(double dt)=0
void update(const std::string &key, const XmlRpc::XmlRpcValue &v)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef ConcreteModel Model
virtual const State & state() const
virtual bool init(PoseEstimation &estimator)
virtual bool preparePredict(double dt)
virtual bool correct(const Measurements &measurements)
Model::UpdateVector update
Filter::template Predictor_< ConcreteModel > Base
virtual std::string getType() const
Model::MeasurementVector y_pred
EIGEN_MAKE_ALIGNED_OPERATOR_NEW EKF(State &state)
virtual ConcreteModel::MeasurementVector getResidual() const
Model::MeasurementVector error
Corrector_(EKF *filter, Model *model)
Predictor_(EKF *filter, Model *model)
virtual bool predict(const SystemPtr &system, double dt)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Predictor(EKF *filter)