VINS(一)简介与代码结构

2023-05-16

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():

转载于:https://www.cnblogs.com/shang-slam/p/7044045.html

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

VINS(一)简介与代码结构 的相关文章

  • 参考ElementUI的文档实现方案,实现自己组件库的说明文档

    实现使用markdown编写的个人组件库说明文档 前一篇文章实现了按需加载封装个人的组件库功能 xff0c 有了组件库 xff0c 当然还要有配套说明文档 xff0c 这样使者用起来才更方便 打包完成的dist目录是最终可放到服务器中 xf
  • 【设计模式】我终于读懂了代理模式。。。

    文章目录 x1f466 代理模式的基本介绍 x1f467 代理模式示意图 x1f469 静态代理 x1f468 应用实例 x1f476 思路分析图解 类图 x1f475 静态代理优缺点 x1f474 动态代理 x1f471 JDK 中生成代
  • 今年读过的还不错的计算机类书籍

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今年读过的还不错的计算机类书籍 一年又快过去了 xff0c 今年恶补了很多计算机基础知识 xff0c 参kao了网上各种程序员必读书目 xff0c 看下来觉得很有收获 1
  • <ps> ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 xff0c 就是执行ps命令的那个时刻的那些进程 xff0c 如果想要动态的显示进程信息 xff0c
  • python学习笔记(六):常用模块

    一 模块 包 什么是模块 xff1f 模块实质上就是一个python文件 它是用来组织代码的 xff0c 意思就是说把python代码写到里面 xff0c 文件名就是模块的名称 xff0c test py test就是模块名称 什么是包 x
  • Linux经常用到的命令

    1 Linux下用vim打开配置文件乱码 xff0c 在终端输入 xff1a LANG 61 即可 2 查看端口是否被占用 xff1a 3 netstat anp grep port netstat ltn 4 lsof i port 5
  • (部分清帐)关于收到部分还款SAP系统两种处理方法的说明和比较-转

    背景 销售货物给A顾客 同时开出发票16000元 数日后 进行收款作业 但收款金额为15000元 小于原发票金额 此时在系统中做收款 同时处理未清项 F 28收款 输入实际收款金额后进入 34 处理未清项 34 界面 可发现在右下角输入金额
  • Java获取单词的首字母的方法_java – 从句子中的每个单词中提取第一个字母

    我已经开发了一个语音到文本程序 用户可以说一个简短的句子 然后将其插入文本框 如何提取每个单词的首字母然后将其插入文本字段 xff1f 例如 如果用户说 xff1a Hello World 我想在文本框中插入HW 解决方法 如果你有一个字符
  • python学习笔记-(九)模块

    基础知识 1 定义 模块 xff1a 用来从逻辑上组织python代码 xff08 变量 xff0c 函数 xff0c 类 xff0c 逻辑 实现一个功能 xff09 xff0c 本质就是 py结尾的python文件 xff08 文件名 x
  • Ubuntu 查看磁盘空间大小命令<转>

    df h Df命令是linux系统以磁盘分区为单位查看文件系统 xff0c 可以加上参数查看磁盘剩余空间信息 xff0c 命令格式 xff1a df hl 显示格式为 xff1a 文件系统 容量 已用 可用 已用 挂载点 Filesyste
  • linux开机自动启动vnc,怎样实现重启linux后自动启动vncserver服务?

    linux开机自动启动vncserver服务 xff0c 需要先保证VNC安装无问题以及各种配置以及防火墙正常 xff0c 下面是vncserver服务安装 配置以及设置自启动的步骤 xff1a 首先需要检查一下服务器是否已经安装了VNC服
  • 【设计模式】我终于读懂了模板方法模式。。。

    x1f34e 豆浆制作问题 编写制作豆浆的程序 xff0c 说明如下 1 制作豆浆的流程 选材 gt 添加配料 gt 浸泡 gt 放到豆浆机打碎 2 通过添加不同的配料 xff0c 可以制作出不同口味的豆浆 3 选材 浸泡和放到豆浆机打碎这
  • python-Django中连接MySQL数据库及设置用户名密码

    为什么80 的码农都做不了架构师 xff1f gt gt gt 项目和应用创建好以后 xff0c 进入当前的目录所在的文件夹即可操作 xff0c 也可以用pycharm中的Tools工具运行manage py xff0c 本人采用的是运行p
  • gitlab linux环境搭建,Linux搭建gitlab

    由于上一篇搭建的git服务器 xff0c 进行权限控制时很不方便 xff0c 决定重新搭建gitlab作为管理项目工具 xff0c 有web页面操作起来也很方便 本文只记录安装过程以备后用 一 服务端 配置服务yum源 vim etc yu
  • 林帆:Docker运行GUI软件的方法

    欢迎关注大数据和人工智能技术文章发布的微信公众号 xff1a 清研学堂 xff0c 在这里你可以学到夜白 xff08 作者笔名 xff09 精心整理的笔记 xff0c 让我们每天进步一点点 xff0c 让优秀成为一种习惯 xff01 继上周
  • python内部函数如何修改外部函数变量

    2019独角兽企业重金招聘Python工程师标准 gt gt gt python3 nonlocal关键字 def func result 61 10 def down nonlocal result result 61 result 1
  • 解决bug的能力

    解决问题的高手都会努力保持明白的基础上加上一点不明白的现场模型 xff0c 所以他很喜欢把一些无聊的干扰因素直接删除掉 英语报错信息只能一边看一边读 xff0c 永远告诉自己 xff0c 我还没有读懂 转载于 https blog 51ct
  • Cannot open channel to 3 at election address :3888 java.net.ConnectException: Connection refused (Co...

    关于Linux中搭建分布式时可能遇到的问题 这个问题来自于今天安装zookeeper时踩的一个大坑 xff0c 害的我花了一天时间 在搭建zookeeper的分布式时 xff0c 往往要进行这样的配置 xff1a server 1 61 h
  • Xgboost 模型保存和载入()

    https blog csdn net u012884015 article details 78653178 xgb model get booster save model 39 xgb model 39 tar 61 xgb Boos
  • 新版福昕阅读器(Foxit Reader)启动速度慢解决办法

    新版福昕阅读器 xff08 FoxitReader xff09 启动速度慢解决办法之前喜欢使用福昕阅读器的原因就是看中了其小巧 xff0c 可是最近版本的阅读器打开速度变得慢了很多 xff08 不是电脑配置问题 xff09 xff0c 比A

随机推荐

  • 漫谈 SLAM 技术(上)

    欢迎大家前往腾讯云社区 xff0c 获取更多腾讯海量技术实践干货哦 作者 xff1a 解洪文 导语 随着最近几年机器人 无人机 无人驾驶 VR AR的火爆 xff0c SLAM技术也为大家熟知 xff0c 被认为是这些领域的关键技术之一 本
  • 【设计模式】我终于读懂了命令模式。。。

    文章目录 x1f436 智能生活项目需求 x1f42d 命令模式基本介绍 x1f439 命令模式的原理类图 x1f430 对原理类图的说明 即 命名模式的角色及职责 x1f43a 命令模式解决智能生活项目 x1f438 下面我们跟着代码de
  • css制作从下往上逐渐显示的div

    html代码 span class hljs tag lt span class hljs name div span span class hljs attr class span 61 span class hljs string 34
  • 清除redis缓存的命令,redis常用命令

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 清除redis缓存的命令 xff0c redis常用命令 Redis 命令 xff1a flushall gt 清空整个 Redis 服务器的数据 删除所有数据库的所有 k
  • R语言做正态分布检验

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 首先准备两个样本 code set seed 0 a lt runif 100 min 61 3 max 61 3 b lt rnorm 100 mean 61 0 sd
  • node-gyp安装 报错if not defined npm_config_node_gyp

    解决if not defined npm config node gyp 1 br npm install g node gyp 2 npm config set node gyp 34 node C Users me AppData Ro
  • Oracle在Windows上的运行问题分析和解决

    Oracle大型数据库系统在AIX UNIX上的实战详解 集中讨论的继续 做了一周关于Oracle在32位windows上实施的培训 xff0c 恰好期间有几位Oracle用户邮件询问关于Windows系统调整问题 正好吧 xff0c 把准
  • iOS UIImage 图片局部拉伸的一些学习要点

    之前 做纯色局部拉伸 通过 top bottom left right 相交的阴影拉伸 屡试不爽 实施方法 imageView image 61 UIImage imageNamed 64 34 icon helper palace day
  • Python 查看模块的帮助文档,方法和帮助信息

    参考链接 xff1a https blog csdn net u013810296 article details 55509284 这里介绍下python自带的查看帮助功能 xff0c 可以在编程时不中断地迅速找到所需模块和函数的使用方法
  • 移动电源、3G路由拆机

    这款电源 4400mAh xff0c 淘宝也就八十元左右 xff0c 可以作为无线路由使用 xff0c 可以插 3G 网卡 xff0c 总的来说还算不错 xff0c 关键是外观精美 xff0c 网上一堆和华美 A100 那样的 xff0c
  • FreeRTOS——任务调度—抢占式,时间片和合作式

    以下转载自安富莱电子 xff1a http forum armfly com forum php 本章教程为大家将介绍 FreeRTOS 操作系统支持的任务调度方式 xff1a 抢占式 xff0c 时间片和合作式 xff0c 这部分 算是
  • Linux无网络怎么安装软件,解决无网络环境使用yum本地源安装软件

    搞运维的朋友经常会遇到单位的服务器使用的是内网 xff0c 编译安装时间长 xff0c 麻烦些 xff0c 使用yum安装相对简单 xff0c 由于不能联网所以配置本地yum源是必要的 其实配置本地源是很简单的 xff0c 只需要挂载上系统
  • 到了这个年纪,就应该阅读Spring源码了,源码阅读指南-编译加运行

    文章目录 到了那个年纪 xff0c 就应该阅读Spring源码了 x1f604 第一步 xff0c clone x1f606 第二步 xff0c 使用idea打开项目 x1f60a gradle介绍 xff08 插叙手法 xff09 x1f
  • 页面加载完成

    1 document ready function alert 34 页面加载完成 xff01 34 简写 xff1a function alert 34 页面加载完成 xff01 34 2 原生JS方法 window nl ad 61 f
  • Java写的斗地主游戏源码

    源码下载在最后 我们的前年的课设要求做一个斗地主程序 xff0c 当时正在愁如何做界面 xff0c 当时刚好在学习C xff0c 于是就用C 完成了这个程序 一方面 xff0c 当时我C 功底还很差 xff08 其实现在也不怎么样 xff0
  • 加密的m3u8、ts文件合并

    加密后的ts文件不能直接合并或播放 xff0c 需要使用key对每个ts文件进行解密 分为两种情况 xff1a 1 如果ts文件已经全部下载好 xff0c 则可以直接在本地通过ffmpeg快速解密合并 2 如果ts文件没有下载好 xff0c
  • 微信小程序:截图组件welCropper,实现原理及其使用

    最近做项目的时候 xff0c 需要做一个截图功能 用了一个别人写的截图工具 xff0c 发现截出的图质量下降了 xff0c 但是我们图片要用来做识别 需要保证截出的图质量不下降 而且也不支持通过拖动来调整截图框的大小 所以这个截图工具无法满
  • 时序数据从分表到分库

    这里的时序数据泛指一切随时间推移而不断增长的数据 xff0c 比如通话记录 银行交易记录等 对于数据库来讲 xff0c 时序数据并没有什么特殊性 xff0c 可以和普通数据一样放在数据表中 不过 xff0c 因为不断增长 xff0c 积累时
  • Elasticsearch7.1中文文档-第一章-入门

    入门 引言 Elasticsearch是一个高度可扩展开源的全文搜索引擎 它搜索几乎是实时的 用ES作为搜索引擎 为复杂搜索功能的需求提供解决方案 ES的使用场景 网上商场 搜索商品 ES配合logstash kibana 日志分析 本教程
  • VINS(一)简介与代码结构

    VINS Mono和VINS Mobile是香港科技大学沈劭劼团队开源的单目视觉惯导SLAM方案 是基于优化和滑动窗口的VIO xff0c 使用IMU预积分构建紧耦合框架 并且具备自动初始化 xff0c 在线外参标定 xff0c 重定位 x