I want to localize a mobile robot equipped with a 2D laser scanner in a known indoor environment. The map is a 2D occupancy grid, but is not perfect.
What algorithms are appropriate for mobile robot localization?
Particle filters or Monte Carlo localization can be used. Basically you distribute a set of points at random across the maps and see which points would have sensor readings most similar to the reading from your map. The best points survive and you create new points and so forth. After some iterations you have a group of points, hopefully, all in the same place on the map as your robot.
I believe there is a few methods explained in this course.
As i have mentioned in this post, it can be achieved with a camera and some markers in known locations on/in the environment as demonstrated here by the robotics team I am in. We use the location of the markers on the desks, which have a known height and width, and the center we can get from the libkoki library. It is then a simple task of using some trigonometry to find out where we are, as demonstrated in this blog post.
Given sensors I assume you don't know what method you are going to use... I'm sure there are other ways of getting your position to varying degrees of accuracy.