Implement BayesFilter base class and refactor localization filters (#1277) #1307
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
Fixes #1277
What does this implement/fix?
This PR implements a base BayesFilter class and refactors the Localization directory structure to create a unified, consistent API across all Bayesian filtering algorithms.
Key Changes:
Base BayesFilter Class (
bayes_filter.py)predict(),update(),get_state(),get_covariance()reset()method that can be overriddenExtended Kalman Filter Implementation (
ekf_localization.py)Particle Filter Implementation (
pf_localization.py)Benefits:
Additional information
This implementation demonstrates the design pattern requested in issue #1277. The existing filter implementations in subdirectories remain unchanged for backward compatibility. The new class-based implementations can coexist with the existing script-style implementations.
Future work could involve:
CheckList