pub trait ProcessModel {
// Required methods
fn propagate(
&self,
state: &NavigationState,
over: Duration,
) -> Result<NavigationState>;
fn jacobian(
&self,
state: &NavigationState,
over: Duration,
) -> Result<StateJacobian>;
fn noise(&self, state: &NavigationState, over: Duration) -> ProcessNoise;
}Expand description
State propagation between observations; injected into the estimator.
Required Methods§
Sourcefn propagate(
&self,
state: &NavigationState,
over: Duration,
) -> Result<NavigationState>
fn propagate( &self, state: &NavigationState, over: Duration, ) -> Result<NavigationState>
State after a step, f(x), with the covariance unchanged; the estimator
propagates the covariance from F and Q.
§Errors
Any error the model raises: negative step, unpropagatable state.
Sourcefn jacobian(
&self,
state: &NavigationState,
over: Duration,
) -> Result<StateJacobian>
fn jacobian( &self, state: &NavigationState, over: Duration, ) -> Result<StateJacobian>
Sourcefn noise(&self, state: &NavigationState, over: Duration) -> ProcessNoise
fn noise(&self, state: &NavigationState, over: Duration) -> ProcessNoise
Process noise Q at the start state.
State-dependent because noise may enter through the state (heading noise
moving position across track at the speed made good). A self-consistent
model gives the same Q for one step as for its two halves;
late-observation handling relies on it.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".