1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*!
* Estimation module for orbit determination and state estimation.
*
* Provides extensible estimation filters for processing measurements and
* determining spacecraft state. Supports multiple estimator types and
* user-defined measurement models.
*
* # Estimator Types
*
* - **Extended Kalman Filter (EKF)**: Sequential filter using linearized
* dynamics and measurement models. Leverages the propagator's built-in
* STM for the prediction step.
*
* - **Unscented Kalman Filter (UKF)**: Sequential filter using sigma points
* to capture nonlinear behavior without linearization.
*
* - **Batch Least Squares (BLS)**: Accumulates all measurements and iteratively
* solves for the state correction. Supports weighted and constrained modes.
*
* # Measurement Models
*
* Built-in models are organized by reference frame:
*
* **Inertial (ECI) frame** — direct state observations:
* - [`InertialPositionMeasurementModel`]: 3D inertial position (meters)
* - [`InertialVelocityMeasurementModel`]: 3D inertial velocity (m/s)
* - [`InertialStateMeasurementModel`]: 6D inertial state
*
* **GNSS (ECEF) frame** — receiver outputs with ECI→ECEF conversion:
* - [`EcefPositionMeasurementModel`]: 3D ECEF position (meters)
* - [`EcefVelocityMeasurementModel`]: 3D ECEF velocity (m/s)
* - [`EcefStateMeasurementModel`]: 6D ECEF state
*
* Custom models can be defined by implementing the [`MeasurementModel`] trait
* in Rust or by subclassing `MeasurementModel` in Python.
*/
pub use BatchLeastSquares;
pub use ;
pub use DynamicsSource;
pub use ExtendedKalmanFilter;
pub use ;
pub use MeasurementModel;
pub use measurement_jacobian_numerical;
pub use ;
pub use UnscentedKalmanFilter;