kfilter.hpp

Go to the documentation of this file.
00001 // This file is part of kfilter.
00002 // kfilter is a C++ variable-dimension extended kalman filter library.
00003 //
00004 // Copyright (C) 2004        Vincent Zalzal, Sylvain Marleau
00005 // Copyright (C) 2001, 2004  Richard Gourdeau
00006 // Copyright (C) 2004        GRPR and DGE's Automation sector
00007 //                           École Polytechnique de Montréal
00008 //
00009 // Code adapted from algorithms presented in :
00010 //      Bierman, G. J. "Factorization Methods for Discrete Sequential
00011 //      Estimation", Academic Press, 1977.
00012 //
00013 // This library is free software; you can redistribute it and/or
00014 // modify it under the terms of the GNU Lesser General Public
00015 // License as published by the Free Software Foundation; either
00016 // version 2.1 of the License, or (at your option) any later version.
00017 //
00018 // This library is distributed in the hope that it will be useful,
00019 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00020 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021 // Lesser General Public License for more details.
00022 //
00023 // You should have received a copy of the GNU Lesser General Public
00024 // License along with this library; if not, write to the Free Software
00025 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00026 
00027 #ifndef KFILTER_HPP
00028 #define KFILTER_HPP
00029 
00032 
00033 #include "kalman/ekfilter.hpp"
00034 
00035 namespace Kalman {
00036 
00037   // TODO : il faut que E(v) == 0 && E(w) == 0 !!!
00038 
00040 
00081   template<typename T, K_UINT_32 BEG, bool OQ = false, 
00082            bool OVR = false, bool DBG = true>
00083   class KFilter : public EKFilter<T, BEG, OQ, OVR, DBG> {
00084   public:
00085 
00087     virtual ~KFilter() = 0;
00088     
00089   protected:
00090 
00092     virtual void makeBaseB();
00093 
00095     virtual void makeB();
00096     
00098     Matrix B;
00099 
00100   private:
00101 
00103     virtual void makeProcess();
00104 
00106     virtual void makeMeasure();
00107 
00109     virtual void sizeUpdate();
00110 
00112     Vector x__;
00113   };
00114 
00115 }
00116 
00117 #include "kalman/kfilter_impl.hpp"
00118 
00119 #endif

Generated on Sat Jan 28 21:02:01 2006 for KFilter by  doxygen 1.4.5