VIO概述 On-Manifold Preintegration for Real-Time Visual--Inertial Odometry
目前的研究方向可以总结为在滤波算法中实现高精度,在优化算法中追求实时性.当加入IMU后,研究方向分为松耦合和紧耦合,松耦合分别单独计算出IMU测量得到的状态和视觉里程计得到的状态然后融合,紧耦合则将IMU测量和视觉约束信息放在一个非线性优化函数中去优化.紧耦合的框架使得IMU数据可以对视觉里程计进行矫正,同时视觉里程计信息也可以矫正IMU的零偏,因此一般认为紧耦合的定位精度较高.个人认为松耦合和滤波融合的方法类似,紧耦合则主要基于非线性优化.
IMU融合后可以处理视觉失效的情况,例如光照变化,遮挡,模糊,快速运动;同时视觉也可以对IMU的本质误差零偏(漂移)进行很好的估计.
视觉和IMU融合目前主要基于三类方法,在设计时,主要考虑精确度和计算量的平衡.
1. 滤波
- 状态向量只包含当前状态.由于线性化误差和计算能力的限制,通常只能构建很少的landmark/mappoint.或者创建structureless的状态向量(将landmark/mappoint边缘化),典型代表为MSCKF.
- 边缘化是将旧状态融合进当前状态的先验中,滤波方法主要的缺陷也就存在于边缘化过程中:首先当前测量的structure信息需要延迟处理,降低当前状态的更新精度,其次边缘化对线性化近似和外点(outlier)都比较敏感,容易造成滤波器状态失准.(这里有很多坑,还不太理解).
2. Fixed-Lag Smoothing
- 也就是滑动窗口优化(Sliding Window Optimization).状态向量包含随时间滑动的窗口内多个状态.但是也需要将旧状态边缘化到高斯先验中.因此在滤波算法中存在的边缘化问题,这里都存在.
- 但是由于采用了多个状态的窗口,状态估计更精确,同时可以建立鲁棒的优化代价函数,降低外点对状态估计的影响.
- 状态向量中可以加入测量的structure,但是太多strcuture会造成高斯先验矩阵是稠密的,通常会想办法减少structure的数量.
3. Full Smoothing
- 也就是batch non-linear least-squares或者全局优化,状态向量包含所有相机位姿和strcuture信息,做大规模的非线性优化.显然是最精确的方法,虽说稀疏性降低了计算量,但是依然比滤波大.主要工作集中于降低计算量.
- 可以采用只优化关键帧,以及将优化放在独立线程中.
- 最新的研究采用因子图,增量式地根据测量更新部分状态,典型代表为iSAM.
- 当引入IMU后,由于IMU频率通常在100Hz-1kHz量级,无法每次IMU测量都更新状态向量.通常的做法是在关键帧之间对IMU进行积分,初始状态由上一帧状态提供,根据IMU的微分运动方程,积分出当前状态,再将视觉测量引入更新.
- 然而,由于优化过程中上一帧的状态是会变化的,这样积分的初始状态改变了,需要重新算积分,为了避免每一次优化调整后都需要重复计算IMU积分,利用预积分preintegration将相对运动约束再参数化.
参考:
1. https://bitbucket.org/gtborg/gtsam
2. https://arxiv.org/abs/1512.02363
VIO概述 On-Manifold Preintegration for Real-Time Visual--Inertial Odometry的更多相关文章
- 视觉惯性里程计Visual–Inertial Odometry(VIO)概述
周围很多朋友开始做vio了,之前在知乎上也和胖爷讨论过这个问题,本文主要来自于知乎的讨论. 来自https://www.zhihu.com/question/53571648/answer/13772 ...
- [SLAM] 03. ORB-SLAM2
一年后再读SLAM~ 行业有了不少工程实践方面的突破 一.链接:https://www.zhihu.com/question/53571648/answer/176732257 目前来说,受到业界肯定 ...
- 三维重建7:Visual SLAM算法笔记
VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...
- 转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为“同步定位与地图构建”,它主要用于解决机器人在未知环境运动时的 ...
- 83 项开源视觉 SLAM 方案够你用了吗?
作者:吴艳敏 来源:83 项开源视觉 SLAM 方案够你用了吗? 前言 1. 本文由知乎作者小吴同学同步发布于https://zhuanlan.zhihu.com/p/115599978/并持续更新. ...
- 当前的开源SLAM方案
开源方案 传感器形式 地址链接 MonoSLAM 单目 https://github.com/hanmekim/SceneLib2 PTAM 单目 http://www.robots.ox.ac. ...
- A Benchmark Comparsion of Monocular Visual-Inertial Odometry Algorithms for Flying Robots论文笔记
摘要: 本文主要比较单目VIO的算法在飞行机器人上运行的性能,测试使用统一数据集为EuRoC.其中评价指标为:姿态估计精度.每帧处理时间以及CPU和内存负载使用率,同时还有RMSE(运行轨迹与真实轨迹 ...
- Monocular Visual-Inertial Odometry单目视觉惯性里程计
Monocular Visual-Inertial Odometry:https://www.qualcomm.com/invention/research 单目视觉-惯性里程计 INDOOR POS ...
- ARKit入门
ARKit介绍 ARKit是iOS11引入的一个全新的框架,使用Visual Inertial Odometry(VIO,视觉惯性里程计)来精确跟踪现实世界中的真实场景.相比其它设备平台,ARKit中 ...
随机推荐
- websphere部署中文乱码问题
WebSphere上面的java虚拟机存在默认编码方式,默认为ISO-8859-1. 在JAVA虚拟机的定制属性页面上,添加如下内容: 1.修改服务器编码类型: (1)前台修改方法: 服务器-> ...
- GPU CUDA之——深入理解threadIdx
http://blog.csdn.net/canhui_wang/article/details/51730264 摘要 本文主要讲述CUDA的threadIdx. 1. Grid,Block和Thr ...
- 【[CQOI2014]数三角形】
lx让做的题,其实很简单,难度评到紫令人吃惊 首先读进来\(n,m\)先\(++\),之后就是一个格点数为\(n*m\)的矩阵了 我们直接求很那做,补集转化一下,我们容斥来做 首先所有的情况自然是\( ...
- vue - 简单实例(vue-router + webpack + vuex)
分享 + 实践 基于公司部分产品技术栈转型使用vue,部分同事需要学习一下,快速上手,那么我很荣幸的成为了给大家分享vue技术栈的‘ ’导师‘,在这里我分享一下: 讲解大纲为:(我是有一份PPT的, ...
- SQL Server遍历所有表统计行数
DECLARE CountTableRecords CURSOR READ_ONLY FOR SELECT sst.name, Schema_name(sst.schema_id) FROM sys. ...
- 关于 Vue.js+Element-UI 日期控件 日期范围选择
理想效果 : 也就是说前面时间框的时间能选的范围应该小于等于后面的时间框; 后面时间框能选的范围应该大于等于前面的时间框; 示例代码 : 页面: <el-form-item label=&quo ...
- mongo安装跟启动
mongo下载地址:http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz
- Android 进价5_自定义广播 通过广播更新ListView的适配器 下载管理
1.在处理下载管理时,服务在后台运行,下载完成后要更新listview列表的按钮,将“下载”改成“打开”这样一个功能. 在Activity里面写一个静态内部类,继承广播.其中属性text_button ...
- 淘宝前端框架kissyui
http://docs.kissyui.com/1.4/docs/html/guideline/why-kissy.html
- ASP.NET Core MVC如何上传文件及处理大文件上传
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...