sidereon_core/fusion/
mod.rs1pub mod ekf;
7pub mod error_state;
8pub mod loose;
9pub mod state;
10pub mod tight;
11pub mod timesync;
12
13pub use crate::inertial::*;
14pub use ekf::{
15 apply_closed_loop_error, ekf_correct_closed_loop, joseph_covariance_update, EkfCorrection,
16 EkfCorrectionReport, EkfUpdateOptions, InnovationGate, InnovationGateReport,
17};
18pub use error_state::{
19 error_state_process_noise_discrete, error_state_system_matrix_ecef,
20 error_state_transition_matrix, linearize_error_state_ecef, predict_error_state_covariance,
21 ErrorStateImuKinematics, ErrorStateLinearization,
22};
23pub use loose::{
24 loose_coupling_correction, FusionUpdate, GnssFixMeasurement, InertialFilter,
25 InertialFilterConfig, LooseCouplingConfig,
26};
27pub use state::{
28 covariance_is_positive_semidefinite, reproject_covariance_psd, validate_covariance_matrix,
29 ErrorStateLayout, ErrorStateVector, FusionError, FusionFilterKind, InsFilterState,
30 ERROR_ACCEL_BIAS_INDEX, ERROR_ACCEL_SCALE_INDEX, ERROR_ATTITUDE_INDEX, ERROR_GYRO_BIAS_INDEX,
31 ERROR_GYRO_SCALE_INDEX, ERROR_MOUNTING_MISALIGNMENT_INDEX,
32 ERROR_MOUNTING_MISALIGNMENT_STATE_COUNT, ERROR_POSITION_INDEX, ERROR_STATE_DIMENSION_15,
33 ERROR_STATE_DIMENSION_21, ERROR_VELOCITY_INDEX,
34};
35pub use tight::{
36 TightCarrierPhaseObservation, TightClockState, TightCouplingConfig, TightFilterSnapshot,
37 TightGnssEpoch, TightGnssObservation, TightRangeRateObservation, TIGHT_CLOCK_BIAS_OFFSET,
38 TIGHT_CLOCK_DRIFT_OFFSET, TIGHT_CLOCK_STATE_COUNT,
39};
40pub use timesync::{
41 validate_time_sync_gnss_order, validate_time_sync_imu_order, InertialFilterSnapshot,
42 TimeSyncHistoryConfig, TimeSyncHistoryStatus, TimeSyncUpdate,
43 DEFAULT_TIME_SYNC_CHECKPOINT_CAPACITY, DEFAULT_TIME_SYNC_IMU_CAPACITY,
44};