CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

Estimation/StrapdownINS/ESKF/Tuning.mo

Download original .moGitHub source

Documentation: Estimation.StrapdownINS.ESKF.Tuning

within Estimation.StrapdownINS.ESKF;

record Tuning
  "Fixed filter tuning held constant across every estimator tick"
  NominalState initialState
    "Nominal state used when no aiding source can seed initialization";
  Estimation.StrapdownINS.InitialVariances initialVariances;
  Estimation.StrapdownINS.ProcessNoise processNoise;
  VarianceLimits varianceLimits;
  Real innovationGate
    "Per-degree-of-freedom NIS gate; non-positive disables";
  Real localMagneticFieldWorldEnu_T[3];
  Boolean useEquivariantMagnetometer = false;
  Boolean useGeometricAlignment = false;
  Real barometerBias_m;
  Real barometerBiasVariance_m2;
  Boolean useBarometerBiasConsider = false;
  Boolean useJointBarometerBias = false;
  Real barometerBiasProcessNoise_m2_s = 0.0;
  Real maximumAidingDelay_s;
  Real minimumOpticalFlowQuality;
  Real minimumOpticalFlowGroundDistance_m;
  Real covarianceInflateWindow_s
    "Wall-clock time the anchor source has been unable to move the state
     after which the position and velocity covariance begins ramping
     toward the mission envelope";
  Real covarianceInflateTimeConstant_s
    "e-folding time of that ramp; bounds how far one tick can widen the
     gate, and so how far one correction can move the state";
  Real aidingDivergentWindow_s
    "Wall-clock time after which the anchor is reported divergent; a
     status signal only, never a withdrawal of estimate.valid";
  Real aidingStaleTimeout_s
    "How long a source may go without a fresh sample before it stops
     counting as available for anchor selection. Bridges pulsed sensor
     wiring, where `valid` is asserted only on the ticks that carry a
     fix, and demotes a source that is permanently valid but never fresh";
  Real aidingReseedWindow_s
    "Wall-clock time the anchor source has been unable to move the state
     after which, on the next fresh finite anchor sample, the estimator
     re-seeds position (and velocity from a GPS sample that reports it)
     from that sample and restores the position and velocity covariance
     to the initial variances. Non-positive disables re-seeding; when
     enabled it must exceed aidingDivergentWindow_s, and any unusable
     value disables only the re-seed while leaving the rest of the ladder
     in force";
  Real initialAlignmentWindow_s
    "Unbroken quasi-static time required before the filter aligns its
     initial attitude from the IMU; non-positive aligns on the first usable
     sample";
  Real initialAlignmentTimeout_s
    "Time with a usable IMU after which a pending alignment is taken on the
     current sample even though the vehicle never held still for the
     window; non-positive waits indefinitely";
  Real quietSpecificForceTolerance_m_s2
    "How far the specific-force magnitude may differ from gravity while the
     vehicle still counts as quasi-static";
  Real quietAngularRateLimit_rad_s
    "Angular-rate magnitude below which the vehicle counts as quasi-static";
  Real quietFilterTimeConstant_s
    "Time constant of the first-order low-pass the quasi-static test and the
     accelerometer alignment read the IMU through, so a noisy sensor still
     shows a resting vehicle; non-positive reads the raw samples";
  Real pseudoPositionVariance_m2
    "Per-axis variance of the synthetic hold-position measurement fused while
     no anchor source is live; non-positive disables it";
  Real zeroVelocityVariance_m2_s2
    "Per-axis variance of the synthetic zero-velocity measurement fused while
     quasi-static and unaided; non-positive disables it";
  Real stationaryVelocityVariance_m2_s2 = 0.01;
  Boolean useSemiDirectBias = false;
  Boolean useStationaryImu = false;
  Boolean useSquareRootCovariance = false;
end Tuning;