Stone-Soup icon indicating copy to clipboard operation
Stone-Soup copied to clipboard

PDA Updater

Open jmbarr opened this issue 1 year ago • 2 comments

Provides an updater based on probabilistic data association. See the documentation in the Updaters section, or have a look at this gist: https://gist.github.com/jmbarr/92dc83e28c04026136d4f8706a1159c1

jmbarr avatar Dec 20 '23 09:12 jmbarr

Looking at this made me think whether we could make this more modular by using a KalmanUpdater (or subclass) via composition, rather than inheritance:

  • PDAUpdater inherits from Updater and accepts a KalmanUpdater as an updater property, which it then uses to either update() or predict_measurement(), as per lines 127 and 164
  • The class could also be renamed to KalmanPDAUpdater/GaussianPDAUpdater to reflect the fact that it applies specifically to Kalman/Gaussian cases.

The above would pave the way for a ParticlePDAUpdater/ELPFUpdater that could be structured similarly to perform the PDA update for particle filters.

sglvladi avatar Feb 13 '24 13:02 sglvladi

Looking at this made me think whether we could make this more modular by using a KalmanUpdater (or subclass) via composition, rather than inheritance:

  • PDAUpdater inherits from Updater and accepts a KalmanUpdater as an updater property, which it then uses to either update() or predict_measurement(), as per lines 127 and 164
  • The class could also be renamed to KalmanPDAUpdater/GaussianPDAUpdater to reflect the fact that it applies specifically to Kalman/Gaussian cases.

The above would pave the way for a ParticlePDAUpdater/ELPFUpdater that could be structured similarly to perform the PDA update for particle filters.

Something similar was done for the DIEKF in #891: https://github.com/dstl/Stone-Soup/blob/e27fc3639d791d2441b6c4b8572c57932651deb3/stonesoup/updater/iterated.py

sdhiscocks avatar Feb 15 '24 08:02 sdhiscocks