Glossary of SLAM Terms, L-Z

Guest blog by MHI member Slamcore

This glossary of Simultaneous Localization and Mapping (SLAM) related terms is intended to help demystify some of the language that is commonly used, and explain the concepts in a simplified way to a newcomer. (It is assumed that the reader has at least a basic understanding of linear algebra and statistics, though explanations try to be accessible even without this knowledge.). This blog covers terms L-Z; a blog covering terms A-J can be found here.

Note: SLAM in this glossary context is different from the MHI Industry Group SLAM, whose acronym stands for Scan, Label, Apply, Manifest.

Landmark

A recognisable feature that stands out from its environment.

In SLAM, the word “landmark” is often used to refer to an image feature which represents something notable in the surrounding environment, and which can be used to relate separate images of the same area, for example in image registration.

Because of this correspondence, image landmarks and physical landmarks can be considered somewhat interchangeable: the word “landmark” can denote an image feature, or can denote the physical structure that the feature identifies.

Least Squares (Method)

A method of choosing an optimal function to describe a set of data, by minimising the square of the errors between the function and the data.

The optimal function is the one that produces the least error between its values and the data points in the set. As part of the optimisation, the parameters of the function are refined to find those that produce the least overall error.

In this case, the error is measured as the squared difference between a data point and the relevant function value, hence least squares.

Localization

The process of computing one’s location within an environment, usually with respect to a map of the environment. This may be a pre-existing static map, or it may be learned and refined as the subject explores its environment, as is the case in SLAM.

Loop Closure

The detection of a previously visited area of the environment, which can be used to update a SLAM agent’s map and improve overall localisation accuracy.

When a SLAM agent is exploring its environment and creating a pose graph, it can only measure the relative changes in its location between sequential poses. This means that the overall uncertainty the agent has of its location accumulates over time.

If the agent is able to recognise that it has returned to a location it has seen previously, this means it can correlate two or more poses with one another. Given this new constraint, the locations of other poses in the graph can be re-evaluated to improve their accuracy.

When two existing poses are correlated with one another, this equates to adding an edge between them in the graph, forming a loop (hence loop closure). This new graph edge describes the relative transformation that the SLAM agent estimates between the two poses.

To make use of the new constraint introduced by a loop closure, the SLAM agent will run a pose graph optimisation. This process updates all poses in the graph, taking into account all connections between them.

It is important to note that the SLAM agent should be confident that it has truly returned to an area it has already seen when deciding to invoke a loop closure. A mistaken loop closure is very detrimental to the overall accuracy of a map, and cannot be easily removed from the graph.This page gives a short video overview of the SLAM process, and what happens when pose graph optimisation is performed.

Map

A spatial model of an environment. A map usually contains information about which areas of the environment are empty (traversable), and which are occupied (not traversable).

Mapping

The process of exploring an environment, and building up a map of that environment.

Noise Model

A mathematical model that describes the nature of the uncertainty in a given set of data readings.

It is straightforward to appreciate that there will be a certain amount of inaccuracy (ie. noise) in the data provided by a sensor. Knowing the shape of the distribution of this noise helps to better estimate the uncertainty around a given measurement, and better understand where the true value might lie.

An example might be the knowledge that the uncertainty in a robot’s rotation scales linearly with the amount of time that the robot spends rotating.

For the purposes of simplification, the distribution of noise is often assumed to be Gaussian in some way.

Odometry

The process of estimating a position based on sensor data. Slamcore often uses the following methods of odometry:

  • Wheel odometry: Estimating the distance travelled by counting the number of rotations of a robot’s wheels.
  • Visual odometry: Estimating motion by tracking features across multiple images over time.
  • Visual-inertial odometry: Estimating motion by combining visual feature tracking with IMU measurements of acceleration and orientation. This is more robust than visual odometry on its own, as the different types of measurements can be used to support one another and reduce overall uncertainty.

Offline (Processing)

