I am recently stuck in a problem about derivative of axis angle rotations. I came up with a simplified problem description as below:
We perform two consecutive rotations described in axis-angles as $\mathbf{\theta}^a, \mathbf{\theta}^b$. Note that the rotations are of the magnitude of $||\mathbf{\theta}^a||$ and $||\mathbf{\theta}^b||$ around axes of $\bar{\mathbf{\theta}^a}=\frac{\mathbf{\theta}^a}{||\mathbf{\theta}^a||}$ and $\bar{\mathbf{\theta}^b}=\frac{\mathbf{\theta}^b}{||\mathbf{\theta}^b||}$.
We can result in a third rotation representing the two consecutive rotations above as $\mathbf{\theta}^c$. The question is: how do we calculate the following derivatives? $$\frac{\partial \theta ^c _i}{\partial \theta ^a _j}, \frac{\partial \theta ^c _i}{\partial \theta ^b _j}$$
My original thought was to use rotation matrices and chain rules, because two consecutive rotations are simply matrix multiplication $\mathbf{R}^c=\mathbf{R}^b \mathbf{R}^a$. However, this would require two derivatives: $$\frac{\partial R _{ij}}{\partial \theta _k}$$ $$\frac{\partial \theta _k}{\partial R _{ij}}$$
The top one from matrix to exponential coordinates are easy based on this paper: https://arxiv.org/abs/1312.0788 But the bottom one is much more trickier and I got stuck. Could anyone please help?
Thank you!
Best, Shawn
$ \def\a{\alpha}\def\b{\beta}\def\g{\gamma}\def\t{\theta} \def\o{{\tt1}}\def\p{\partial} \def\LR#1{\left(#1\right)} \def\skew#1{\operatorname{skew}\LR{#1}} \def\trace#1{\operatorname{Tr}\LR{#1}} \def\qiq{\quad\implies\quad} \def\grad#1#2{\frac{\p #1}{\p #2}} \def\hess#1#2#3{\frac{\p^2 #1}{\p #2\,\p #3}} \def\m#1{\left[\begin{array}{r}#1\end{array}\right]} \def\c#1{\color{red}{#1}} \def\CLR#1{\c{\LR{#1}}} \def\fracLR#1#2{\LR{\frac{#1}{#2}}} $Here is the gist of the classic paper that you cited.
First, instead of $\,(\t^a,\t^b,\t^c)\:$ I'll use $\,(a,b,c)\,$ for ease of typing. For each of these vectors, use an uppercase letter to denote the corresponding skew-symmetric matrix and a subscripted $R$ for the rotation matrix, e.g. $$\eqalign{ A &= \skew a = \m{ 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \\ } \\ R_a &= \exp(A) \\ }$$ This is pretty standard stuff, but then Yezzi & Gallego define a new matrix function $$Y_a = \fracLR{aa^T+(R_a^T-I)A}{\|a\|^2}$$ Given the sequence of rotations $\,R_c = R_a R_b\;$ their amazing result is the following: $$\grad cb = Y_c^{-1}Y_b$$ and since negating a vector simply transposes the $(R,Y)$ matrices $$R_c^T = R_b^T R_a^T\qiq\grad ca = Y_c^{-T}Y_a^T \\$$
Even more amazing is the fact that $(R_a,Y_a,Y_a^{-1})$ can be written as quadratic polynomials of $A$ with scalar coefficients which are trigonometric functions of $\|a\|$ $$\eqalign{ &R_a = I + \lambda A + \mu A^2, \quad Y_a = I - \mu A + \nu A^2, \quad Y_a^{-1} = I + \tfrac 12 A + \gamma A^2 \\ &aa^T = \a^2I + A^2 \\ &\a = \|a\|, \quad \lambda = \frac{\sin(\a)}{\a}, \quad \mu = \frac{1-\cos(\a)}{\a^2}, \quad \nu = \frac{1-\lambda}{\a^2}, \quad \gamma = \frac{2\mu-\lambda}{2\mu\a^2} \\ }$$ and transposing the matrices merely flips the sign of the $A$ term.