[−][src]Struct adskalman::KalmanFilterNoControl
A Kalman filter with no control inputs, a linear process model and linear observation model
Implementations
impl<'a, R, SS, OS> KalmanFilterNoControl<'a, R, SS, OS> where
R: RealField,
SS: DimName,
OS: DimName + DimMin<OS, Output = OS>,
DefaultAllocator: Allocator<R, SS, SS>,
DefaultAllocator: Allocator<R, SS>,
DefaultAllocator: Allocator<R, OS, SS>,
DefaultAllocator: Allocator<R, SS, OS>,
DefaultAllocator: Allocator<R, OS, OS>,
DefaultAllocator: Allocator<R, OS>,
DefaultAllocator: Allocator<(usize, usize), OS>,
[src]
R: RealField,
SS: DimName,
OS: DimName + DimMin<OS, Output = OS>,
DefaultAllocator: Allocator<R, SS, SS>,
DefaultAllocator: Allocator<R, SS>,
DefaultAllocator: Allocator<R, OS, SS>,
DefaultAllocator: Allocator<R, SS, OS>,
DefaultAllocator: Allocator<R, OS, OS>,
DefaultAllocator: Allocator<R, OS>,
DefaultAllocator: Allocator<(usize, usize), OS>,
pub fn new(
transition_model: &'a dyn TransitionModelLinearNoControl<R, SS>,
observation_matrix: &'a dyn ObservationModelLinear<R, SS, OS>
) -> Self
[src]
transition_model: &'a dyn TransitionModelLinearNoControl<R, SS>,
observation_matrix: &'a dyn ObservationModelLinear<R, SS, OS>
) -> Self
pub fn step(
&self,
previous_estimate: &StateAndCovariance<R, SS>,
observation: &VectorN<R, OS>
) -> Result<StateAndCovariance<R, SS>, Error>
[src]
&self,
previous_estimate: &StateAndCovariance<R, SS>,
observation: &VectorN<R, OS>
) -> Result<StateAndCovariance<R, SS>, Error>
Perform Kalman prediction and update steps with default values
If any component of the observation is NaN (not a number), the observation will not be used but rather the prior will be returned as the posterior without performing the update step.
This calls the prediction step of the transition model and then, if
there is a (non-nan
) observation, calls the update step of the observation
model using the CoverianceUpdateMethod::OptimalKalmanForcedSymmetric
covariance update method.
This is a convenience method calling step_with_options
pub fn step_with_options(
&self,
previous_estimate: &StateAndCovariance<R, SS>,
observation: &VectorN<R, OS>,
covariance_update_method: CoverianceUpdateMethod
) -> Result<StateAndCovariance<R, SS>, Error>
[src]
&self,
previous_estimate: &StateAndCovariance<R, SS>,
observation: &VectorN<R, OS>,
covariance_update_method: CoverianceUpdateMethod
) -> Result<StateAndCovariance<R, SS>, Error>
Perform Kalman prediction and update steps with default values
If any component of the observation is NaN (not a number), the observation will not be used but rather the prior will be returned as the posterior without performing the update step.
This calls the prediction step of the transition model and then, if
there is a (non-nan
) observation, calls the update step of the
observation model using the specified covariance update method.
pub fn filter_inplace(
&self,
initial_estimate: &StateAndCovariance<R, SS>,
observations: &[VectorN<R, OS>],
state_estimates: &mut [StateAndCovariance<R, SS>]
) -> Result<(), Error>
[src]
&self,
initial_estimate: &StateAndCovariance<R, SS>,
observations: &[VectorN<R, OS>],
state_estimates: &mut [StateAndCovariance<R, SS>]
) -> Result<(), Error>
Kalman filter (operates on in-place data without allocating)
Operates on entire time series in one shot and returns a vector of state
estimates. To be mathematically correct, the interval between
observations must be the dt
specified in the motion model.
If any observation has a NaN component, it is treated as missing.
pub fn filter(
&self,
initial_estimate: &StateAndCovariance<R, SS>,
observations: &[VectorN<R, OS>]
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
[src]
&self,
initial_estimate: &StateAndCovariance<R, SS>,
observations: &[VectorN<R, OS>]
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
Kalman filter
This is a convenience function that calls filter_inplace
.
pub fn smooth(
&self,
initial_estimate: &StateAndCovariance<R, SS>,
observations: &[VectorN<R, OS>]
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
[src]
&self,
initial_estimate: &StateAndCovariance<R, SS>,
observations: &[VectorN<R, OS>]
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
Rauch-Tung-Striebel (RTS) smoother
Operates on entire time series in one shot and returns a vector of state
estimates. To be mathematically correct, the interval between
observations must be the dt
specified in the motion model.
If any observation has a NaN component, it is treated as missing.
pub fn smooth_from_filtered(
&self,
forward_results: Vec<StateAndCovariance<R, SS>>
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
[src]
&self,
forward_results: Vec<StateAndCovariance<R, SS>>
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
Rauch-Tung-Striebel (RTS) smoother using already Kalman filtered estimates
Operates on entire time series in one shot and returns a vector of state
estimates. To be mathematically correct, the interval between
observations must be the dt
specified in the motion model.
Auto Trait Implementations
impl<'a, R, SS, OS> !RefUnwindSafe for KalmanFilterNoControl<'a, R, SS, OS>
impl<'a, R, SS, OS> !Send for KalmanFilterNoControl<'a, R, SS, OS>
impl<'a, R, SS, OS> !Sync for KalmanFilterNoControl<'a, R, SS, OS>
impl<'a, R, SS, OS> Unpin for KalmanFilterNoControl<'a, R, SS, OS>
impl<'a, R, SS, OS> !UnwindSafe for KalmanFilterNoControl<'a, R, SS, OS>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,