Computation that is performed asynchronously and independently, usually because it is too intensive to be completed within a short period of time, or because it must be executed in a batch rather than iteratively. Is complemented by online processing.

Online (Processing)

Computation that is performed live as part of a step of an algorithm. The computation is usually lightweight, and performed iteratively over consecutive steps. Is complemented by offline processing.

Partial Derivative

The derivative of a function with respect to one of its input variables, where the other input variables are assumed not to change.

This is only meaningful for a function which takes multiple input variables. If your function just takes one variable, there is only one way to differentiate it.

On the other hand, if your function takes multiple variables, you can explore the derivative of the function in different ways, depending on the cases you are interested in:

  • Differentiating with respect to one variable, and restricting your interest to the cases where the other input variables do not change. This is a partial derivative.
  • Differentiating with respect to one variable, and considering what happens when other variables are allowed to change. This is a total derivative.

It is generally easier to compute a partial derivative than a total derivative, because a total derivative must take into account more input influences.

Pose

A position and orientation snapshot of an object. In SLAM, poses describe where the agent was in its environment at a particular instant in time, and are in relation to the agent’s map.

Pose Graph

A graph used in SLAM, where each node represents a pose of the SLAM agent in the environment, and each edge represents an estimated translation + rotation between the two connected poses.

The main useful property of a pose graph is that it relates sequential poses by their relative transformations. A SLAM agent has no way of knowing for certain what its real-world position is, but it can measure its relative translation and rotation from one point to the next with reasonable confidence (or at least with a known model of the expected error). A pose graph encodes this information in a way that allows the poses to be revisited and refined over time.

It should be noted that an edge between two poses also implies that the space in the map between those two poses is not occupied, since the SLAM agent was able to move between the poses.

The process of refining the overall pose graph given new constraints is called pose graph optimisation. This is performed when the SLAM system detects a loop closure.

Pose Graph Optimisation (PGO)

The process of updating a SLAM pose graph to improve the pose estimates.

In the pose graph, each edge represents a relative change in location and orientation between two poses. This transformation has a certain level of uncertainty associated with it, which determines how “flexible” the edge in the graph can be. If an edge has low uncertainty, the SLAM agent was very confident in its movement, and so the transformation should be considered reliable; if the edge has a greater uncertainty, there is a higher variability in the movement that the SLAM agent could have taken, and so the transformation should not be relied upon as strongly.

Pose graph optimisation revisits and revises the poses in the graph, and the transformations between them, based on the new pose-to-pose relationship introduced by a loop closure. The optimisation performed is to minimise the “tension” in the graph, where edges with a lower uncertainty introduce more tension (ie. a greater cost to change the edge) than edges with a higher uncertainty. Put another way, if a transformation between two poses has a higher uncertainty, it is permissible to modify the transformation more drastically than one with a lower uncertainty.

As a result of pose graph optimisation, the SLAM agent’s map of its environment should become more accurate, as the agent’s estimates of its position during the mapping should have been improved. In turn, this also improves subsequent localisation of the agent.

Real-Time Locating System (RTLS)

A system which performs live tracking of objects. SLAM is one possible method of performing this kind of real-time location, where the object being tracked is the SLAM agent.

Simultaneous Localization And Mapping (SLAM)

A process where an agent builds up a map of its surrounding environment, while at the same time estimating its location in that environment. This is a continuous process, where both the map and the agent’s location are refined (and hopefully become more accurate) over time.

SLAM as a term describes the general problem of localisation and mapping. Different SLAM systems may approach solving this problem in different ways, so may or may not be easily comparable to the SLAM implementation at Slamcore.

Trajectory

A path that an object with mass follows through space, over time.

In the context of SLAM, a trajectory refers to the path taken by the SLAM agent through its environment. Given the same sensory inputs, modifying the parameters of the SLAM process (eg. confidence threshold for loop closures, prior knowledge about environmental features, etc.) can produce differences in the trajectories that are computed.

.