对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

一、引言

在《视觉SLAM十四讲》(1)的4.3.5节,推导了李代数求导的表达式,我认为其中存在一些容易产生歧义的符号使用,本文先展示我认为正确的推导,然后提出了修改建议。

二、正确推导过程

我们假设旋转并且微扰后的位姿是一个关于 ϵ \boldsymbol\epsilon ϵ ξ \boldsymbol\xi ξ的多元函数 f ( ϵ , ξ ) f(\boldsymbol\epsilon,\boldsymbol\xi) f(ϵ,ξ),可表示为下式:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误
因为是微扰,所以 是一个在0附近的小量,即:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

且根据指数函数性质,有以下关系式:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

我们可以对(1)式中 f ( ϵ , ξ ) f(\boldsymbol\epsilon,\boldsymbol\xi) f(ϵ,ξ)的 ,也就是 T P \boldsymbol{TP} TP ,关于 求偏导,得:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

这样,我们就得到了《State Estimation for Robotics》(2)中的式(7.189):
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

三、《视觉SLAM十四讲》中公式推导的纰漏

在《视觉SLAM十四讲》(1)的4.3.5节,作者进行了如下公式推导:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误
最后的结果是正确的,但是中间关于导数计算的部分的表达式我认为有点小纰漏,会造成读者的误解浪费时间。这个纰漏的来源在于对 δ ξ \delta\boldsymbol\xi δξ这个符号前后定义不一致。我认为正确的微扰定义应该是:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误
我们对上式求微分,可以得到:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

再把第二个等号左右的偏微分符号 改成 ,得到下式:
对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

在这样的定义之后,再带入到第一小节中的正确推导,就能自洽地推出后面的表达式了。

三、修改建议

将下图中黄色部分的 δ ξ \delta\boldsymbol\xi δξ 改成 ∂ δ ξ \partial\delta\boldsymbol\xi δξ 或者 δ ϵ \delta\boldsymbol\epsilon δϵ 即可,当然,后面的一页的 δ ξ \delta\boldsymbol\xi δξ也要同步修改,这样的话前后从数理逻辑上来说就自洽,不会出现变量名有二义性的问题了。这个问题困扰我多时,在星球上发现也有其他同学也有同样的疑惑,所以这两天专门花了不少时间来理解,本质上来说,这里出现的是一个二阶小量和一阶小量混淆的问题,希望后面的同学不要踩坑。

对《视觉SLAM十四讲》4.3.5节李代数求导的推导过程的勘误

四、参考文献

  1. 高翔 张. 视觉SLAM十四讲:从理论到实践. 2 ed2019 2019.3.
  2. Barfoot, Timothy D. State Estimation for Robotics || Matrix Lie Groups. 2017;10.1017/9781316671528(7):205-84.