Skip to content

Add mode RBPF manifold UKF tracker#2052

Merged
FlorianPfaff merged 6 commits into
mainfrom
mode-rbpf-manifold-ukf
May 15, 2026
Merged

Add mode RBPF manifold UKF tracker#2052
FlorianPfaff merged 6 commits into
mainfrom
mode-rbpf-manifold-ukf

Conversation

@FlorianPfaff
Copy link
Copy Markdown
Owner

Summary

  • Add ModeRBPFManifoldUKFTracker, a NumPy-backend extended-object tracker with mode particles and per-particle manifold UKF state updates.
  • Export ModeRBPFManifoldUKFTracker, ModeRbpfManifoldUkfTracker, and ModeRBPFManifoldUKF from pyrecest.filters.
  • Add focused tests for aliases, predict/update behavior, mode probabilities, positive axes, clone-style constructor compatibility, and empty updates.

Validation

  • PYTHONPATH=src python -m pytest tests\filters\test_mode_rbpf_manifold_ukf_tracker.py tests\test_mem_rbpf_tracker.py tests\filters\test_iterated_batch_mem_qkf_tracker.py
  • python -m ruff check src\pyrecest\filters\mode_rbpf_manifold_ukf_tracker.py src\pyrecest\filters\__init__.py tests\filters\test_mode_rbpf_manifold_ukf_tracker.py
  • python -m ruff format --check src\pyrecest\filters\mode_rbpf_manifold_ukf_tracker.py src\pyrecest\filters\__init__.py tests\filters\test_mode_rbpf_manifold_ukf_tracker.py

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 14, 2026

MegaLinter analysis: Error

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ COPYPASTE jscpd yes no no 21.66s
✅ JSON prettier 2 0 0 0 0.38s
✅ JSON v8r 2 0 0 2.51s
✅ MARKDOWN markdownlint 28 0 0 0 1.21s
✅ MARKDOWN markdown-table-formatter 28 0 0 0 0.29s
✅ PYTHON bandit 549 0 0 7.91s
✅ PYTHON black 549 6 0 0 14.2s
✅ PYTHON flake8 549 0 0 4.74s
✅ PYTHON isort 549 8 0 0 0.83s
❌ PYTHON mypy 549 4 0 5.74s
✅ PYTHON pylint 549 0 0 109.38s
✅ PYTHON ruff 549 8 0 0 0.1s
✅ REPOSITORY checkov yes no no 24.56s
✅ REPOSITORY gitleaks yes no no 10.64s
✅ REPOSITORY git_diff yes no no 0.06s
✅ REPOSITORY secretlint yes no no 8.83s
✅ REPOSITORY syft yes no no 2.5s
✅ REPOSITORY trivy-sbom yes no no 3.68s
✅ REPOSITORY trufflehog yes no no 21.63s
✅ YAML prettier 5 0 0 0 0.41s
✅ YAML v8r 5 0 0 5.38s
✅ YAML yamllint 5 0 0 0.4s

Detailed Issues

❌ PYTHON / mypy - 4 errors
src/pyrecest/utils/history_recorder.py:34: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
src/pyrecest/distributions/so3_bingham_distribution.py:84: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
src/pyrecest/smoothers/unscented_rauch_tung_striebel_smoother.py:50: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
src/pyrecest/smoothers/fixed_lag_velocity_locked_mem_qkf_smoother.py:106: error: Argument 12 to "VelocityLockedMEMQKFTrackerState" has incompatible type "tuple[int, ...]"; expected "tuple[int, int]"  [arg-type]
src/pyrecest/smoothers/fixed_lag_velocity_locked_mem_qkf_smoother.py:198: error: Incompatible return value type (got "tuple[int, ...]", expected "tuple[int, int]")  [return-value]
src/pyrecest/smoothers/fixed_lag_velocity_locked_mem_qkf_smoother.py:386: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
src/pyrecest/smoothers/fixed_lag_velocity_locked_mem_qkf_smoother.py:387: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
src/pyrecest/smoothers/fixed_lag_velocity_locked_mem_qkf_smoother.py:468: error: "object" has no attribute "shape"  [attr-defined]
src/pyrecest/smoothers/fixed_lag_velocity_locked_mem_qkf_smoother.py:480: error: Need type annotation for "smoother_gains" (hint: "smoother_gains: list[<type>] = ...")  [var-annotated]
Found 4 errors in 1 file (checked 549 source files)

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 FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.4.0 --custom-flavor-setup --custom-flavor-linters PYTHON_PYLINT,PYTHON_BLACK,PYTHON_FLAKE8,PYTHON_ISORT,PYTHON_BANDIT,PYTHON_MYPY,PYTHON_RUFF,COPYPASTE_JSCPD,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions
Copy link
Copy Markdown
Contributor

Test Results

    12 files  ± 0      12 suites  ±0   2h 14m 24s ⏱️ + 7m 20s
 1 614 tests + 6   1 614 ✅ + 6      0 💤 ± 0  0 ❌ ±0 
19 828 runs  +72  15 588 ✅ +24  4 240 💤 +48  0 ❌ ±0 

Results for commit 7e20812. ± Comparison against base commit 3f520dd.

@FlorianPfaff FlorianPfaff marked this pull request as ready for review May 15, 2026 06:15
@FlorianPfaff FlorianPfaff merged commit c3e32e1 into main May 15, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant