VINS-初探(一)

2023-05-16

vins是香港科技大学开源的一个单目相机结合IMU的一个VIO,在github上可以下载源码,分为iOS系统下的和ros系统下的两种,ros下的为
https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
vins的精髓就在视觉和Imu的融合算法,但是我不懂imu就有点尴尬了。所以查看了imu的资料。
vins的主要框架有个很好的图,如下图。
![这里写图片描述](https://img-blog.csdn.net/20171009083951821?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjUyNTQ3Nzc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在ros下,vins主要就是两个节点,一个节点算前端,节点为feature_tracker_node.cpp,另一个节点算后端,节点为estimator_node.cpp。
今天先从前端开始记,在节点feature_track_node节点中主要的部分都在回调函数中。最开始记下第一帧的时间戳,同时对发布帧的频率做控制。后面有个for循环,这个写是单目vins,但是里面还是做了双目的考虑。双目暂且不考虑,只看单目。然后执行特征点跟踪类中的readImage,
readImage首先判断得到的图像是否合适(有的光照条件不行),如果不合适需要进行直方图均衡化,提高寻找特征点的质量。
判断当前帧是否为空(这里forw表示光流当前帧,cur光流上一帧,pre是上一次发布的帧),如果是第一帧那么你肯定当前帧是空的,此时需要
prev_img = cur_img = forw_img = img;

将img传递给pre, cur , forw。如果你不是第一帧那么仅仅需要

forw_img = img;

传递给当前帧。
做完这个判断就将当前帧的特征点清零。为下面的光流跟踪做准备。
后面就开始光流跟踪,并根据跟踪的结果对pre,cur ,forw的特征点进行删减,同时对特征点的id,和跟踪特征点的总数进行相应的删减。
做完这些就判断这一帧是否需要发布,如果需要发布进入相应的函数中,其中有个函数rejectWithF(),这个函数里面的东西蛮多,有的看的不是太明白,

m_camera->liftProjective(Eigen::Vector2d(prev_pts[i].x, prev_pts[i].y), tmp_p);//cataCamera.cpp

个人理解应该是将图像特征点的坐标
映射到空间坐标,但是其中你会发现开发者做了好多处理畸变的事情。最后得到两组特征点的位置,然后通过这两组点得到基础矩阵。接着通过基础矩阵剔除一些不好的点。

之后开始设置掩码矩阵setMask()
int n_max_cnt = MAX_CNT - static_cast(forw_pts.size());
算出还缺多少个特征点,然后通过goodFeaturesToTrack()补上剩余的。这里面mask起了一定的作用。然后就是:

addPoints();
        prev_img = forw_img;
        prev_pts = forw_pts;

将新找到的特征点加上,然后把当前帧给上一发布帧,当前点给上一发布点。此时通过判断是否发布的函数完成。
当然如果不要发布的话也必须执行的:

cur_img = forw_img;
 cur_pts = forw_pts;

readImage()函数结束。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VINS-初探(一) 的相关文章

  • VINS slam , imu fusion

    VINS 基本介绍 VINS Mono 和 VINS Mobile 是香港科技大学沈劭劼老师开源的单目视觉惯导 SLAM 方案 2017年发表于 IEEE Transactions on Robotics 另外 xff0c VINS 的最新
  • 通过跟踪效果来看vins输出结果

    下面是vins跑出来的结果 xff0c vio输出是绿线轨迹 线速度是0 28m s xff0c 拐角的地方是我根据蓝线把vio轨迹掰正了 vio在初始阶段走的比较弯曲 xff0c 后有一段笔直的轨迹 xff0c 这里旋转非常慢 xff0c
  • VINS-Fusion运行时的段错误(核心已转储)解决方法

    平台 ubuntu16 04 43 ROS 问题描述 xff1a 前两天VINS的原作者开源了VINS Fusion的双目版以及给出了和GPS融合的一个demo xff0c 所以试着运行下数据集 每次单目运行10s左右 xff0c 双目1
  • bmi055 标定_Ubuntu16.04+RealsenseT265跑通VINS-Fusion

    1 提早条件 系统版本 xff1a ubuntu16 04 43 ROS kinetic 默认已经掌握了ubuntu系统下的基本命令以及ROS的基本操做node 2 realsenseT265的SDK测试 3 realsenseT265的标
  • VINS-mono中坐标系定义以及通过VINS-mono求解无人机位姿

    因为在科研中需要使用VINS mono算法来为无人机提供位姿估计信息 因此需要搞清楚VINS mono相应坐标系以及无人机坐标系之间的关系 目录 1 坐标系关系 1 1 VINS mono坐标系定义 1 2 无人机坐标系 2 通过VINS
  • VINS - Fusion GPS/VIO 融合 一、数据读取

    目录 一 相关概念 二 程序解读 2 1 参数读取 解析 xff1a 2 2 获取图像时间信息 解析 xff1a 2 3 获取图像时间信息 解析 xff1a 2 4 定义VIO结果输出路径和读取图像信息 解析 xff1a 2 5 读取GPS
  • 港科大vins-fusion初探

    SLAM新手 xff0c 欢迎讨论 关于vins fusion的博客 xff1a 1 初探 xff1a https blog csdn net huanghaihui 123 article details 86518880 2 vio主体
  • 【SLAM】VINS-MONO解析——前端

    各个部分的讲解如下链接 xff1a SLAM VINS MONO解析 综述 SLAM VINS MONO解析 feature tracker SLAM VINS MONO解析 IMU预积分 SLAM VINS MONO解析 vins est
  • realsense435i运行vins-mono,标定部分

    相机标定 1 安装kalibr xff1b 参考 xff1a https blog csdn net wangbaodong070411209 article details 112248834 https blog csdn net we
  • 记录编译Vins-mono中遇到的问题

    ceres版本导致的问题 xff1a 开始用的ceres 2 0的版本 xff0c 在catkin make的时候会报关于ceres interger 的错误 xff0c 见下图 然后换成ceres 1 4的版本 xff0c 顺利解决这个问
  • VINS-Mono代码阅读笔记:feature_tracker代码阅读(转载)

    转载 xff1a https blog csdn net moyu123456789 article details 100988989 1 入口main函数 feature tracker结点的入口函数为feature tracker n
  • 关于VINS-MONO与VIO轨迹漂移问题定位的一些方向

    整个VINS MONO系统 xff0c 较容易在系统静止或外力给予较大冲击时产生轨迹漂移 xff0c 原因是imu的bias在预积分中持续发散 xff0c 视觉重投影误差产生的约束失效 如静止 xff0c 先验约束可能会在LM的线性求解器中
  • 在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

    最近在做科研训练的时候配置了HKUST Aerial Robotics实验室的VINS Fusion代码项目 xff0c 经历了一些编译报错的问题 xff0c 在网上查找的时候博客内容良莠不齐 xff0c 且实质针对性意见不多 xff0c
  • 在TUMVI数据集上测试VINS-Fusion算法

    VINS Fusion算法是一个非常优秀的视觉惯性里程计 但原版VINS Fusion并没有提供与TUM数据集相应的配置文件 因此需要自己进行写yaml文件 修改配置文件 tum mono yaml span class token dir
  • VINS-Mono论文笔记(中)

    VINS Mono论文笔记 中 前言1 初始化过程1 1 视觉重构1 2 视觉惯性联合 2 紧耦合的单目VIO系统2 1 公式2 2 imu残差2 3 视觉残差2 4 边缘化残差2 5 针对相机实时帧率的纯运动视觉惯性状态估计器2 6 im
  • VINS记录

    euroc launch lt launch gt lt arg name 61 34 config path 34 default 61 34 find feature tracker config euroc euroc config
  • VINS-RGBD运行指令

    创建工程VINS RGBD catkin ws 将代码放入src文件夹当中 git clone https github com STAR Center VINS RGBD 进行编译 cd VINS RGBD catkin ws catki
  • 【VINS论文翻译】VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator

    回到目录 写在前面 港科大的VINS Mono作为目前state of the art的开源VIO项目 xff0c 是研究视觉与IMU紧耦合的必读算法 xff0c 网上的论文解读与代码实现也非常丰富 xff08 感谢 xff01 xff09
  • vins运行1

    vins fusion 运行笔记 安装code utils 1 fatal error elfutils libdw h 没有那个文件或目录 没有安装 sudo apt get install libdw dev 2 fatal error
  • VINS-Mono代码解读——视觉跟踪 feature_trackers

    前言 本文主要介绍VINS的视觉处理前端的视觉跟踪模块 xff08 feature trackers xff09 论文第四章A节 xff08 IV MEASUREMENT PREPROCESSING A Vision Processing

随机推荐