RGB-D视觉SLAM(1)之修改

  虽然我已经做了两次关于SLAM的周报了,但是平时和实验室的师兄师姐交流的时候,他们好像还是不了解我要做啥。我觉得可能是前两次周报的时候,我对这个SLAM领域也是一知半解,所以才说的不够清楚。因此这次我想先把我要做的事情形象化地说明白,然后再汇报我这两周的工作。

  为了说明我们要研究的东西,先提出两个问题:1、当你突然被扔到一个陌生的城市,你是怎么探索这个城市的呢? 2、假设你是一个来东华大学松江校区参观的游客,你是打算如何游览东华的呢?(是不是感觉一份地图至关重要)  

  那么假设来了,假设目前没有特别好的地图,需要及时去绘制一份以便游客参观。现在引入地图绘制小能手——机器人“葫芦娃”。“葫芦娃”身上带着深度相机kinect,能够在拍摄彩色图片的同时,还能知道拍摄的物体与它之间的距离。最后得出来一张地图如下:(实际上不是这样的地图,这里只是为了举例子从网上拉下来的一张图片,因为“葫芦娃”还没画出东华的样图,让我们一起期待吧~~)

  好,那么我们来讨论一下“葫芦娃”是怎么画地图的?首先,假设“葫芦娃”是从宿舍区开始进入校区的(按照游客的路线),他需要先画出大学生活动中心的外貌(一般游客都会去),那么他需要绕着大活走一圈(想象你绕着一栋建筑物走的样子),他会左看看,右看看,往前走两步,再往后退几步.......等等。

  在这个过程中 “葫芦娃” 会用自己的相机不断拍摄照片然后传给计算机(想象你参观一栋宏伟建筑时候的样子),然后计算机处理照片的过程中就是SLAM(主角出场)。

  SLAM要解决的两个问题:1、“葫芦娃”走到哪里了?(就像你想知道跑出去的宠物狗在哪里一样)

2、“葫芦娃”周围是什么样的环境?(就像你想知道宠物狗在什么样的地方一样)

  SLAM涉及的三个模块:视觉里程计——后端优化——闭环检测

  视觉里程计——根据机器人连续拍摄的两帧图片,估算机器人在拍摄这两帧图片之间的位移以及旋转的角度

  后端优化——根据连续几张图片的情况,纠正视觉里程计的估计误差

  闭环检测——如果机器人走了一圈又回到原来的出发点,计算机必须能够检测出来,这样子才能形成一张完整的地图。如果没检测出来那么就会出现轨迹套轨迹,画出来的建筑物有重影......等等。

  一切准备妥当后就可以画出一张完整的地图了,欧耶!

  到了这里你对SLAM(simultaneous localization and mapping)要做的事情了解了没?实际上,画出来的图有好几种,并不是局限于二维地图,比如路标地图、度量地图、拓扑地图等等。当然我们希望“葫芦娃”画出来的不是那种像手画版一样的地图,而是像下面这样的。你可以想象一下以你自己的第一视角画出来的三维地图是怎么样的?不过要实现这样的效果还是需要各位科研工作者的努力。

原文地址:https://www.cnblogs.com/hao-lingguang19/p/11747374.html

时间: 2024-10-10 14:09:32

RGB-D视觉SLAM(1)之修改的相关文章

视觉SLAM漫淡(二):图优化理论与g2o的使用

视觉SLAM漫谈(二):图优化理论与g2o的使用 1    前言以及回顾 各位朋友,自从上一篇<视觉SLAM漫谈>写成以来已经有一段时间了.我收到几位热心读者的邮件.有的希望我介绍一下当前视觉SLAM程序的实用程度,更多的人希望了解一下前文提到的g2o优化库.因此我另写一篇小文章来专门介绍这个新玩意. 在开始本篇文章正文以前,我们先来回顾一下图优化SLAM问题的提法.至于SLAM更基础的内容,例如SLAM是什么东西等等,请参见上一篇文章.我们直接进入较深层次的讨论.首先,关于我们要做的事情,你

视觉slam学习之路(一)看高翔十四讲所遇到的问题

目前实验室做机器人,主要分三个方向,定位导航,建图,图像识别,之前做的也是做了下Qt上位机,后面又弄红外识别,因为这学期上课也没怎么花时间在项目,然后导师让我们确定一个方向来,便于以后发论文什么.上个礼拜看了些论文,感觉视觉slam方向还可以,图像识别毕竟不是计算机科班,可能真正要弄也很难有成果,slam也是最近才研究起来,也挺适合我们搞,需要一些高数.c++.ros等知识,学的东西也挺多的,但这样才能体现研究生的价值,不然本科生也能做,然后确定了这个研究方向,希望好好研究个一两年有所成就,研三

