|
| ParticleFilter (MCPdf< StateVar > *prior, ConditionalPdf< StateVar, StateVar > *proposal, int resampleperiod=0, double resamplethreshold=0, int resamplescheme=DEFAULT_RS) |
| Constructor. More...
|
|
| ParticleFilter (MCPdf< StateVar > *prior, MCPdf< StateVar > *post, ConditionalPdf< StateVar, StateVar > *proposal, int resampleperiod=0, double resamplethreshold=0, int resamplescheme=DEFAULT_RS) |
| Constructor. More...
|
|
virtual | ~ParticleFilter () |
| Destructor.
|
|
| ParticleFilter (const ParticleFilter< StateVar, MeasVar > &filt) |
| Copy Constructor. More...
|
|
virtual void | ProposalSet (ConditionalPdf< StateVar, StateVar > *const cpdf) |
| Set the proposal density. More...
|
|
ConditionalPdf< StateVar, StateVar > * | ProposalGet () |
| Get a pointer to the proposal density. More...
|
|
virtual MCPdf< StateVar > * | PostGet () |
| Get Posterior density. More...
|
|
virtual void | Reset (Pdf< StateVar > *prior) |
| Reset Filter.
|
|
virtual bool | 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) More...
|
|
virtual bool | Update (SystemModel< StateVar > *const sysmodel, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s) |
| Full Update (system without inputs, with sensing params) More...
|
|
virtual bool | Update (SystemModel< StateVar > *const sysmodel, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z) |
| Full Update (system without inputs/sensing params) More...
|
|
virtual bool | Update (SystemModel< StateVar > *const sysmodel, const StateVar &u, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z) |
| Full Update (system with inputs, without sensing params) More...
|
|
virtual bool | Update (SystemModel< StateVar > *const sysmodel, const StateVar &u) |
| System Update (system with inputs) More...
|
|
virtual bool | Update (SystemModel< StateVar > *const sysmodel) |
| System Update (system without inputs) More...
|
|
virtual bool | Update (MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s) |
| Measurement Update (system with "sensing params") More...
|
|
virtual bool | Update (MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z) |
| Measurement Update (system without "sensing params") More...
|
|
int | TimeStepGet () const |
| Get current time. More...
|
|
|
virtual bool | UpdateInternal (SystemModel< StateVar > *const sysmodel, const StateVar &u, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s) |
| Actual implementation of Update, varies along filters. More...
|
|
virtual bool | ProposalStepInternal (SystemModel< StateVar > *const sysmodel, const StateVar &u, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s) |
| Proposal step. More...
|
|
virtual bool | UpdateWeightsInternal (SystemModel< StateVar > *const sysmodel, const StateVar &u, MeasurementModel< MeasVar, StateVar > *const measmodel, const MeasVar &z, const StateVar &s) |
| Update Weights. More...
|
|
virtual bool | DynamicResampleStep () |
| Resample if necessary. More...
|
|
virtual bool | StaticResampleStep () |
| Resample if wanted. More...
|
|
virtual bool | Resample () |
| Actual Resampling happens here;.
|
|
template<typename StateVar, typename MeasVar>
class BFL::ParticleFilter< StateVar, MeasVar >
Virtual Class representing all particle filters.
This is a virtual class representing the family of all particle filters. Particle filters are filters in which the Posterior density is represented by a set of particles (aka (weighted) samples). In other words, the posterior density is a Monte Carlo Pdf (class MCPdf)
However, the updating of the Posterior density can still be done in several ways, that's why the System and Measurement update members are still pure virtual functions.
This class is the base class for all sorts of particle filters.
- Todo:
- : Actually all particle filters represented by this class are of the "Sequential importance sampling methods" type. Typical of those methods is the so called Proposal density. In theory it would be possible to create Filters using a recursive version of other Monte Carlo methods (eg. MCMC methods), although I am not aware of any of these (due to the increased complexity).
- See also
- MCPdf
-
Sample
-
WeightedSample
- Bug:
- Resampling is not implemented generically enough yet. There's only the possibility to choose between static period resampling and dynamic resampling as proposed by Jun Liu. The correct way of implementing this would be to create a virtual function that has to be implemented by the user, but this creates more hassle for the user (a different particle filter for each scheme).
Definition at line 159 of file particlefilter.h.
bool UpdateInternal |
( |
SystemModel< StateVar > *const |
sysmodel, |
|
|
const StateVar & |
u, |
|
|
MeasurementModel< MeasVar, StateVar > *const |
measmodel, |
|
|
const MeasVar & |
z, |
|
|
const StateVar & |
s |
|
) |
| |
|
protectedvirtual |
Pointer to the Posterior Pdf.
The Posterior Pdf represents the subjective belief of the person applying the filter AFTER processing inputs and measurements. A filter does not maintain the beliefs at all timesteps t, since this leads to non-constant (or ever growing if you prefer) memory requirements. However, it is possible, to copy the Posterior density at all timesteps in your application by means of the PostGet() member function
- See also
- PostGet()
Definition at line 95 of file filter.h.