0
点赞
收藏
分享

微信扫一扫

(01)ORB-SLAM2源码无死角解析-(20) 从基本Fundamental→Essential 分解恢复 Rt

本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析-接如下:
(01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/123092196

有兴趣的朋友可以加微信 17575010159 相互讨论技术 - 文末公众号也可关注 
 

一、前言

通过前面的博客,我们可以知道如下两个公式(如果为同一相机,则其相机内参 K 1 = K 2 \mathbf K_1=\mathbf K_2 K1=K2):
E = t ∧ R = t × R           p 0 T E p 1 = 0 (1) \tag{1} \color{blue} \mathbf E=\mathbf t ^{\wedge} \mathbf R=\mathbf t\times \mathbf R~~~~~~~~~\color{blue} p_0^T \mathbf Ep_1=0 E=tR=t×R         p0TEp1=0(1) F = ( K 0 − 1 E K 1 − 1 )            v o T F v 1 = 0 (2) \tag{2} \color{blue} \mathbf F=(\mathbf K_0^{-1} \mathbf E\mathbf K_1^{-1}) ~~~~~~~~~~ \color{blue} v_o^T\mathbf Fv_1=0 F=(K01EK11)          voTFv1=0(2)其上的 p 0 , p 1 p_0,p_1 p0,p1 是图像坐标, v 0 , v 1 v_0,v_1 v0,v1 是像素坐标; E \mathbf E E 表示本质矩阵 Essential, F \mathbf F F 表示基本矩阵 Fundamental。一般在程序的运行过程中,相机内参是移植的,另外在 ORB-SLAM2 源码中 K 1 = K 2 \mathbf K_1=\mathbf K_2 K1=K2,因为是同一相机。也就是已知相机内参的情况下,一般会先计算出本质矩阵,然后通过本质矩阵求解 R t \mathbf R\mathbf t Rt。求解本质矩阵的公式如下(同一相机):
E = K F K (3) \tag{3} \color{blue} \mathbf E= \mathbf K \mathbf F \mathbf K E=KFK(3) 

二、公式推导

首先这里我们作如下假设(偏移矩阵与旋转矩阵):
t = ( t 1 , t 2 , t 3 )               R = ( r 1 , r 2 , r 3 ) (4) \tag{4} \color{blue} \mathbf t=(t_1,t_2,t_3)~~~~~~~~~~~~~\mathbf R=(\mathbf r_1,\mathbf r_2,\mathbf r_3) t=(t1,t2,t3)             R=(r1,r2,r3)(4)那么我们根据公式(1)可得: E = t R = ( t ∧ r 1 , t ∧ r 2 , t ∧ r 3 ) (5) \tag{5} \color{blue} \mathbf E=\mathbf t \mathbf R=\mathbf(\mathbf t^{\wedge} \mathbf r_1,\mathbf t^{\wedge}\mathbf r_2,\mathbf t^{\wedge}\mathbf r_3) E=tR=(tr1,tr2,tr3)(5)根据前面我们的推论,我们知道 , E ,\mathbf E ,E 的奇异矩阵必是 d i a g ( σ 1 , σ 2 , 0 ) = ( t 1 2 + t 2 2 + t 3 2 , t 1 2 + t 2 2 + t 3 2 , 0 ) diag(\sigma_{1}, \sigma_{2}, 0)=(t_{1}^{2}+t_{2}^{2}+t_{3}^{2}, t_{1}^{2}+t_{2}^{2}+t_{3}^{2}, 0) diag(σ1,σ2,0)=(t12+t22+t32,t12+t22+t32,0),且

 
 
 
在这里插入图片描述

举报

相关推荐

0 条评论