单目在纯旋转和静止的情况下没有办法进行三角化。
要有平移量才可以顺利进行三角化
为什么需要滑动窗口??限定滤波时的计算量,在窗口内会限定估计相机参数的个数,将一定数量的相机位姿参数和IMU参数来进行约束。
MSCKF利用量测模型进行卡方检验,判断零速条件,从而进行修正。
参考某博客,链接缺失了,看到的作者烦请联系我,谢谢!
IMU积分:先利用IMU加速度和角速度对状态向量中的IMU状态进行预测,一般会处理多帧IMU观测数据。
相机状态扩增:每来一张图片后,计算当前相机状态并加入到状态向量中, 同时扩充状态协方差.
特征点三角化:然后根据历史相机状态三角化估计3D特征点
特征更新:再利用特征点对多个历史相机状态的约束,来更新状态向量。注意:这里不只修正历史相机状态,因为历史相机状态和IMU状态直接也存在关系(相机与IMU的外参),所以也会同时修正IMU状态。
历史相机状态移除:如果相机状态个数超过N,则剔除最老或最近的相机状态以及对应的协方差
MSCKF算法步骤
图中红色表示当前步骤发生改变的量。
首先初始化状态向量和协方差
然后进行IMU积分,状态向量和协方差都发生改变(当前时刻的IMU位姿发生改变)
接着将新的相机状态加入到状态向量中,扩充协方差矩阵(新相机自身的协方差以及对
的协方差)
进行观测更新,所有状态和协方差都会发生改变。(注意:第一次因为只有一个相机状态,形成不了重投影约束,所以第一次观测更新并不会做任何事情)
当相机状态个数超过限制时,删除最历史的一个相机状态及其对应的协方差项。
重复2-5。
另一篇关于状态克隆的方案:
https://blog.csdn.net/qq_39953906/article/details/115586436
通过条件分布,建立了集于量测信息z的状态后验估计,同时将量测方程线性展开得到,状态量、协方差矩阵关于Hk、Xk的更新
因为在操作过程中真正得到的量测方程中有特征点的信息,
所以需要先左乘特征点的投影空间,把pf这一项消掉。得到真正的状态、协方差的更新方程。
接下来的过程中有两次QR分解,第一次是小调Hf时,先对Hf进行QR分解,得到Ho,k
为了进一步减小矩阵相乘的计算量:
将Hok进行Q、R分解,