c4dynamics/c4dynamics: v2.4.3

Read full text
Authors: c4dynamics, grep265, Usama Khan, Avraham Ohana, Henry Cuzco
Cited by: 0

Abstract

c4dynamics v2.4.3 Release of the full 3-axis magnetometer. The model was merged to main in PR #174 but never published, so anyone running the quad_ekf notebook on Google Colab (or after a plain pip install c4dynamics) got the 2.4.2 scalar-heading magnetometer against a notebook that now expects a [mx, my, mz] field vector — and the EKF magnetometer update raised. Changed c4dynamics.sensors.navigation.magnetometer is now a full 3-axis device. measure() returns the body-frame geomagnetic field vector [mx, my, mz] (reference intensity F, inclination I, declination D; optional hard-iron offset and soft-iron mixing, both off by default). Breaking: callers that read magnetometer.measure(x)[0] as a yaw angle must switch to the vector form, or recover heading from the horizontal components. quad_ekf use case: the EKF magnetometer update is now a nonlinear 3-axis vector correction (h(x) = [BI] @ m_ref, numeric 3x12 Jacobian), replacing the linear scalar-heading update and its innovation yaw-wrapping. The field-space residual removes the ±pi yaw-wrap special case. quad_ekf.ipynb: the Colab install cell now pins c4dynamics>=2.4.3, so the notebook can no longer silently run against an incompatible release. Verification twine check passes on both the wheel and the sdist. Wheel ships navigation.py with the 3-axis measure() and reports Version: 2.4.3 in METADATA. Full changelog: https://github.com/c4dynamics/c4dynamics/blob/main/CHANGELOG.md What's Changed release version 2.4.2 by @c4dynamics in https://github.com/c4dynamics/c4dynamics/pull/173 Magnetometer by @c4dynamics in https://github.com/c4dynamics/c4dynamics/pull/174 Full Changelog: https://github.com/c4dynamics/c4dynamics/compare/v2.4.2...v2.4.3

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
4 September 2026