起因
最近在算一个导数:两个旋转矩阵相乘,对其中一个求导的式子。在方法上来说可以直接求导,也可以用扰动模型来求导。为了规避复杂的雅可比矩阵,我这里选用了扰动模型求导。
式子
现有两个旋转矩阵$R_1$和$R_2$,他们都属于正交欧式群$SO(3)$,他们对应的李代数分别为$\phi_1$和$\phi_2$。
现在需要求
$$ \frac{\partial{R_1 \cdot R_2}}{\partial{R_1}} $$
$$ \frac{\partial{R_1 \cdot R_2}}{\partial{R_2}} $$
这两个式子的值。
李群函数的求导公式
求解这个式子需要借助一个数学公式。
假设一个李群$G$,和一个函数$f:G \rightarrow G$,也就是从李群到李群的映射函数。我们在函数$f(g)$的自变量上左乘一个微小扰动:
$$ f(\exp(\delta)\cdot g) $$
其中$\delta$是微小扰动的李代数,这个扰动也会在函数值上产生影响:
$$ \exp(\epsilon)\cdot f(g) $$
其中$\epsilon$是微小扰动$\delta$在函数值上产生影响的李代数。如果这个扰动足够小,那么其实这两个式子是相等的。
$$ \exp(\epsilon)\cdot f(g)=f(\exp(\delta)\cdot g) $$
$$ \frac{\partial{f}}{\partial{g}} \equiv \left.\frac{\partial{\epsilon}}{\partial{\delta}}\right|_{\delta=0} $$
将$\epsilon$解出来,即为
$$ \epsilon=f(\exp(\delta)\cdot g)\cdot f(g) $$
再带入到下面的式子里,得到左扰动模型求导公式:
$$ \frac{\partial{f}}{\partial{g}} \equiv \left.\frac{\partial{f(\exp(\delta)\cdot g)\cdot f^{-1}(g)}}{\partial{\delta}}\right|_{\delta=0}\tag{1} $$
同理可得,右扰动模型求导公式:
$$ \frac{\partial{f}}{\partial{g}} \equiv \left.\frac{\partial{f^{-1}(g)\cdot f(g\cdot \exp(\delta))}}{\partial{\delta}}\right|_{\delta=0}\tag{2} $$
一个性质
这个性质不推导了,直接给出:
$$ R\cdot\exp(\omega)\cdot R^{-1}=\exp(R\cdot\omega)\tag{3} $$
其中,$\omega$是微小扰动的李代数。
求导
左扰动求导
$R_1\cdot R_2$对$R_1$求导
有函数:
$$ \begin{align}f({R_1}) = &{R_1}\cdot {R_2} \\ \frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_1}}} = &\frac{\partial f({R_1})}{\partial {R_1}} \end{align} $$
按照左扰动模型求导公式$(1)$,带入
$$ \begin{align}\frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_1}}} = & \frac{\partial f({R_1})}{\partial {R_1}} \\ = & \left.\frac{\partial\log\left(\exp(\delta){R_1}{R_2}({R_1}{R_2})^{-1}\right)}{\partial\delta}\right|_{\delta=0} \\ = & \left.\frac{\partial\log\left(exp(\delta)\right)}{\partial\delta}\right|_{\delta=0} \\ = & {I}_{3\times3}\tag{4}\end{align} $$
${{R_1}}\cdot {R_2}$对${{R_2}}$求导
有函数:
$$ \begin{align}f({R_2}) = &{R_1}\cdot {R_2} \\ \frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_2}}} = &\frac{\partial f({R_2})}{\partial {R_2}} \end{align} $$
按照左扰动模型求导公式$(2)$,带入
$$ \begin{align}\frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_2}}} = & \frac{\partial f({R_2})}{\partial {R_2}} \\ = & \left.\frac{\partial\log\left({R_1}\exp(\delta){R_2}({R_1}{R_2})^{-1}\right)}{\partial\delta}\right|_{\delta=0} \\ = & \left.\frac{\partial\log\left({R_1}\exp(\delta){R_2}{R_2^{-1}}{R_1^{-1}}\right)}{\partial\delta}\right|_{\delta=0} \\ = & \left.\frac{\partial\log\left({R_1}\exp(\delta){R_1^{-1}}\right)}{\partial\delta}\right|_{\delta=0} \end{align} $$
在这里,再将上面的微小扰动的等式$(3)$带入:
$$ \begin{align}\frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_2}}} = & \left.\frac{\partial\log({R_1}\exp(\delta){R_1^{-1}})}{\partial\delta}\right|_{\delta=0} \\ = & \left.\frac{\partial\log\left(\exp({R_1}\delta)\right)}{\partial\delta}\right|_{\delta=0} \\ = & {R_1}\tag{5} \end{align} $$
右扰动求导
${{R_1}}\cdot {R_2}$对${{R_1}}$求导
有函数:
$$ \begin{align}f({R_1}) = &{R_1}\cdot {R_2} \\ \frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_1}}} = &\frac{\partial f({R_1})}{\partial {R_1}} \end{align} $$
按照右扰动模型求导公式$(1)$,这里直接给出结果,就不推导了:
$$ \frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_1}}} = {R_2^{-1}}={R_2^{T}}\tag{6} $$
${{R_1}}\cdot {R_2}$对${{R_2}}$求导
有函数:
$$ \begin{align}f({R_2}) = &{R_1}\cdot {R_2} \\ \frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_2}}} = &\frac{\partial f({R_2})}{\partial {R_2}} \end{align} $$
按照右扰动模型求导公式$(2)$,得出结果:
$$ \frac{\partial{{R_1} \cdot {R_2}}}{\partial{{R_1}}} = {I_{3\times3}}\tag{7} $$
参考
- 扰动求导:《视觉SLAM十四讲》
- 扰动求导公式:http://ethaneade.com/lie.pdf
- LaTeX数学符号:https://drivingc.com/p/5b1bd56d2392ec23b91bab2e
4 comments
公式(1)之前的$\epsilon$写错了,应该是
$\epsilon=\log(f(exp(\delta)\cdot g) \cdot f(g)^{-1})$.即参考文献第二篇中的公式(35)OωO
aha,是的呀。感谢指正。晚上回去更新一下٩(ˊᗜˋ*)و
看不懂,i++;