der_R_arbitrary_axis_times_v
Linearised rotation vector of the vector v
by angle theta
about an arbitrary axis u
.
The rotation of a vector \(\mathbf{v}\) about the axis \(\mathbf{u}\) by an angle \(\boldsymbol{\theta}\) can be expressed as
\[\mathbf{w} = \mathbf{R}(\mathbf{u}, \theta) \mathbf{v},\]
where \(\mathbf{R}\) is a \(\mathbb{R}^{3\times 3}\) matrix.
This expression can be linearised for it to be included in the linear solver as
\[\delta\mathbf{w} = \frac{\partial}{\partial\theta}\left(\mathbf{R}(\mathbf{u}, \theta_0)\right)\delta\theta\]
The matrix \(\mathbf{R}\) is
\[\begin{split}\mathbf{R} =
\begin{bmatrix}\cos \theta +u_{x}^{2}\left(1-\cos \theta \right) &
u_{x}u_{y}\left(1-\cos \theta \right)-u_{z}\sin \theta &
u_{x}u_{z}\left(1-\cos \theta \right)+u_{y}\sin \theta \\
u_{y}u_{x}\left(1-\cos \theta \right)+u_{z}\sin \theta &
\cos \theta +u_{y}^{2}\left(1-\cos \theta \right)&
u_{y}u_{z}\left(1-\cos \theta \right)-u_{x}\sin \theta \\
u_{z}u_{x}\left(1-\cos \theta \right)-u_{y}\sin \theta &
u_{z}u_{y}\left(1-\cos \theta \right)+u_{x}\sin \theta &
\cos \theta +u_{z}^{2}\left(1-\cos \theta \right)\end{bmatrix},\end{split}\]
and its linearised expression becomes
\[\begin{split}\frac{\partial}{\partial\theta}\left(\mathbf{R}(\mathbf{u}, \theta_0)\right) =
\begin{bmatrix}
-\sin \theta +u_{x}^{2}\sin \theta \mathbf{v}_1 +
u_{x}u_{y}\sin \theta-u_{z} \cos \theta \mathbf{v}_2 +
u_{x}u_{z}\sin \theta +u_{y}\cos \theta \mathbf{v}_3 \\
u_{y}u_{x}\sin \theta+u_{z}\cos \theta\mathbf{v}_1
-\sin \theta +u_{y}^{2}\sin \theta\mathbf{v}_2 +
u_{y}u_{z}\sin \theta-u_{x}\cos \theta\mathbf{v}_3 \\
u_{z}u_{x}\sin \theta-u_{y}\cos \theta\mathbf{v}_1 +
u_{z}u_{y}\sin \theta+u_{x}\cos \theta\mathbf{v}_2
-\sin \theta +u_{z}^{2}\sin\theta\mathbf{v}_3\end{bmatrix}_{\theta=\theta_0}\end{split}\]
and is of dimension \(\mathbb{R}^{3\times 1}\).
- param u:
Arbitrary rotation axis
- type u:
numpy.ndarray
- param theta:
Rotation angle (radians)
- type theta:
float
- param v:
Vector to rotate
- type v:
numpy.ndarray
- returns:
Linearised rotation vector of dimensions \(\mathbb{R}^{3\times 1}\).
- rtype:
numpy.ndarray