Expand description
GNSS/INS fusion primitives.
The module keeps the already-merged inertial mechanization surface available while adding the indirect error-state prediction and EKF correction core.
Modules§
- config
- Configuration and stochastic error parameters for inertial propagation.
- ekf
- Generic EKF correction and closed-loop reset for the indirect INS state.
- error_
state - ECEF indirect error-state system model and covariance prediction.
- frames
- WGS84 normal gravity and ECEF plumb-bob gravity vectors.
- imu
- IMU samples, calibration, and pre-mechanization correction.
- loose
- Loosely coupled GNSS PVT updates for the INS error-state filter.
- mechanization
- ECEF strapdown inertial mechanization.
- serial
- Versioned serialization for fusion filter checkpoints.
- sim
- Synthetic IMU generation from truth states or truth increments.
- smoother
- RTS fixed-interval smoothing for fusion error-state histories.
- state
- Error-state layout, filter state, and covariance validation.
- tight
- Tightly coupled raw GNSS updates for the INS error-state filter.
- timesync
- Time alignment for loosely coupled GNSS/INS updates.
- ukf
- Scaled-sigma-point unscented correction for the fusion error state.
Structs§
- Attitude
Quaternion - Unit quaternion using scalar-first
(w, x, y, z)storage. - Corrected
ImuIncrement - Bias-corrected, scale-corrected IMU increment consumed by mechanization.
- EkfCorrection
- Generic linearized EKF measurement correction.
- EkfCorrection
Report - Diagnostics from one EKF correction attempt.
- EkfUpdate
Options - EKF correction options.
- Error
State ImuKinematics - Body-frame IMU kinematics used to linearize the error-state model.
- Error
State Linearization - Linearized continuous and discrete error-state model for one predict step.
- Error
State Vector - Indirect filter error vector.
- F64Bits
- Exact JSON representation of an
f64bit pattern. - Fusion
RtsEpoch - A recorded fusion epoch for RTS smoothing.
- Fusion
RtsHistory - Recorded history accepted by
smooth_fusion_rts. - Fusion
RtsHistory Builder - Builder for recording a forward fusion pass for RTS smoothing.
- Fusion
Update - Result of one fusion update.
- Gnss
FixMeasurement - GNSS PVT measurement used by the loose-coupled INS update.
- Gnss
FixStatus Weighting - Sigma multipliers selected by
GnssFixStatus. - IggIii
Measurement Reweighting - IGG-III measurement variance inflation for loose GNSS updates.
- ImuBias
- Accelerometer and gyroscope biases.
- ImuCalibration
- IMU scale-factor and misalignment matrices.
- ImuError
Model - Bias and calibration model applied before strapdown mechanization.
- ImuRate
Random Walk - Optional rate-random-walk densities for the generated IMU.
- ImuSample
- One IMU sample tagged by its end time in seconds since J2000.
- ImuSimulation
Options - Options for synthetic IMU generation.
- ImuSimulator
- Stateful deterministic synthetic IMU generator.
- ImuSpec
- Datasheet-level IMU stochastic parameters.
- Inertial
Filter - Closed-loop INS filter with loose GNSS PVT updates.
- Inertial
Filter Config - Configuration for an
InertialFilter. - Inertial
Filter Snapshot - Snapshot of a closed-loop inertial filter at one epoch.
- Innovation
Gate - Innovation screening options.
- Innovation
Gate Report - Diagnostics from an innovation screen.
- InsFilter
State - Closed-loop indirect INS filter state.
- Loose
Coupling Config - Configuration for loose-coupled GNSS updates.
- Mechanization
Config - Configuration for ECEF strapdown mechanization.
- NavState
- Navigation state used by the ECEF strapdown mechanizer.
- NonHolonomic
Constraint Config - Non-holonomic wheeled-vehicle velocity constraint settings.
- Serializable
Fusion Snapshot - Stable serializable fusion snapshot without retained replay history.
- Serializable
Fusion State - Stable serializable fusion checkpoint.
- Serializable
ImuSample - Serializable IMU sample.
- Serializable
InsFilter State - Serializable INS filter state and covariance.
- Serializable
Loose Measurement - Serializable loose GNSS fix measurement.
- Serializable
NavState - Serializable navigation state with exact floating-point bit storage.
- Serializable
Rate Endpoint - Serializable body-rate interpolation endpoint for retained IMU samples.
- Serializable
Satellite Id - Serializable GNSS satellite identifier.
- Serializable
Stationarity Detector Sample - Serializable stationary-detector sample retained by a filter snapshot.
- Serializable
Stored Checkpoint - Serializable retained filter checkpoint.
- Serializable
Stored ImuSample - Serializable retained IMU sample with its replay interval metadata.
- Serializable
Tight Carrier Phase Observation - Serializable tight carrier-phase observation.
- Serializable
Tight Filter State - Serializable tight receiver-clock augmentation.
- Serializable
Tight Gnss Epoch - Serializable tight raw GNSS epoch.
- Serializable
Tight Gnss Observation - Serializable tight raw GNSS observation.
- Serializable
Tight Range Rate Observation - Serializable tight range-rate observation.
- Serializable
Time Sync History - Serializable retained time-sync replay history.
- Serializable
Time Sync History Config - Serializable retained-history capacity settings.
- Simulated
ImuSequence - Batch output from synthetic IMU generation.
- Smoothed
Fusion Epoch - One epoch in a smoothed fusion trajectory.
- Smoothed
Fusion Trajectory - Smoothed trajectory returned by
smooth_fusion_rts. - Stationarity
Detector Snapshot Sample - One retained stationary-detector sample stored in filter snapshots.
- Stationary
Detector Config - Windowed accel and gyro magnitude detector for stationary updates.
- Stationary
Update Config - Stationarity detector and pseudo-measurement sigmas for ZUPT/ZARU.
- Strapdown
Mechanizer - Streaming ECEF strapdown mechanizer.
- Tight
Carrier Phase Observation - Carrier-phase range row with a caller-supplied float ambiguity.
- Tight
Clock State - Receiver-clock state reported by the tight filter.
- Tight
Coupling Config - Configuration for tightly coupled raw GNSS updates.
- Tight
Filter Snapshot - Snapshot of the tight clock augmentation for replay and restore.
- Tight
Gnss Epoch - One receiver epoch of raw GNSS observations for a tight update.
- Tight
Gnss Observation - Raw GNSS observation for one satellite in a tight update.
- Tight
Range Rate Observation - Doppler-derived range-rate measurement for one satellite.
- Time
Sync History Config - Retained history limits for bounded-latency time synchronization.
- Time
Sync History Status - Current retained-history occupancy for time synchronization.
- Time
Sync Update - Result of a time-synchronized loose GNSS update.
- UkfUpdate
Options - UKF measurement-correction options.
- Unscented
Transform Options - Scaled unscented-transform parameters.
- Velocity
Match State - One position/velocity sample used by velocity matching.
- Velocity
Matched Trajectory - Output from endpoint velocity matching across one outage.
- Velocity
Matching Config - Endpoint matching settings for a GNSS outage span.
- Yang
Prediction Adaptive Factor - Yang two-segment predicted-residual adaptive factor for loose GNSS updates.
Enums§
- Coning
Correction - Strapdown coning-correction setting.
- Error
State Layout - Error-state covariance layout.
- Fusion
Error - Error returned by GNSS/INS fusion primitives.
- Fusion
Filter Kind - Fusion filter family selector.
- Fusion
State Codec Error - Errors returned by the versioned fusion-state codec.
- Gnss
FixStatus - Upstream GNSS solution class used by loose measurement weighting.
- ImuGrade
- Coarse IMU class used to select a built-in
ImuSpecpreset. - ImuSample
Kind - IMU sample payload.
- ImuSimulation
Output - Output representation for generated IMU samples.
- Inertial
Error - Error returned by inertial frame, IMU, and mechanization entry points.
- Serializable
Error State Layout - Serializable error-state layout tag.
- Serializable
Gnss FixStatus - Serializable loose GNSS fix status.
- Serializable
ImuSample Kind - Serializable IMU sample payload.
- Serializable
Stored Gnss Measurement - Serializable retained GNSS measurement.
Constants§
- DEFAULT_
IMU_ SIM_ SEED - Default deterministic seed used by
ImuSimulationOptions::default. - DEFAULT_
TIME_ SYNC_ CHECKPOINT_ CAPACITY - Default number of retained GNSS checkpoints for time-sync replay.
- DEFAULT_
TIME_ SYNC_ IMU_ CAPACITY - Default number of retained IMU samples for time-sync replay.
- ERROR_
ACCEL_ BIAS_ INDEX - Start index of accelerometer bias error states.
- ERROR_
ACCEL_ SCALE_ INDEX - Start index of accelerometer scale-factor error states in the 21-state layout.
- ERROR_
ATTITUDE_ INDEX - Start index of ECEF attitude error states.
- ERROR_
GYRO_ BIAS_ INDEX - Start index of gyroscope bias error states.
- ERROR_
GYRO_ SCALE_ INDEX - Start index of gyroscope scale-factor error states in the 21-state layout.
- ERROR_
MOUNTING_ MISALIGNMENT_ INDEX - Reserved start index for future mounting-misalignment error states.
- ERROR_
MOUNTING_ MISALIGNMENT_ STATE_ COUNT - Reserved mounting-misalignment state count for a later layout.
- ERROR_
POSITION_ INDEX - Start index of ECEF position error states.
- ERROR_
STATE_ DIMENSION_ 15 - Number of states in the position, velocity, attitude, and bias layout.
- ERROR_
STATE_ DIMENSION_ 21 - Number of states after adding accelerometer and gyroscope scale factors.
- ERROR_
VELOCITY_ INDEX - Start index of ECEF velocity error states.
- FUSION_
STATE_ CODEC_ VERSION - Current binary and serde schema version for fusion checkpoints.
- TIGHT_
CLOCK_ BIAS_ OFFSET - Receiver-clock bias index in the tight augmented covariance.
- TIGHT_
CLOCK_ DRIFT_ OFFSET - Receiver-clock drift index in the tight augmented covariance.
- TIGHT_
CLOCK_ STATE_ COUNT - Number of receiver-clock states appended to the INS error state.
- WGS84_
NORMAL_ GRAVITY_ EQUATOR_ MPS2 - WGS84 normal gravity at the equator in m/s^2.
- WGS84_
NORMAL_ GRAVITY_ POLE_ MPS2 - WGS84 normal gravity at the pole in m/s^2.
- WGS84_
SOMIGLIANA_ K - Somigliana normal-gravity formula constant derived from WGS84 table values.
Functions§
- apply_
closed_ loop_ error - Apply an indirect error estimate to the nominal INS state.
- attitude_
yaw_ pitch_ roll_ rad - Convert a body-to-ECEF DCM to yaw, pitch, roll radians using a ZYX sequence.
- covariance_
is_ positive_ semidefinite - Test whether a covariance is positive semidefinite under numerical bounds.
- dcm_
to_ quaternion - Convert a body-to-ECEF DCM to a unit quaternion.
- ekf_
correct_ closed_ loop - Apply one EKF correction, then close the loop and reset the error vector.
- error_
state_ process_ noise_ discrete - Build the discrete process-noise covariance from an
ImuSpec. - error_
state_ system_ matrix_ ecef - Build the ECEF error-state system matrix.
- error_
state_ system_ matrix_ ecef_ with_ imu_ to_ body - Build the ECEF error-state system matrix with IMU axes rotated into body axes.
- error_
state_ transition_ matrix - Discretize
FasI + F dt + 0.5 (F dt)^2. - gauss_
markov_ bias_ decay - First-order Gauss-Markov bias decay factor over
dt_s. - gauss_
markov_ bias_ variance_ increment - Bias process variance increment for a Gauss-Markov bias over
dt_s. - gravity_
ecef_ mps2 - WGS84 normal gravity vector in ECEF coordinates, in m/s^2.
- joseph_
covariance_ update - Compute Joseph-form covariance update.
- linearize_
error_ state_ ecef - Build
F,Phi, andQ_dfor one error-state predict step. - linearize_
error_ state_ ecef_ with_ imu_ to_ body - Build
F,Phi, andQ_dfor one predict step with IMU axes rotated into body axes. - loose_
coupling_ correction - Build the loose-coupled GNSS EKF correction for an INS state.
- mechanize_
ecef - Propagate an ECEF navigation state by one corrected IMU increment.
- normal_
gravity_ mps2 - WGS84 Somigliana normal gravity magnitude at geodetic latitude and height.
- predict_
error_ state_ covariance - Predict covariance as
P = Phi P Phi^T + Q_d. - quaternion_
to_ dcm - Convert a unit quaternion to a body-to-ECEF DCM.
- reorthonormalize_
dcm - Re-orthonormalize a direction-cosine matrix into a right-handed frame.
- reproject_
covariance_ psd - Symmetrize and reproject a covariance onto the PSD cone under numerical bounds.
- rodrigues_
delta_ dcm - Exact Rodrigues direction-cosine matrix for a body delta angle.
- simulate_
imu_ samples - Generate IMU samples from a navigation-state truth trajectory.
- simulate_
imu_ samples_ from_ increments - Generate IMU samples from coning/sculling truth increments.
- smooth_
fusion_ rts - Apply the RTS fixed-interval smoother to a recorded fusion history.
- true_
imu_ increment_ between - Reconstruct the mechanization-consistent truth increment between two states.
- ukf_
correct_ closed_ loop - Apply a linear UKF correction, then close the loop and reset the error vector.
- validate_
covariance_ matrix - Validate covariance shape, finiteness, symmetry, and PSD.
- validate_
time_ sync_ gnss_ order - Validate strictly increasing GNSS measurement epochs.
- validate_
time_ sync_ imu_ order - Validate strictly increasing IMU sample epochs.
- velocity_
match_ outage - Blend a first good post-outage fix back over an outage span.
- velocity_
match_ outage_ to_ state - Blend an outage span to a caller-supplied endpoint state.