视觉SLAM之RANSAC算法用于消除图像误匹配的原理

在基于特征点的视觉SLAM中,通常情况下,在特征匹配过程中往往会存在误匹配信息,使得计算获取的位姿精度低,易产生位姿估计失败的问题,因此,剔除这些错配点有很大的必要性.常会用到RANSAC算法进行消除两两匹配图像的误匹配点,如果只停留在应用的层面上很简单,直接调用opencv函数就行,看到效果时,感觉好神奇,到底怎么实现的啊,以前一直也没弄太明白,与图像结合的博客也比较少,在查阅了一些资料后,笔者似乎明白了一点,希望笔者的总结会对您的理解有帮助. 首先先介绍一下RANSAC算法(RANdom S

视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(1)

在目前实际的视觉SLAM中,闭环检测多采用DBOW2模型https://github.com/dorian3d/DBoW2,而bag of words 又运用了数据挖掘的K-means聚类算法,笔者只通过bag of words 模型用在图像处理中进行形象讲解,并没有涉及太多对SLAM的闭环检测的应用. 1.Bag-of-words模型简介 Bag-of-words模型是信息检索领域常用的文档表示方法.在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法.句法等要素,将其仅仅看作是若

视觉SLAM中的数学基础 第三篇 李群与李代数

视觉SLAM中的数学基础 第三篇 李群与李代数 前言 在SLAM中,除了表达3D旋转与位移之外,我们还要对它们进行估计,因为SLAM整个过程就是在不断地估计机器人的位姿与地图.为了做这件事,需要对变换矩阵进行插值.求导.迭代等操作.例如,在经典ICP问题中,给定了两组3D点,我们要计算它们之间的变换矩阵.假设第一组的3D点为$\mathbf{P}=\{ \mathbf{p}_i | i = [1,2, \ldots, N] \}$,第二组3D点为$\mathbf{Q}=\{ \mathbf{q}

视觉SLAM中的数学基础 第二篇 四元数

视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM公开数据集.g2o等程序都使用四元数记录机器人的姿态.因此,理解四元数的含义与用法,对学习SLAM来说是必须的.本节我们就来讲讲四元数. 首先,请读者不要对四元数有什么神秘的感觉.四元数仅是3D姿态的一种表达方式,我们用一个单位四元数表达原本用旋转矩阵表示的三维旋转.这样做一个直接的好处是省空间.一

经典视觉SLAM框架

引言:通过前面的推送我们已经对SLAM有了个大体的认识.(初识视觉SLAM)下面来看经典的视觉SLAM框架,了解一下视觉SLAM究竟由哪几个模块组成.本文选自<视觉SLAM十四讲:从理论到实践>. 整体视觉SLAM流程图. 整个视觉SLAM流程包括以下步骤. 传感器信息读取.在视觉SLAM中主要为相机图像信息的读取和预处理.如果是在机器人中,还可能有码盘.惯性传感器等信息的读取和同步. 视觉里程计(Visual Odometry,VO).视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图

浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/slambook 第二讲:初识SLAM 2.4.2 Hello SLAM(书本P27) 1.从github上下载源码,并解压 Ubuntu上,解压zip,先找到zip文件所在位置,然后运行下面代码,进行解压. unzip slambook-master.zip 解压后,找到ch2文件夹,在文件夹中找到helloSLAM.cpp文件 运行cpp文件 g++ helloSLAM.cpp 如未安

初识视觉SLAM:用相机解决定位和建图问题

引言:视觉SLAM 是指用相机解决定位和建图问题.本文以一个小机器人为例形象地介绍了视觉SLAM的功能及特点.本文选自<视觉SLAM十四讲:从理论到实践>. SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作"同时定位与地图构建".它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动.如果这里的传感器主要为相机,那就称为"视觉SLAM". 假设我们组装

视觉SLAM实战(一):RGB-D SLAM V2

写在前面 首先打个广告.SLAM研究者交流QQ群:254787961.欢迎各路大神和小白前来交流. 看了前面三篇博文之后,是不是有同学要问:博主你扯了那么多有用没用的东西,能不能再给力一点,拿出一个我们能实际上手玩玩的东西啊?没错,接下来我们就带着大家,实际地跑一下视觉SLAM里的那些经典程序,给大家一个直观的印象——因此博文就叫"视觉SLAM实战"啦.这些程序包括: RGBD SLAM V2 SVO KinectFusion Orb-SLAM 如果你有什么建议,可以发我的邮件或来群里