Simultaneous Localization and Mapping (SLAM)

SLAM is a key capability for mobile robots to autonomously explore an environment, build a map, and localize themselves within that map, addressing the challenge of needing both localization for mapping and a map for localization. This involves dealing with sensor limitations, the need for physical exploration, and maintaining map consistency, topology, and accuracy.

Introduction: Traditional robotics assumes a pre-existing map, but hand-made maps have limitations such as inability to account for changes, high cost, differences in human and robot perception, impossibility in remote locations, and GPS unreliability. SLAM aims to address these issues by enabling robots to build maps autonomously. This is challenging due to limited sensor range, the need for physical exploration, and the interdependence of localization and mapping.

Map Representations: Maps can be represented in various ways, including sparse representations like topological maps, discriminative feature maps, geometric primitive maps, and semantic maps, or dense representations like occupancy grids, point cloud maps, elevation maps, and boundary representations. Topological maps use nodes to represent distinguishable places and edges to indicate navigability. Feature maps use collections of triangulated interest points. Geometric primitive maps use simple geometric models to describe recurring structures. Semantic maps contain high-level information about the environment such as objects. Occupancy grids are probabilistic and model the probability of cells being occupied. Point cloud maps are registered 2D or 3D points obtained from range sensors. Elevation maps model the terrain as a function over discrete locations. Boundary representations model surfaces of objects.

Combining Map Representations: Different map representations can be combined. Landmark or point cloud maps can be combined with grid maps. Multiple grid map layers can be used to represent different quantities. A dense mesh can be combined with a sparse navigation graph. Semantic point clouds or elevation maps can be combined with class labels. 3D point cloud maps can be combined with semantic objects. Maps can also be combined hierarchically.

Choosing a Map Representation: The best map representation depends on the environment and robot's capabilities. Key criteria include environment dynamics, the structuredness of the environment, sensing capabilities, and locomotion type. For instance, a domestic vacuum robot might use a 2D representation, a warehouse AGV might use a geometric primitive map, and a humanoid healthcare robot might use a dense 3D map augmented with semantic information.

Uses of Maps: Maps are not only useful for robot localization but also for progress monitoring in construction, programming cleaning schedules, interactive visualization in teleoperation, inventory management, and human-robot interaction.

Mathematical Formulation: The SLAM problem can be described as a graphical model derived from the state space model. The map becomes a hidden state. The goal is to recover the map and robot's path, given a sequence of controls and observations. Full SLAM calculates the joint posterior probability over the full robot path and the map, often using batch processing. Online SLAM recovers the current robot pose and map, usually with incremental processing. A 2D SLAM problem can use landmark positions and relative range/bearing measurements.

EKF SLAM: EKF SLAM is an extension of EKF localization where newly observed landmarks are simply added to the state, leading to a growing state vector and covariance matrix. The state includes the robot pose and landmark positions. The EKF SLAM cycle involves state prediction, measurement prediction, observation, data association, update, and map extension. When a new landmark is observed, the state vector and covariance matrix are augmented. The uncertainty regarding the new landmark's position is then derived using Jacobians of the measurement model evaluated at the robot's current estimated position.

Key points

  • SLAM addresses the 'chicken and egg' problem: localization requires a map, but map building requires localization.
  • Map representations can be sparse (topological, feature-based, geometric primitive, semantic) or dense (occupancy grids, point clouds, elevation maps, boundary representations).
  • The choice of map representation depends on the environment, robot's sensors, locomotion, and task.
  • Full SLAM estimates the entire robot path and map jointly, while Online SLAM recovers the current pose and map incrementally.
  • EKF SLAM extends the Kalman filter by adding landmarks to the state vector, leading to a growing state covariance matrix.
  • Graph SLAM formulates the SLAM problem as a sparse nonlinear optimization, solving the full SLAM problem.
  • Data association, where measurements are linked to landmarks, is a crucial step in SLAM.
  • Reobserving landmarks correlates the robot's pose and the landmark estimates.
  • SLAM maps can be useful not only for localization, but also in construction monitoring, robot programming, interactive visualization, and inventory management.
  • Error propagation and Jacobian calculation are essential for handling uncertainty in landmark observations and robot poses.

Browse public study notes