Skip to article frontmatterSkip to article content

ISAM2

Overview

The ISAM2 class in GTSAM is an incremental smoothing and mapping algorithm that efficiently updates the solution to a nonlinear optimization problem as new measurements are added. This class is particularly useful in applications such as SLAM (Simultaneous Localization and Mapping) where real-time performance is crucial.

The algorithm is described in the 2012 IJJR paper by Kaess et al. (2011). For background, also see the more recent booklet by Dellaert & Kaess (2017).

Key Features

  • Incremental Updates: ISAM2 allows for incremental updates to the factor graph, avoiding the need to solve the entire problem from scratch with each new measurement.
  • Nonlinear Optimization: Capable of handling nonlinear systems, leveraging iterative optimization techniques to refine estimates.
  • Efficient Variable Reordering: Dynamically reorders variables to maintain sparsity and improve computational efficiency.

Main Methods

Initialization and Configuration

  • ISAM2 Constructor: Initializes the ISAM2 object with optional parameters for configuring the behavior of the algorithm, such as relinearization thresholds and ordering strategies.

Updating the Graph

  • update: Incorporates new factors and variables into the existing factor graph. This method performs the core incremental update, refining the solution based on new measurements.

Accessing Results

  • calculateEstimate: Retrieves the current estimate of the variables in the factor graph. This method can be called with specific variable keys to obtain their estimates.
  • marginalCovariance: Computes the marginal covariance of a specified variable, providing insight into the uncertainty of the estimate.

Advanced Features

  • getFactorsUnsafe: Provides access to the internal factor graph, allowing for advanced manipulations and custom analysis.
References
  1. Kaess, M., Johannsson, H., Roberts, R., Ila, V., Leonard, J. J., & Dellaert, F. (2011). iSAM2: Incremental smoothing and mapping using the Bayes tree. The International Journal of Robotics Research, 31(2), 216–235. 10.1177/0278364911430419
  2. Dellaert, F., & Kaess, M. (2017). Factor Graphs for Robot Perception. Foundations and Trends in Robotics, 6(1–2), 1–139. 10.1561/2300000043