VIO
文章平均质量分 88
半不闲居士
主要从事slam相关工作
展开
-
回环检测之DBoW2
前面我们已经讲了回环检测中用的一些方法,今天主要介绍一下现在用的最多的词袋模型——DBoW2。这里就不在细讲回环检测的定义,具体可以看看我的前面的博客,而回环检测在SLAM中的作用可以从下面的图片中大致有一个了解。左图是不存在回环功能的,当我们回到原来的地方的时候,由于累计误差导致了偏差,这在三维重建中特别明显,就是本来是一个矩形的空间建出来的奇形怪状了,当我们有了回环检测功能后,如右图,很大程度上与矩形空间相似。下图也是一样的,效果很明显。1 词袋模型现有的ORB-SLAM,VINS-原创 2021-05-29 21:23:40 · 5954 阅读 · 1 评论 -
回环检测之决策模型
前面我们已经讲了如何描述场景,让机器人尽可能的了解周围环境,那么了解了之后,如何判断出是回环的呢?本节讨论如何建立决策模型来根据当前场景描述和地图信息识别出可能的闭环.合理的决策模型可有效提高闭环检测的准确度和召回率.最简单的建模方法是将闭环检测看作是图像检索问题,而不考虑地图的拓扑信息和度量信息,计算当前图像和地图中所有图像的相似度,找到相似度最大的.如果相似度超过阈值,则认为出现了闭环.这样做的好处是简化了定位的复杂度,提升了定位的效率.对长期大规模 SLAM 来说,地图的信息量会越来越大,过大的搜原创 2021-04-27 18:46:05 · 790 阅读 · 0 评论 -
回环检测算法综述之场景描述
在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说的累积误差。一个消除误差有效的办法是进行回环检测。回环检测判断机器人是否回到了先前经过的位置,如果检测到回环,它会把信息传递给后端进行优化处理。回环是一个比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图。如果能够检测到闭环,并对其优化,就可以让结果更加准确。但是这里存在一个问题,如果检测到的是一个假的回环(假阳性闭环),那么会使整个图优化算法收敛到完原创 2021-04-15 18:21:41 · 1966 阅读 · 0 评论 -
四元数、变换矩阵、欧拉角、轴角的转换关系详解
描述空间变换通常有四种描述方式,分别是四元数、变换矩阵、欧拉角、轴角,探讨这四种方法之间的关系。大致的关系如图:轴角轴角一种几何描述方法。轴角定义了一个转动轴和转动角,沿着转动轴方向逆时针旋转为转动正方向,具体如下图:θ=θe⃗其中向量e为转轴,模长为θ角。欧拉角欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。由于涉及到坐标系,学习SLAM的应该会经常遇到全局坐标系和局部坐标系,因此,根据不同的坐标系以及分解的顺序不同,欧拉角表达具有多样性,根据坐标系的不同一般分原创 2021-03-24 15:11:28 · 7035 阅读 · 0 评论 -
不一样的静态初始化——OpenVins
今天讲一下黄国权老师实验室开源的OpenVins工程中的IMU初始化,一般VIO初始化分为两种,一种是静态初始化,一种是动态初始化,而OpenVins则利用加速度的方差差异将运动分为两种状态,一种是静止的,一种是刚开始运动的。个人比较符合应用情况,而且我觉得这个想法挺不错,很有意思。VIO初始化就要任务一般是估计重力方向,速度,位置,IMU的偏置,尺度。而而在openvins中,只估计重力方向,IMU的偏置。其实在代码里主要写了三个初始化模式,但是动态初始化好像没写出来,不知道现在有没有出来,大家可原创 2021-03-18 11:19:06 · 4306 阅读 · 0 评论 -
ORBSLAM3 VIO初始化
按照规矩,先讲一下ORBSLAM3中的初始化大致流程根据ORB-SLAM3的论文介绍, IMU的初始化方法是基于下面3点:1) 纯视觉SLAM可以提供很好的位姿估计,所以可以用纯视觉的结果来改善IMU的估计;2) 显示地将尺度表示为一个优化的变量, 尺度会更快地收敛;3)在IMU初始化阶段,忽略传感器的不确定度将会产生更多不可预知错误。整个初始化过程分为:1.Vision-only MAP Estimation;2.Inertial-only MAP Estima...原创 2021-03-17 17:24:46 · 4888 阅读 · 2 评论 -
理解SLAM中的四元数基础知识
什么是四元数 四元数(Quaternion)则是一种紧凑、易于迭代、又不会出现奇异值的表示方法。它在程序中广为使用,在学习SLAM过程中,对于初学者来说比较难理解的应该是这一部分知识了,因此,理解四元数的含义与用法,对学习SLAM来说是必须的。本节我们就来讲讲四元数,这里只是简单介绍四元数的基本用法以及在SLAM中公式推导会用到的几个重要推论,想要学SLAM的可以记下那几个推论,在SLAM理论推导中都会用到的。 四元数是Hamilton找到的一种扩展的复数。一个四元数拥有一个实部和三个虚部:..原创 2021-03-15 20:05:38 · 3220 阅读 · 0 评论 -
VINS-mono初始化的原理解析
初始化大致流程如果IMU和相机之间的外参未知,则需要在线标定求解旋转量qbc。 利用求解出来的qbc,结合相机间的约束,求解IMU角速度的bias。 利用IMU的运动估计重力,速度以及尺度。 利用重力的模长矫正重力,之后再矫正每个参数。1.估计外参qbc根据相机和IMU的坐标相对关系可得整理得:将多个帧之间的等式关系一起构建超定方程Ax=0,如下:对A进行svd分解,其中最小奇异值对应的奇异向量便为需要求解的qbc。其中由于旋转矩阵和欧拉角..原创 2021-03-15 15:27:31 · 2209 阅读 · 0 评论 -
VSLAM算法中的数学基础知识详细了解
学习SLAM经验告诉我,入门SLAM一般只需要两种两个方面的条件,一是要有扎实的数学基础,二是要有强大的动手编程能力,但是这两个条件对于刚入门的同学来说,极具挑战性。学习SLAM的心里历程:本来先研究了基于滤波系列的源码,嗯,感觉还能看得懂,然后去研究VINS-MONO、ORBSLAM系列,咬咬牙,坚持着。直到碰见了ICE-BA源码,我的心情——我在哪?我能回去吗?我裂开了。本文主要大致介绍一下SLAM所需的数学知识,先从SLAM算法框架来介绍,SLAM一般分为前端和后端,前端主要是视觉,后端一原创 2021-03-08 12:02:11 · 1231 阅读 · 0 评论 -
三维重建和VSLAM相关的公开数据集大全
测试一个SLAM的算法性能,需要测试SLAM算法定位精度、时间开销,内存开销等等。而时间开销和内存开销一般比较好操作,但是定位精度一般很难评估,因为你需要真实轨迹,但是这个很难获取,需要一些比较昂贵的设备,因此,一些实验室专门做了公开数据集和评估工具,可以通过这些公开数据集和评估工具对比一些论文上的数据来评估自己改进的SLAM的性能优劣。评估工具Trajectory Evaluation with Alignment [Paper], [Code]Python package for the eva原创 2021-03-04 14:04:59 · 1424 阅读 · 4 评论 -
SLAM领域的优秀作者与实验室汇总
总结一些之前看过的SLAM(VO,VIO,建图)文献所发表的实验室和作者1.实验室美国卡耐基梅陇大学机器人研究所研究所主页:https://www.ri.cmu.edu/发表论文:https://www.ri.cmu.edu/pubs/优秀团队成员:Michael Kaess、Sebastian Scherer研究方向:机器人感知、结构,服务型、运输、制造业、现场机器等美国加州大学圣地亚哥分校语境机器人研究所实验室主页:https://existentialrobotics.原创 2021-03-04 13:05:01 · 4504 阅读 · 1 评论 -
当前开源的SLAM方案汇总2021.02
感谢SLAMer前辈们不断的拼搏与进取!PTAM论文:Klein G, Murray D. Parallel tracking and mapping for small AR workspaces[C]//Mixed and Augmented Reality, 2007. ISMAR 2007. 6th IEEE and ACM International Symposium on. IEEE, 2007: 225-234.代码:https://github.com/Oxford-PTAM/原创 2021-03-03 17:51:46 · 7381 阅读 · 2 评论 -
近十年的VI-SLAM算法综述与发展
本文主要总结一下这几年工作中遇到过以及改进过相关VIO算法1.背景介绍一个完整的 SLAM(simultaneous localization and mapping) 框架包括传感器数据、 前端、 后端、 回环检测与建图,如图1所示,其中,前端将传感器的数据抽象成适用于估计的模型,回环检测判断机器人是否经过已知的位置.而后端接受不同时刻前端测量的位姿和回环检测的信息并对它们进行优化,从而得到全局一致的轨迹。建图则是根据状态估计得到的轨迹建立与任务要求相对应的地图。通常,仅含有前端和局部后端的框架被原创 2021-03-01 15:16:07 · 6231 阅读 · 5 评论