pub struct Correlation {
pub gnss_position: Option<Seconds>,
pub gnss_height: Option<Seconds>,
pub gnss_velocity: Option<Seconds>,
pub baro_altitude: Option<Seconds>,
pub mag_heading: Option<Seconds>,
pub gnss_heading: Option<Seconds>,
pub course: Option<Seconds>,
}Expand description
How long each source’s measurement error persists: the time constant τ of equation
(24′), per source. None fuses that source as white, which is (24) as written.
Equation (24) treats each measurement’s error as independent of the last, and almost no source
in the corpus is: fused as white, the lag-1 autocorrelation of its innovations (the acf1_ keys
of the replay summary line) is positive on nearly every real log. A filter that fuses such
measurements as white averages down an error it cannot observe, and its covariance claims the
averaging worked. (24′) fuses each at the variance that makes a run of them carry what they
actually carry, which is less the shorter the interval is against τ.
Inflating R rather than flooring P, and in the gain rather than the gate, is measured; the
decision records what each alternative read.
Per source, like Recovery and Gates, because a source is what the gate judges and
what (24′) times. Configured rather than derived, as ImuNoise is: it is a property of
the sensor, and the filter cannot measure it in flight without retuning itself. The replay
harness’s --derive reads it offline, τ = −T / ln ρ at a log’s sample interval T and its
lag-one innovation autocorrelation ρ, and that reading is a lower bound: an innovation is
whiter than the error behind it, because the filter follows part of that error. It falls
well short of a simulated sensor’s own τ, so --derive prints it only above the default
(measured); an estimator the filter does not bias is #195.
Fields§
§gnss_position: Option<Seconds>GNSS horizontal position.
gnss_height: Option<Seconds>GNSS height.
gnss_velocity: Option<Seconds>GNSS velocity, all three axes.
baro_altitude: Option<Seconds>Barometric altitude. The reference’s drift is (30′)’s, not this: this is the noise about it.
mag_heading: Option<Seconds>Magnetic heading, with the leveling variance of (36′) it carries.
gnss_heading: Option<Seconds>Dual-antenna GNSS heading.
course: Option<Seconds>Course constraint: the sideslip the constraint allows, which persists as long as the wind and the vehicle’s trim do.
Implementations§
Source§impl Correlation
impl Correlation
Trait Implementations§
Source§impl Clone for Correlation
impl Clone for Correlation
impl Copy for Correlation
Source§impl Debug for Correlation
impl Debug for Correlation
Source§impl Default for Correlation
impl Default for Correlation
Source§fn default() -> Self
fn default() -> Self
The corpus’s: τ = −T / ln ρ from each real log’s acf1_ for the source, read with every
measurement fused as white, at that log’s own sample interval, and the median over the real
logs whose autocorrelation is positive. GNSS heading and the course constraint rest on one
log each. The table, and the logs left out, are the decision’s.
Source§impl PartialEq for Correlation
impl PartialEq for Correlation
impl StructuralPartialEq for Correlation
Auto Trait Implementations§
impl Freeze for Correlation
impl RefUnwindSafe for Correlation
impl Send for Correlation
impl Sync for Correlation
impl Unpin for Correlation
impl UnsafeUnpin for Correlation
impl UnwindSafe for Correlation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.