Tag Archives: SLAM

Review: "Parallel Tracking and Mapping for Small AR Workspaces"

The paper describes the methods and techniques used in the PTAM project.

Usually AR systems only work probably when the running system has a certain knowledge of the surrounding area. This knowledge could pre-acquired information of an object or a know marker (a marker could for example a monochrome pattern that is put, like a sticker, onto an object). Those AR systems then can recognize and track their known object in the video stream, but just as long as it's within the view area of the camera. As soon as the object moves away and is not visible any more, the tracking stops.

PTAM works in completely unknown environments and uses "extensible tracking" techniques to achieve this. It requires a static and somewhat small environment, meaning that it is not designed to track and augment constantly moving objects or being moved (by the user) across a big area like a city. Other systems which perform tracking and mapping mostly do each task directly linked, at every video keyframe. Because most of those systems are being used in the robotics field this approach might be satisfying since robots tend to be moving slow in a predictable manner. But this is most likely not the case for a camera held by an user (who doesn't know or even care what is happening inside the device she is holding, but just want it to work smoothly and accurately). PTAM splits tracking and mapping into two independent tasks which perform in different threads. By having the mapping process separated it is not necessary to work on each new keyframe, which usually includes processing lots of redundant information, and by that have more useful and more accurate information. The approach within PTAM is kind of adopted by SLAM. Where the original SLAM methods (in the robotics field) use laser sensors, in this case we obviously don't have lasers but only one camera -- that's why we talk here about "monocular SLAM".


SLAM - Simultaneous Localization And Mapping

SLAM comes from the robotics area and describes the techniques to create a map from an unknown environment. With the knowledge gathered by generating a map it is possible to determine a location and also to navigate within a certain environment. SLAM by itself is not necessarily a specific algorithm but rather an approach on how to solve such problems. Because it is mainly used in the robotics area, you find many implementations which require special hardware such has laser depth sensors.


  • "SLAM for Dummies" (PDF file) seems to be good way to easily get in touch with this topic
  • openslam.org lists different implementations of SLAM