00001 #ifndef MOBILEROBOTUNSCENTEDKALMANFILTERMODEL_HPP
00002 #define MOBILEROBOTUNSCENTEDKALMANFILTERMODEL_HPP
00003
00004 #include "indii/ml/filter/UnscentedKalmanSmootherModel.hpp"
00005 #include "indii/ml/aux/vector.hpp"
00006
00007 using namespace indii::ml::filter;
00008
00009 namespace aux = indii::ml::aux;
00010
00011
00012
00013
00014 class MobileRobotUnscentedKalmanFilterModel
00015 : public UnscentedKalmanSmootherModel<unsigned int> {
00016 public:
00017 MobileRobotUnscentedKalmanFilterModel();
00018
00019 virtual unsigned int getStateSize();
00020
00021 virtual indii::ml::aux::GaussianPdf& getSystemNoise();
00022
00023 virtual indii::ml::aux::GaussianPdf& getMeasurementNoise();
00024
00025 virtual aux::vector transition(const aux::vector& x, const aux::vector& w,
00026 unsigned int delta);
00027
00028 virtual aux::vector measure(const aux::vector& x, const aux::vector& v);
00029
00030 virtual aux::vector backwardTransition(const aux::vector& x,
00031 const aux::vector& w, unsigned int delta);
00032
00033 private:
00034
00035
00036
00037 aux::GaussianPdf w;
00038
00039
00040
00041
00042 aux::GaussianPdf v;
00043
00044 };
00045
00046 #endif