Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Particle Filter

Matthew Daigle edited this page Feb 8, 2017 · 3 revisions

Class implementing the SIR particle filter.

This class implements the sampling-importance-resampling particle filter algorithm. It accepts a model of the explicit discrete time-variant form:

   x(t+dt) = stateEqn(t,x(t),u(t),noise,dt)
     y(t) = outputEqn(t,x(t),u(t),noise)

State and output equations must be defined in a vectorized form, i.e., so that they can take several samples of state, input, output, and noise. Matrices must be formed such that the row represents the variable and the column the sample.

Assumptions

Currently assumes only Gaussian noise, specified using process and sensor noise variance vectors (so noise for each state/output is generated independently).

Limitations

Calculation of likelihood is done in a way found to be most efficient, but uses a lot of memory, so this method will have to be changed if a very large number of particles are used (like 10,000).

Methods

  • initialize(PF,t0,x0,u0) - Initialize filter given initial time, state, and inputs
  • estimate(PF,t,u,z) - Update the state and output estimates given new input and output data.
  • getStateEstimate(PF) - Return a state estimate structure with samples and weights fields

This class implements the Observer interface.

Clone this wiki locally

Morty Proxy This is a proxified and sanitized view of the page, visit original site.