Confusion about derivative of matrix $\in SO(3)$

differential-geometrylie-groupsmatrix-calculusrotationssmooth-manifolds

I am trying to differentiate the following expression:
$$\left. \frac{\partial\exp([\boldsymbol{\omega}]_\times + [\boldsymbol{\xi}]_{\times})}{\partial \boldsymbol{\xi}}\right|_{\boldsymbol{\xi}=\mathbf{0}} \tag{1}$$
Where $\exp(\cdot)$ is the matrix exponential, $[\boldsymbol{\omega}]_{\times}, [\boldsymbol{\xi}]_{\times}$ are elements of the Lie Algebra of SO(3) (i.e. $ [\boldsymbol{\omega}]_{\times}, [\boldsymbol{\xi}]_{\times} \in \mathfrak{so}(3)$), and $[\cdot]_{\times}$ represents the operator that in this case transforms elements $\in \mathbb{R}^3$ to elements in $\mathfrak{so}(3)$:
$$[\boldsymbol{\omega}]_{\times} = [(\omega_1, \omega_2, \omega_3)^T]_{\times} = \begin{pmatrix}
0 & -\omega_3 & \omega_2\\
\omega_3 & 0 & -\omega_1\\
-\omega_2 & \omega_1 & 0\\
\end{pmatrix} \tag{2}$$

Given this, how this derivative can be computed? My attempt is not giving good results as it does not match with numerical differentiation:

Attempt

Given the fact that $[\boldsymbol{\omega}]_{\times}$ and $\left. [\boldsymbol{\xi}]_{\times}\right|_{\boldsymbol{\xi}=\mathbf{0}}$ commute i.e. $\left. [\boldsymbol{\omega}]_{\times}[\boldsymbol{\xi}]_{\times}\right|_{\boldsymbol{\xi}=\mathbf{0}} = \left.[\boldsymbol{\xi}]_{\times}[\boldsymbol{\omega}]_{\times}\right|_{\boldsymbol{\xi}=\mathbf{0}}$ we can express the previous matrix exponential into the following form:
$$ \left. \exp([\boldsymbol{\omega}]_\times + [\boldsymbol{\xi}]_{\times})\right|_{\boldsymbol{\xi}=\mathbf{0}} = \left.\exp([\boldsymbol{\xi}]_{\times})\exp([\boldsymbol{\omega}]_{\times})\right|_{\boldsymbol{\xi}=\mathbf{0}} \label{eq3}\tag{3}$$

So that:
$$ \left. \frac{\partial\exp([\boldsymbol{\omega}]_\times + [\boldsymbol{\xi}]_{\times})}{\partial \boldsymbol{\xi}}\right|_{\boldsymbol{\xi}=\mathbf{0}} = \left. \frac{\partial \exp([\boldsymbol{\xi}]_{\times})\exp([\boldsymbol{\omega}]_{\times})}{\partial \boldsymbol{\xi}}\right|_{\boldsymbol{\xi}=\mathbf{0}} \label{eq4}\tag{4}$$

Thereby, differentiating w.r.t. each element $\xi_k$ of $\boldsymbol{\xi}=(\xi_1,\xi_2,\xi_3)^T$ leads to the following result (as shown by B0rk4 in this answer):
$$\left. \frac{\partial \exp([\boldsymbol{\xi}]_{\times})}{\partial \xi_k}\right|_{\boldsymbol{\xi}=\mathbf{0}} = \mathbf{G}_k \tag{5}$$
Where $\mathbf{G}_k$ represents the $k$-th generator of SO(3).

So that the final derivative w.r.t. each $\xi_k$ is given by:
$$\left. \frac{\partial \exp([\boldsymbol{\xi}]_{\times})\exp([\boldsymbol{\omega}]_{\times})}{\partial \xi_k}\right|_{\boldsymbol{\xi}=\mathbf{0}} = \mathbf{G}_k \exp([\boldsymbol{\omega}]_{\times}) \label{eq6}\tag{6}$$

However, making use of numerical differentiation I am not reproducing the previous result. What I am getting almost every time is a matrix that all of its elements are non-zero i.e. $\neq \mathbf{G}_k \exp([\boldsymbol{\omega}]_{\times})$.

This makes me think that I am not using correctly the previous commutative property (wrong use at equations $\ref{eq3}$ and $\ref{eq4}$) but I can't understand why.

Best Answer

Are you assuming that $\omega$ and $\xi$ commute in $\mathfrak{so}(3)$? If so, the expression $\boldsymbol{G}_x\exp([\boldsymbol{\omega}]_\times)$ is correct. If not, you need to use the more general expression for the derivative of the exponential map (see here for the formula - your case amounts to setting $X(t) = [\boldsymbol{\omega}]_\times + t\mathbf{G}_k$, in your notation).

Alternatively, for $\operatorname{SO}(3)$, you can instead use Rodrigues' formula, which in your notation says that $$ \exp([\boldsymbol{\eta}]_\times) = \mathbf{I} + \frac{\sin\theta}{\theta}[\boldsymbol{\eta}]_\times + \frac{1-\sin\theta}{\theta}[\boldsymbol\eta]_\times^2, $$ where $\theta = \sqrt{\eta_1^2+\eta_2^2+\eta_3^2}$ Applying this to $[\boldsymbol\eta]_\times = [\boldsymbol\omega]_\times + t\mathbf{G}_k$ and differentiating at $t=0$ should give what you want.