Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __NONMINIMAL_KALMAN_FILTER__
00021 #define __NONMINIMAL_KALMAN_FILTER__
00022
00023 #include "kalmanfilter.h"
00024 #include "../pdf/conditionalpdf.h"
00025 #include "../pdf/gaussian.h"
00026 #include "../model/nonlinearanalyticmeasurementmodel_gaussianuncertainty.h"
00027 #include "../model/nonlinearanalyticsystemmodel_gaussianuncertainty.h"
00028 #include "nonminimal_state/linearise.h"
00029 #include "../filter/iteratedextendedkalmanfilter.h"
00030
00031 namespace BFL
00032 {
00033
00034 #define NLSysModel NonLinearAnalyticSystemModelGaussianUncertainty
00035 #define NLMeasModel NonLinearAnalyticMeasurementModelGaussianUncertainty
00036
00037
00047 class NonminimalKalmanFilter : public KalmanFilter
00048 {
00049 public:
00059 NonminimalKalmanFilter(Gaussian* prior,
00060 unsigned int NrIterations,
00061 vector<NLSysModel*> minimalsysmodels,
00062 vector<NLMeasModel*> minimalmeasmodels,
00063 vector<GiNaC::symbol> nonlinearstate = *(new vector<GiNaC::symbol>));
00064
00066 virtual ~NonminimalKalmanFilter();
00067
00068
00069 virtual void SysUpdate(SystemModel<ColumnVector>* const sysmodel,
00070 const ColumnVector& u);
00071 virtual void MeasUpdate(MeasurementModel<ColumnVector,ColumnVector>* const measmodel,
00072 const ColumnVector& z,
00073 const ColumnVector& s);
00074
00075 private:
00076 vector<GiNaC::symbol> MinimalState, NonminimalState;
00077 Linearise *Linear;
00078 IteratedExtendedKalmanFilter *NonminimalFilter, *MinimalFilter;
00079 Gaussian *NonminimalPrior, *MinimalPrior;
00080 NLMeasModel *MinimalMeasModel;
00081
00082 };
00083
00084 }
00085
00086 #endif // __NONMINIMAL_KALMAN_FILTER__
bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Mon Feb 11 2019 03:45:12