Vins-Fusion是一种基于优化的多传感器状态估计器,一大特色是支持实时camera-imu外参校准(相机和IMU之间的旋转)。Vins-Fusion 外参camera-imu校准是利用两帧间计算相机位姿和imu预积分得到位姿,构建最小二乘问题,并通过SVD求解camera-imu外参旋转矩阵。主要分为一下几部分:
一、camera两帧间匹配点计算得到
1.对极几何求得本质矩阵E
调用cv findFundamentalMat求得本质矩阵E,这里需要注意的是findFundamentalMat输入的参数为前后两帧匹配点的归一化坐标点。
cv::Mat E = cv::findFundamentalMat(ll, rr);
其中ll,rr为前后两帧匹配点的归一化坐标点集。
2.利用svd分解求得四个可能解R,t
源码中通过E分解本质矩阵是自己写的函数decomposeE进行求解,函数中调用cv svd对本质矩阵进行分解,得到R1,R2,t1,t2,可以组合出四组解。
decomposeE(E, R1, R2, t1, t2);