pub struct ImuSpec {
pub accel_vrw_mps_sqrt_s: f64,
pub gyro_arw_rad_sqrt_s: f64,
pub accel_bias_instab_mps2: f64,
pub gyro_bias_instab_rps: f64,
pub accel_bias_tau_s: f64,
pub gyro_bias_tau_s: f64,
pub accel_scale_instab_ppm: Option<f64>,
pub gyro_scale_instab_ppm: Option<f64>,
}Expand description
Datasheet-level IMU stochastic parameters.
Noise densities are one-sigma values in SI units per square-root second.
Bias instabilities are one-sigma bias magnitudes. A bias time constant of
RANDOM_WALK_BIAS_TAU_S selects the random-walk limit.
Fields§
§accel_vrw_mps_sqrt_s: f64Accelerometer velocity random walk in m/s per square-root second.
gyro_arw_rad_sqrt_s: f64Gyroscope angular random walk in rad per square-root second.
accel_bias_instab_mps2: f64Accelerometer bias instability in m/s^2.
gyro_bias_instab_rps: f64Gyroscope bias instability in rad/s.
accel_bias_tau_s: f64Accelerometer first-order Gauss-Markov bias time constant in seconds.
gyro_bias_tau_s: f64Gyroscope first-order Gauss-Markov bias time constant in seconds.
accel_scale_instab_ppm: Option<f64>Optional accelerometer scale instability in parts per million.
gyro_scale_instab_ppm: Option<f64>Optional gyroscope scale instability in parts per million.
Implementations§
Source§impl ImuSpec
impl ImuSpec
Sourcepub const fn datasheet(
accel_vrw_mps_sqrt_s: f64,
gyro_arw_rad_sqrt_s: f64,
accel_bias_instab_mps2: f64,
gyro_bias_instab_rps: f64,
accel_bias_tau_s: f64,
gyro_bias_tau_s: f64,
accel_scale_instab_ppm: Option<f64>,
gyro_scale_instab_ppm: Option<f64>,
) -> ImuSpec
pub const fn datasheet( accel_vrw_mps_sqrt_s: f64, gyro_arw_rad_sqrt_s: f64, accel_bias_instab_mps2: f64, gyro_bias_instab_rps: f64, accel_bias_tau_s: f64, gyro_bias_tau_s: f64, accel_scale_instab_ppm: Option<f64>, gyro_scale_instab_ppm: Option<f64>, ) -> ImuSpec
Build an IMU specification from datasheet values.
Representative navigation preset.
Sourcepub fn validate(&self) -> Result<(), InertialError>
pub fn validate(&self) -> Result<(), InertialError>
Validate finite, non-negative stochastic parameters and valid bias time constants.
Sourcepub fn accel_bias_decay(&self, dt_s: f64) -> Result<f64, InertialError>
pub fn accel_bias_decay(&self, dt_s: f64) -> Result<f64, InertialError>
Accelerometer bias decay over dt_s.
Sourcepub fn gyro_bias_decay(&self, dt_s: f64) -> Result<f64, InertialError>
pub fn gyro_bias_decay(&self, dt_s: f64) -> Result<f64, InertialError>
Gyroscope bias decay over dt_s.
Sourcepub fn accel_bias_variance_increment(
&self,
dt_s: f64,
) -> Result<f64, InertialError>
pub fn accel_bias_variance_increment( &self, dt_s: f64, ) -> Result<f64, InertialError>
Accelerometer bias variance increment over dt_s.
Sourcepub fn gyro_bias_variance_increment(
&self,
dt_s: f64,
) -> Result<f64, InertialError>
pub fn gyro_bias_variance_increment( &self, dt_s: f64, ) -> Result<f64, InertialError>
Gyroscope bias variance increment over dt_s.
Trait Implementations§
impl Copy for ImuSpec
impl StructuralPartialEq for ImuSpec
Auto Trait Implementations§
impl Freeze for ImuSpec
impl RefUnwindSafe for ImuSpec
impl Send for ImuSpec
impl Sync for ImuSpec
impl Unpin for ImuSpec
impl UnsafeUnpin for ImuSpec
impl UnwindSafe for ImuSpec
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,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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.