Struct nyx_space::od::ui::ODProcess [−][src]
pub struct ODProcess<'a, D: Dynamics, E: ErrorCtrl, Msr: Measurement<StateSize = <S as State>::Size>, N: MeasurementDevice<S, Msr>, T: EkfTrigger, A: DimName, S: EstimateFrom<D::StateType>, K: Filter<S, A, Msr::MeasurementSize>> where
D::StateType: Add<VectorN<f64, <S as State>::Size>, Output = D::StateType>,
DefaultAllocator: Allocator<f64, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size> + Allocator<f64, <D::StateType as State>::PropVecSize> + Allocator<f64, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, Msr::StateSize> + Allocator<f64, Msr::StateSize> + Allocator<f64, Msr::MeasurementSize, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::Size, Msr::MeasurementSize> + Allocator<f64, <D::StateType as State>::Size, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size, <S as State>::Size> + Allocator<f64, A> + Allocator<f64, A, A> + Allocator<f64, <D::StateType as State>::Size, A> + Allocator<f64, A, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size, A> + Allocator<f64, A, <S as State>::Size>, { pub prop: PropInstance<'a, D, E>, pub kf: K, pub devices: Vec<N>, pub simultaneous_msr: bool, pub estimates: Vec<K::Estimate>, pub residuals: Vec<Residual<Msr::MeasurementSize>>, pub ekf_trigger: T, // some fields omitted }
Expand description
An orbit determination process. Note that everything passed to this structure is moved.
Fields
prop: PropInstance<'a, D, E>
PropInstance used for the estimation
kf: K
Kalman filter itself
devices: Vec<N>
List of measurement devices used
simultaneous_msr: bool
Whether or not these devices can make simultaneous measurements of the spacecraft
estimates: Vec<K::Estimate>
Vector of estimates available after a pass
residuals: Vec<Residual<Msr::MeasurementSize>>
Vector of residuals available after a pass
ekf_trigger: T
Implementations
impl<'a, D: Dynamics, E: ErrorCtrl, Msr: Measurement<StateSize = <S as State>::Size>, N: MeasurementDevice<S, Msr>, T: EkfTrigger, A: DimName, S: EstimateFrom<D::StateType>, K: Filter<S, A, Msr::MeasurementSize>> ODProcess<'a, D, E, Msr, N, T, A, S, K> where
D::StateType: Add<VectorN<f64, <S as State>::Size>, Output = D::StateType>,
DefaultAllocator: Allocator<f64, <D::StateType as State>::Size> + Allocator<f64, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, Msr::StateSize> + Allocator<f64, Msr::StateSize> + Allocator<f64, Msr::MeasurementSize, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <D::StateType as State>::Size> + Allocator<f64, Msr::MeasurementSize, <S as State>::Size> + Allocator<f64, <D::StateType as State>::Size, Msr::MeasurementSize> + Allocator<f64, <S as State>::Size, Msr::MeasurementSize> + Allocator<f64, <D::StateType as State>::Size, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::PropVecSize> + Allocator<f64, A> + Allocator<f64, A, A> + Allocator<f64, <D::StateType as State>::Size, A> + Allocator<f64, A, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size> + Allocator<f64, <S as State>::Size, <S as State>::Size> + Allocator<f64, <S as State>::Size, A> + Allocator<f64, A, <S as State>::Size>,
[src]
impl<'a, D: Dynamics, E: ErrorCtrl, Msr: Measurement<StateSize = <S as State>::Size>, N: MeasurementDevice<S, Msr>, T: EkfTrigger, A: DimName, S: EstimateFrom<D::StateType>, K: Filter<S, A, Msr::MeasurementSize>> ODProcess<'a, D, E, Msr, N, T, A, S, K> where
D::StateType: Add<VectorN<f64, <S as State>::Size>, Output = D::StateType>,
DefaultAllocator: Allocator<f64, <D::StateType as State>::Size> + Allocator<f64, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, Msr::StateSize> + Allocator<f64, Msr::StateSize> + Allocator<f64, Msr::MeasurementSize, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <D::StateType as State>::Size> + Allocator<f64, Msr::MeasurementSize, <S as State>::Size> + Allocator<f64, <D::StateType as State>::Size, Msr::MeasurementSize> + Allocator<f64, <S as State>::Size, Msr::MeasurementSize> + Allocator<f64, <D::StateType as State>::Size, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::PropVecSize> + Allocator<f64, A> + Allocator<f64, A, A> + Allocator<f64, <D::StateType as State>::Size, A> + Allocator<f64, A, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size> + Allocator<f64, <S as State>::Size, <S as State>::Size> + Allocator<f64, <S as State>::Size, A> + Allocator<f64, A, <S as State>::Size>,
[src]pub fn ekf(
prop: PropInstance<'a, D, E>,
kf: K,
devices: Vec<N>,
simultaneous_msr: bool,
num_expected_msr: usize,
trigger: T
) -> Self
[src]Allows to smooth the provided estimates. Returns the smoothed estimates or an error.
Estimates must be ordered in chronological order. This function will smooth the estimates from the last in the list to the first one.
Allows iterating on the filter solution. Requires specifying a smoothing condition to know where to stop the smoothing.
Allows processing all measurements with covariance mapping.
Important notes: + the measurements have be to mapped to a fixed time corresponding to the step of the propagator
Allows for covariance mapping without processing measurements
Builds the navigation trajectory for the estimated state only (no covariance until https://gitlab.com/nyx-space/nyx/-/issues/199!)
impl<'a, D: Dynamics, E: ErrorCtrl, Msr: Measurement<StateSize = <S as State>::Size>, N: MeasurementDevice<S, Msr>, A: DimName, S: EstimateFrom<D::StateType>, K: Filter<S, A, Msr::MeasurementSize>> ODProcess<'a, D, E, Msr, N, CkfTrigger, A, S, K> where
D::StateType: Add<VectorN<f64, <S as State>::Size>, Output = D::StateType>,
DefaultAllocator: Allocator<f64, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::PropVecSize> + Allocator<f64, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, Msr::StateSize> + Allocator<f64, Msr::StateSize> + Allocator<f64, Msr::MeasurementSize, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::Size, Msr::MeasurementSize> + Allocator<f64, <S as State>::Size, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <S as State>::Size> + Allocator<f64, <D::StateType as State>::Size, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size> + Allocator<f64, <S as State>::Size, <S as State>::Size> + Allocator<f64, A> + Allocator<f64, A, A> + Allocator<f64, <D::StateType as State>::Size, A> + Allocator<f64, A, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size, A> + Allocator<f64, A, <S as State>::Size>,
[src]
impl<'a, D: Dynamics, E: ErrorCtrl, Msr: Measurement<StateSize = <S as State>::Size>, N: MeasurementDevice<S, Msr>, A: DimName, S: EstimateFrom<D::StateType>, K: Filter<S, A, Msr::MeasurementSize>> ODProcess<'a, D, E, Msr, N, CkfTrigger, A, S, K> where
D::StateType: Add<VectorN<f64, <S as State>::Size>, Output = D::StateType>,
DefaultAllocator: Allocator<f64, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::PropVecSize> + Allocator<f64, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, Msr::StateSize> + Allocator<f64, Msr::StateSize> + Allocator<f64, Msr::MeasurementSize, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <D::StateType as State>::Size> + Allocator<f64, <D::StateType as State>::Size, Msr::MeasurementSize> + Allocator<f64, <S as State>::Size, Msr::MeasurementSize> + Allocator<f64, Msr::MeasurementSize, <S as State>::Size> + Allocator<f64, <D::StateType as State>::Size, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size> + Allocator<f64, <S as State>::Size, <S as State>::Size> + Allocator<f64, A> + Allocator<f64, A, A> + Allocator<f64, <D::StateType as State>::Size, A> + Allocator<f64, A, <D::StateType as State>::Size> + Allocator<f64, <S as State>::Size, A> + Allocator<f64, A, <S as State>::Size>,
[src]Auto Trait Implementations
impl<'a, D, E, Msr, N, T, A, S, K> !RefUnwindSafe for ODProcess<'a, D, E, Msr, N, T, A, S, K>
impl<'a, D, E, Msr, N, T, A, S, K> !UnwindSafe for ODProcess<'a, D, E, Msr, N, T, A, S, K>
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
pub fn vzip(self) -> V