I'm trying to understand the role of landmarks in SLAM algorithms. I've glanced over a few books concerning landmark based SLAM algorithms and I've come up with a rudimentary understanding which I believe is flawed.

How I think SLAM works:

As I understand it, landmarks are a set of points in a map whose locations are known a priori. Furthermore, the number of landmarks in a map is fixed. The number of landmarks detected at any one time may change, but the number of landmarks that exist in the map remains static at all times.

My understanding is that SLAM algorithms exploit the fact that these points are both uniquely identifiable and known a priori. That is, when a robot senses a landmark, it knows exactly which landmark it detected and thus knows the exact location of that landmark. Thus, a slam algorithm uses the (noisy) distance to the detected landmarks (with known location) to estimate its position and map.

Why I think I'm wrong

In my naive understanding, the usefulness of SLAM would be limited to controlled environments (i.e. with known landmarkds) and completely useless in unknown environments with no a priori known landmarks. I would presume that some sort of feature detection algorithm would have to dynamically add landmarks as they were detected. However, this fundamentally changes the assumption that the number of given landmarks must be static at all times.

I know I'm wrong in my understanding of feature based SLAM, but I'm not sure which of my assumptions is wrong:

Do feature based SLAM algorithms assume a static number of landmarks?

Do the landmarks need to be known a priori? Can they be detected dynamically? And if so, does this fundamentally change the algorithm itself?

Are there special kinds of SLAM algorithms to deal with unknown environments with an unknown total number of landmarks in it?


You are right in your assumption that your understanding is wrong. SLAM stands for Simultaneous Localisation and Mapping. The map can be anything that associates locations with things that are at those locations. One example of a map is where you have landmarks for which the positions are known.

If you assume that you already have this map. This is not a SLAM problem anymore. Its just localisation. Wanting to know where you (or your agent) is within this map.

The nature of a landmark or feature based SLAM is that the location, number and identification of features is usually not known. This is why you do mapping. The result of your algorithm is then the estimated position of those features that you have detected and the estimated position of yourself.

  • $\begingroup$ Is it correct to say that ALL SLAM algorithms begin with an empty list of landmarks and build the list of landmarks incrementally as the robot moves? Or do some SLAM algorithms require a pre-defined list of landmarks? $\endgroup$ – Paul Aug 28 '14 at 17:10
  • $\begingroup$ I have never seen a SLAM algorithm that requires a set of landmarks. $\endgroup$ – Jakob Aug 29 '14 at 6:52
  • $\begingroup$ Consider the GraphSLAM algorithm in this Udacity video, along with its solution. It seems that the number of "landmarks" is predefined. $\endgroup$ – Paul Aug 29 '14 at 17:13
  • 1
    $\begingroup$ The number of landmarks in the video is for the data generation part, which is essentially a simulation of a robot. GraphSLAM does not need a fixed number of landmarks. $\endgroup$ – Jakob Sep 1 '14 at 7:58

The technique you're looking for is called landmark extraction.

The magic of SLAM comes from being able to automatically decide what counts as a landmark among the "features" that the sensors pick up.

In the early days of SLAM, this was fairly simple: just count every geometric feature detected by the sensors as its own landmark. This is not scalable, but it academically proved the functionality of SLAM. As you'd expect, you need to have enough landmarks to get good navigation. But from a practical standpoint, you need to keep the CPU/memory usage within reason.

Keeping that balance is an open problem -- there are many papers that focus solely on how to get landmarks from features quickly / space-efficiently / in a domain-specific way. The SLAM for Dummies whitepaper from MIT has some good introductory text on that topic.

  • $\begingroup$ Is landmark extraction a component of all SLAM algorithms, or only some of them? $\endgroup$ – Paul Aug 29 '14 at 1:39
  • 1
    $\begingroup$ By definition, landmark extraction -- mapping -- is part of all of SLAM algorithms. $\endgroup$ – Ian Aug 29 '14 at 18:08
  • $\begingroup$ It could be argued if there is a landmark extraction part in e.g. ICP based GraphSLAM. $\endgroup$ – Jakob Sep 2 '14 at 8:28
  • $\begingroup$ I'm unsure of what you're referring to when you say "It could be argued". What could be? $\endgroup$ – Ian Sep 2 '14 at 13:37

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.