[][src]Struct nyx_space::od::ui::ODProcess

pub struct ODProcess<'a, D: Estimable<N::MeasurementInput, LinStateSize = M::StateSize>, E: ErrorCtrl, M: Measurement, N: MeasurementDevice<M>, T: EkfTrigger, A: DimName, K: Filter<D::LinStateSize, A, M::MeasurementSize>> where
    DefaultAllocator: Allocator<f64, D::StateSize> + Allocator<f64, M::MeasurementSize> + Allocator<f64, M::MeasurementSize, M::StateSize> + Allocator<f64, D::LinStateSize> + Allocator<f64, M::MeasurementSize, M::MeasurementSize> + Allocator<f64, M::MeasurementSize, D::LinStateSize> + Allocator<f64, D::LinStateSize, M::MeasurementSize> + Allocator<f64, D::LinStateSize, D::LinStateSize> + Allocator<f64, A, A> + Allocator<f64, D::LinStateSize, A> + Allocator<f64, A, D::LinStateSize>, 
{ pub prop: &'a mut Propagator<'a, D, E>, pub kf: &'a mut K, pub devices: &'a [N], pub simultaneous_msr: bool, pub estimates: Vec<K::Estimate>, pub residuals: Vec<Residual<M::MeasurementSize>>, pub ekf_trigger: T, // some fields omitted }

Fields

prop: &'a mut Propagator<'a, D, E>

Propagator used for the estimation

kf: &'a mut K

Kalman filter itself

devices: &'a [N]

List of measurement devices used

simultaneous_msr: bool

Whether or not these devices can make simultaneous measurements of the spacecraft

estimates: Vec<K::Estimate>

Vector of estimates available after a pass

residuals: Vec<Residual<M::MeasurementSize>>

Vector of residuals available after a pass

ekf_trigger: T

Methods

impl<'a, D: Estimable<N::MeasurementInput, LinStateSize = M::StateSize>, E: ErrorCtrl, M: Measurement, N: MeasurementDevice<M>, T: EkfTrigger, A: DimName, K: Filter<D::LinStateSize, A, M::MeasurementSize>> ODProcess<'a, D, E, M, N, T, A, K> where
    DefaultAllocator: Allocator<f64, D::StateSize> + Allocator<f64, M::MeasurementSize> + Allocator<f64, M::MeasurementSize, M::StateSize> + Allocator<f64, D::LinStateSize> + Allocator<f64, M::MeasurementSize, M::MeasurementSize> + Allocator<f64, M::MeasurementSize, D::LinStateSize> + Allocator<f64, D::LinStateSize, M::MeasurementSize> + Allocator<f64, D::LinStateSize, D::LinStateSize> + Allocator<f64, A, A> + Allocator<f64, D::LinStateSize, A> + Allocator<f64, A, D::LinStateSize>, 
[src]

pub fn ekf(
    prop: &'a mut Propagator<'a, D, E>,
    kf: &'a mut K,
    devices: &'a [N],
    simultaneous_msr: bool,
    num_expected_msr: usize,
    trigger: T
) -> Self
[src]

pub fn default_ekf(
    prop: &'a mut Propagator<'a, D, E>,
    kf: &'a mut K,
    devices: &'a [N],
    trigger: T
) -> Self
[src]

pub fn smooth(&mut self) -> Option<FilterError>[src]

Allows to smooth the provided estimates. Returns an array of smoothed estimates.

Estimates must be ordered in chronological order. This function will smooth the estimates from the last in the list to the first one.

pub fn process_measurements(
    &mut self,
    measurements: &[(Epoch, M)]
) -> Option<FilterError>
[src]

Allows processing all measurements without covariance mapping.

pub fn process_measurements_covar(
    &mut self,
    prop_rx: &Receiver<D::StateType>,
    measurements: &[(Epoch, M)]
) -> Option<FilterError>
[src]

Allows processing all measurements with covariance mapping.

Important notes: + the measurements have be to mapped to a fixed time corresponding to the step of the propagator

pub fn map_covar(
    &mut self,
    prop_rx: &Receiver<D::StateType>,
    end_epoch: Epoch
) -> Option<FilterError>
[src]

Allows for covariance mapping without processing measurements

impl<'a, D: Estimable<N::MeasurementInput, LinStateSize = M::StateSize>, E: ErrorCtrl, M: Measurement, N: MeasurementDevice<M>, A: DimName, K: Filter<D::LinStateSize, A, M::MeasurementSize>> ODProcess<'a, D, E, M, N, CkfTrigger, A, K> where
    DefaultAllocator: Allocator<f64, D::StateSize> + Allocator<f64, M::MeasurementSize> + Allocator<f64, M::MeasurementSize, M::StateSize> + Allocator<f64, D::LinStateSize> + Allocator<f64, M::MeasurementSize, M::MeasurementSize> + Allocator<f64, M::MeasurementSize, D::LinStateSize> + Allocator<f64, D::LinStateSize, M::MeasurementSize> + Allocator<f64, D::LinStateSize, D::LinStateSize> + Allocator<f64, A, A> + Allocator<f64, D::LinStateSize, A> + Allocator<f64, A, D::LinStateSize>, 
[src]

pub fn ckf(
    prop: &'a mut Propagator<'a, D, E>,
    kf: &'a mut K,
    devices: &'a [N],
    simultaneous_msr: bool,
    num_expected_msr: usize
) -> Self
[src]

pub fn default_ckf(
    prop: &'a mut Propagator<'a, D, E>,
    kf: &'a mut K,
    devices: &'a [N]
) -> Self
[src]

Auto Trait Implementations

impl<'a, D, E, M, N, T, A, K> !RefUnwindSafe for ODProcess<'a, D, E, M, N, T, A, K>

impl<'a, D, E, M, N, T, A, K> !Send for ODProcess<'a, D, E, M, N, T, A, K>

impl<'a, D, E, M, N, T, A, K> !Sync for ODProcess<'a, D, E, M, N, T, A, K>

impl<'a, D, E, M, N, T, A, K> !Unpin for ODProcess<'a, D, E, M, N, T, A, K>

impl<'a, D, E, M, N, T, A, K> !UnwindSafe for ODProcess<'a, D, E, M, N, T, A, K>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,