SLAM学习报告


一、概述

SLAM(simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。问题可以描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边逐步描绘出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。

SLAM技术距今已有 30 余年的发展历史,但相比于深度学习、大数据等词汇,听过的人少之又少,国内从事相关研究的机构更是屈指可数。直至最近三年,SLAM才逐渐成为国内机器人和计算机视觉领域的热门研究方向,在当前比较热门的一些创业方向中崭露头角:

VR/AR 方面:根据 SLAM 得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感;

无人机领域:SLAM可以构建局部地图,辅助无人机进行自主避障、规划路径;

无人驾驶领域:SLAM 技术可以提供视觉里程计功能,然后跟其他的定位方式融合;

机器人定位导航领域,SLAM 可以用于生成环境的地图。基于这个地图,机器人执行路径规划、自主探索、导航等任务。

 

通过机器人的运动和测量来学习地图并不简单,这主要来自于以下几个原因:

1)一个未知环境中,所有可能的地图集合非常非常大。因为未知环境是连续的,所有可能的地图集合有无限的维度。即使考虑使用离散的环境作为近似,地图也至少会包含超过10000个变量。在如此高维空间中无法准确计算后验概率,因此使用传统的Bayes filtering 定位算法是不可行的。

2)学习地图是一个鸡生蛋,蛋生鸡的问题 首先,这是一个定位 (Localization) 的问题。当机器人在未知环境中运动时,每一次移动时的误差会在里程计算(Odometry)中逐渐累加,导致机器人对自己的位置越来越不确定。在一个已知地图里,我们有合适的算法来确定机器人的位置,但是在未知环境中,我们需要新的算法。 其次, 这也是一个绘制地图的问题。当机器人的位置是确定的时候,绘制地图会相对简单。但是机器人相对于探测点 (Landmark) 的位置也是不确定的时候,我们需要新的算法。在环境地图和机器人位置都缺失或不确定时,机器人需要同时完成两件事-学习地图和在地图中定位。

二、框架

SLAM是一个完整的系统,由许多个分支模块组成。现在经典的方案是图像前端,优化后端,闭环检测的三部曲。

优化后端理论上来说,如果图像前端模块估计的相机的旋转矩阵R和平移向量t都正确的话,我们就能得到完美的定位和建图了。但实际试验中,我们得到的数据往往有很多噪声,且由于传感器的精度、错误的匹配等,都对造成结果有误差。并且由于我们是只把新的一帧与前一个关键帧进行比较,当某一帧的结果有误差时,就会对后面的结果产生累计误差,最后的结果肯定误差越来越大。为了解决这个问题,引入后端优化。

优化后端一般采用捆集调整(BA)、卡尔曼滤波(EKF)、图优化等方式来解决。其中基于图优化的后端优化,效果最好。Graph-based SLAM一般使用g2o求解器,进行图优化计算。

闭环检测是说,新来一张图像时,如何判断它以前是否在图像序列中出现过?有两种思路:一是根据我们估计的机器人位置,看是否与以前某个位置邻近; 二是根据图像的外观,看它是否和以前关键帧相似。目前主流方法是后一种,因为很多科学家认为前一种依靠有噪声的位置来减少位置的噪声,有点循环论证的意思。后一种方法呢,本质上是个模式识别问题(非监督聚类,分类),常用的是Bag-of-Words (BOW)。但是BOW需要事先对字典进行训练,因此SLAM研究者仍在探讨有没有更合适的方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值