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包中。

时间: 2024-10-13 00:01:47

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

joomla代码结构原理,执行流程

joomla-安装 下载源码 解压到apache发布目录 访问http://xxx/installation/index.php 根据实际情况访问 按每步提示操作,mysql库要先建立,ftp可暂时不开 删除安装文件即可 joomla代码结构 Joomla 2.5主要目录结构 ├─administrator     # 后台程序部分 ├─cache             # 用于存放cache,需要保持可写 ├─components        # 组件,每个组件一个文件夹,通常是com_*

ReactNative入门(4)代码结构

一.了解index.ios.js 大家都清楚,React-Native就是在开发效率和用户体验间做的一种权衡.React-native是使用JS开发,开发效率高.发布能力强,不仅拥有hybrid的开发效率,同时拥有native app相媲美的用户体验.目前天猫也在这块开始试水. 用编辑器打开index.ios.js文件,分析代码结构: 1.第一句:var React = require('react-native');有Node.js开发经验的同学都清楚,require可以引入其他模块.如果没有

代码结构和标识符

对代码结构的标识注解: 添加 JAVA语言的语法基础之一: 标识符:最好不要用中文的标识符,虽然没有限制,但最好也不要用. 注意并标识符的规则和可以定义的名字. 课本33页有Java语言的关键字表格.

关于网页脚本代码结构的再思考

在很多说法中,总是建议将我们的javascript脚本加载在网页的最后,并用外部文件的形式,然而事实并不是这样,外挂的文件最好不要太多,脚本结构代码本身才是值得我们思考的问题.我们需要重新思考我们撰写的脚本的执行力,并把更优秀的javascript开发思路融入到我们的开发中. 我在读完了几篇关于javascript和jQuery的性能优化的文章之后,才恍然大悟,我以前所做的很多代码结构优化,最终只是让乌徒帮显得臃肿,于是重新设计脚本代码的结构,无论怎么样,乌徒帮现在的网页打开显得更加流畅了. 1

storm源码之storm代码结构【译】【转】

[原]storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助. Storm的源码共分为三个不同的层次. 首先,Storm在设计之初就考虑到了兼容多语言开发.Nimbus是一个thrift服务,topologies被定义为Thrift结构体.Thrift的运用使得Storm可以被任意开发语言使用. 其次,Stor

RYU控制器代码结构的总结

1. RYU的基本框架及开发须知 从框架中我们可以看到,在RYU控制器架构中,包括:Non-OF protocols.OF protocols. 各种libraries以及内嵌的APP,同时,RYU控制器提供给用户统一的REST API,供用户基于RYU框架开发自己的APP,同时,开发者可以根据自己的需要.添加所需的组件和库文件.值得注意的是,RYU架构只是提供给开发者一个平台,相当于一个没有应用软件的操作系统,开发者想基于这个框架实现自己想要的功能,就必须通过RYU提供的API编写相应功能的A

PHP扩展代码结构详解

PHP扩展代码结构详解: 这个是继:使用ext_skel和phpize构建php5扩展  内容 (拆分出来) Zend_API:深入_PHP_内核:http://cn2.php.net/manual/zh/internals2.ze1.php 我们使用ext_skel创建扩展 hello_module,该模块包含一个方法:hello_world. 使用ext_skel 生成的代码都是PHP_开头的宏, 而不是ZEND_开头. 实际上这两者是一样的. 在源代码src/main/PHP.h 中发现:

Storm系统架构以及代码结构学习

转自:http://blog.csdn.net/androidlushangderen/article/details/45955833 storm学习系列:http://blog.csdn.net/Androidlushangderen/article/category/2647213 前言 什么是storm,storm是做什么的,一个简单的描述,你可以理解为是一个“准实时”的Hadoop,Hadoop是专门做的是离线数据处理,而storm则弥补了Hadoop在这方面的不足,他是一个实时数据处

JSqlParser系列之二代码结构(原)

JSqlParser系列之二代码结构(原) 博客园 百味木屋原创,转载请注明出处. 上一篇文章简单介绍如何建立JSqlParser工程,本章对JSqlParser工程的代码结构作大致地介绍. 一.目录结构 JSqlParser的目录结构比较简单,主要有表达式,解析器,语句处理几个目录.下面这张图给出了一个具体的SQL语句与表达式: 接下来,简要介绍一下在JSqlParser中几个抽象概念. 二.SQL语句(statement) JSqlPaser将所有的SQL语句抽象为Statement,Sta