The nonlinear
module in GTSAM includes a comprehensive set of tools for nonlinear optimization using factor graphs. Here’s an overview of key components organized by category:
Core Classes¶
- NonlinearFactorGraph: Represents the optimization problem as a graph of factors.
- NonlinearFactor: Base class for all nonlinear factors.
- NoiseModelFactor: Base class for factors with noise models.
- Values: Container for variable assignments used in optimization.
Batch Optimizers¶
NonlinearOptimizer: Base class for all batch optimizers.
- NonlinearOptimizerParams: Base parameters class for all optimizers.
GaussNewtonOptimizer: Implements Gauss-Newton optimization.
- GaussNewtonParams: Parameters for Gauss-Newton optimization.
LevenbergMarquardtOptimizer: Implements Levenberg-Marquardt optimization.
- LevenbergMarquardtParams: Parameters for Levenberg-Marquardt optimization.
DoglegOptimizer: Implements Powell’s Dogleg optimization.
- DoglegParams: Parameters for Dogleg optimization.
GncOptimizer: Implements robust optimization using Graduated Non-Convexity.
- GncParams: Parameters for Graduated Non-Convexity optimization.
Incremental Optimizers¶
- ISAM2: Incremental Smoothing and Mapping 2, with fluid relinearization.
- ISAM2Params: Parameters controlling the ISAM2 algorithm.
- ISAM2Result: Results from ISAM2 update operations.
- NonlinearISAM: Original iSAM implementation (mostly superseded by ISAM2).
Specialized Factors¶
- PriorFactor: Imposes a prior constraint on a variable.
- NonlinearEquality: Enforces equality constraints between variables.
- LinearContainerFactor: Wraps linear factors for inclusion in nonlinear factor graphs.
- WhiteNoiseFactor: Binary factor to estimate parameters of zero-mean Gaussian white noise.
Filtering and Smoothing¶
- ExtendedKalmanFilter: Nonlinear Kalman filter implementation.
- FixedLagSmoother: Base class for fixed-lag smoothers.
- BatchFixedLagSmoother: Implementation of a fixed-lag smoother using batch optimization.
- IncrementalFixedLagSmoother: Implementation of a fixed-lag smoother using iSAM2.
Analysis and Visualization¶
- Marginals: Computes marginal covariances from optimization results.
- GraphvizFormatting: Provides customization for factor graph visualization.