Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reference issue
No matching report or pull request was found for this covariance time-step defect.
What does this implement/fix?
fupdates a sigma-point column in place. The mean loop incubature_predictiontherefore already stores the once-propagated pointsY_i = f(X_i). The covariance loop calledfon those columns again, accumulating second-step points around the first-step mean.Reuse the stored one-step points for both weighted moments. The sigma-point rule and square root, weights, motion/measurement models, noise matrices, defaults and public API are unchanged.
The regressions check the exact affine yaw identity
P_yaw_yaw' = P_yaw_yaw + 2*dt*P_yaw_rate + dt**2*P_rate_rate + Q_yaw_yaw, including negative, zero and positive prior correlation. Separate diagonal-prior cases independently integrate the circular displacement using midpoint heading and sinc, then check the complete predicted mean/covariance. Input and noise nonmutation, covariance symmetry and positive semidefiniteness are also checked.Additional information
Validation on Linux / Python 3.13.5 with the repository-pinned requirements, including NumPy 2.5.3, SciPy 1.18.1 and Matplotlib 3.11.2:
bash runtests.sh: 156 passed.pytest tests/test_cubature_kalman_filter.py -q -Werror: 12 passed; an independent automated reviewer also ran these 12 tests successfully against the exact final files.bash runtests.sh: 167 passed, including its Ruff and nine-package mypy checks, with warnings treated as errors. Original tests, assertions, workloads and defaults are retained.git diff --checkand strictmake -C docs html: passed. The existing Ruff configuration deprecation warning is unchanged.Only the production CKF file and its existing test file change. The function docstring explains the state order, units and one-step prediction; no new example, RST page or visual asset is added.
The hosted Python 3.14 matrix, other operating systems and physical hardware were not executed locally. No hosted CI pass or human maintainer approval is claimed. The motion model's existing zero-turn behavior is outside this fix.
Prepared and tested with Codex assistance. Independent review and focused validation were automated, not a substitute for maintainer review.
CheckList