The dot product defines length and angle
‖v‖²=vᵀv and cosθ=(aᵀb)/(‖a‖‖b‖). An orthogonal R satisfies (Ra)ᵀ(Rb)=aᵀb.
Mathematics of Rigid-Body Motion
A rigid pose is a state on a six-dimensional manifold, rather than sixteen independent entries of a 4×4 array. Starting with points, vectors, bases, and homogeneous coordinates, this chapter develops a common language for SO(3), SE(3), exponential/logarithmic maps, twists, the Adjoint, and left/right perturbations.
Affine Space Before Matrices
A point describes a position; a vector describes the difference between two points or a free direction; a normal encodes a tangent-plane constraint; a basis turns geometric entities into coordinates. All can be stored as arrays, but matching array shapes do not imply matching semantics.
| Geometric entities | Homogeneous form / structure | Rigid rule | General affine rule | Invariants | Common pitfalls |
|---|---|---|---|---|---|
| Point | [pᵀ, 1]ᵀ | p′ = Rp + t | p′ = Ap + t | Rigid motion preserves distances between points; translation affects points | Points belong to an affine space: two points can be subtracted, but changing the origin changes their coordinates |
| Free vector / direction | [vᵀ, 0]ᵀ | v′ = Rv | v′ = Av | Rigid motion preserves length, angles, and dot products; translation has no effect | When converting velocity between rotating frames, distinguish the frame in which it is expressed; do not assign w=1 to a direction |
| Normal | Covector / plane constraint | n′ = Rn | n′ ∝ A⁻ᵀn | Remains perpendicular to transformed tangents; normalize as needed | Transforming normals as ordinary directions works only for orthogonal transforms or uniform scaling |
| Coordinate basis | B = [b₁ b₂ b₃] | B′ = RB | B′ = AB | Columns of R form an orthonormal basis; columns of a general A need not be orthogonal | Whether columns describe a new basis in the old frame or a linear map depends on active/passive semantics |
| Pose | T = [[R,t],[0ᵀ,1]] | T ∈ SE(3) | For T ∈ Aff(3), the upper-left block is a general A | Rigid motion preserves distances, angles, volume, and orientation | A 4×4 shape does not guarantee a rigid transform; check RᵀR and det(R) |
‖v‖²=vᵀv and cosθ=(aᵀb)/(‖a‖‖b‖). An orthogonal R satisfies (Ra)ᵀ(Rb)=aᵀb.
[a]×b=a×b and [Ra]×=R[a]×Rᵀ. This connects 3D angular velocity, normals, and SE(3) Jacobians.
Σᵢαᵢpᵢ is independent of the origin when Σᵢαᵢ=1; centroids, barycentric coordinates, and interpolation rely on this property.
What Is Preserved?
Matrix size alone is insufficient. A transform family is determined by constraints on the upper-left linear block, its determinant, and the geometric structures it preserves. These also determine degrees of freedom, applicable solvers, and normal transformation rules.
| Transform families | Matrix form | DoF | Constraints | Invariants | Uses in 6D pose |
|---|---|---|---|---|---|
| SO(3) | R ∈ ℝ³ˣ³ | 3 | RᵀR = I, det(R)=+1 | Lengths, angles, volume, and orientation; the origin stays fixed | Orientation, angular-velocity integration, rotation error |
| SE(3) | [[R,t],[0ᵀ,1]] | 6 | R ∈ SO(3), t ∈ ℝ³ | Euclidean distances, angles, volume, and orientation | 6D rigid pose, camera trajectories, robot kinematics |
| Sim(3) | [[sR,t],[0ᵀ,1]] | 7 | R ∈ SO(3), s > 0 | Angles and length ratios; uniform scaling in every direction | Monocular SLAM scale alignment, unknown uniform scale |
| Aff(3) | [[A,t],[0ᵀ,1]] | 12 | A ∈ GL(3), det(A) ≠ 0 | Lines, parallelism, and affine combinations | Image/3D data transforms and nonrigid preprocessing; not a 6D pose |
| O(3) \ SO(3) | Q, det(Q)=−1 | 3 + a discrete branch | QᵀQ = I, det(Q)=−1 | Distances and angles, but reverses orientation | Reflection failures in SVD registration; diagnosing mirrored axis conventions |
SO(3) and SE(3)
Group structure supports reliable transform chains: the identity represents no motion, the inverse reverses coordinate conversion, and associativity permits regrouping. Matrix multiplication is generally noncommutative, so motion order cannot be swapped arbitrarily.
R = [[0,−1,0],[1,0,0],[0,0,1]]
p = [1,0,0]ᵀ
p′ = Rp+t = [1,3,3]ᵀ Recover with T⁻¹ by subtracting t, then multiplying by Rᵀ: Rᵀ(p′−t)=[1,0,0]ᵀ. Simply negating t and applying operations in the wrong order fails to recover the original point.
Interactive Rigid Geometry Lab
The first view compares rigid, similarity, affine, and reflection transforms; the second computes SE(3) exponential/logarithmic maps; the third compares left/right updates and uses the Adjoint to show how two local coordinate systems describe the same physical increment.
Interactive · Rigid Geometry
Classification
det(A)
Length ratio
Normal check
Wrong rule
Exponential map
SO(3) left Jacobian
Logarithm recovery
Left coordinates
Right coordinates
Result gap
Lie Group and Lie Algebra
SO(3) and SE(3) vary continuously and have both group and smooth-manifold structures. A Lie algebra is the tangent space at the identity: an ordinary vector space suited to velocities, small increments, optimization steps, and local Gaussian uncertainty.
Global, nonlinear, composable finite rigid motions.
Tangent vectors at the identity in 4×4 matrix form.
This site places the translational tangent component ρ before the rotation vector φ.
For a twist ξ constant over time, T(s)=Exp(sξ^) describes a screw motion. φ specifies angular motion, while ρ couples with rotation to produce finite translation.
Gauss–Newton / LM solves for δξ, then Exp maps the update back to SE(3), keeping every iterate a valid rigid transform.
A 6×6 Σ must specify the left/right perturbation, reference pose, frame, component order, and translation units for correct propagation or comparison.
Retraction, Jacobian and Adjoint
The same six-dimensional array is interpreted in different frames on the left or right of T. Either can define a correct optimizer, but residuals, Jacobians, covariances, and update rules must be consistent as a set.
| Convention | Update | First-order effect on y=Tp | Point Jacobian | Geometric meaning |
|---|---|---|---|---|
| Left perturbation / target frame | T ← Exp(δξₗ^) T | For y = Tp, δy ≈ δρₗ − [y]×δφₗ | [I, −[y]×] | The increment is expressed in the output / world / camera target frame |
| Right perturbation / source frame | T ← T Exp(δξᵣ^) | For y = Tp, δy ≈ Rδρᵣ − R[p]×δφᵣ | [R, −R[p]×] | The increment is expressed in the input / object / body local frame |
| Equivalent conversion via the Adjoint | δξₗ = AdT δξᵣ | Exp(δξₗ^)T = T Exp(δξᵣ^) | Σₗ = AdT Σᵣ AdTᵀ | Two six-dimensional coordinate descriptions of the same physical perturbation, rather than different motions |
Errors Are Also Geometric Objects
Elementwise matrix differences, componentwise Euler-angle differences, and quaternion L2 distances depend on the representation. A more stable approach constructs a relative transform, uses Log for a local error, then weights it according to task scale or covariance.
eₜ=‖t_est−t_gt‖ has length units; any combined threshold must state units and object scale.
The principal SO(3) angle lies in [0,π]; Euler component differences can be discontinuous at ±180°.
With a valid Σ and consistent frames, use eᵀΣ⁻¹e; this is more meaningful than arbitrarily declaring 1 m = 1 rad.
Grasping, assembly, and projection respond differently to error directions; task Jacobians or success rates are still needed.
A Shared Mathematical Interface
Domains mainly differ in state names, observation residuals, and task constraints. Transform composition, local updates, the Adjoint, and error propagation use the same mechanisms.
| Domain | Typical state | Typical residuals | Role of this chapter's mathematics |
|---|---|---|---|
| 6D object pose | TCO ∈ SE(3) | Reprojection, silhouette, depth, surface, or feature residuals | A network may predict any representation, but solving, refinement, and error computation must ultimately respect the rigid-motion manifold |
| Visual SLAM / BA | TWC, landmarks, scale, or velocity/bias states | Cross-frame reprojection, IMU preintegration, loop closures, and relative poses | Solve for δξ in the tangent space at each iteration, then update the pose with a left/right retraction; do not add 4×4 matrices directly |
| Robot kinematics | TBE(q), TET, hand–eye extrinsics | End-effector position/orientation, closed-loop constraints, calibration equations | Twists, the Adjoint, and Jacobians connect joint velocities, tool velocities, and perturbations in different frames |
| Robotic Grasping | TBO, TOG, TBG | Grasp pose error, contact, collision, reachability | Compose object-to-grasp with the visual object pose; transform errors into the frame relevant to the task |
Instantiate target/source with actual object, camera, world, robot, and gripper frames.
03Explore Euler angles, matrices, axis–angle, quaternions, continuous representations, and egocentric / allocentric orientations.
07Apply rigid constraints to practical estimation with Kabsch, Umeyama, RANSAC, and ICP.
Failure Modes
Encode frames, transform directions, component order, update side, and angle/length units in API types, logs, and tests. This lets numerically correct functions form a semantically correct system.
| Frequent error | Symptom | Low-cost fix |
|---|---|---|
| Assigning w=1 to both points and directions | Translation is incorrectly added to directions, axes, or velocities | Use [p;1] for points and [v;0] for free vectors; test them separately |
| Transforming normals with A under a general affine map | Normals cease to be perpendicular to the surface after nonuniform scaling or shear | Use A⁻ᵀn, renormalize, and check n′ᵀd′≈0 |
| Applying elementwise SGD updates to a 4×4 pose | R leaves SO(3); determinant and orthogonality drift | Optimize δξ in the tangent space, then update through Exp / retraction; project with SVD if needed |
| Treating the twist component ρ as the final t | Ignoring Jₗ(φ) at finite angles gives incorrect trajectories and Jacobians | Specify the ξ order and Exp formula; compute t=Jₗρ except for pure translation |
| Pairing a left Jacobian with right perturbations | Gradient direction and covariance frames disagree, causing slow convergence or divergence | Fix the boxplus definition; compare analytical Jacobians and finite differences using the same perturbation side |
| Comparing left and right updates with the same six numbers | Treating local-frame and target-frame coordinates as the same physical increment | Convert with δξₗ=AdTδξᵣ before comparing |
| Using general Exp / Log formulas directly near zero or π | 0/0, catastrophic cancellation, unstable axis signs | Use series at small angles and stable branches near π; accept nonuniqueness in principal values/axis signs |
| Mixing meters and millimeters in the same se(3) norm | Rotation/translation weights lack physical meaning, and thresholds vary with units | Report separately, or combine after task-scale normalization / covariance whitening |
inverse(T) · T ≈ I Exp(Log(T)) ≈ T Log(Exp(ξ)) ≈ ξ · principal branch det(R) ≈ +1 RᵀR ≈ I Exp(AdT ξ)T ≈ T Exp(ξ) (Ad A·B) ≈ Ad A · Ad B analytic J ≈ central difference J Primary & Technical Sources
Apply rigid geometry to actual frame chains involving objects, cameras, worlds, and robots.