nonminimalkalmanfilter.h
Go to the documentation of this file.
1 // $Id$
2 // Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>
3 // Wim Meeussen <wim dot meeussen at mech dot kuleuven dot ac dot be>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 //
19 
20 #ifndef __NONMINIMAL_KALMAN_FILTER__
21 #define __NONMINIMAL_KALMAN_FILTER__
22 
23 #include "kalmanfilter.h"
24 #include "../pdf/conditionalpdf.h"
25 #include "../pdf/gaussian.h"
26 #include "../model/nonlinearanalyticmeasurementmodel_gaussianuncertainty.h"
27 #include "../model/nonlinearanalyticsystemmodel_gaussianuncertainty.h"
28 #include "nonminimal_state/linearise.h"
29 #include "../filter/iteratedextendedkalmanfilter.h"
30 
31 namespace BFL
32 {
33 
34 #define NLSysModel NonLinearAnalyticSystemModelGaussianUncertainty
35 #define NLMeasModel NonLinearAnalyticMeasurementModelGaussianUncertainty
36 
37 
48  {
49  public:
60  unsigned int NrIterations,
61  vector<NLSysModel*> minimalsysmodels,
62  vector<NLMeasModel*> minimalmeasmodels,
63  vector<GiNaC::symbol> nonlinearstate = *(new vector<GiNaC::symbol>));
64 
66  virtual ~NonminimalKalmanFilter();
67 
68  // virtual functions
69  virtual void SysUpdate(SystemModel<ColumnVector>* const sysmodel,
70  const ColumnVector& u);
71  virtual void MeasUpdate(MeasurementModel<ColumnVector,ColumnVector>* const measmodel,
72  const ColumnVector& z,
73  const ColumnVector& s);
74 
75  private:
76  vector<GiNaC::symbol> MinimalState, NonminimalState;
77  Linearise *Linear;
81 
82  }; // class
83 
84 } // End namespace
85 
86 #endif // __NONMINIMAL_KALMAN_FILTER__
virtual ~NonminimalKalmanFilter()
Destructor.
#define NLMeasModel
Class representing Gaussian (or normal density)
Definition: gaussian.h:27
IteratedExtendedKalmanFilter * MinimalFilter
IteratedExtendedKalmanFilter * NonminimalFilter
vector< GiNaC::symbol > NonminimalState
virtual void SysUpdate(SystemModel< ColumnVector > *const sysmodel, const ColumnVector &u)
NonminimalKalmanFilter(Gaussian *prior, unsigned int NrIterations, vector< NLSysModel *> minimalsysmodels, vector< NLMeasModel *> minimalmeasmodels, vector< GiNaC::symbol > nonlinearstate= *(new vector< GiNaC::symbol >))
Class representing the family of all Kalman Filters (EKF, IEKF, ...)
Definition: kalmanfilter.h:49
vector< GiNaC::symbol > MinimalState
virtual void MeasUpdate(MeasurementModel< ColumnVector, ColumnVector > *const measmodel, const ColumnVector &z, const ColumnVector &s)


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 28 2022 21:56:33