# How does a clustered particle filter work?

Suppose we want to track multiple objects (robots, roads, people...) using clustered particle filtering (because we don't have an idea about how many objects there'll be, and the number of these may change over time). In the literature, there's a great deal of complicated formulas that explain how the weights of the clusters are calculated and involved in the calculation of the weights of the particles... Could someone explain (in very simple terms):

1. The main idea of clustered particle filtering
2. How particles are grouped into clusters
3. How weights are calculated (for particles and clusters)

I am going to give a 5 minutes answer because I am still wondering how do I got to this page.... =P

Assuming you know Particle Filter concept.

1 - What is "Clustered Particle Filter"?

The main idea of "Clustered Particle Filter" is to keep hypotheses alive! Imagine that in your environment you have two regions that are very similar. Almost the same. But in one of them you have a table and not in the other. Lets say your Particle Filter has converge to this two location. Now, you see clearly two "groups of particles" in your localization. Then your laser sees something very similar to a table. Increases the probability of the group of particles in the room with the table and kill all particles in the room without a table. Ops, too bad, it was only a person walking and now all your particles are in one room without be sure where exactly the robot should be. The idea of Clustered Particle Filter is to, when kill a particle, respawn it inside the same cluster. This way, you will probably keep covered more than one spot in the map, if the particles tend to converge. This is general idea. Now: How to create new clusters? how to kill clusters? When do it?? I strongly advise you to read in papers or books about more deep answer. If the mathematical is hard, skip it for a moment, until you get the idea.

For instance: https://www.aaai.org/Papers/AAAI/2002/AAAI02-087.pdf Go directly to Clustered-MCL section.

2 - How they are clustered?

Several ways to do it. For instance, you could initialize your particles in clusters already! In different positions in the map. Or you could start it as one cluster only (and in a SLAM approach) and when your clustering method see two or more clusters that are separate over a specific threshold, you could start to consider more than one cluster. Let your imagination fly!

3- How weights are calculated? For particles and clusters?

Both. What determines if a particle will keep alive is its probability. What determines if a cluster if a cluster should keep alive is its probability.

Now, you are asking if you should weight your particles inside of a cluster or globally. It depends on the method. But normally, to compute the probability of a cluster, you should weight the particles inside that cluster globally even if the weight used to determine if a particle should be kept alive is computed only in respect to its cluster.

Have a nice day!