torchfilter.utils._sigma_points

Private module; avoid importing from directly.

Module Contents

Classes

SigmaPointStrategy

Strategy to use for computing sigma weights + selecting sigma points.

MerweSigmaPointStrategy

Sigma point selection in the style of [2].

JulierSigmaPointStrategy

Sigma point selection in this style of [1].

class torchfilter.utils._sigma_points.SigmaPointStrategy[source]

Bases: abc.ABC

Inheritance diagram of torchfilter.utils._sigma_points.SigmaPointStrategy

Strategy to use for computing sigma weights + selecting sigma points.

abstract compute_lambda(self, dim: int) float[source]

Compute sigma point scaling parameter.

Parameters:

dim (int) – Dimensionality of input vectors.

Returns:

float – Lambda scaling parameter.

abstract compute_sigma_weights(self, dim: int) Tuple[torch.Tensor, torch.Tensor][source]

Helper for computing sigma weights.

Parameters:

dim (int) – Dimensionality of input vectors.

Returns:

Tuple[torch.Tensor, torch.Tensor] – Covariance and mean weights. We expect 1D float32 tensors on the CPU.

class torchfilter.utils._sigma_points.MerweSigmaPointStrategy[source]

Bases: torchfilter.utils.SigmaPointStrategy

Inheritance diagram of torchfilter.utils._sigma_points.MerweSigmaPointStrategy

Sigma point selection in the style of [2].

[2] http://www.gatsby.ucl.ac.uk/~byron/nlds/merwe2003a.pdf

Keyword Arguments:
  • alpha (float) – Spread parameter. Defaults to 1e-2.

  • kappa (Optional[float]) – Secondary scaling parameter, which is typically set to 0.0 or 3 - dim. If None, we use 3 - dim.

  • beta (float) – Extra sigma parameter. Defaults to 2 (optimal for Gaussians, as per Section 3.2 in [2]).

alpha :float = 0.01
beta :float = 2.0
kappa :Optional[float]
compute_lambda(self, dim: int) float[source]

Compute sigma point scaling parameter.

Parameters:

dim (int) – Dimensionality of input vectors.

Returns:

float – Lambda scaling parameter.

compute_sigma_weights(self, dim: int) Tuple[torch.Tensor, torch.Tensor][source]

Helper for computing sigma weights.

Parameters:

dim (int) – Dimensionality of input vectors.

Returns:

Tuple[torch.Tensor, torch.Tensor] – Covariance and mean weights. We expect 1D float32 tensors on the CPU.

class torchfilter.utils._sigma_points.JulierSigmaPointStrategy[source]

Bases: torchfilter.utils.SigmaPointStrategy

Inheritance diagram of torchfilter.utils._sigma_points.JulierSigmaPointStrategy

Sigma point selection in this style of [1].

[1] https://www.cs.unc.edu/~welch/kalman/media/pdf/Julier1997_SPIE_KF.pdf

Keyword Arguments:

lambd (Optional[float]) – Spread parameter; sometimes denoted as kappa. If None, we use 3 - dim.

lambd :Optional[float]
compute_lambda(self, dim: int) float[source]

Compute sigma point scaling parameter.

Parameters:

dim (int) – Dimensionality of input vectors.

Returns:

float – Lambda scaling parameter.

compute_sigma_weights(self, dim: int) Tuple[torch.Tensor, torch.Tensor][source]

Helper for computing sigma weights.

Parameters:

dim (int) – Dimensionality of input vectors.

Returns:

Tuple[torch.Tensor, torch.Tensor] – Covariance and mean weights. We expect 1D float32 tensors on the CPU.