摘要:
本文主要比较单目VIO的算法在飞行机器人上运行的性能,测试使用统一数据集为EuRoC。其中评价指标为:姿态估计精度、每帧处理时间以及CPU和内存负载使用率,同时还有RMSE(运行轨迹与真实轨迹的比较指标)。比较的单目VIO分别为:MSCKF、OKVIS、ROVIO、VINS-Mono、SVO-MSF、SVO-GTSAM。其中运用了四个测试平台Intel NUC(desktop PC)、laptop、UP Board(embedded system for flying robots)、ODROID(an embedded PC containing a hybrid processing unit)
介绍:
选择单目的原因是由于单目是可靠状态估计所需的最小单元,而且相对于其他传感器而言,单目更加适合飞行机器人的负载和功耗需求,所以文章选择比较单目的VIO。因为各个单目VIO算法的性能比较都不全面,而且它们都没考虑计算能力限制的需求,所以本文将它们统一起来一起比较。
贡献:
1、全面比较了公开的单目VIO算法
2、提供比较结果的性能
算法介绍:
1)MSCKF(Multi-state constraint Kalman Filter)主要特点是提出一个测量模型,该模型描述了观察到特定图像特征的所有摄像机帧的姿态之间的几何约束,而不需要维持对该时刻3维特征位置的估计。扩展卡尔曼滤波后端实现了基于事件的相机输入的MSCKF形式,后面改为标准的相机追踪模式。
2)OKVIS(Open Keyframe-based Visual-Inertial SLAM)提出基于关键帧处理的思想,对包括关键帧位姿的一个滑动窗口进行非线性优化。文中提出一个基于视觉路标加权的投影误差和加权的惯性误差项组成的代价函数。前端使用多尺度Harris角点检测和提取BRISK描述子,后端使用ceres进行非线性优化。
3)ROVIO(Robust Visual Inertial Odometry)基于EKF的slam算法。提取Fast角特征,以机器人为中心的方位向量和距离参数化3D位姿,从围绕这些特征的图像流中摄取多层次的patch特征。在状态更新中提出光度误差项。
4)VINS-Mono提出基于滑动窗口的非线性优化估计器,前端追踪鲁棒的角特征。提出一种松耦合的传感器数据融合的初始化过程,可以从任意的状态下引导估计量。IMU测量在优化之前先预积分,提出紧耦合的优化方法。提出4自由度的优化位姿图和回环检测线程。
5)SVO+MSF(Semi-Direct Visual Odometry)MSF是在状态估计中融合不同传感器的通用EKF框架。SVO估计的位姿提供给MSF作为通用的位姿传感器输出,然后使用MSF融合IMU数据。由于松耦合的数据结合,姿态的尺度必须近似正确,需要手动设置初始化的值。
6)SVO+GTSAM后端使用iSAM2中执行在线因子图全平滑优化算法,在位姿图优化中提出使用预积分的IMU因子。
结论:
通过额外计算能力可以提高准确性和健壮性,但是在资源受限系统中,需要在计算能力和性能之间找到合适的平衡。在计算能力受限的系统中,ODROID、SVO+MSF算法性能最好,但是牺牲了精度,得出的鲁棒的轨迹;在计算能力不受限的系统中,VINS-Mono显示高精度和很好的鲁棒性。两者折中方案是ROVIO,比ODROID、SVO+MSF有更好的精度,且比VINS-Mono计算需求低。但是ROVIO对每帧处理时间敏感,无法在一些飞行机器人机载系统上使用。