gtsam  4.1.0
gtsam
gtsam::KalmanFilter Class Reference

Detailed Description

Kalman Filter class.

Knows how to maintain a Gaussian density under linear-Gaussian motion and measurement models. It uses the square-root information form, as usual in GTSAM.

The filter is functional, in that it does not have state: you call init() to create an initial state, then predict() and update() that create new states out of an old state.

Public Member Functions

 KalmanFilter (size_t n, Factorization method=KALMANFILTER_DEFAULT_FACTORIZATION)
 
State init (const Vector &x0, const SharedDiagonal &P0) const
 Create initial state, i.e., prior density at time k=0 In Kalman Filter notation, these are x_{0|0} and P_{0|0}. More...
 
State init (const Vector &x0, const Matrix &P0) const
 version of init with a full covariance matrix
 
void print (const std::string &s="") const
 print
 
State predict (const State &p, const Matrix &F, const Matrix &B, const Vector &u, const SharedDiagonal &modelQ) const
 Predict the state P(x_{t+1}|Z^t) In Kalman Filter notation, this is x_{t+1|t} and P_{t+1|t} Details and parameters: In a linear Kalman Filter, the motion model is f(x_{t}) = F*x_{t} + B*u_{t} + w where F is the state transition model/matrix, B is the control input model, and w is zero-mean, Gaussian white noise with covariance Q.
 
State predictQ (const State &p, const Matrix &F, const Matrix &B, const Vector &u, const Matrix &Q) const
 
State predict2 (const State &p, const Matrix &A0, const Matrix &A1, const Vector &b, const SharedDiagonal &model) const
 Predict the state P(x_{t+1}|Z^t) In Kalman Filter notation, this is x_{t+1|t} and P_{t+1|t} After the call, that is the density that can be queried. More...
 
State update (const State &p, const Matrix &H, const Vector &z, const SharedDiagonal &model) const
 Update Kalman filter with a measurement For the Kalman Filter, the measurement function, h(x_{t}) = z_{t} will be of the form h(x_{t}) = H*x_{t} + v where H is the observation model/matrix, and v is zero-mean, Gaussian white noise with covariance R. More...
 
State updateQ (const State &p, const Matrix &H, const Vector &z, const Matrix &Q) const
 

Static Public Member Functions

static Key step (const State &p)
 Return step index k, starts at 0, incremented at each predict.
 

Public Types

enum  Factorization { QR, CHOLESKY }
 This Kalman filter is a Square-root Information filter The type below allows you to specify the factorization variant.
 
typedef GaussianDensity::shared_ptr State
 The Kalman filter state is simply a GaussianDensity.
 

Member Function Documentation

◆ init()

KalmanFilter::State gtsam::KalmanFilter::init ( const Vector &  x0,
const SharedDiagonal &  P0 
) const

Create initial state, i.e., prior density at time k=0 In Kalman Filter notation, these are x_{0|0} and P_{0|0}.

Parameters
x0estimate at time 0
P0covariance at time 0, given as a diagonal Gaussian 'model'

◆ predict2()

KalmanFilter::State gtsam::KalmanFilter::predict2 ( const State p,
const Matrix &  A0,
const Matrix &  A1,
const Vector &  b,
const SharedDiagonal &  model 
) const

Predict the state P(x_{t+1}|Z^t) In Kalman Filter notation, this is x_{t+1|t} and P_{t+1|t} After the call, that is the density that can be queried.

Details and parameters: This version of predict takes GaussianFactor motion model [A0 A1 b] with an optional noise model.

◆ update()

KalmanFilter::State gtsam::KalmanFilter::update ( const State p,
const Matrix &  H,
const Vector &  z,
const SharedDiagonal &  model 
) const

Update Kalman filter with a measurement For the Kalman Filter, the measurement function, h(x_{t}) = z_{t} will be of the form h(x_{t}) = H*x_{t} + v where H is the observation model/matrix, and v is zero-mean, Gaussian white noise with covariance R.

In this version, R is restricted to diagonal Gaussians (model parameter)


The documentation for this class was generated from the following files: