I have a robot that has a GPS and velocity sensors. The GPS updates roughly every 1-2 seconds. I've been playing around with a Kalman filter that has been working pretty well. I just learned and finally think I understand particle filters so I'm wondering if a particle filter be useful to keep track of the robot's location in between GPS updates instead of the Kalman filter.

My plan would look something like this:

  1. Starting GPS coordinates.
  2. Create N random particles distributed around the starting coordinate (2 meters is the typical accuracy of most GPS sensors)
  3. Robot moves and records velocity data from the sensors
  4. Move all of the particles based on a linear model,velocity data, and noise
  5. With the next GPS sensor update weight the particles based on a Gaussian from the updated coordinates.

Am I on the right track or is this worth trying to code or should I just stick with the Kalman filter since it's a linear system?


The Kalman filter is optimal when the system is linear and the noises are Gaussian, so if that's the case there is no reason to switch to a particle filter (which, apart from being suboptimal for linear systems, takes much more time to run).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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