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>); }
Expand description
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
Required methods
fn previous_estimate(&self) -> &Self::Estimate
[src]
fn previous_estimate(&self) -> &Self::Estimate
[src]Returns the previous estimate
fn set_previous_estimate(&mut self, est: &Self::Estimate)
[src]
fn set_previous_estimate(&mut self, est: &Self::Estimate)
[src]Set the previous estimate
Update the State Transition Matrix (STM). This function must be called in between each
call to time_update
or measurement_update
.
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]
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.
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]
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]
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]
fn set_process_noise(&mut self, snc: SNC<A>)
[src]Sets the process noise matrix of the estimated state
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]
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]Returns the previous estimate
Update the State Transition Matrix (STM). This function must be called in between each
call to time_update
or measurement_update
.
Update the sensitivity matrix (or “H tilde”). This function must be called prior to each
call to measurement_update
.
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.
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.
Overwrites all of the process noises to the one provided
type Estimate = KfEstimate<T>