I want to implement a localization system using particle filter or other bayesian filter. I have a motion model based on odometry and different types of sensors for measurement. During the navigation, some sensors may be more reliable than others depending on the environment. How can I implement the filter by taking all the measurements into account and weighting them by their (varying) reliability?

  • $\begingroup$ Your confusion confuses me. The whole point of state estimation is to take the anticipated statistics of the measurement into account when you do the calculation. So, just do that. It means that you need to calculate each iteration individually, but my understanding of particle filters is that you have to do that anyway. $\endgroup$
    – TimWescott
    Oct 30, 2019 at 20:31
  • $\begingroup$ So isn't it a problem if the uncertainty of the sensors varies with time/space? $\endgroup$
    – firion
    Oct 31, 2019 at 7:01
  • $\begingroup$ If the uncertainty of the sensors vary in a known way then you take that into account as you run the filter, by plugging the uncertainty into the appropriate parts of the equation. If the uncertainty varies slowly, then there are ways of estimating sensor uncertainty online (but I don't know them -- I just know they're out there to be researched). If you anticipate sharp differences in sensor uncertainty with position, then perhaps you should share some detail about what you mean? $\endgroup$
    – TimWescott
    Oct 31, 2019 at 15:14

1 Answer 1


I implemented many types of particle filter for one sensor. Since your case(i.e sensor fusion) includes multiple sensors, I try to make analogy using KF which I used many times for sensor fusion. In KF you perform time update and measurement update for each upcoming measurement sequentially. And if your measurements are asyncronous you modify your time update matrix each time. Thus, in particle filter it should be the same.

You, first, propagate the particles using time update equation then calculate the measurement likelihood for the corresponding sensor. You need to use timetag of each sensor measurment and likelihood equation should be modified depending on your sensor type.

The rest of the algorithm is the same. You perform resampling if necessary and move on.


Your Answer

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

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