Add CircularUKF filter for circular (angular) state spaces#1587
Add CircularUKF filter for circular (angular) state spaces#1587
Conversation
Agent-Logs-Url: https://github.com/FlorianPfaff/PyRecEst/sessions/ec1df03f-95d4-47c6-85e1-edef727f014e Co-authored-by: FlorianPfaff <6773539+FlorianPfaff@users.noreply.github.com>
✅MegaLinter analysis: Success
See detailed reports in MegaLinter artifacts Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining
|
|
@copilot Can you suppress the two warnings that megalinter found? |
Agent-Logs-Url: https://github.com/FlorianPfaff/PyRecEst/sessions/0da9bae3-11e9-4ef0-899c-6315d1fa7b89 Co-authored-by: FlorianPfaff <6773539+FlorianPfaff@users.noreply.github.com>
Head branch was pushed to by a user without write access
Added |
|
@copilot Can you use prod(x.shape) instead of x.shape for compatibility with all interfaces? Also use flatten( ) instead of flat. =========================== short test summary info ============================ |
…rcular_ukf Agent-Logs-Url: https://github.com/FlorianPfaff/PyRecEst/sessions/ef6fa5e6-c48f-444f-8950-4c71eeacca32 Co-authored-by: FlorianPfaff <6773539+FlorianPfaff@users.noreply.github.com>
Head branch was pushed to by a user without write access
Done in commit
All 10 tests pass. |

Adds a
CircularUKFclass — a modified Unscented Kalman Filter for 1-D circular state spaces on [0, 2π), backed bybayesian_filters.UnscentedKalmanFilter.New:
pyrecest/filters/circular_ukf.pypredict_identity(gauss_sys)— additive Gaussian convolution with mod 2π wrappredict_nonlinear(f, gauss_sys)— UKF sigma-point propagation through arbitraryf: [0,2π) → [0,2π)update_identity(gauss_meas, z)— direct Kalman gain update with circular wrap-around handlingupdate_nonlinear(f, gauss_meas, z, measurement_periodic=False)— UKF update through nonlinear measurement function; optional periodic wrap for the measurementalpha,beta,kappa) on the constructorSupporting changes
pyrecest/filters/__init__.py— exportsCircularUKFpyrecest/tests/filters/test_circular_ukf.py— 10 unit tests covering all predict/update methods, including wrap-around edge cases and nonlinear functions