# How to implement a particle filter when sensors can't identify landmarks?

I'm attempting to build a robot that leverages a particle filter to identify where it is relative to a map that is known. The robot only has IR sensors, so while it is able to determine its distance from landmarks, it does not know what landmark it is "looking" at.

I'm following this very helpful book to build my particle filter. In incorporating the sensor measurements, it is assumed that you know both the distance to a landmark and which specific landmark you are looking at. What would need to be done if you know the map and distance measurements, but not the specific landmark that you're observing? Would this require SLAM? Or could you simply increase the probability for particles that are about that distance from a landmark?

• This is a data association problem. You need SLAM only if you don't know the map a priori, therefore, the answer is no. You don't need SLAM. Nov 7, 2016 at 1:26
• As @edwinem suggested you don't need landmarks in your localization algorithm, since no discreete landmarks exist in the environment. Just have your map in an occupandcy grid representation. Nov 21, 2016 at 18:05

## 1 Answer

SLAM is only needed when you are also building a map. You already have a map so the problem is localization. To be exact the problem you want to research is Monte Carlo localization or particle filter localization. A fantastic book on it is Probabilistic Robotics if you can get your hands on it.

Some slides describing the resources in the book can be found here.

Instead of a landmark map you need an occupancy grid. With your sensor setup you are able to get bearing and range. For the weights calculation of your particles you are going to calculate it via this formula p(z|x,m) where z is you measurement, x is your robot position and m is your stored map.

To actual implement this there are two different measurement models you can use to calculate this probability. One is called the beam range finder model and the other is likelihood fields. So just adjust your particle filter to use that and everything else should be the same.