nyx_space::od

Trait EstimateFrom

Source
pub trait EstimateFrom<O: State, M: Measurement>
where Self: State, DefaultAllocator: Allocator<<O as State>::Size> + Allocator<<O as State>::VecLength> + Allocator<<O as State>::Size, <O as State>::Size> + Allocator<Self::Size> + Allocator<Self::VecLength> + Allocator<Self::Size, Self::Size>,
{ // Required methods fn extract(from: O) -> Self; fn sensitivity( msr: &M, receiver: Self, transmitter: Orbit, ) -> OMatrix<f64, M::MeasurementSize, Self::Size> where DefaultAllocator: Allocator<M::MeasurementSize, Self::Size>; }
Expand description

The Estimate trait defines the interface that is the opposite of a SolveFor. For example, impl EstimateFrom<Spacecraft> for Orbit means that the Orbit can be estimated (i.e. “solved for”) from a Spacecraft.

In the future, there will be a way to estimate ground station biases, for example. This will need a new State that includes both the Spacecraft and the ground station bias information. Then, the impl EstimateFrom<SpacecraftAndBias> for OrbitAndBias will be added, where OrbitAndBias is the new State that includes the orbit and the bias of one ground station.

Required Methods§

Source

fn extract(from: O) -> Self

From the state extract the state to be estimated

Source

fn sensitivity( msr: &M, receiver: Self, transmitter: Orbit, ) -> OMatrix<f64, M::MeasurementSize, Self::Size>

Returns the measurement sensitivity (often referred to as H tilde).

§Limitations

The transmitter is necessarily an Orbit. This implies that any non-orbit parameter in the estimation vector must be a zero-bias estimator, i.e. it must be assumed that the parameter should be zero. This is a limitation of the current implementation. It could be fixed by specifying another State like trait in the EstimateFrom trait, significantly adding complexity with little practical use. To solve for non zero bias parameters, one ought to be able to estimate the delta of that parameter and want that delta to return to zero, thereby becoming a zero-bias estimator.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl EstimateFrom<Spacecraft, RangeDoppler> for Spacecraft

Source§

impl<O> EstimateFrom<O, O> for O
where O: State + Measurement, Self: State, DefaultAllocator: Allocator<<O as State>::Size> + Allocator<<O as State>::VecLength> + Allocator<<O as State>::Size, <O as State>::Size> + Allocator<Self::Size> + Allocator<Self::VecLength> + Allocator<Self::Size, Self::Size>,

A generic implementation of EstimateFrom for any State that is also a Measurement, e.g. if there is a direct observation of the full state. WARNING: The frame of the full state measurement is not checked to match that of Self or of the filtering frame.