pytransform3d.rotations
.norm_matrix#
- pytransform3d.rotations.norm_matrix(R)[source]#
Orthonormalize rotation matrix.
A rotation matrix is defined as
\[\begin{split}\boldsymbol R = \left( \begin{array}{ccc} r_{11} & r_{12} & r_{13}\\ r_{21} & r_{22} & r_{23}\\ r_{31} & r_{32} & r_{33}\\ \end{array} \right) \in SO(3)\end{split}\]and must be orthonormal, which results in 6 constraints:
column vectors must have unit norm (3 constraints)
and must be orthogonal to each other (3 constraints)
A more compact representation of these constraints is \(\boldsymbol R^T \boldsymbol R = \boldsymbol I\).
Because of numerical problems, a rotation matrix might not satisfy the constraints anymore. This function will enforce them.
- Parameters:
- Rarray-like, shape (3, 3)
Rotation matrix with small numerical errors.
- Returns:
- Rarray, shape (3, 3)
Orthonormalized rotation matrix.
See also
check_matrix
Checks orthonormality of a rotation matrix.
matrix_requires_renormalization
Checks if a rotation matrix needs renormalization.