Robotics

Factor graph

Definition

A factor graph is a bipartite graph whose variable nodes represent unknown quantities and whose factor nodes represent functions involving subsets of those variables. Robotics systems use this structure to combine local motion, sensor, and prior constraints in estimation and optimisation problems.

Also known as: Factor graphs

Updated

Variables and local factors

A factor graph has two node types. Variable nodes can represent robot poses, velocities, landmarks, biases, or other unknowns. Factor nodes encode functions of selected variables, such as an odometry measurement between two poses or a prior on an initial position. An edge exists only where a factor depends on a variable.

GTSAM's explanation by Frank Dellaert emphasises this local structure. A camera observation usually touches the camera pose and visible landmark rather than every unknown in a map. Exposing that sparsity can reduce the work needed to solve the resulting optimisation problem.

Combining robot measurements

In simultaneous localization and mapping, sequential motion factors can connect neighbouring poses, landmark factors can connect poses to map features, and a loop closure can connect poses far apart in time. Optimising all factors produces an estimate that balances their residuals and uncertainty models.

The Dellaert and Kaess monograph develops factor graphs as a common representation for robot perception and discusses inference methods that exploit sparse structure. The same representation can support sensor fusion, calibration, structure from motion, and some planning or control formulations.

A graph does not make a model correct

Factor graphs express dependencies; they do not determine which variables, residuals, or noise distributions are valid. Incorrect data association, an overconfident sensor model, or an unobservable degree of freedom can produce a precise-looking but wrong estimate.

Nonlinear factors also require linearisation and iterative solving. Results can depend on initial estimates, numerical conditioning, and how outliers are handled. Incremental solvers can update a graph as measurements arrive, but computation and memory can still grow unless the system manages old states or exploits additional structure.

Sources