时间戳同步的原因:如果不同步,由于IMU频率高,可能由于时间戳不同步而导致在两帧camera之间的时间内用多了或者用少了IMU的数据,且时间不同步会导致我们首尾camera和IMU数据时间不同,会使估计存在误差,使我们的系统精度下降甚至出现错误的预测。如果以IMU时间为准确的,同步之后,我们可以用时间戳偏移对系统估计的 T w b T_{wb} Twb进行补偿(思路1),或者能够得到与首尾IMU时间相同的时间对应的两帧camera的观测(思路2),提升系统精度。
位姿补偿公式思路:假设相机在两帧间是匀速运动。VIO输出的是系统在world系下的pose,即 T w b T_{wb} Twb,我们需要补偿的是 T w c T_{wc} Twc,于是就结合VIO输出的角速度,速度反向推到cam时刻(补偿了 t d t_d td之后的时刻),然后再用外参 T b c T_{bc} Tbc转到cam系下即可:
在VIO残差中进行补偿:
重投影误差对时间戳延时 t d t_d td的Javobian:
式(9)推导,只看中间最复杂的部分, e x p ( ω b i t d + ω b i δ t d ) exp(\omega_{b_i}t_d+\omega_{b_i}\delta t_d) exp(ωbitd+ωbiδtd),这里好理解点的话实际上角速度 ω t \omega t ωt可以写成 ( ω t ) ∧ (\omega t)^{\wedge} (ωt)∧,因为 ω t \omega t ωt可以代表一个三维的旋转矩阵,按照旋转的表达方式是轴角表示,即 旋转角度*旋转轴,可以看之前的一篇知乎
所以上述部分可以表示成 e x p [ ( ω b i t d + ω b i δ t d ) ∧ ] exp[(\omega_{b_i}t_d+\omega_{b_i}\delta t_d)^\wedge] exp[(ωbitd+ωbiδtd)∧],这只是便于理解,正常还是按照 ω t \omega t ωt表示,不加反对称符号。
所以,用到两个公式:
由于补偿camera pose的估计改变了姿态,所以Jacobian的求取有些复杂,QinTong(2018,在待读文献2中)有一个想法是直接补偿我们特征点的测量值,计算出补偿值,应用于真实观测值上得到一个虚拟的观测值。
具体思路是:根据特征匹配可以知道特征点uv的变化量,假设特征点是匀速运动,可以算出特征点的速度,知道了时间戳偏移 t d t_d td之后即可求出补偿后的虚拟的观测值坐标。
补偿观测值坐标由于只改变了观测的坐标,所以求Jacobian较简单,看(13)中与 t d t_d td有关的只有 − u , − v -u,-v −u,−v,所以求导就是 − V -V −V
QinTong的paper论文实验结果和结论:
这个是先采集一段数据先标定出来IMU和Camera的时间戳,然后按照上面的任意一种方法补偿到系统中,还是说边估计边补偿?
看了些论文的标题,应该是先标定出来的,后面看了论文再来填这个坑。
前面有系统初始化完成之后来估计 t d t_d td的,当系统初始化没有完成时 t d t_d td如何估计呢?
可以通过VO/SFM求出KF pose,利用 T b c T_{bc} Tbc外参转到body系下,求出i,j时刻的相对位姿,跟IMU预计分量对比构建误差,多时刻观测量可进行BA,优化出时间戳(也可优化出gyro bias,速度等,但是优化的量多了之后,优化精度可能会下降)
本章主要讨论了在VIO系统中对camera和IMU时间戳进行对齐的问题,着重讨论了将Camera对齐IMU的两种方法:轨迹匀速模型和特征匀速模型。并对其他的VI时间戳同步算法进行了扩展。
Weibo Huang, Hong Liu, and Weiwei Wan. “Online initialization and extrinsic spatial-temporal calibration for monocular visual-inertial odometry”. In: arXiv preprint arXiv:2004.05534 (2020).
Tong Qin and Shaojie Shen. “Online temporal calibration for monocular visual-inertial systems”. In: RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE. 2018, pp. 3662–3669.
Georg Klein and David Murray. “Parallel tracking and mapping on a camera phone”. In: 2009 8th IEEE International Symposium on Mixed and Augmented Reality. IEEE. 2009, pp. 83–86.
这篇是2009年的PTAM,里面的思想上面QinTong这篇一样。
Yonggen Ling et al. “Modeling varying camera-imu time offset in optimization-based visual-inertial odometry”. In: Proceedings of the European Conference on Computer Vision (ECCV). 2018, pp. 484–500.
这篇相对于第1节的算法,假设更弱,虽然轨迹匀速是假设camera见是匀速运动,但是如果是Slinding Window中的KF相隔时间久,可能存在较大时间差,匀速假设不易成立。
这篇改为补偿IMU,由于IMU频率高,数据之间的匀速假设更接近真实值,所以精度会更高,但是每次估计出新的时间戳都需要重新进行IMU预先积分,导致计算量增大。(没看过原文,IMU预积分不能找出来和时间戳的关系吗,这样就不用每次重新计算了)。
Janne Mustaniemi et al. “Inertial-based scale estimation for structure from motion on mobile devices”. In: 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE. 2017, pp. 4394–4401.
Paul Furgale, Joern Rehder, and Roland Siegwart. “Unified temporal and spatial calibration for multi-sensor systems”. In: 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE. 2013, pp. 1280–1286.
Roland Siegwart好象是组的负责人。
使用标定板出一段camera pose,再使用B样条(B Spline)进行拟合,一阶,二阶导可以得出 ω , a \omega, a ω,a,和IMU数据进行align,优化出时间戳。但是解析解太复杂,这篇论文使用的autodiff数值Jacobian
Christiane Sommer et al. “Efficient derivative computation for cumulative B-splines on Lie groups”. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020, pp. 11148–11156.
丹尼尔 crimse这个组