目的
参考论文:The TUM VI Benchmark for Evaluating Visual-Inertial Odometry
本文介绍用Mocap系统来采集VIO数据集过程中的相关标定过程。
传感器
如下图所示,采集设备包含双目RGB相机+IMU。IMU和两个相机刚性连接,几个红外小球可以被MoCap系统进行运动跟踪。为了标定传感器之间的内参和外参,需要采用AprilTag板。其中,AprilTag板和MoCap参考世界坐标系之间的相对位姿固定。
左图显示了所有涉及到的坐标系。
相机
全局曝光,20Hz, 采用Genuino 101 微控制器进行双目同步触发。鱼眼195°的对角FOV。
Light Sensor
全局曝光相机的时间戳和曝光时间有关,如果采用自动曝光,需要准确记录每一帧的曝光时间。
TSL2561光传感器来估计相机的曝光时间,该传感器能输出环境光的测量值,该值与曝光时间成反比。我们可以用最小二乘拟合来估计参数,并基于最新光测量结果计算出来的曝光时间来配置双目相机。注意,只要环境不是太暗或者太亮,是没有必要reproduce相机的自动曝光控制的。大多数情况下,这种曝光控制的方法比较有效。
IMU
16-bit 三轴加速度计和陀螺仪。记录IMU的温度,用于标定IMU的温度噪声模型。200Hz输出频率。IMU和相机采用Genuino101微控制器来同步触发。在后续标定中,需要标定相机和IMU之间的固定timeoffset (由于IMU测量的readout延时)。我们估计这个值一次,并用这个值来矫正全部原始和标定数据集。
Motion Capture System
采用OptiTrack动捕系统来记录真值位姿,包含16个红外Flex13相机,跟踪红外标志小球。由于MoCap系统在一个房间里,因此,我们不能记录出去房间之外的长轨迹。
标定
我们需要标定两种类型的传感器数据:原始数据和标定数据。原始数据直接由传感器测量,需要经过标定校准之后才能使用。下面,描述对原始数据的标定校准。
相机标定
首先,标定双目之间的内参和外参。相机标定时,需要采集多张标定板图像。注意,采集时缓慢运动,避免运动模糊,也可以静止状态下采集双目图像。
IMU 和手眼标定
然后,标定IMU和相机,以及IMU和MoCap帧之间的外参。同时,估计IMU和MoCap之间的时间偏移,以及IMU的内参(轴偏,尺度因子和biases).
这里,保持相机内参固定,优化:
- cam和IMU之间的相对pose
- MoCap和IMU 之间的timeshift
- cam和IMU之间的timeshift
- 相机之间的外参
- Marker到IMU之间的相对pose T M I T_{MI} TMI,MoCap世界坐标系到AprilTag坐标系之间的相对pose T W G T_{WG} TWG
- 加速度计和陀螺仪的bias
- 轴偏和尺度因子矩阵
对着AprilTag采集动态轨迹,包含相机图像+IMU数据+MoCap位姿真值。作为标定数据。采集时候,需要保证图像不模糊,且IMU的6个方向运动激励都足够。选择较小的曝光时间来避免运动模糊。
T M I T_{MI} TMI 和 T W G T_{WG} TWG 标定
手眼标定和最小二乘拟合来估计 T M I T_{MI} TMI 和 T W G T_{WG} TWG 。标定出来之后,将原始采集的MoCap位姿 T W M T_{WM} TWM 转换为 T W I T_{WI} TWI 真值位姿。
标定数据的MoCap和IMU之间的timeshift
对于每个序列,其MoCap和IMU之间的时间偏移,需要单独标定。为了找到time offset, 采用MoCap位姿计算出来的角速度和陀螺仪数据进行对齐,grid搜索步长100us。在这之前,先根据测量到达时间,做一个粗略对齐。然后,得到一个相关性抛物线,其最小值就是所求的time offset.
轴偏和尺度因子,初始bias
bias在SLAM中时,仍然需要估计。因为bias随时间变化。
IMU 噪声参数
Allan方差可以估计IMU的噪声参数。
光度标定
采用TUM MonoVO dataset中提供的代码来估计vignetting factor。 主要用于图像灰度矫正,来使得直接法匹配更准确。
basalt 标定模块和时间对齐模块。