Converts an angle to a 2d rotation matrix under the small angle assumption.
tfg.geometry.transformation.rotation_matrix_2d.from_euler_with_small_angles_approximation(
angles: type_alias.TensorLike,
name: str = 'rotation_matrix_2d_from_euler_with_small_angles_approximation'
) -> tf.Tensor
Under the small angle assumption, \(\sin(x)\) and \(\cos(x)\) can be
approximated by their second order Taylor expansions, where
\(\sin(x) \approx x\) and \(\cos(x) \approx 1 - \frac{x^2}{2}\). The 2d
rotation matrix will then be approximated as
\[
\mathbf{R} =
\begin{bmatrix}
1.0 - 0.5\theta^2 & -\theta \\
\theta & 1.0 - 0.5\theta^2
\end{bmatrix}.
\]
In the current implementation, the smallness of the angles is not verified.
Note |
The resulting matrix rotates points in the \(xy\)-plane counterclockwise.
|
Note |
In the following, A1 to An are optional batch dimensions.
|
Args |
angles
|
A tensor of shape [A1, ..., An, 1] , where the last dimension
represents a small angle in radians.
|
name
|
A name for this op that defaults to
"rotation_matrix_2d_from_euler_with_small_angles_approximation".
|
Returns |
A tensor of shape [A1, ..., An, 2, 2] , where the last dimension represents
a 2d rotation matrix.
|
Raises |
ValueError
|
If the shape of angle is not supported.
|