Sidereon.Estimation.TrackFilterConfig (Sidereon v0.23.0)

Copy Markdown View Source

Configuration for a no-IMU constant-velocity track filter.

Example

alias Sidereon.Estimation.{TrackFilter, TrackFilterConfig}

{:ok, config} =
  TrackFilterConfig.from_position(
    :ecef,
    0.0,
    [1.0, 2.0, 3.0],
    [[25.0, 0.0, 0.0], [0.0, 25.0, 0.0], [0.0, 0.0, 25.0]],
    100.0,
    0.05
  )

{:ok, filter} = TrackFilter.new(config)
{:ok, _prediction} = TrackFilter.predict(filter, 1.0)
{:ok, update} =
  TrackFilter.update_position(
    filter,
    [1.5, 2.0, 3.0],
    [[9.0, 0.0, 0.0], [0.0, 9.0, 0.0], [0.0, 0.0, 9.0]]
  )

update.updated.position_m

Summary

Functions

Build a config from a position fix and uncertain zero initial velocity.

Build a config from a position fix and uncertain zero initial velocity.

Build a config from position, velocity, full covariance, and acceleration PSD.

Build a config from position, velocity, full covariance, and acceleration PSD.

Types

t()

@type t() :: %Sidereon.Estimation.TrackFilterConfig{
  acceleration_variance_spectral_density_m2_s3: float(),
  dimension: pos_integer(),
  frame: Sidereon.Estimation.TrackState.frame(),
  initial_covariance: [[float()]],
  initial_position_m: [float()],
  initial_t_s: float(),
  initial_velocity_m_s: [float()]
}

Functions

from_position(opts)

@spec from_position(keyword() | map()) :: {:ok, t()} | {:error, term()}

Build a config from a position fix and uncertain zero initial velocity.

from_position(frame, initial_t_s, initial_position_m, position_covariance_m2, velocity_variance_m2_s2, q_m2_s3)

@spec from_position(
  Sidereon.Estimation.TrackState.frame(),
  number(),
  [number()] | tuple(),
  [[number()]],
  number(),
  number()
) :: {:ok, t()} | {:error, term()}

Build a config from a position fix and uncertain zero initial velocity.

new(opts)

@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}

Build a config from position, velocity, full covariance, and acceleration PSD.

new(frame, initial_t_s, initial_position_m, initial_velocity_m_s, initial_covariance, q_m2_s3)

@spec new(
  Sidereon.Estimation.TrackState.frame(),
  number(),
  [number()] | tuple(),
  [number()] | tuple(),
  [[number()]],
  number()
) :: {:ok, t()} | {:error, term()}

Build a config from position, velocity, full covariance, and acceleration PSD.