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()函数结束。

VINS-初探(一)相关推荐

  1. 2021年大数据Flink(九):Flink原理初探

    Flink原理初探 Flink角色分工 在实际生产中,Flink 都是以集群在运行,在运行的过程中包含了两类进程. JobManager: 它扮演的是集群管理者的角色,负责调度任务.协调 checkp ...

  2. 从壹开始微服务 [ DDD ] 之一 ║ D3模式设计初探 与 我的计划书

    缘起 哈喽大家周四好!又是开心的一天,时间过的真快,我们的 <从壹开始 .net core 2.1 + vue 2.5 >前后端分离系列共 34 篇已经完结了,当然以后肯定还会有更新和修改 ...

  3. 经典算法研究系列:二、Dijkstra 算法初探

    经典算法研究系列:二.Dijkstra 算法初探  July   二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...

  4. las格式测井曲线_邹榕,等:顺北和托甫台区块奥陶系断裂结构单元测井响应特征初探...

    引用格式:邹榕,徐中祥,张晓明,等.顺北和托甫台区块奥陶系断裂结构单测井响应特征初探[J].油气藏评价与开发,2020,10(2):18-23.ZOUR, XU Z X, ZHANG X M, et ...

  5. 2018-4-15摘录笔记,《网络表征学习前沿与实践》 崔鹏以及《网络表征学习中的基本问题初探》 王啸 崔鹏 朱文武

    1.来源:<网络表征学习前沿与实践>  崔鹏 (1)随着数据的增加以及计算机计算速度的增加,想当然的以为速度快了,数据再多也是可以自己算的,但是若是数据之间存在着复杂的关系,那么处理一个样 ...

  6. ICRA 2021 | VINS 研讨会概要(附完整视频)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 " 由来自Robot Perception and Navigation Group (RP ...

  7. python argparse_Python 命令行之旅:初探 argparse

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 你是否好奇过在命令行中敲入一段命令后,它是如何被解析执行的?是否考虑过由自己实现一个命令行工具,帮你执行和处理任 ...

  8. HTML5+MUI+HBuilder 之初探情人

    07,08年那会儿正当Java火爆,C/C++仍是广泛运用的一门语言的时候,所以我的大学都献给了C/C++和Java.当诺基亚的倒闭成为按键机时代衰落的标志时,移动APP的开发也如破堤之洪.爆炸式的崛 ...

  9. 使用Mahout搭建推荐系统之入门篇3-Mahout源码初探

    2019独角兽企业重金招聘Python工程师标准>>> 用意: 希望了解Mahout中数据的存储方式, 它如何避免java object带来的冗余开销.学完知识,要进行些实战 去分析 ...

  10. SAP RETAIL 补货类型RF之初探 II

    SAP RETAIL 补货类型RF之初探 II 1, 补货参数 – TargetCoverage字段不能为空. 如果不维护这个参数值,系统会提示:Target stock calculated dyn ...

最新文章

  1. MPB:亚热带生态所葛体达组-原位酶谱法高分辨率实时检测土壤微界面酶活分布...
  2. opencv投影变换
  3. 【复习】服务器主板——Leez P710
  4. Web基础:记录简单个人网站建站过程
  5. Canvas入门06-线段与像素边界
  6. mysql报错Attempted to open a previously opened tablespace的解决办法
  7. 全面拥抱 FastApi — 多应用程序项目结构规划
  8. IDEA登录Github账号失败的解决办法
  9. 分布式实时分析数据库citus数据插入性能优化
  10. Ubuntu中octopress安装
  11. 2020校招薪酬大比拼,PDD好猛!旧人没有新人香,你被倒挂了没?
  12. 云网络被广泛应用 企业SaaS选型面临五大安全问题
  13. oracle ogg下载安装,牛刀小试Oracle GoldenGate--OGG安装(一)
  14. Autobook中文版 (六)-- 8. Bootstrapping
  15. grep awk 搜索日志常用命令
  16. Qt之QThread基本用法
  17. HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码...
  18. eclipse配置tomcat日志保存位置
  19. python计算无穷级数求和常用公式_[python][计算方法]利用无穷级数计算幂运算(开根号)...
  20. Hibernate事务与并发问题处理(乐观锁与悲观锁)【转】

热门文章

  1. Flume HDFS Sink配置详解
  2. Vue动画工具及特效
  3. 用pm2在本地部署服务器node项目,利用pm2部署多个node.js项目的配置教程
  4. 2022 年 25 大 Java 8 面试问题和答案 - 从基础到有经验
  5. 极大似然估计值的标准差
  6. 2019 CCPC-Wannafly Winter Camp Day1 (Div2, onsite)(补题记录)
  7. 黑马程序员,黑马论坛---JavaEE第4期,毕业7天,34人就业平均薪资7308
  8. 头歌Beautifulsoup解析网页
  9. C语言、Java运算符总结
  10. java架构师和C语言架构师,C语言-Java架构师必看