javaslam.filter
Class LinearizedFilter

java.lang.Object
  |
  +--javaslam.filter.LinearizedFilter
All Implemented Interfaces:
NonlinearFilter

public class LinearizedFilter
extends Object
implements NonlinearFilter

A filter for nonlinear systems that uses local linearizations of the dynamics and measurement models so that a linear-Gaussian filter can be used to maintain an approximate Gaussian belief state. This class permits an arbitrary combination of linearization techniques and filter techniques; for example:


Field Summary
protected  Filter filter
          The underlying linear-Gaussian filter.
protected  LinearizationFactory linearization
          The factory for creating linearizations.
 
Constructor Summary
LinearizedFilter(Filter filter, LinearizationFactory linearization)
          Constructor.
 
Method Summary
 void measurement(ListSet vars, NoisyVectorFunction g, double[] y)
          Performs an approximate nonlinear measurement update.
 void time(ListSet vars, NoisyVectorFunction f)
          Performs an approximate nonlinear time update.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

filter

protected Filter filter
The underlying linear-Gaussian filter.


linearization

protected LinearizationFactory linearization
The factory for creating linearizations.

Constructor Detail

LinearizedFilter

public LinearizedFilter(Filter filter,
                        LinearizationFactory linearization)
Constructor.

Parameters:
filter - the underlying linear-Gaussian filter used for filtering
linearization - a linearization factory used to create linearizations of nonlinear models
Method Detail

measurement

public void measurement(ListSet vars,
                        NoisyVectorFunction g,
                        double[] y)
Performs an approximate nonlinear measurement update. The parameters vars, g, and q define the measurement equation as follows:
y=g(x[vars], v)
where v is an independent white noise vector. Given the actual measurement y, this method updates the belief state.

Specified by:
measurement in interface NonlinearFilter
Parameters:
vars - an ordered set of the variables with sum dimension n in the belief state that causally influenced this measurement.
g - the noisy measurement function with input dimension n + m and output dimension k; the input is formed from x[vars] stacked on top of the noise vector v
y - the measurement k-vector
Throws:
IllegalArgumentException - if there are any dimension mismatches

time

public void time(ListSet vars,
                 NoisyVectorFunction f)
Performs an approximate nonlinear time update. The parameters vars, f, and q define the state evolution equation as follows:
xt + 1[vars]= f(xt[vars], w)
where w is an independent white noise vector. All variables not in vars are assumed stationary.

Specified by:
time in interface NonlinearFilter
Parameters:
vars - an ordered set of the variables with sum dimension n in the belief state that evolve.
f - the state evolution function with input dimension n + m and output dimension n
Throws:
IllegalArgumentException - if there are any dimension mismatches