SLAM: 关于Orb_SLAM的使用小综述
0.ORB_SLAM的官方网站:http://webdiis.unizar.es/~raulmur/orbslam/
1. 参考知乎上对 orb-slam 的评价:orb-slam在众多SLAM方法中处于怎样的地位
2. 评价说是 PTAM 的改进版:PTAM主页
3. Orb_SLAM的 GitHub 页面:此页面有详细的使用方法
4. 使用Orb_SLAM的一些实用参考工程:视觉SLAM实战(一):RGB-D SLAM V2、Orb_SLAM
"RGBDSLAMv2 is based on the ROS project, OpenCV, PCL, OctoMap, SiftGPU and more – thanks!" 你还在等什么?装装装!好在这些东西在Ubuntu下安装,就是几句话搞定的事。
ROS hydro安装指南: http://wiki.ros.org/cn/hydro/Installation/Ubuntu (加ppa源后直接安装)
Linux OpenCV安装指南:http://blog.sciencenet.cn/blog-571755-694742.html (从源代码编译)
PCL:http://www.pointclouds.org/downloads/linux.html (加ppa后安装)
5. Orb_SLAM的使用方法中文介绍:ORB-SLAM(1) --- 让程序飞起来
本文给出了一些注意事项和排错方法,值得没有时间读详细文档的使用者参考一下。
6. SLAM:ORB_SLAM源代码中的设计模式分析
此文分析了ORB_SLAM的设计模式的由来。原文链接:SLAM代码(设计模式)
若要读取代码之前先观其思路,看看这个系列的不错:http://blog.csdn.net/wendox/article/month/2016/12
一部分摘抄
引入一个Frame结构,为了实现上述的跟踪器,第一步是读取图像,通过图像的数据估计当前帧对应的位姿状态。场景中相同的点在不同的视角中构成一个基础矩阵的关系,一个图像帧的图像平面和另一帧的图像的平面之间构成单应矩阵的关系。使用最小二乘法通过图像点可以计算得到单应矩阵和基础矩阵,,使用矩阵奇异值分解(SVD)可将单应矩阵或者基础矩阵分解恢复出位姿变化。这些内容的实现可以放到Frame结构,也可以像ORB那样专门放到一个Initializer里边。Frame需要和Map完成互动。除了需要计算当前帧的位姿,还要完成特征点的三维重建。有的方法使用了一个深度滤波器,如SVO,LSD中考虑了极线与深度的夹角,这样会得到一个半稠密的地图。因为稠密的地图点想要试试完成一般是需要使用GPU来完成的。图像的上的特征点和空间中的三维点如何对应呢?常用的方法是PnP。PnP是已知三维点计算相机位姿,三维重建是已知相机位姿计算三维点。
PnP的计算中需要知道相机的内参数,这里引入第二个结构相机模型Camera,他保存并管理相机的参数,进行一些图像空间到世界空间的转换,完成图像点(关键特征点)的去畸变。
如何解决累计误差问题,常用的方法是使用路标点和当前图像点进行匹配估计相机的运动,这时候需要存储这些路标点的描述子。另外一方面在LSD-SLAM, SVO等方法中,是怎样存储路标点的呢?这里引入一个结构叫做Mappoint。
如何评价一个路标点的好坏程度?如何如何保存病管理这些路标点呢?路标点的添加删除等管理工作可以放入另外一个结构Map中进行。地图中以何种形式保存这些路标呢,一种方法是路标放在图像帧里作为关键帧KeyFrame进行保存和提取。关键帧串起来成为一个地图。这样做的好处就是我们使用了关键帧继承了帧的性质,便于以后特征点匹配。在前边累计相机运动的时候参考帧是前一帧图像,这里的参考帧是关键帧的图像。关键帧是相机运动过程中保留了重要信息的最小集合中的元素。理论上关键帧是没有重叠的。后端优化的对象主要是关键帧。
不足之处:
ORB-SLAM工程在设计数据关联时关系链接极为复杂,应该有一种能降低工程模块耦合的方法。
SLAM: 关于Orb_SLAM的使用小综述的更多相关文章
- 自主移动机器人同时定位与地图创建(SLAM)方法概述
1.引言: 机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点.移动机器人的定位和地图创建是自主移动机器人领域的热点研究 ...
- SLAM技术在国内的发展现状
近年来,由于扫地机的出现使得SLAM技术名声大噪,如今,已在机器人.无人机.AVG等领域相继出现它的身影,今天就来跟大家聊一聊国内SLAM的发展现状. SLAM的多领域应用 SLAM应用领域广泛,按其 ...
- SLAM方向公众号、知乎、博客上有哪些大V可以关注?
一.公众号 泡泡机器人:泡泡机器人由一帮热爱探索并立志推广机器人同时定位与地图构建(SLAM)技术的极客创办而成,通过原创文章.公开课等方式分享SLAM领域的数学理论.编程实践和学术前沿. 经典文 ...
- 【论文解读】【半监督学习】【Google教你水论文】A Simple Semi-Supervised Learning Framework for Object Detection
题记:最近在做LLL(Life Long Learning),接触到了SSL(Semi-Supervised Learning)正好读到了谷歌今年的论文,也是比较有点开创性的,浅显易懂,对比实验丰富, ...
- 综述 | SLAM回环检测方法
本文作者任旭倩,公众号:计算机视觉life成员,由于格式原因,公式显示可能出问题,建议阅读原文链接:综述 | SLAM回环检测方法 在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿 ...
- 视觉slam领域经典综述和具体应用场景
一.经典综述文章 1. Durrant-Whyte H, Bailey T. Simultaneous localization and mapping: part I[J]. IEEE robot ...
- 三维重建面试0:*SLAM滤波方法的串联综述
知乎上的提问,高翔作了回答:能否简单并且易懂地介绍一下多个基于滤波方法的SLAM算法原理? 写的比较通顺,抄之.如有异议,请拜访原文.如有侵权,请联系删除. 我怎么会写得那么长--如果您有兴趣可以和我 ...
- SLAM: Orb_SLAM中的ORB特征
原文链接:什么是ORB 关于Orb特征的获取:参考 最新版的OpenCV中新增加的ORB特征的使用 ORB是是ORiented Brief 的简称,对Brief的特定性质进行了改进. ORB的描述在下 ...
- SLAM入门必收藏的资料
搜集了各大网络,请教了SLAM大神,终于把SLAM的入门资料搜集全了!在分享资料前,我们先来看看,SLAM技术入门前需要具备哪些知识?首先学习SLAM需要会C和C++,网上很多代码还用了11标准的C+ ...
随机推荐
- 【Codeforces 1114A】Got Any Grapes?
[链接] 我是链接,点我呀:) [题意] 水题 [题解] 哪个比较挑剔优先给他选>_< [代码] import java.io.*; import java.util.*; public ...
- 【codeforces 766E】Mahmoud and a xor trip
[题目链接]:http://codeforces.com/contest/766/problem/E [题意] 定义树上任意两点之间的距离为这条简单路径上经过的点; 那些点上的权值的所有异或; 求任意 ...
- MySQL下做Master/Slave同步,延迟太大怎么办?
slave的延迟是比较常见的,如果短暂的延迟后还能追上,一般就能接受了. 用innodb不是坏事,会减少一些slave中止的情况.如果是myisam的表,insert update delete操 ...
- 越来越好玩,SPRINGMVC
了解了JSP和SERVLET的运行机制, 看完SPRING的内容,理解了一些IOC及AOP之后,进入SPRINGMVC和SPRINGBOOT,感觉轻松多啦.
- nyoj_42_一笔画问题_201403181935
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- nyoj_448_寻求最大数_201402261424
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920 ...
- 一次MySQL(INNODB存储引擎) 死锁捉虫记
前言 任何系统不管在什么阶段都需要关注生产环境错误日志,最近几个月内,发现偶尔会出现数据库死锁情况.以前碰到的数据库类错误大部分是SQL语法造成的错误,来到新东家之后才第一次碰到死锁情况,以前是搞游戏 ...
- ELECTRON开发环境配置方法
1.下载并安装Node.js 下载地址:https://nodejs.org/en/download/current/ 安装之后进行验证 2.下载并这装electron 安装命令:npm instal ...
- HDU 5501
这题的01背包的特点很容易看出来,但其实发现,这个题讲究加入时候的顺序. 于是,用贪心排序,如代码中所示,如果A在B前面造成的分数损失更小,则排在前面...其实这个我也是猜的.. #include & ...
- MySQL数据库数据迁移到SQLserver
近期因工作须要.须要将mysql数据库迁移到sqlserver.不过数据迁移.因此相对照较简单.对于mysql迁移到sqlserver,我们须要使用到mysql odbc驱动,然后透过sqlserve ...