Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

TrajectoryAlignerSim3

Created by Codex.

Align one or more child pose trajectories to a parent trajectory with a similarity transform.

Open In Colab

Mathematical idea

A three-dimensional similarity transform S=(s,R,t)∈Sim(3)S=(s,R,t)\in\mathrm{Sim}(3) maps a child position pkcp_k^c to its parent frame by

pkp≈sRpkc+t.p_k^p\approx sRp_k^c+t.

Sim(3)\mathrm{Sim}(3) denotes rotation, translation, and uniform scale. Pose orientation residuals additionally compare the rotated child orientation with the parent orientation. Graduated Non-Convexity (GNC) can down-weight mismatched correspondences.

Model

Parent and child poses are matched by key. Each child trajectory gets one Similarity3 variable under key S(child_index). The optimizer can initialize it from overlapping poses, accept an explicit initial similarity, use Graduated Non-Convexity (GNC) for robustness, and optionally add overlapping 3D-point pairs.

estimated scale: 1.0
estimated rotation:
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

Practical notes

  • At least two spatially distinct overlapping poses are needed to infer scale; richer nondegenerate motion is preferable.

  • Set use_gnc_optimizer=True when overlap associations may contain outliers.

  • marginalize(solution) computes uncertainty for the constructed alignment graph after solving.