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§
Sourcefn sensitivity(
msr: &M,
receiver: Self,
transmitter: Orbit,
) -> OMatrix<f64, M::MeasurementSize, Self::Size>
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§
impl EstimateFrom<Spacecraft, RangeDoppler> for Spacecraft
impl<O> EstimateFrom<O, O> for O
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.