Bayesian Filtering Library Generated from SVN r
optimalimportancefilter.h
1// Copyright (C) 2003 Klaas Gadeyne <first dot last at gmail dot com>
2
3 /***************************************************************************
4 * This library is free software; you can redistribute it and/or *
5 * modify it under the terms of the GNU General Public *
6 * License as published by the Free Software Foundation; *
7 * version 2 of the License. *
8 * *
9 * As a special exception, you may use this file as part of a free *
10 * software library without restriction. Specifically, if other files *
11 * instantiate templates or use macros or inline functions from this *
12 * file, or you compile this file and link it with other files to *
13 * produce an executable, this file does not by itself cause the *
14 * resulting executable to be covered by the GNU General Public *
15 * License. This exception does not however invalidate any other *
16 * reasons why the executable file might be covered by the GNU General *
17 * Public License. *
18 * *
19 * This library is distributed in the hope that it will be useful, *
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Lesser General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
27 * Boston, MA 02110-1301 USA *
28 * *
29 ***************************************************************************/
30
31// $Id$
32
33#ifndef __OPTIMALIMPORTANCE_FILTER__
34#define __OPTIMALIMPORTANCE_FILTER__
35
36#include "particlefilter.h"
37
38namespace BFL
39{
40
42
67template <typename StateVar, typename MeasVar> class Optimalimportancefilter
68 : public ParticleFilter<StateVar,MeasVar>
69{
70 protected:
72
76 virtual void ConstructProposal(SystemModel<StateVar>* const sysmodel,
77 MeasurementModel<MeasVar,StateVar>* const measmodel);
78
79 public:
81
89 int resampleperiod = 0,
90 double resamplethreshold = 0,
91 int resamplescheme = DEFAULT_RS);
92
96 OptimalImportanceFilter(const OptimalImportanceFilter<StateVar,MeasVar> & filt);
97
98 virtual void Update(SystemModel<StateVar>* const sysmodel,
99 const StateVar& u,
100 MeasurementModel<MeasVar,StateVar>* const measmodel,
101 const MeasVar& z,
102 const StateVar& s);
103 virtual void Update(SystemModel<StateVar>* const sysmodel,
104 MeasurementModel<MeasVar,StateVar>* const measmodel,
105 const MeasVar& z,
106 const StateVar& s);
107 virtual void Update(SystemModel<StateVar>* const sysmodel,
108 MeasurementModel<MeasVar,StateVar>* const measmodel,
109 const MeasVar& z);
110 virtual void Update(SystemModel<StateVar>* const sysmodel,
111 const StateVar& u,
112 MeasurementModel<MeasVar,StateVar>* const measmodel,
113 const MeasVar& z);
114
116 virtual void Update(SystemModel<StateVar>* const sysmodel,
117 const StateVar& u);
118 virtual void Update(SystemModel<StateVar>* const sysmodel);
119
121 virtual void Update(MeasurementModel<MeasVar,StateVar>* const measmodel,
122 const MeasVar& z,
123 const StateVar& s);
124 virtual void Update(MeasurementModel<MeasVar,StateVar>* const measmodel,
125 const MeasVar& z);
126};
127
128#include "optimalimportancefilter.cpp"
129
130}
131
132#endif // __OPTIMALIMPORTANCE_FILTER__
Monte Carlo Pdf: Sample based implementation of Pdf.
Definition: mcpdf.h:50
Particular particle filter: Proposal PDF = Optimal Importance function.
OptimalImportanceFilter(const OptimalImportanceFilter< StateVar, MeasVar > &filt)
Copy constructor.
OptimalImportanceFilter(MCPdf< StateVar > *prior, int resampleperiod=0, double resamplethreshold=0, int resamplescheme=DEFAULT_RS)
Constructor.
virtual void Update(SystemModel< StateVar > *const sysmodel, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s)
Full Update (system without inputs, with sensing params)
virtual void Update(SystemModel< StateVar > *const sysmodel, const StateVar &u, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s)
Full Update (system with inputs/sensing params)
virtual void Update(MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z)
Measurement Update (system without "sensing params")
virtual void Update(SystemModel< StateVar > *const sysmodel, const StateVar &u)
Only sysupdate.
virtual void Update(SystemModel< StateVar > *const sysmodel)
System Update (system without inputs)
virtual ~OptimalImportanceFilter()
Destructor.
virtual void Update(MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s)
Only measupdate.
virtual void Update(SystemModel< StateVar > *const sysmodel, const StateVar &u, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z)
Full Update (system with inputs, without sensing params)
virtual void ConstructProposal(SystemModel< StateVar > *const sysmodel, MeasurementModel< MeasVar, StateVar > *const measmodel)
Construct Optimal importance density from a sys and meas. model.
virtual void Update(SystemModel< StateVar > *const sysmodel, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z)
Full Update (system without inputs/sensing params)
Virtual Class representing all particle filters.