Stone-Soup
Stone-Soup copied to clipboard
PDA Updater
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
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 fromUpdater
and accepts aKalmanUpdater
as anupdater
property, which it then uses to eitherupdate()
orpredict_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.
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 fromUpdater
and accepts aKalmanUpdater
as anupdater
property, which it then uses to eitherupdate()
orpredict_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