ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

bundle adjustment(光速平差法)残差和雅克比详细推导

2020-12-25 10:57:54  阅读:290  来源: 互联网

标签:phi partial Pw bundle 平差法 exp delta adjustment Lambda


​ 本文主要补充slam十四讲中关于ba推导有疑问的地方。

设输入位姿为世界坐标系在当前cam坐标系下的位姿,表示为 T w c T^c_w Twc​。
输入的点为当前点在世界坐标系下的位置,表示为 P w P^w Pw,点在cam坐标系下表示为 P c P^c Pc

得到点在cam坐标系下的位姿
P c = R w c ∗ P w + t w c   ( 1 ) P^c=R^c_w*P^w+t^c_w \quad (1) Pc=Rwc​∗Pw+twc​ (1)

ba的残差雅克比求导需要对于位置求导,链式法则中这一项求导是关键

设ba的残差为
e = u − 1 s K e x p ( ς ) P w e = u-\frac{1}{s} Kexp( \varsigma )P^w e=u−s1​Kexp(ς)Pw
由链式法则可得
∂ e ∂ δ ς = ∂ e ∂ P c ∂ P c ∂ δ ς \frac{\partial e}{\partial \delta \varsigma }=\frac{\partial e}{\partial P^c} \frac{\partial P^c}{\partial \delta \varsigma } ∂δς∂e​=∂Pc∂e​∂δς∂Pc​

前面一项分别求导就行了,不展开推导

这里写成了李代数扰动的形式,后面一项就是公式(1)的求导,可以对旋转和平移分开来求导,旋转和平移用李代数表示为 [ ϕ , ρ ] [\phi,\rho] [ϕ,ρ],扰动表示为 [ δ ϕ , δ ρ ] [\delta\phi,\delta\rho] [δϕ,δρ],也可以写成直接对变量求导。注意,下面公式中的反对称符号。因为旋转矩阵和另外一个反对称矩阵通过指数关系发生了联系。所以旋转写成指数形式后要加这个反对称符号。

中间用到了泰勒展开
e x p ( ϕ Λ ) = 1 + δ ϕ Λ exp({ \phi}^{\Lambda})=1+{ \delta \phi}^{\Lambda} exp(ϕΛ)=1+δϕΛ

还用到了叉乘的性质负交换律
a × b = a Λ b = − b Λ a a\times b=a^{\Lambda}b=-b^{\Lambda}a a×b=aΛb=−bΛa
证明方法为利用叉乘表示平行四边形的有向面积参考

https://jingyan.baidu.com/article/414eccf62f611e2b431f0ad7.html

∂ P c ∂ R w c = ∂ ( R w c ∗ P w + t w c ) ∂ R w c = lim ⁡ δ ϕ → 0 ( e x p ( δ ϕ Λ ) e x p ( ϕ Λ ) P w + t w c ) − e x p ( ϕ Λ ) P w + t w c ) δ ϕ = lim ⁡ δ ϕ → 0 e x p ( δ ϕ Λ ) e x p ( ϕ Λ ) P w − e x p ( ϕ Λ P w ) δ ϕ = lim ⁡ δ ϕ → 0 ( 1 + δ ϕ Λ ) e x p ( ϕ Λ ) P w − e x p ( ϕ Λ P w ) δ ϕ = lim ⁡ δ ϕ → 0 δ ϕ Λ e x p ( ϕ Λ ) P w δ ϕ = lim ⁡ δ ϕ → 0 − ( R w c P w ) Λ δ ϕ δ ϕ = − ( R w c P w ) Λ \frac{\partial{ P^c}}{\partial{R^c_w}}=\frac{\partial{ (R^c_w*P^w+t^c_w)}}{\partial{R^c_w}}= \lim_{\delta \phi \to 0}\frac{(exp({\delta \phi}^{\Lambda})exp({ \phi}^{\Lambda})P^w+t^c_w)-exp({ \phi}^{\Lambda})P^w+t^c_w)}{{\delta \phi}}\\ =\lim_{\delta \phi \to 0}\frac{exp({\delta \phi}^{\Lambda})exp({ \phi}^{\Lambda})P^w-exp({ \phi}^{\Lambda}P^w)}{{\delta \phi}}\\ =\lim_{\delta \phi \to 0}\frac{(1+{\delta \phi}^{\Lambda})exp({ \phi}^{\Lambda})P^w-exp({ \phi}^{\Lambda}P^w)}{{\delta \phi}}\\ =\lim_{\delta \phi \to 0}\frac{{\delta \phi}^{\Lambda}exp({ \phi}^{\Lambda})P^w}{{\delta \phi}}\\ =\lim_{\delta \phi \to 0}-\frac{(R^c_wP^w)^{\Lambda}{\delta \phi}}{{\delta \phi}}\\ =-(R^c_wP^w)^{\Lambda} ∂Rwc​∂Pc​=∂Rwc​∂(Rwc​∗Pw+twc​)​=δϕ→0lim​δϕ(exp(δϕΛ)exp(ϕΛ)Pw+twc​)−exp(ϕΛ)Pw+twc​)​=δϕ→0lim​δϕexp(δϕΛ)exp(ϕΛ)Pw−exp(ϕΛPw)​=δϕ→0lim​δϕ(1+δϕΛ)exp(ϕΛ)Pw−exp(ϕΛPw)​=δϕ→0lim​δϕδϕΛexp(ϕΛ)Pw​=δϕ→0lim​−δϕ(Rwc​Pw)Λδϕ​=−(Rwc​Pw)Λ
平移求导
∂ P c ∂ t w c = ∂ ( R w c ∗ P w + t w c ) ∂ t w c = I \frac{\partial{ P^c}}{\partial{t^c_w}}=\frac{\partial{ (R^c_w*P^w+t^c_w)}}{\partial{t^c_w}}= I ∂twc​∂Pc​=∂twc​∂(Rwc​∗Pw+twc​)​=I

标签:phi,partial,Pw,bundle,平差法,exp,delta,adjustment,Lambda
来源: https://blog.csdn.net/ktigerhero3/article/details/111664453

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有