GLIM and GTSAM Pipeline Hub
This is the cross-section hub for understanding GLIM as a SLAM pipeline and GTSAM as the mathematical backend behind that pipeline. It links the method pages to the knowledge-base pages that explain the probability, geometry, optimization, and sparse linear algebra layers.
Use this page when a question spans more than one file, for example: "how does a GLIM scan factor become a GTSAM solve?", "where do Bayes trees and Hessians enter the pipeline?", or "which KB page explains the failure I am seeing?"
Core Spine
sensor packets
-> time sync, calibration, preprocessing, deskew
-> range/IMU/GNSS/loop/custom residual factors
-> GTSAM nonlinear factor graph over poses, velocities, biases, and submaps
-> manifold linearization and whitening
-> sparse Jacobian/Hessian or Bayes-tree solve
-> marginals, diagnostics, trajectories, submaps, and map artifactsThe key point: GLIM is the SLAM/mapping framework; GTSAM is the graph optimization and inference machinery; the KB pages explain the math that makes the machinery inspectable.
Pipeline Crosswalk
| GLIM pipeline stage | GTSAM object or operation | Mathematical topic | Diagnostic artifact |
|---|---|---|---|
| Sensor ingestion and calibration | measurements, timestamps, frame transforms | Lie groups, SE(3), SO(3), and Jacobians, Sensor Calibration and Time Synchronization | frame trace, TF chain, time-offset replay, lever-arm check |
| Deskew and inertial propagation | PreintegratedImuMeasurements, ImuFactor, NavState, bias variables | IMU Error Models and Preintegration | IMU residuals, bias trajectory, gravity alignment, deskew sharpness |
| Factor construction | NonlinearFactorGraph, Values, NoiseModelFactorN, custom factors | GTSAM Factor Graph Optimization, Objective and Residual Design Audit | factor list, residual units, connected keys, zero-residual synthetic case |
| Probability model | priors, likelihood factors, robust noise models | Probabilistic Graphical Models and Message Passing, Likelihood, MAP, MLE, and Least Squares | posterior factorization, prior policy, factor independence assumptions |
| Noise and whitening | noiseModel::Diagonal, Gaussian models, robust wrappers | Gaussian Noise, Covariance, Information, Whitening, and Uncertainty Ellipses, Robust Losses and M-Estimators | whitened residual histograms, per-factor chi-square, robust weights |
| Scan matching and submap matching | gtsam_points scan/VGICP factors, loop factors, plane factors | GICP and VGICP, LiDAR Bundle-Adjustment Factors, Point Cloud Registration Math | inlier count, overlap, voxel covariance, scan Hessian, weak eigenvectors |
| Nonlinear step | Gauss-Newton, Levenberg-Marquardt, Dogleg, iSAM2 update policy | Gauss-Newton, Levenberg-Marquardt, and Dogleg, Nonlinear Solver Diagnostics Crosswalk | cost trace, damping/radius, predicted-vs-actual reduction, accepted/rejected steps |
| Linearization and Hessian | GaussianFactorGraph, JacobianFactor, HessianFactor, H = J^T J | Jacobians, Autodiff, and Manifold Linearization, Eigenvalues, Hessian Conditioning, and Observability | finite-difference checks, Hessian spectrum, nullspace, local observability |
| Sparse backend | ordered elimination, Cholesky, QR, Bayes net, Bayes tree | Sparse Matrices, Fill-In, and Ordering, Cholesky, LDLT, and Normal Equations, QR, SVD, and Rank-Revealing Solvers | fill report, clique size, pivot warnings, QR/SVD rank snapshot |
| Fixed-lag and map refinement | fixed-lag smoother, marginal factors, global submap graph | Schur Complement, Marginalization, and PCG, Square-Root Information and Covariance Recovery | dense prior rank, separator variables, selected marginal covariance |
| Pipeline-level SLAM method | GLIM odometry, global mapping, offline correction, multi-session merge | GLIM, Factor Graph SLAM with iSAM2 and GTSAM | odom_*.txt, traj_*.txt, submap graph, exported PLY/map artifacts |
Failure Routing
| Symptom | First route |
|---|---|
| Low scalar cost but wrong map | Objective and Residual Design Audit, then scan/loop residual pages |
| Cholesky or indeterminate linear-system failure | Cholesky, LDLT, and Normal Equations, then Eigenvalues, Hessian Conditioning, and Observability |
| iSAM2 update-time spike | Sparse Matrices, Fill-In, and Ordering, then Factor Graph SLAM with iSAM2 and GTSAM |
| Covariance looks too confident | Gaussian Noise, Covariance, Information, Whitening, and Uncertainty Ellipses, then SLAM/VIO Observability, FEJ, Nullspace, and Consistency |
| Loop closure bends a map | Robust Losses and M-Estimators, Loop Closure and Place Recognition, and Nonlinear Solver Diagnostics Crosswalk |
| Open-area drift or repeated-structure ambiguity | Eigenvalues, Hessian Conditioning, and Observability, GICP and VGICP, and GLIM |
| Custom factor behaves unexpectedly | Jacobians, Autodiff, and Manifold Linearization, Lie Groups SE(3), SO(3), Adjoints, and Jacobians, and GTSAM Factor Graph Optimization |
Reading Paths
For the full GLIM pipeline, read GLIM, then GTSAM Factor Graph Optimization, then Factor Graph SLAM with iSAM2 and GTSAM.
For the math behind the solve, read Likelihood, MAP, MLE, and Least Squares, Nonlinear Least Squares from First Principles, Jacobians, Autodiff, and Manifold Linearization, and Gauss-Newton, Levenberg-Marquardt, and Dogleg.
For sparse backend behavior, read Sparse Estimation Backend Crosswalk, then Sparse Matrices, Fill-In, and Ordering, Cholesky, LDLT, and Normal Equations, QR, SVD, and Rank-Revealing Solvers, and Schur Complement, Marginalization, and PCG.
For production-style debugging, start with Nonlinear Solver Diagnostics Crosswalk, then route to objective design, noise whitening, Jacobians, rank/conditioning, sparse backend, or state-estimation observability.
Boundary Notes
- GLIM owns the concrete range-inertial mapping workflow: odometry, submaps, global mapping, offline correction, multi-session merge, extension modules, and exported artifacts.
- GTSAM owns the graph abstraction and inference machinery: factor graphs, values, noise models, nonlinear optimization, elimination, Bayes tree/iSAM2, marginals, and fixed-lag smoothing.
- The KB pages own reusable theory. They should explain the math so that a GLIM/GTSAM issue can be debugged without treating either codebase as a black box.