Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

SLAM

The slam module provides a collection of factors, constraints, utilities, and initialization algorithms commonly used in Simultaneous Localization and Mapping (SLAM) and Structure from Motion (SfM) applications. It builds upon the core GTSAM inference engine (gtsam/inference) and geometric types (gtsam/geometry).

Core Factors

These are fundamental factor types often used as building blocks in SLAM.

Visual SLAM/SfM Factors

Factors specifically designed for visual data (camera measurements).

Smart Factors

Factors that implicitly manage landmark variables, marginalizing them out during optimization.

Other Geometric Factors & Constraints

Factors representing various geometric relationships or constraints.

Initialization & Utilities

Helper functions and classes for SLAM tasks.

FAST-Sync input and gauge behavior

fastSync<T> reads matching BetweenFactor<T> measurements and accepts only finite, positive, isotropic Gaussian noise. Anisotropic, constrained, and robust between-factor models are rejected. The measurement graph must be non-empty and connected; disconnected graphs are detected during QR elimination and raise IndeterminateSystemException. The graph may contain at most one matching PriorFactor<T>.

The relaxed problem uses fixed-size N-by-N matrices for measurements, reduced-system blocks, back-substitution, and projection, where N is obtained from the matrix representation returned by T::matrix(). The complete Gaussian graph retains dynamic sparse storage because its topology is only known at runtime. FAST-Sync defaults to a METIS nested-dissection ordering, accepts another supported OrderingType such as COLAMD or a caller-supplied complete Ordering, and uses an exact identity gauge at the ordering’s final key. Projection to the target group occurs only after the complete ambient-space solve. If a matching prior is present, the rounded solution is subsequently left-aligned to that prior; without a prior, the selected ordering’s gauge is retained. Selecting METIS in a build without METIS support reports the nested-dissection error. New fixed-size matrix Lie groups can opt in by specializing FastSyncProjection<T>.