Trait nyx_space::od::Filter[][src]

pub trait Filter<T, A, M> where
    A: DimName,
    M: DimName,
    T: State,
    DefaultAllocator: Allocator<f64, M> + Allocator<f64, <T as State>::Size> + Allocator<f64, A> + Allocator<f64, M, M> + Allocator<f64, M, <T as State>::Size> + Allocator<f64, <T as State>::Size, <T as State>::Size> + Allocator<f64, A, A> + Allocator<f64, <T as State>::Size, A> + Allocator<f64, A, <T as State>::Size>, 
{ type Estimate: Estimate<T>; fn previous_estimate(&self) -> &Self::Estimate;
fn set_previous_estimate(&mut self, est: &Self::Estimate);
fn update_stm(
        &mut self,
        new_stm: MatrixMN<f64, <T as State>::Size, <T as State>::Size>
    );
fn update_h_tilde(&mut self, h_tilde: MatrixMN<f64, M, <T as State>::Size>);
fn time_update(
        &mut self,
        nominal_state: T
    ) -> Result<Self::Estimate, NyxError>;
fn measurement_update(
        &mut self,
        nominal_state: T,
        real_obs: &VectorN<f64, M>,
        computed_obs: &VectorN<f64, M>
    ) -> Result<(Self::Estimate, Residual<M>), NyxError>;
fn is_extended(&self) -> bool;
fn set_extended(&mut self, status: bool);
fn set_process_noise(&mut self, snc: SNC<A>); }

Defines a Filter trait where S is the size of the estimated state, A the number of acceleration components of the EOMs (used for process noise matrix size), M the size of the measurements.

Associated Types

Loading content...

Required methods

fn previous_estimate(&self) -> &Self::Estimate[src]

Returns the previous estimate

fn set_previous_estimate(&mut self, est: &Self::Estimate)[src]

Set the previous estimate

fn update_stm(
    &mut self,
    new_stm: MatrixMN<f64, <T as State>::Size, <T as State>::Size>
)
[src]

Update the State Transition Matrix (STM). This function must be called in between each call to time_update or measurement_update.

fn update_h_tilde(&mut self, h_tilde: MatrixMN<f64, M, <T as State>::Size>)[src]

Update the sensitivity matrix (or “H tilde”). This function must be called prior to each call to measurement_update.

fn time_update(&mut self, nominal_state: T) -> Result<Self::Estimate, NyxError>[src]

Computes a time update/prediction at the provided nominal state (i.e. advances the filter estimate with the updated STM).

Returns an error if the STM was not updated.

fn measurement_update(
    &mut self,
    nominal_state: T,
    real_obs: &VectorN<f64, M>,
    computed_obs: &VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), NyxError>
[src]

Computes the measurement update with a provided real observation and computed observation.

Returns an error if the STM or sensitivity matrices were not updated.

fn is_extended(&self) -> bool[src]

Returns whether the filter is an extended filter (e.g. EKF)

fn set_extended(&mut self, status: bool)[src]

Sets the filter to be extended or not depending on the value of status

fn set_process_noise(&mut self, snc: SNC<A>)[src]

Sets the process noise matrix of the estimated state

Loading content...

Implementors

impl<T, A, M> Filter<T, A, M> for KF<T, A, M> where
    A: DimName,
    M: DimName,
    T: State,
    DefaultAllocator: Allocator<f64, M> + Allocator<f64, <T as State>::Size> + Allocator<f64, A> + Allocator<f64, M, M> + Allocator<f64, M, <T as State>::Size> + Allocator<f64, <T as State>::Size, M> + Allocator<f64, <T as State>::Size, <T as State>::Size> + Allocator<f64, A, A> + Allocator<f64, <T as State>::Size, A> + Allocator<f64, A, <T as State>::Size> + Allocator<usize, <T as State>::Size> + Allocator<usize, <T as State>::Size, <T as State>::Size>, 
[src]

type Estimate = KfEstimate<T>

fn previous_estimate(&self) -> &Self::Estimate[src]

Returns the previous estimate

fn update_stm(
    &mut self,
    new_stm: MatrixMN<f64, <T as State>::Size, <T as State>::Size>
)
[src]

Update the State Transition Matrix (STM). This function must be called in between each call to time_update or measurement_update.

fn update_h_tilde(&mut self, h_tilde: MatrixMN<f64, M, <T as State>::Size>)[src]

Update the sensitivity matrix (or “H tilde”). This function must be called prior to each call to measurement_update.

fn time_update(&mut self, nominal_state: T) -> Result<Self::Estimate, NyxError>[src]

Computes a time update/prediction (i.e. advances the filter estimate with the updated STM).

May return a FilterError if the STM was not updated.

fn measurement_update(
    &mut self,
    nominal_state: T,
    real_obs: &VectorN<f64, M>,
    computed_obs: &VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), NyxError>
[src]

Computes the measurement update with a provided real observation and computed observation.

May return a FilterError if the STM or sensitivity matrices were not updated.

fn set_process_noise(&mut self, snc: SNC<A>)[src]

Overwrites all of the process noises to the one provided

Loading content...