src
filter
filter.h
Go to the documentation of this file.
1
// $Id$
2
// Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>
3
//
4
/***************************************************************************
5
* This library is free software; you can redistribute it and/or *
6
* modify it under the terms of the GNU General Public *
7
* License as published by the Free Software Foundation; *
8
* version 2 of the License. *
9
* *
10
* As a special exception, you may use this file as part of a free *
11
* software library without restriction. Specifically, if other files *
12
* instantiate templates or use macros or inline functions from this *
13
* file, or you compile this file and link it with other files to *
14
* produce an executable, this file does not by itself cause the *
15
* resulting executable to be covered by the GNU General Public *
16
* License. This exception does not however invalidate any other *
17
* reasons why the executable file might be covered by the GNU General *
18
* Public License. *
19
* *
20
* This library is distributed in the hope that it will be useful, *
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
23
* Lesser General Public License for more details. *
24
* *
25
* You should have received a copy of the GNU General Public *
26
* License along with this library; if not, write to the Free Software *
27
* Foundation, Inc., 59 Temple Place, *
28
* Suite 330, Boston, MA 02111-1307 USA *
29
* *
30
***************************************************************************/
31
32
#ifndef __FILTER__
33
#define __FILTER__
34
35
#include "../model/systemmodel.h"
36
#include "../model/measurementmodel.h"
37
#include "../pdf/pdf.h"
38
39
namespace
BFL
40
{
41
using namespace
std
;
42
44
77
template
<
typename
StateVar,
typename
MeasVar>
class
Filter
78
{
79
protected
:
80
82
Pdf<StateVar>
*
_prior
;
83
85
95
Pdf<StateVar>
* _post;
96
98
100
int
_timestep
;
101
103
109
virtual
bool
UpdateInternal(
SystemModel<StateVar>
*
const
sysmodel,
110
const
StateVar
& u,
111
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
112
const
MeasVar
& z,
113
const
StateVar
& s)=0;
114
115
public
:
117
120
Filter
(
Pdf<StateVar>
* prior);
121
123
125
Filter
(
const
Filter<StateVar,MeasVar>
& filt);
126
128
virtual
~
Filter
();
129
131
virtual
void
Reset(
Pdf<StateVar>
* prior);
132
134
140
virtual
bool
Update(
SystemModel<StateVar>
*
const
sysmodel,
141
const
StateVar
& u,
142
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
143
const
MeasVar
& z,
144
const
StateVar
& s);
145
147
154
virtual
bool
Update(
SystemModel<StateVar>
*
const
sysmodel,
155
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
156
const
MeasVar
& z,
157
const
StateVar
& s);
159
165
virtual
bool
Update(
SystemModel<StateVar>
*
const
sysmodel,
166
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
167
const
MeasVar
& z);
169
175
virtual
bool
Update(
SystemModel<StateVar>
*
const
sysmodel,
176
const
StateVar
& u,
177
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
178
const
MeasVar
& z);
179
181
184
virtual
bool
Update(
SystemModel<StateVar>
*
const
sysmodel,
185
const
StateVar
& u);
187
189
virtual
bool
Update(
SystemModel<StateVar>
*
const
sysmodel);
190
192
197
virtual
bool
Update
(
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
198
const
MeasVar
& z,
199
const
StateVar
& s);
201
205
virtual
bool
Update(
MeasurementModel<MeasVar,StateVar>
*
const
measmodel,
206
const
MeasVar
& z);
207
209
212
virtual
Pdf<StateVar>
* PostGet();
213
215
218
int
TimeStepGet()
const
;
219
};
220
221
// For template instantiation
222
#include "
filter.cpp
"
223
224
}
// End namespace BFL
225
226
#endif // __FILTER__
BFL::Filter
Abstract class representing an interface for Bayesian Filters.
Definition:
filter.h:77
BFL::Pdf
Class PDF: Virtual Base class representing Probability Density Functions.
Definition:
pdf.h:53
std
StateVar
#define StateVar
BFL
Definition:
compare_filters/nonlinearanalyticconditionalgaussianmobile.cpp:24
BFL::Filter::Update
virtual bool Update(MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s)
Measurement Update (system with "sensing params")
Definition:
filter.h:110
BFL::Filter::_timestep
int _timestep
Represents the current timestep of the filter.
Definition:
filter.h:100
MeasVar
#define MeasVar
BFL::MeasurementModel
Definition:
measurementmodel.h:53
BFL::Filter::_prior
Pdf< StateVar > * _prior
prior Pdf
Definition:
filter.h:82
BFL::SystemModel
Definition:
systemmodel.h:48
filter.cpp
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