InformationFilter¶
Introduction and Overview¶
This is a basic implementation of the information filter.
Copyright 2014 Roger R Labbe Jr.
filterpy library. http://github.com/rlabbe/filterpy
Documentation at: https://filterpy.readthedocs.org
Supporting book at: https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python
This is licensed under an MIT license. See the readme.MD file for more information.
-
class
filterpy.kalman.
InformationFilter
(dim_x, dim_z, dim_u=0)[source]¶ -
__init__
(dim_x, dim_z, dim_u=0)¶ Create a Information filter. You are responsible for setting the various state variables to reasonable values; the defaults below will not give you a functional filter.
Parameters
- dim_x : int
Number of state variables for the filter. For example, if you are tracking the position and velocity of an object in two dimensions, dim_x would be 4.
This is used to set the default size of P, Q, and u
- dim_z : int
- Number of of measurement inputs. For example, if the sensor provides you with position in (x,y), dim_z would be 2.
- dim_u : int (optional)
- size of the control input, if it is being used. Default value of 0 indicates it is not used.
-
B
¶ control transition matrix
-
K
¶ Kalman gain
-
P_inv
¶ inverse covariance matrix
-
Q
¶ Process uncertainty
-
R_inv
¶ measurement uncertainty
-
S
¶ system uncertainy in measurement space
-
batch_filter
(zs, Rs=None, update_first=False)¶ Batch processes a sequences of measurements.
Parameters
- zs : list-like
- list of measurements at each time step self.dt Missing measurements must be represented by ‘None’.
- Rs : list-like, optional
- optional list of values to use for the measurement error covariance; a value of None in any position will cause the filter to use self.R for that time step.
- update_first : bool, optional,
- controls whether the order of operations is update followed by predict, or predict followed by update. Default is predict->update.
Returns
- means: np.array((n,dim_x,1))
- array of the state for each time step. Each entry is an np.array. In other words means[k,:] is the state at step k.
- covariance: np.array((n,dim_x,dim_x))
- array of the covariances for each time step. In other words covariance[k,:,:] is the covariance at step k.
-
get_prediction
(u=0)¶ Predicts the next state of the filter and returns it. Does not alter the state of the filter.
Parameters
- u : np.array
- optional control input
Returns
- (x, P)
- State vector and covariance array of the prediction.
-
measurement_of_state
(x)¶ Helper function that converts a state into a measurement.
Parameters
- x : np.array
- kalman state vector
Returns
- z : np.array
- measurement corresponding to the given state
-
predict
(u=0)¶ Predict next position.
Parameters
- u : np.array
- Optional control vector. If non-zero, it is multiplied by B to create the control input into the system.
-
residual_of
(z)¶ returns the residual for the given measurement (z). Does not alter the state of the filter.
-
update
(z, R_inv=None)¶ Add a new measurement (z) to the kalman filter. If z is None, nothing is changed.
Parameters
- z : np.array
- measurement for this update.
- R : np.array, scalar, or None
- Optionally provide R to override the measurement noise for this one call, otherwise self.R will be used.
-
y
¶ measurement residual (innovation)
-