0.1.5 Bugfixes and Optimizations (2026-05-29)

Over the last few weeks, we have worked on a number of quality-of-life improvements, bug fixes, and optimizations across the codebase. Tests were added to bugfixes to ensure regression does not happen.

Bugs

  • Fixed a bug where the reaction wheel torque() and storage_torque() methods would independently sample noise and bias values, leading to a violation of Newton’s 3rd law

  • Reaction wheel momentum saturation was sign-blind and only checked saturation in the positive direction

  • Fixed dimensions and bugs for the disturbance jacabians, across GG, SRP, Drag, and Dipole disturbance models

  • Fixed a bug in the ecef_to_geocentric() conversion

  • Fixed a bug in the orbital_state timing, using TT instead of TAI time for certain operations

  • Fixed a bug in the extrapolation of the atmospheric density model

  • Fixed a bug in the sun sensor class, where noise and bias was lagged by one simulation step

  • Fixed an issue where imported repositories (SALTRO and OldPlanner) would have pybind name resolution clashes

  • Fixed a bug where the simulate() function would not handle satellites with bias and estimators without active bias estimation

  • Fixed a bug where estimators would not properly deepcopy disturbance, actuator, and sensor models for noise independence from the real satellite

  • Fixed disturbance-parameter estimation, which was not running properly despite being configured

  • Fixed a bug where the orbit GPS estimator would not build the covariance matrix properly, leading to NaN values and divergence

Changes

  • Made actuator saturation clamping strict instead of just outputting a warning

  • Made orbital averaging use RK4 instead of midpoint integration for higher accuracy with no significant performance penalty

  • Tuned the baseline SRUKF estimator parameters for better convergence and stability

  • Added documentation for MacOS use

Test Coverage

  • Added test coverage for reaction wheel momentum saturation and clamping

  • Added test coverage for disturbance jacobians

  • Added test coverage for second derivative helper functions

  • Added test coverage for njit kernel outputs and shapes

  • Added test coverage for estimator augmented state convergence

  • Added test coverage for the GPS EKF estimator

  • Added test coverage for the GoalList class

  • Added test coverage for the Monte Carlo simulation framework