VIO学习研究笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16481211/article/details/83093834

惯性导航预备知识

1.惯性导航基本模型和思想
2.导航坐标系
3.IMU状态模型
4.IMU运动模型和观测模型
5.旋转向量求导,单位四元数
6.IMU观测噪声模型
7.科氏加速度
8.高斯白噪声和随机游走模型
9.ECEF参考坐标系下的观测模型以及ECI参考坐标系下的观测模型
10.IMU状态估计误差模型

视觉和IMU融合方式

1.基于滤波和基于优化
2.松耦合模型和紧耦合模型

预积分

1.使用欧拉积分得到的运动方程的离散形式
2.通过预积分得到IMU的测量模型。

相机标定

相机标定的目的是获取两个传感器坐标系之间的空间关系数据延迟,是VIO系统工作的前提工作。相机-IMU标定可以看成状态估计的逆过程,标定是通过标定板获取每个时刻的精确运动状态,计算出模型参数(坐标系间旋转位移、时间延迟、IMUbias),而运动估计则是在已知两个传感器坐标系间的模型参数,估计每个时刻的运动状态。
现有的标定库:ethz-asl 的Camera IMU calibration
后面会写一个自己的总结。

相机的内参标定使用ROS自带相机标定工具,可以实现在线标定。
IMU内参(陀螺仪加速度计的噪声参数)标定ethz-asl 的Kalibr 也给了一些说明。

开源框架

VIO目前实现比较好的有
科大的vinsmono,
okvis,
MSCKF
宾夕法尼亚的Kumar实验室的msckf_vio
ROVIO
注意:在纯视觉slam中,学术界已经公认基于非线性优化方法的SLAM方法效果要好于滤波的方法,但是在VIO中,非线性优化和滤波的方法目前还没有很明显的优劣之分。所以折中的办法就是像okvis和vinsmono一样采用滑动窗口法(globa bundle adjustment和filter的折中)也能取得很好的效果。

Paper

采用流形空间上预积分的方法对IMU数据进行预处理《On-Manifold Preintegration for Real-Time Visual-Inertial Odometry》

2017 年 TASE,《Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration》,sfm 求解相机姿态和 gyro 积分构建rotation约束,从而求解相机imu之间的旋转外参数,然后固定rotation,求解其他参数,如重力方向,速度,外参数平移,特征深度等。论文中直接构建一个最小二乘对上述参数进行优化求解。

2017 年 RAL,ORB作者写的的VIO文章《Visual-Inertial Monocular SLAM with Map Reuse》,主要是利用 IMU 预积分和单目 ORBSLAM 估计的姿态之间构建约束,从而迭代求解 IMU 初始状态所有参数(甚至包括acc bias),不包括外参数的标定。

2017 年 IROS,《Robust Initialization of Monocular Visual-Inertial Estimation on Aerial Robots》.

2018 年 ICRA,Online Initialization and Automatic Camera-IMU Extrinsic Calibration for Monocular Visual-Inertial SLAM. 求解VIO初始化过程中所有的参数,该论文在 ORBSLAM VIO 的框架下加入了外参数的标定。外参数旋转和平移的计算则参考沈老师的他们的做法。

2017 年 IROS, Inertial-Based Scale Estimation for Structure from Motion on Mobile Devices. 上面几篇都是基于 IMU 预积分的, 把短时间内的加速度什么的积分起来, 然后和视觉算的姿态构建误差, 优化出那些变量. 这篇论文不一样, 它是将相机姿态转换成角速度和加速度,和 imu 测量值去构建误差. 并且提出了频域对齐的方法。

数据集

SVO 2.0 Binaries (x86_64/armhf) Available Here:这个包主要包含了单目/双目/多目 + imu的例子。
EUROC数据集

猜你喜欢

转载自blog.csdn.net/qq_16481211/article/details/83093834