research.adeesh.inFoundationsMathGTSAMOMPLPorting

GTSAM & OMPL — an engineering study

Notes for understanding, from first principles, two foundational robotics libraries well enough to port them:

Library Repo What it answers Core abstraction
GTSAM (Georgia Tech Smoothing and Mapping) borglab/gtsam Where am I, and what does the world look like? (estimation) Factor graph → sparse nonlinear least squares
OMPL (Open Motion Planning Library) ompl/ompl How do I get from here to there without hitting anything? (planning) State space + validity checker → sampling-based search

Together they cover two of the three halves of the classic robot loop: perceive/estimate → plan → act. GTSAM sits on the estimation side, OMPL on the planning side, and both lean on the same math (Lie groups for poses, Eigen for linear algebra).

Reading order

  1. Foundations: what SLAM and motion planning are, what each library is for, who uses it, and a map of the prerequisites.
  2. Math: six chapters that build the underlying math from first principles: linear algebra, Lie groups, probability, optimization, factor graphs, and motion-planning theory.
  3. GTSAM deep dive: from "what is a factor graph" to the elimination algorithm, Bayes trees, iSAM2, and the source tree file by file.
  4. OMPL deep dive: from "what is configuration space" to RRT/PRM/RRT*, the plugin architecture, and the source tree.
  5. Porting guide: what makes each library hard or easy to port, dependency maps, invariants you must preserve, and a test strategy.

Snapshot

Source studied: GTSAM develop @ a74146d (v4.3.2, Oct 2026) and OMPL main @ 5b209a0 (v2.0.2, Sep 2026). Both are C++17, BSD-licensed, CMake-built.