VINS-mono——一套Visual-Inertial融合定位算法

期刊分享SLAMVINS-Mono:一种稳健的单目视觉惯性状态估计器 上
期刊分享SLAMVINS-Mono:一种稳健的单目视觉惯性状态估计器 下
VINS-mono——一套Visual-Inertial融合定位算法_第1张图片

1. VINS-Mono系统框架

VINS-Mono的系统框架如图
主要有以下几个部分:

  1. Measurement Preprocessing(观测预处理):对图像特征提取并跟踪新图像特征,输出tracked feature list, 对IMU做预积分,输出两帧图像间的IMU积分结果.
    这里应该还有个很重要的步骤, IMU和图像的数据同步, VINS-Mono代码中貌似没有体现, 不知道Mobile版本中是否有.
  2. Initialization(初始化): vision-only SfM用纯视觉估计相机运动和特征深度, 视觉得到一个相对运动, IMU预积分得到一个相对运动, 二者做alignment, 从而标定出姿态、速度、重力向量、陀螺仪偏差及3D特征位置.
  3. Local BA: 后端融合优化, 状态向量包括: sliding window中的IMU states + 相机外参 + feature点的深度. loss包括: marginalization提供的prior + IMU residuals + visual residuals. 优化完之后, 得到各个时刻相机的位姿, 实现VIO.
  4. Loop detection + Global Pose Graph Optimization: VIO毕竟有累积误差, 所以跟常规vSLAM一样, 加入闭环检测, 然后优化一个pose graph, 值得注意的是这里是只优化4 DoF, 因为scale, roll 和 pitch是可观的, 误差只会在(x,y,z)和yaw四个维度上累积.
    详细解读见此处

2 VINS-Mono的ROS架构

VINS-Mono主要包含两个节点: 前端节点feature_tracker_node和后端节点estimator_node. 前端节点处理Measurement Preprocessing中的Feature Detection and Tracking, 其他几个部分(IMU preintegration, initialization, LocalBA, Loop closure)都是在estimator_node中处理.
ROS教程

3 深度相机下基于ROS跑VINS-mono

https://blog.csdn.net/q1370992706/article/details/79950542

你可能感兴趣的:(ROS)