rauchtungstriebel.h
Go to the documentation of this file.
1 // $Id: rauchtungstriebel.h 6736 2006-12-22 11:24:42Z tdelaet $
2 // Copyright (C) 2006 Tinne De Laet <first dot last at mech dot kuleuven dot be>
3 //
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as published by
6 // the Free Software Foundation; either version 2.1 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 //
18 
19 #ifndef __RAUCHTUNGSTRIEBEL__
20 #define __RAUCHTUNGSTRIEBEL__
21 
22 #include "backwardfilter.h"
23 #include "../pdf/gaussian.h"
24 #include "../pdf/conditionalpdf.h"
25 #include "../model/analyticsystemmodel_gaussianuncertainty.h"
26 
27 namespace BFL
28 {
29 
31 
42 class RauchTungStriebel : public BackwardFilter<MatrixWrapper::ColumnVector>
43 {
44 public:
46 
50 
52  virtual ~RauchTungStriebel();
53 
54 protected:
55 
57  void PostSigmaSet( const MatrixWrapper::SymmetricMatrix& s);
58 
60  void PostMuSet( const MatrixWrapper::ColumnVector& c);
61 
63 
69  virtual void SysUpdate(SystemModel<MatrixWrapper::ColumnVector>* const sysmodel, const MatrixWrapper::ColumnVector& u , Pdf<ColumnVector>* const filtered_post);
70 
71  virtual bool UpdateInternal(SystemModel<ColumnVector>* const sysmodel, const ColumnVector& u, Pdf<ColumnVector>* const filtered_post);
72 
73 private:
74  // Variables to avoid allocation during sysupdate call
75  ColumnVector _x, _xf, _xpred, _xsmooth;
76  Matrix _F, _Ppred, _Pxx, _K, _Psmooth;
77  SymmetricMatrix _Q, _Sigma_new;
78 }; // class
79 
80 } // End namespace BFL
81 
82 #endif //__RAUCHTUNGSTRIEBEL__
RauchTungStriebel(Gaussian *prior)
Constructor.
Class PDF: Virtual Base class representing Probability Density Functions.
Definition: pdf.h:53
Class representing all Rauch-Tung-Striebel backward filters.
SymmetricMatrix _Sigma_new
Class representing Gaussian (or normal density)
Definition: gaussian.h:27
Virtual Baseclass representing all bayesian backward filters.
virtual bool UpdateInternal(SystemModel< ColumnVector > *const sysmodel, const ColumnVector &u, Pdf< ColumnVector > *const filtered_post)
void PostMuSet(const MatrixWrapper::ColumnVector &c)
Set expected value of posterior estimate.
void PostSigmaSet(const MatrixWrapper::SymmetricMatrix &s)
Set covariance of posterior estimate.
virtual ~RauchTungStriebel()
Destructor.
virtual void SysUpdate(SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u, Pdf< ColumnVector > *const filtered_post)
System Update.


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