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.