Is there a way of initializing a Kalman filter using a population of particles that belong to the same "cluster"? How can you determine a good estimate for the mean value (compute weighted average ?) and the covariance matrix ? Each particle is represented as $[ x , y , θ , weight]$.


1 Answer 1


While this can be done it will be problematic. The issue comes from the fact that particle filters are a method for dealing with multi-modal probability distributions (PD) while Kalman filters assume your PD can be well represented with a Gaussian distribution.

I can conceive of a few methods for doing so if you really must. The most naive would be to calculate the mean and covariance of each $[x, y, \theta]$ vector. This neglects the weights and as such will be impacted by outliers (in this case particles of low weights).

It may be better to calculate the mean and covariance of each $[x, y, \theta]$ vector using the normalized weight values as the probability of the vector. This may be what you were driving at in your question.

Another naive approach would be select the largest mode and calculate its mean and covariance. Doing so requires that you select which particles belong to the mode and which don't which you could do with something like K-means.

Yet another alternative would be to use K-means to find the centers for K clusters and then calculate the mean and covariance of of these centers. I suspect this will work out pretty close to the same things as the second option I offered but not having done the math I cannot say so for certain.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.