参考英文维基:https://en.wikipedia.org/wiki/Slam

参考文档:视觉slam研究分析的一点认识

1、 请简单描述您对机器人的SLAM的概念理解?

答: 机器人需要在自身位置不确定的条件下,在完全未知环境中创建地图, 同时利用地图进行自主定位和导航。这就是移动机器人的同时定位与地图创建(simultaneous localization and mapping (SLAM)  ) 问题。

算法上一般分为 相机定位跟踪 和 场景地图构建 两个高度相关的部分。场景地图构建是指 构建相机所在场景的三维地图;相机定位跟踪是指 利用相机自身姿态的估计值和通过传感器得到的观测值来确定相机在环境中的位置。

参考:SLAM:使用G2O-ORB-SLAM

2、 请描述常见的SLAM算法及原理?

答:常见的SLAM方法有单目SLAM方法和双目SLAM方法.

  单目SLAM方法用帧与帧之间的运动距离和运动角度来估算深度信息,传统的视觉SLAM方法多采用特征提取
匹配和数据关联的方式来完成。

根据单目SLAM方法在是否引入概率框架方面 划分为 基于概率框架的方法和基于非概率框架的方法。基于概率框架的方法把SLAM问题描述为滤波问题,代表方法有基于kalman滤波的方法、基于粒子滤波的方法等;  非概率框架的方法 主要方法为使用关键帧和稀疏绑定调整优化(BA),使用的数值优化方法 直观描述形式为图优化。

参考:SLAM:使用G2O-ORB-SLAM

3、 SLAM的常用概率解法有哪几类?分别有什么优缺点?

答:采用概率框架的方法的思路大致为:假设从初始时刻到当前 时刻的观测数据和控制输入已知,那么就可以联合后验概率来构建一个后验概率密度函数,这个函数用来描述相机姿态 和 地图中的特征的空间位置,进而通过递归的贝叶斯滤波算法 来对构建的概率密度函数进行估计,从而完成SLAM问题的解决。

