李群和李代数(三)——李代数求导和扰动模型

1.求导方式

在SLAM中,我们要估计一个相机的位置和姿态,该位姿是由SO(3)上的旋转矩阵或者SE(3)上的变换矩阵描述。

设置某时刻相机的位姿为T,他观察到了一个世界坐标位于p的点,产生了一个观测数据。那么由坐标变换关系知:
z = T p + w z=Tp+w z=Tp+w
其中w为随机噪声。由于他的存在,z往往不可能精确地满足z=Tp的关系。所以我们通常会计算理想的观测与实际数据的误差:
e = z − T p e=z-Tp e=zTp
假设一共由N个这样的路标点和观测,于是就有N个上式。那么对相机进行位姿估计,相当于寻找一个最优的T,使得整体误差最小化:
m i n T J ( T ) = ∑ i = 1 N ∣ ∣ z i − T p i ∣ ∣ 2 2 \underset{T}{min}J(T)=\sum_{i = 1} ^N||z_i-Tp_i||^2_2 TminJ(T)=i=1N∣∣ziTpi22
求解此问题,需要计算目标函数 J J J关于变换矩阵T的导数。

这里的重点是,我们会经常构建与位姿有关的函数,然后讨论该函数关于位姿的导数,以调整当前的估计值。

使用李代数解决求导问题的思路分两种:

1.使用李代数表示姿态,然后根据李代数加法对李代数求导,这是李代数的求导模型。

2.对李群左乘或者右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型,这是扰动模型

2.李代数求导

假设对一个空间点p进行旋转,得到了 R p Rp Rp。现在,要计算旋转后点的坐标相当于旋转的导数,记为:
∂ ( R p ) ∂ R \frac{\partial (Rp)}{\partial R} R(Rp)
由于SO(3)没有加法,所以该导数无法按照导数的定义进行计算。设R对应的李代数为 Φ \Phi Φ,有:
∂ ( e x p ( ϕ ∧ ) p ) ∂ Φ \frac{\partial (exp(\phi^ \wedge)p)}{\partial \Phi} Φ(exp(ϕ)p)
按照导数定义,有:
∂ ( e x p ( ϕ ∧ ) p ) ∂ ϕ = l i m δ ϕ → 0 e x p ( ( ϕ + δ ϕ ) ∧ ) e x p ( ϕ ∧ ) p δ ϕ = l i m δ ϕ → 0 e x p ( ( J l δ ϕ ) ∧ ) e x p ( ϕ ∧ ) p − e x p ( ϕ ∧ ) p δ ϕ = l i m δ ϕ → 0 ( I + ( J l δ ϕ ) ∧ ) e x p ( ϕ ∧ ) p − e x p ( ϕ ∧ ) p δ ϕ = l i m δ ϕ → 0 ( ( J l δ ϕ ) ∧ ) e x p ( ϕ ∧ ) p δ ϕ = l i m δ ϕ → 0 − ( e x p ( ϕ ∧ ) p ) ∧ J l δ ϕ δ ϕ = − ( R p ) ∧ J l \frac{\partial (exp(\phi^ \wedge)p)}{\partial \phi}=\underset{\delta \phi \rightarrow 0}{lim}\frac{exp ((\phi+\delta \phi)^\wedge )exp(\phi^ \wedge)p}{\delta \phi} \\=\underset{\delta \phi \rightarrow 0}{lim}\frac{exp ((J_l\delta \phi)^\wedge )exp(\phi^ \wedge)p-exp(\phi^ \wedge)p}{\delta \phi} \\=\underset{\delta \phi \rightarrow 0}{lim}\frac{(I+ (J_l\delta \phi)^\wedge )exp(\phi^ \wedge)p-exp(\phi^ \wedge)p}{\delta \phi} \\=\underset{\delta \phi \rightarrow 0}{lim}\frac{( (J_l\delta \phi)^\wedge )exp(\phi^ \wedge)p}{\delta \phi} \\=\underset{\delta \phi \rightarrow 0}{lim}\frac{-(exp(\phi^ \wedge)p)^\wedge J_l\delta \phi}{\delta \phi}\\ =-(Rp)^ \wedge J_l ϕ(exp(ϕ)p)=δϕ0limδϕexp((ϕ+δϕ))exp(ϕ)p=δϕ0limδϕexp((Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(I+(Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ((Jlδϕ))exp(ϕ)p=δϕ0limδϕ(exp(ϕ)p)Jlδϕ=(Rp)Jl
第二行的近似为BCH线性模拟,第三行为泰勒展开舍去高阶项后的近似,第四行至第五行将反对称符号看作叉积,交换后变号。

这里还有形式比较复杂的 J l J_l Jl,我们不要希望计算他,扰动模型就更简单。

3.扰动模型(左乘)

另外一种求导方式是对R进行一次扰动 △ R \triangle R R,看结果相对于扰动的变化率。这个扰动可以乘在左边也可以乘在右边,最后结果会有一点微小的误差,下面公式以做扰动为例。设左扰动为 △ R \triangle R R对应的李代数为 φ \varphi φ,然后对 φ \varphi φ求导,即:
∂ ( R p ) ∂ φ = l i m φ → 0 e x p ( φ ∧ ) e x p ( ϕ ∧ ) p − e x p ( ϕ ∧ ) p φ = l i m δ ϕ → 0 ( I + φ ∧ ) e x p ( ϕ ∧ ) p − e x p ( ϕ ∧ ) p δ ϕ = l i m φ → 0 φ ∧ R p φ = l i m φ → 0 − ( R p ) ∧ φ φ = − ( R p ) ∧ \frac{\partial (Rp)}{\partial \varphi}=\underset{ \varphi \rightarrow 0}{lim}\frac{exp (\varphi^\wedge )exp(\phi^ \wedge)p-exp(\phi^ \wedge)p}{\varphi} \\=\underset{\delta \phi \rightarrow 0}{lim}\frac{(I+ \varphi^\wedge )exp(\phi^ \wedge)p-exp(\phi^ \wedge)p}{\delta \phi} \\=\underset{ \varphi \rightarrow 0}{lim}\frac{\varphi^\wedge Rp}{\varphi}=\underset{ \varphi \rightarrow 0}{lim}\frac{-(Rp)^\wedge \varphi}{\varphi}=-(Rp)^ \wedge φ(Rp)=φ0limφexp(φ)exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(I+φ)exp(ϕ)pexp(ϕ)p=φ0limφφRp=φ0limφ(Rp)φ=(Rp)
相比于直接对李代数求导,省去了一个雅克比 J l J_l Jl的计算,这使得扰动模型更为实用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anthony-36

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值