Skip to main content

Module fusion

Module fusion 

Source
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§

AttitudeQuaternion
Unit quaternion using scalar-first (w, x, y, z) storage.
CorrectedImuIncrement
Bias-corrected, scale-corrected IMU increment consumed by mechanization.
EkfCorrection
Generic linearized EKF measurement correction.
EkfCorrectionReport
Diagnostics from one EKF correction attempt.
EkfUpdateOptions
EKF correction options.
ErrorStateImuKinematics
Body-frame IMU kinematics used to linearize the error-state model.
ErrorStateLinearization
Linearized continuous and discrete error-state model for one predict step.
ErrorStateVector
Indirect filter error vector.
F64Bits
Exact JSON representation of an f64 bit pattern.
FusionRtsEpoch
A recorded fusion epoch for RTS smoothing.
FusionRtsHistory
Recorded history accepted by smooth_fusion_rts.
FusionRtsHistoryBuilder
Builder for recording a forward fusion pass for RTS smoothing.
FusionUpdate
Result of one fusion update.
GnssFixMeasurement
GNSS PVT measurement used by the loose-coupled INS update.
GnssFixStatusWeighting
Sigma multipliers selected by GnssFixStatus.
IggIiiMeasurementReweighting
IGG-III measurement variance inflation for loose GNSS updates.
ImuBias
Accelerometer and gyroscope biases.
ImuCalibration
IMU scale-factor and misalignment matrices.
ImuErrorModel
Bias and calibration model applied before strapdown mechanization.
ImuRateRandomWalk
Optional rate-random-walk densities for the generated IMU.
ImuSample
One IMU sample tagged by its end time in seconds since J2000.
ImuSimulationOptions
Options for synthetic IMU generation.
ImuSimulator
Stateful deterministic synthetic IMU generator.
ImuSpec
Datasheet-level IMU stochastic parameters.
InertialFilter
Closed-loop INS filter with loose GNSS PVT updates.
InertialFilterConfig
Configuration for an InertialFilter.
InertialFilterSnapshot
Snapshot of a closed-loop inertial filter at one epoch.
InnovationGate
Innovation screening options.
InnovationGateReport
Diagnostics from an innovation screen.
InsFilterState
Closed-loop indirect INS filter state.
LooseCouplingConfig
Configuration for loose-coupled GNSS updates.
MechanizationConfig
Configuration for ECEF strapdown mechanization.
NavState
Navigation state used by the ECEF strapdown mechanizer.
NonHolonomicConstraintConfig
Non-holonomic wheeled-vehicle velocity constraint settings.
SerializableFusionSnapshot
Stable serializable fusion snapshot without retained replay history.
SerializableFusionState
Stable serializable fusion checkpoint.
SerializableImuSample
Serializable IMU sample.
SerializableInsFilterState
Serializable INS filter state and covariance.
SerializableLooseMeasurement
Serializable loose GNSS fix measurement.
SerializableNavState
Serializable navigation state with exact floating-point bit storage.
SerializableRateEndpoint
Serializable body-rate interpolation endpoint for retained IMU samples.
SerializableSatelliteId
Serializable GNSS satellite identifier.
SerializableStationarityDetectorSample
Serializable stationary-detector sample retained by a filter snapshot.
SerializableStoredCheckpoint
Serializable retained filter checkpoint.
SerializableStoredImuSample
Serializable retained IMU sample with its replay interval metadata.
SerializableTightCarrierPhaseObservation
Serializable tight carrier-phase observation.
SerializableTightFilterState
Serializable tight receiver-clock augmentation.
SerializableTightGnssEpoch
Serializable tight raw GNSS epoch.
SerializableTightGnssObservation
Serializable tight raw GNSS observation.
SerializableTightRangeRateObservation
Serializable tight range-rate observation.
SerializableTimeSyncHistory
Serializable retained time-sync replay history.
SerializableTimeSyncHistoryConfig
Serializable retained-history capacity settings.
SimulatedImuSequence
Batch output from synthetic IMU generation.
SmoothedFusionEpoch
One epoch in a smoothed fusion trajectory.
SmoothedFusionTrajectory
Smoothed trajectory returned by smooth_fusion_rts.
StationarityDetectorSnapshotSample
One retained stationary-detector sample stored in filter snapshots.
StationaryDetectorConfig
Windowed accel and gyro magnitude detector for stationary updates.
StationaryUpdateConfig
Stationarity detector and pseudo-measurement sigmas for ZUPT/ZARU.
StrapdownMechanizer
Streaming ECEF strapdown mechanizer.
TightCarrierPhaseObservation
Carrier-phase range row with a caller-supplied float ambiguity.
TightClockState
Receiver-clock state reported by the tight filter.
TightCouplingConfig
Configuration for tightly coupled raw GNSS updates.
TightFilterSnapshot
Snapshot of the tight clock augmentation for replay and restore.
TightGnssEpoch
One receiver epoch of raw GNSS observations for a tight update.
TightGnssObservation
Raw GNSS observation for one satellite in a tight update.
TightRangeRateObservation
Doppler-derived range-rate measurement for one satellite.
TimeSyncHistoryConfig
Retained history limits for bounded-latency time synchronization.
TimeSyncHistoryStatus
Current retained-history occupancy for time synchronization.
TimeSyncUpdate
Result of a time-synchronized loose GNSS update.
UkfUpdateOptions
UKF measurement-correction options.
UnscentedTransformOptions
Scaled unscented-transform parameters.
VelocityMatchState
One position/velocity sample used by velocity matching.
VelocityMatchedTrajectory
Output from endpoint velocity matching across one outage.
VelocityMatchingConfig
Endpoint matching settings for a GNSS outage span.
YangPredictionAdaptiveFactor
Yang two-segment predicted-residual adaptive factor for loose GNSS updates.

Enums§

ConingCorrection
Strapdown coning-correction setting.
ErrorStateLayout
Error-state covariance layout.
FusionError
Error returned by GNSS/INS fusion primitives.
FusionFilterKind
Fusion filter family selector.
FusionStateCodecError
Errors returned by the versioned fusion-state codec.
GnssFixStatus
Upstream GNSS solution class used by loose measurement weighting.
ImuGrade
Coarse IMU class used to select a built-in ImuSpec preset.
ImuSampleKind
IMU sample payload.
ImuSimulationOutput
Output representation for generated IMU samples.
InertialError
Error returned by inertial frame, IMU, and mechanization entry points.
SerializableErrorStateLayout
Serializable error-state layout tag.
SerializableGnssFixStatus
Serializable loose GNSS fix status.
SerializableImuSampleKind
Serializable IMU sample payload.
SerializableStoredGnssMeasurement
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 F as I + 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, and Q_d for one error-state predict step.
linearize_error_state_ecef_with_imu_to_body
Build F, Phi, and Q_d for 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.