Gauss–Newton wants to compute an update and apply it as . For a rotation that is immediately broken: add anything to a rotation matrix and it stops being one. The set of rotations is a curved surface in the space of matrices — a manifold — and addition leaves it.
The fix is to keep the state on the manifold and the update in a flat space attached to it. At any rotation, the tangent space is three-dimensional; a vector in it is an angular velocity , and the exponential map turns it into a rotation:
That is Rodrigues' formula again, now with a job title. Updates then compose multiplicatively:
Three numbers, no constraint, no drift, and a Hessian block instead of a one with six redundant directions.
The same construction extends to full poses. has a six-dimensional tangent space — a twist — and
The matrix is worth a moment. is not the resulting translation — it is a velocity that acts while the frame is simultaneously rotating, and integrates that coupling. Only when do the two coincide. This is why a "small pose update" is six numbers with a non-obvious relationship to the twelve numbers of the matrix it produces.
Why can you average two rotation matrices element-wise and get something that is not a rotation, but average two tangent vectors and always get a valid update?
Show answer
Because is not closed under addition — it is a curved manifold sitting inside the flat vector space of matrices, and the straight line between two of its points leaves the surface. The tangent space is a vector space: any linear combination of tangent vectors is a tangent vector, and maps it back onto the manifold. Averaging rotations properly means mapping to the tangent space at some reference, averaging there, and mapping back — which is why the "correct" average depends on the reference you chose, and is only unique when the rotations are close together.