navlie.filters.GaussianSumFilter¶
- class navlie.filters.GaussianSumFilter(process_model: ProcessModel, reject_outliers=False)¶
Bases:
object
On-manifold Gaussian Sum Filter (GSF).
References for the GSF:
D. Alspach and H. Sorenson, “Nonlinear Bayesian estimation using Gaussian sum approximations,” in IEEE Transactions on Automatic Control, vol. 17, no. 4, pp. 439-448, August 1972.
The GSF involves Gaussian mixtures. Reference for mixing Gaussians on manifolds:
J. Ćesić, I. Marković and I. Petrović, “Mixture Reduction on Matrix Lie Groups,” in IEEE Signal Processing Letters, vol. 24, no. 11, pp. 1719-1723, Nov. 2017, doi: 10.1109/LSP.2017.2723765.
- Parameters:
process_models (List[ProcessModel]) – process models to be used in the prediction step
reject_outliers (bool, optional) – whether to apply the NIS test to measurements, by default False
- predict(x: MixtureState, u: Input, dt: float | None = None) → MixtureState¶
Propagates the state forward in time using a process model. The user must provide the current state, input, and time interval
Note
If the time interval
dt
is not provided in the arguments, it will be taken as the difference between the input stamp and the state stamp.- Parameters:
x (MixtureState) – The current states and their associated weights.
u (Input) – Input measurement to be given to process model
dt (float, optional) – Duration to next time step. If not provided, dt will be calculated with
dt = u.stamp - x.state.stamp
.
- Returns:
New predicted states with associated weights.
- Return type:
- correct(x: MixtureState, y: Measurement, u: Input) → MixtureState¶
Corrects the state estimate using a measurement. The user must provide the current state and measurement.
- Parameters:
x (MixtureState) – The current states and their associated weights.
y (Measurement) – Measurement to correct the state estimate.
u (Input) – Input measurement to be given to process model
- Returns:
Corrected states with associated weights.
- Return type:
- process_model¶
- reject_outliers¶