[−][src]Trait nyx_space::od::Filter
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
Returns the previous estimate
fn update_stm(&mut self, new_stm: MatrixMN<f64, S, S>)
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, S>)
Update the sensitivity matrix (or "H tilde"). This function must be called prior to each
call to measurement_update
.
fn time_update(&mut self, dt: Epoch) -> Result<Self::Estimate, FilterError>
Computes a time update/prediction (i.e. advances the filter estimate with the updated STM).
Returns a FilterError if the STM was not updated.
fn measurement_update(
&mut self,
dt: Epoch,
real_obs: VectorN<f64, M>,
computed_obs: VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), FilterError>
&mut self,
dt: Epoch,
real_obs: VectorN<f64, M>,
computed_obs: VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), FilterError>
Computes the measurement update with a provided real observation and computed observation.
Returns a FilterError if the STM or sensitivity matrices were not updated.
fn is_extended(&self) -> bool
Returns whether the filter is an extended filter (e.g. EKF)
fn set_extended(&mut self, status: bool)
Sets the filter to be extended or not depending on the value of status
fn set_process_noise(&mut self, prc: MatrixMN<f64, A, A>)
Sets the process noise matrix in the frame of the estimated state
Implementors
impl<S, A, M> Filter<S, A, M> for KF<S, A, M> where
S: DimName,
A: DimName,
M: DimName,
DefaultAllocator: Allocator<f64, M> + Allocator<f64, S> + Allocator<f64, M, M> + Allocator<f64, M, S> + Allocator<f64, S, M> + Allocator<f64, S, S> + Allocator<f64, A, A> + Allocator<f64, S, A> + Allocator<f64, A, S>,
[src]
S: DimName,
A: DimName,
M: DimName,
DefaultAllocator: Allocator<f64, M> + Allocator<f64, S> + Allocator<f64, M, M> + Allocator<f64, M, S> + Allocator<f64, S, M> + Allocator<f64, S, S> + Allocator<f64, A, A> + Allocator<f64, S, A> + Allocator<f64, A, S>,
type Estimate = KfEstimate<S>
fn previous_estimate(&self) -> &Self::Estimate
[src]
Returns the previous estimate
fn update_stm(&mut self, new_stm: MatrixMN<f64, S, S>)
[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, S>)
[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, dt: Epoch) -> Result<Self::Estimate, FilterError>
[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,
dt: Epoch,
real_obs: VectorN<f64, M>,
computed_obs: VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), FilterError>
[src]
&mut self,
dt: Epoch,
real_obs: VectorN<f64, M>,
computed_obs: VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), FilterError>
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 is_extended(&self) -> bool
[src]
fn set_extended(&mut self, status: bool)
[src]
fn set_process_noise(&mut self, prc: MatrixMN<f64, A, A>)
[src]
impl<S, A, M> Filter<S, A, M> for SRIF<S, A, M> where
S: DimName + DimNameAdd<M> + DimNameAdd<S> + DimNameAdd<U1> + DimMin<U1>,
A: DimName,
M: DimName + DimNameAdd<S> + DimNameAdd<M> + DimNameAdd<U1>,
DimNameSum<S, M>: DimMin<DimNameSum<S, U1>>,
DefaultAllocator: Allocator<f64, M> + Allocator<f64, S> + Allocator<f64, M, M> + Allocator<f64, M, S> + Allocator<f64, DimNameSum<S, M>, DimNameSum<S, U1>> + Allocator<f64, DimNameSum<S, U1>, DimNameSum<S, M>> + Allocator<f64, DimNameSum<S, M>> + Allocator<f64, DimNameSum<S, U1>> + Allocator<f64, DimMinimum<DimNameSum<S, M>, DimNameSum<S, U1>>> + Allocator<f64, DimMinimum<DimNameSum<S, M>, DimNameSum<S, U1>>, DimNameSum<S, U1>> + Allocator<f64, S, M> + Allocator<f64, S, S> + Allocator<f64, A, A> + Allocator<f64, S, A> + Allocator<f64, A, S> + Allocator<f64, S, U1>,
[src]
S: DimName + DimNameAdd<M> + DimNameAdd<S> + DimNameAdd<U1> + DimMin<U1>,
A: DimName,
M: DimName + DimNameAdd<S> + DimNameAdd<M> + DimNameAdd<U1>,
DimNameSum<S, M>: DimMin<DimNameSum<S, U1>>,
DefaultAllocator: Allocator<f64, M> + Allocator<f64, S> + Allocator<f64, M, M> + Allocator<f64, M, S> + Allocator<f64, DimNameSum<S, M>, DimNameSum<S, U1>> + Allocator<f64, DimNameSum<S, U1>, DimNameSum<S, M>> + Allocator<f64, DimNameSum<S, M>> + Allocator<f64, DimNameSum<S, U1>> + Allocator<f64, DimMinimum<DimNameSum<S, M>, DimNameSum<S, U1>>> + Allocator<f64, DimMinimum<DimNameSum<S, M>, DimNameSum<S, U1>>, DimNameSum<S, U1>> + Allocator<f64, S, M> + Allocator<f64, S, S> + Allocator<f64, A, A> + Allocator<f64, S, A> + Allocator<f64, A, S> + Allocator<f64, S, U1>,
type Estimate = IfEstimate<S>
fn previous_estimate(&self) -> &Self::Estimate
[src]
Returns the previous estimate
fn update_stm(&mut self, new_stm: MatrixMN<f64, S, S>)
[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, S>)
[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, dt: Epoch) -> Result<Self::Estimate, FilterError>
[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,
dt: Epoch,
real_obs: VectorN<f64, M>,
computed_obs: VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), FilterError>
[src]
&mut self,
dt: Epoch,
real_obs: VectorN<f64, M>,
computed_obs: VectorN<f64, M>
) -> Result<(Self::Estimate, Residual<M>), FilterError>
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.