zoukankan      html  css  js  c++  java
  • VINS(一)简介与代码结构

    VINS-Mono和VINS-Mobile是香港科技大学沈劭劼团队开源的单目视觉惯导SLAM方案。是基于优化和滑动窗口的VIO,使用IMU预积分构建紧耦合框架。并且具备自动初始化,在线外参标定,重定位,闭环检测,以及全局位姿图优化功能。

    方案最大的贡献是构建了效果很好的融合算法,视觉闭环等模块倒是使用了较为常见的算法。

    系列博客将结合课题组发表的paper,从代码层面,逐步剖析系统的各个模块,达到对单目VIO整体的把握,帮助自己理解各类算法,并开发出针对应用场景的视觉惯导SLAM系统。最终目标是使用在AR应用中(Android)。

    系统pipeline

    主要分为五部分

    1. 传感器数据处理:

    • 单目相机Monocular Camera: Feature detection and Tracking
    • IMU: Pre-integration

    2. 初始化:

    • 仅使用视觉构建SfM
    • 将SfM结果和IMU预积分结果对齐

    3. 基于滑动窗口的非线性优化:

    4. 闭环检测:

    5. 4自由度全局位姿图优化:

    主要依赖的库只有OpenCV, Eigen和Ceres Solver,代码目录如下

     

    核心算法都在feature_tracker和vins_estimator包中。

    按照REDEME步骤跑EuRoC/MH_05_difficult.bag录好的数据结果如下:

    使用rqt_graph得到系统的node和topic关系:

    rosbag将记录好的imu数据和单目相机获取的图像数据分别发布到/imu0和/cam0/image_raw话题;/feature_tracker节点通过订阅/cam0/image_raw话题获取图像数据,/vins_estimator节点通过订阅/imu0话题获取imu数据,同时/feature_tracker节点将提取出的图像特征发布到/feature_tracker/feature话题,由/vins_estimator订阅获取。

    因此,/feature_tracker节点负责视觉提取和跟踪,/vins_estimator则是融合系统的主要部分。

    为了方便看代码,整理了一下各个部分架构图(更新中):

    processImage():

  • 相关阅读:
    MinGW GCC下sleep()函数问题
    memcached内存分配及回收初探
    fastcgi重启
    window wamp下xhprof的安装使用,Graphviz配置
    Bootstrap研究3-基础html元素
    sql之left join、right join、inner join的区别
    【Asp.net入门03】第一个ASP.NET 应用程序-创建ASP.NET项目
    【Asp.net入门02】搭建Asp.net开发环境
    【Asp.net入门01】动态网站基础知识
    Android Studio 安装在Windows10中的陷阱
  • 原文地址:https://www.cnblogs.com/shang-slam/p/7044045.html
Copyright © 2011-2022 走看看