Skip to article frontmatterSkip to article content

Navigation

The navigation module in GTSAM provides specialized tools for inertial navigation, GPS integration, and sensor fusion. Here’s an overview of key components organized by category:

Classes

Core Navigation Types

Attitude Estimation

IMU Preintegration (See also below)

GNSS Integration

Magnetic Field Integration

Simulation Tools

AHRSFactor and Preintegration

This section describes the classes primarily involved in Attitude and Heading Reference Systems (AHRS), which rely on gyroscope measurements for orientation preintegration.

The key components are:

  1. Parameters (PreintegratedRotationParams):

    • Stores parameters specific to gyroscope integration, including gyro noise covariance, optional Coriolis terms, and the sensor’s pose relative to the body frame.
  2. Rotation Preintegration (PreintegratedRotation):

    • Handles the core logic for integrating gyroscope measurements over time to estimate the change in orientation (deltaRij).
    • Calculates the Jacobian of this integrated rotation with respect to gyroscope bias (delRdelBiasOmega).
  3. AHRS Preintegrated Measurements (PreintegratedAhrsMeasurements):

    • Inherits from PreintegratedRotation and adds the calculation and storage of the covariance matrix (preintMeasCov_) associated with the preintegrated rotation.
    • This class specifically accumulates the information needed by the AHRSFactor.
  4. AHRS Factor (AHRSFactor):

    • A factor that constrains two Rot3 orientation variables and a Vector3 bias variable using the information accumulated in a PreintegratedAhrsMeasurements object.
    • It effectively measures the consistency between the orientation change predicted by the integrated gyro measurements and the orientation change implied by the factor’s connected state variables.

IMU Factor and Preintegration

This section describes the classes involved in preintegrating full IMU measurements (accelerometer and gyroscope) for use in factors like ImuFactor and CombinedImuFactor.

The key components are:

  1. Parameters (...Params):

    • PreintegratedRotationParams: Base parameter class (gyro noise, Coriolis, sensor pose).
    • PreintegrationParams: Adds accelerometer noise, gravity vector, integration noise.
    • PreintegrationCombinedParams: Adds parameters for bias random walk covariance.
  2. Preintegration Interface (PreintegrationBase):

    • An abstract base class defining the common interface for different IMU preintegration methods. It manages the bias estimate used during integration (biasHat_) and the time interval (deltaTij_).
    • Defines pure virtual methods for integration, bias correction, and state access.
  3. Preintegration Implementations:

    • ManifoldPreintegration: Concrete implementation of PreintegrationBase. Integrates directly on the NavState manifold, storing the result as a NavState. Corresponds to Forster et al. RSS 2015.
    • TangentPreintegration: Concrete implementation of PreintegrationBase. Integrates increments in the 9D tangent space of NavState, storing the result as a Vector9.
  4. Preintegrated Measurements Containers:

    • PreintegratedImuMeasurements: Stores the result of standard IMU preintegration along with its 9x9 covariance (preintMeasCov_).
    • PreintegratedCombinedMeasurements: Similar, but designed for the CombinedImuFactor. Stores the larger 15x15 covariance matrix (preintMeasCov_) that includes correlations with the bias terms.
  5. IMU Factors (...Factor):

    • ImuFactor: A 5-way factor connecting previous pose/velocity, current pose/velocity, and a single (constant during the interval) bias estimate. Does not model bias evolution between factors.
    • ImuFactor2: A 3-way factor connecting previous NavState, current NavState, and a single bias estimate. Functionally similar to ImuFactor but uses the combined NavState type.
    • CombinedImuFactor: A 6-way factor connecting previous pose/velocity, current pose/velocity, previous bias, and current bias. Includes a model for bias random walk evolution between the two bias states.

Important notes

References
  1. Forster, C., Carlone, L., Dellaert, F., & Scaramuzza, D. (2017). On-Manifold Preintegration for Real-Time Visual–Inertial Odometry. IEEE Transactions on Robotics, 33(1), 1–21. 10.1109/tro.2016.2597321