在基于KF的方法中,假设满足高斯分布并且系统的非线性较小时可以得到不错的效果,另外从后验概率的不同可以分为EKF-SLAM方法、扩展信息滤波(EIF)方法、UKF-SLAM方法、SEIF方法等,例如,Davison等提出的单目视觉SLAM系统(MonoSLAM)和Roussillon[提出的实时单目视觉SLAM系统(RTSLAM)就是建立在扩展卡尔曼滤波(EKF)的基础上的。

再基于PF的方法中,主要有Doucet[7]提出的基于Rao-Blackwellized粒子滤波器(RBPF)的方法 和在此基础上Montemerlo[8]提出的 FastSLAM方法等,其中FastSLAM方法可以用于非线性的系统

优点: 基于概率框架的方法的计算框架类似,其中基于EKF的单目视觉,一般可以分为运动模型和观测模型并在HMM 的假设下可以实现系统状态的预测和观测更新。地图也可以在线更新。

缺点:但是这种方法多采用增量式的地图创建方法,故在系统不稳定和观测的不确定性的影响下造成误差的累积,在大规模场景时会导致最终地图的不一致性,难于保持准确度和鲁棒性。

4、 SLAM中回环检测(闭环检测)的目的是什么?简述一下SLAM中可以使用的回环检测方法?

答:参考维基:Loop closure :Loop closure is the problem of recognizing a previously-visited location and updates the beliefs accordingly. This can be a problem because model or algorithm errors can assign low priors
to the location. Typical loop closure methods apply a second algorithm to measure some type of sensor similarity, and re-set the location priors when a match is detected. For example, this can be done by storing and comparingbag
of words
vectors of SIFT features from each previously visited location.

回环检测/闭环检测 是一个 场景识别的问题,若slam完成闭环检测,则可以大大得减少检测误差。因此,SLAM中的闭环检测则是为了减少SLAM中的累积误差。

参考文章:SLAM系统研究点介绍

闭环检测一般使用词袋模型作为场景匹配方法。而作为一个场景识别问题,闭环检测可以看做是一个视觉系统的模式识别问题。所以可以使用各种机器学习的方法来做,比如什么决策树/SVM,也可以试试CNN方法。不过实际当中要求实时检测,没有那么多时间训练分类器。所以SLAM更侧重在线的学习方法。

在线的视觉机器学习方法有在线SVM和在线随机森林 等工具。

5、 SLAM算法中的机器人“绑架”问题是什么?可以用哪些方法解决这样的问题?

答:机器人的“绑架”问题是指在缺少它之前的位置信息情况下,去确定机器人的当前位姿,例如当机器人被安置在一个已经构建好地图的环境中,但是并不知道它在地图中的相对位置,或者在移动过程中,由于传感器的暂时性功能故障或相机的快速移动,都导致机器人先前的位置信息的丢失,就像人质的眼睛被蒙上黑布条,拉上集装箱被运送到了未知的地方,此时,人质就无法给自己定位了。

解决方案: 暂时没有详细考虑结果!!!

方案一:使用替代传感器,比如在 视觉机器人中 使用 惯导系统。

参考知乎文章:http://www.zhihu.com/question/29453727

三维重建:SLAM算法的考题总结的更多相关文章

  1. 三维重建7:Visual SLAM算法笔记

    VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...

  2. 转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势

    SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为“同步定位与地图构建”,它主要用于解决机器人在未知环境运动时的 ...

  3. [SLAM]Karto SLAM算法学习(草稿)

    Karto_slam算法是一个Graph based SLAM算法.包括前端和后端.关于代码要分成两块内容来看. 一类是OpenKarto项目,是最初的开源代码,包括算法的核心内容: https:// ...

  4. SLAM学习笔记(2)SLAM算法

    SLAM算法分为三类:Kalman滤波.概率滤波.图优化 Kalman滤波方法包括EKF.EIF:概率滤波包括RBPF,FastSLAM是RBPF滤波器最为成功的实例, 也是应用最为广泛的SLAM方法 ...

  5. 对比几种在ROS中常用的几种SLAM算法

    在此因为要总结写一个文档,所以查阅资料,将总结的内容记录下来,欢迎大家指正! 文章将介绍使用的基于机器人操作系统(ROS)框架工作的SLAM算法. 在ROS中提供的五种基于2D激光的SLAM算法分别是 ...

  6. SLAM概念学习之随机SLAM算法

    这一节,在熟悉了Featue maps相关概念之后,我们将开始学习基于EKF的特征图SLAM算法. 1. 机器人,图和增强的状态向量 随机SLAM算法一般存储机器人位姿和图中的地标在单个状态向量中,然 ...

  7. 视觉SLAM算法框架解析(1) PTAM

    版权声明:本文为博主原创文章,未经博主允许不得转载. 本系列文章旨在总结主流视觉SLAM算法的框架,对比各个算法在子模块的差异,最终提炼出融合各个算法优点的架构. PTAM[1]是视觉SLAM领域里程 ...

  8. 2D激光SLAM算法比较+cartographer

    Hector slam: Hector slam利用高斯牛顿方法解决scan-matching问题,对传感器要求较高. 缺点:需要雷达(LRS)的更新频率较高,测量噪声小.所以在制图过程中,需要rob ...

  9. SLAM算法中提取特征总结

    我们要知道三维空间中的点在图像中的位置,就需要提取特征与特征匹配了. 1.检测特征点 2.计算描述子 3.特征匹配 1.检测特征点 我们用到的检测特征点的方法是FAST算法,最大的特点就是快! 算法原 ...

随机推荐

  1. Codeforces Round #417 (Div. 2)——ABCE

    题目链接 题面有点长需耐心读题. A.一个人行道上的人被撞有4种情况 1.所在车道有车驶出 2.右边车道有左转车 3.左边车道有右转车 4.对面车道有直行车 #include <bits/std ...

  2. C# WPF 窗体传递消息

    对于存在窗体的WPF程序(或者说,起码在任务栏上有个图标,即ShowInTaskbar = true),互相传递消息是很容易的. 步骤: 1,寻找窗体的句柄 2,运用windows API: Send ...

  3. 洛谷 1373 dp 小a和uim之大逃离 良心题解

    洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...

  4. hiho challenge 15 C题

    DP题.状态很容易设,dp[u][0]表示u点子树解决,dp[u][1]表示剩一条链,dp[u][2]表示邻边全炸. 转移有点难,看代码解释: #include <iostream> #i ...

  5. Java 两个整数相除保留两位小数,将小数转化为百分数

    Java 两个整数相除保留两位小数,将小数转化为百分数 源于:http://blog.sina.com.cn/s/blog_624d755d0101cvuq.html 后来学习了:http://blo ...

  6. java代理使用 apache ant实现文件压缩/解压缩

    [背景] 近日在研究web邮件下载功能,下载的邮件能够导入foxmail邮件client.可是批量下载邮件还需将邮件打成一个压缩包. 从网上搜索通过java实现文件压缩.解压缩有非常多现成的样例. [ ...

  7. MySql免安装版l配置方法

    初次接触mysql,折腾了一天,总是安装不成功,服务启动不了.后来从官网下载了ZIP Archive版,不用安装,直接把它解压到磁盘,做一些简单的配置就可以. 软件下载地址:http://dev.my ...

  8. rnnlm源代码分析(八)

    系列前言 參考文献: RNNLM - Recurrent Neural Network  Language Modeling Toolkit(点此阅读) Recurrent neural networ ...

  9. 《Effective C++ 》学习笔记——条款12

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  10. kafka备份机制——zk选举leader,leader在broker里负责备份

    Kafka架构 如上图所示,一个典型的kafka集群中包含若干producer(可以是web前端产生的page view,或者是服务器日志,系统CPU.memory等),若干broker(Kafka支 ...