从零手写VIO——系列七:【VIO系统初始化】(学习记录 | 作业 | 代码)
本系列主要根据深蓝学院《视觉SLAM进阶:从零开始手写VIO》。博客主要以本人在课程学习过程中的作业和修改的代码为主。如需详细视频及PPT,请联系深蓝学院相关人员。
代码已上传github: https://github.com/why-freedom/VIOLearningNote-Code.git (有用话给个star >_<)
本节是VIO的重点,主要是VINS的鲁棒初始化:外参估计,重力估计对齐
-
初始化主要有以下几个问题:
- IMU怎么和世界坐标系对齐?
- 单目视觉姿态如何和IMU轨迹对齐,尺度如何获取?
- VIO系统的初始化速度v,传感器bias等如何估计?
- IMU和相机之间的外参数等如何估计?
-
视觉和IMU对齐流程:
- 旋转外参数未知,则先估计旋转参数:主要利用IMU旋转积分和视觉测量
- 已知旋转外参数,利用旋转约束估计陀螺仪bias
- 利用平移约束估计重力方向,速度,以及尺度初始值
- 对重力向量g进行进一步优化
- 求解世界坐标系和初始化相机坐标系之间的旋转矩阵,并将轨迹对齐到世界坐标系。
-
关于加速度bias为何没有估计?
量很小,影响不大。 -
平移外参数为何没有初始化?
陀螺仪bias对平移影响是线性的,对系统影响不大
详细参考论文:
1、Zhenfei Yang and Shaojie Shen. “Monocular visual–inertial state estimation with online initialization and camera–IMU extrinsic calibration”. In: IEEE Transactions on Automation Science and Engineering 14.1 (2016), pp. 39–51.
2、Tong Qin and Shaojie Shen. “Robust initialization of monocular visual-inertial estimation on aerial robots”. In: 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE. 2017, pp. 4225–4232