Open Carlson-J opened 7 months ago
It seems that the MultiMeasurementInitiator does not work with the MultiTargetMixtureTracker.
I used this instead and it seems to be running without the error.
initiator = GaussianMixtureInitiator(
SimpleMeasurementInitiator(
prior_state=s_prior_state,
measurement_model=measurement_model,
))
Is this expected/desired behavior?
Yeah, this is unfortunately expected behaviour, but not desirable. There is an issue with the multi-measurement initiator which doesn't work well with different mixture types, due to logic based on hard-assignment. A work around is in the initiator, use a hard-assignment data associator with non-MFA hypothesiser (e.g. GNNWith2DAssignment
).
A fix would be add mixture/MFA compatible versions of a multi-measurement initiator.
Another more general option would be to make a multi-measurement initiator, which can use any "Tracker" style class, which would offer some flexibility, to then use mixture trackers in it. There is a few complications in implementing this however (possibly blocking iteration call for example, so a thread may be required).
Also, you wont want to use the MultiTargetMixtureTracker
with MFA, as you need to use tracking loop similar to that found in the Estimate section of MFA example.
Hi both, I saw this open issue because I am, as well, in the middle of creating an example for MHT using MFA components and Stone soup trackers I got stuck in the same problems.
Wrapping up: MFA data associator, as it is now, it can't be used using in the MultiTargetMixtureTracker
because of GaussianMixtureUpdates
are created, right?
Also the MultiMeasurementInitiator
cannot be wrapped in GaussianMixtureInitiator
, which should be used instantiating tracks for MFA/MHT. I am getting these right?
So the only option available is to loop over the MFA data associations as shown in the example and instantiate the tracks by hand. Is this correct?
I am trying to use the MHT with the new initializer added in https://github.com/dstl/Stone-Soup/pull/873. However, when I try to do so I get the following error
Here is the relevant part of the code. Assume I have created some measurements and timestamps beforehand (I use real data which I cannot post here).