-
CalibrationExRotation
-
功能:若未提供外参时,该类可以帮你校准
imu
与相机的外参(旋转) -
参数:两帧图像对应的特征点,imu的旋转,输出外参矩阵
-
原理:
- R c b R b k b k + 1 R c b T = R c k c k + 1 {R_{cb}R_{b_kb_{k+1}R_{cb}^T}=R_{c_kc_{k+1}}} RcbRbkbk+1RcbT=Rckck+1
- R c b R b k R b k + 1 = R c k c k + 1 R c b {R_{cb}R_{b_k}R_{b_{k+1}}=R_{c_kc_{k+1}}R_{cb}} RcbRbkRbk+1=Rckck+1Rcb
- q c b ⊗ q b k b k + 1 = q c k c k + 1 ⊗ q c b {q_{cb} \otimes q_{b_kb_{k+1}} = q_{c_kc_{k+1}} \otimes q_{cb}} qcb⊗qbkbk+1=qckck+1⊗qcb
- 用到 四元数的左右乘法 p ⊗ q = [ p ] L q = [ q ] R p {p \otimes q = [p]_Lq= [q]_R p} p⊗q=[p]Lq=[q]Rp
- ( [ q c k c k + 1 ] L − [ q b k b k + 1 ] R ) q c b = 0 {([q_{c_kc_{k+1}}]_L -[q_{b_kb_{k+1}}]_R)q_{cb}=0} ([qckck+1]L−[qbkbk+1]R)qcb=0
-
代码实现:
-
每调用一次该函数,则 记录一次 imu旋转与 图像帧旋转之差
-
1、根据两帧特征点求解两帧的旋转矩阵 --帧间cam的R,由对极几何得到
- 1.1、根据两个图像中的相应点计算基本矩阵。findFundamentalMat
- 1.2、本质矩阵svd分解得到四组RT的解 decomposeE
- 1.3、通过三角化得到的正深度选择Rt解
- 求解当前
R,t
下特征点的正深度比例 testTriangulation- 输入:
ll
+rr
+R+t - 两帧间的相对关系,故 P 0 = I P_0=I P0=I, P 1 = [ R , t ] {P_1=[R,t]} P1=[R,t]
- 输出三角化后的特征点的3D坐标 cv::triangulatePoints(P, P1, l, r, pointcloud)
- 两个相机位姿和特征点在两个相机坐标系下的坐标
- 输出的3D坐标是齐次坐标,共四个维度,因此需要将前三个维度除以第四个维度以得到非齐次坐标xyz
- 将每个特征点还原3D(齐次转非齐次),并统计深度>0的个数
- 返回 深度大于0的个数的比例
- 输入:
- 得到 正深度比例最大的 R
- 1.4、对 R 求转置并 return
-
2、帧间IMU的旋转(由IMU预积分得到),基于预估外参将其转换到激光坐标系,并将三个R存储起来
- 3、遍历所有frame,每一帧分别计算:
- 计算 相机对极几何与IMU预积分 角度差 angular_distance = p T q {p^Tq} pTq
- 计算鲁棒核函数 huber = dist > 5 ? 5/dist : 1;
- 计算 相机帧间旋转的四元数左乘
- 计算 imu预积分旋转的四元数右乘
- 二者相减,同时乘以损失函数,即可得到 s ( [ q c k c k + 1 ] L − [ q b k b k + 1 ] R ) q c b = 0 {s([q_{c_kc_{k+1}}]_L -[q_{b_kb_{k+1}}]_R)q_{cb}=0} s([qckck+1]L−[qbkbk+1]R)qcb=0
- 3、遍历所有frame,每一帧分别计算:
-
4、svd分解中最小奇异值对应的右奇异向量作为旋转四元数
- svd 分解:
JacobiSVD<MatrixXd> svd(A, ComputeFullU | ComputeFullV);
- 得到最小特征向量:
Quaterniond estimated_R(svd.matrixV().col(3));
- 至少迭代计算了WINDOW_SIZE次,且R的奇异值大于0.25才认为标定成功
- R取特征值:
Vector3d ric_cov = svd.singularValues().tail<3>()
- 需要最大特征值大于 0.25
ric_cov(1) > 0.25
- 结果为:
estimated_R.toRotationMatrix().inverse()
- 并返回 true
- R取特征值:
- svd 分解:
-
否则返回false
-
-
vins estimator InitialEXRotation
最新推荐文章于 2024-10-04 05:55:37 发布