2.0 New Estimation Framework¶
Release 2.0 introduces a new, composable foundation for spacecraft attitude estimation. The new APIs make state layouts, uncertainty representations, measurements, and process models explicit while keeping the estimator implementations interchangeable.
State class¶
The new State class represents the physical spacecraft
state with named w (angular velocity), q (attitude quaternion), and
h (reaction-wheel momentum) fields. It provides explicit conversions
between full and local/tangent coordinates, quaternion retraction and state
differences, validation, copying, and support for configurable attitude
charts. EstimatorState extends it with estimated bias and
disturbance-parameter blocks and their covariance data.
Covariance class¶
The new Covariance class provides a common interface
for full covariance matrices and upper-triangular square-root factors. It
handles positive-semidefinite validation, conversion between representations,
coordinate labels, and the matrix operations used by both covariance-form
and square-root filters.
Measurement stack¶
The new
MeasurementStack assembles sensor
and reaction-wheel measurements into one canonical estimator vector. It owns
source ordering, availability and scheduling masks, residual coordinates,
covariances, and measurement Jacobians. Quaternion measurements are reduced
to their three-dimensional local residual, and augmented estimators can
consistently include sensor-bias terms.
Process model and process noise¶
The new estimator process model centralizes deterministic state propagation in
propagate_state(). The process-noise
utilities assemble continuous-time noise from unmodeled dynamics and
configured hardware random walks, construct the local error-state model, and
discretize it with the Van Loan method; held actuator-command noise is handled
separately. UKF/SRUKF propagate it through control sigma points, while
linearized filters include it in the discrete process covariance.
This keeps the physical model independent of the filter.
New AttitudeEstimator base¶
The new AttitudeEstimator
base class defines the shared estimator lifecycle: state validation,
prediction, measurement updates, diagnostics, covariance handling, and
quaternion-chart conventions. The existing legacy
old_attitude_estimators.Attitude_Estimator remains available for backwards
compatibility, while new filters use the new base.
Eight new attitude estimators¶
The following estimators are available from the top-level ADCS package:
EKF— additive Extended Kalman Filter.MEKF— multiplicative Extended Kalman Filter with a local attitude error.UKF— Unscented Kalman Filter.SRUKF— square- root Unscented Kalman Filter.AugmentedEKF— EKF with joint bias and disturbance-parameter estimation.AugmentedMEKF— augmented multiplicative EKF.AugmentedUKF— augmented UKF.AugmentedSRUKF— augmented square-root UKF.
Documentation and examples¶
The estimation tutorials and runnable estimator examples are linked directly from the release documentation:
Tutorial 3: Simple estimation — Tutorial 3 augmented source script.
Tutorial 4: Complex estimation — Tutorial 4 augmented source script.
Regular estimator examples:
Advanced estimator examples: