• 从零开始一起学习SLAM | SLAM有什么用?


    SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻译为:同时定位与建图、同时定位与地图构建。

    「同时定位与地图构建」这几个词,乍一听起来非常拗口,为了不在一开始就吓跑读者,我们先不对其进行专业的解释,用一个日常生活中形象的例子来进行说明。

    初 步 认 识 S L A M

    我们知道现在有不少家用的扫地机器人,可以代替人对室内进行自动清扫。早期的扫地机器人并不智能,它只是具有简单的避障功能,在室内随机游走,遇到障碍物就转弯,这样会导致有很多地方会漏掉,扫地效率非常低。

    而现在随着SLAM技术在扫地机器人中的应用,现在的扫地机器人已经变的非常智能,可以通过自身的传感器对室内进行扫描建图,根据当前的定位进行Z字形规划清扫,还能实现自动回充、断点续扫等高级功能。

    根据前面介绍,我们总结一下,要想真正实现智能的清扫,扫地机器人至少需要知道以下几件事情:

    1、我在哪里?也就是扫地机器人在工作过程中要知道自己在房间的具体位置。对应的术语叫:定位(Localization)

    2、我周围的环境是什么样子?也就是扫地机器人需要知道整个房间的地面结构信息。对应的术语叫:建图(Mapping)

    3、我怎样到达指定地点(充电器)?当扫地机器人电量不足时,如何以最短的路径到达充电器所在位置进行自动充电。对应的术语叫:路径规划(Route Planning)。


    有了以上的几个能力,扫地机器人就变的非常智能了,不再像无头苍蝇一样在室内乱跑,而是可以从任意位置出发,按照建立好的地图进行规划清扫。当然房间里的物品摆放也会发生变化,所以扫地机器人每次清扫也会根据当前的定位及扫描情况,在建好的地图基础上对进行更新。随着使用时间的增长,扫地机器人建立的地图会越来越准确,规划的清扫路线越来越高效,变的越来越智能。

    看明白了上面的例子,我们给出SLAM的定义。**SLAM是指当某种移动设备(如机器人、无人机、手机等)从一个未知环境里的未知地点出发,在运动过程中通过传感器(如激光雷达、摄像头等)观测定位自身位置、姿态、运动轨迹,再根据自身位置进行增量式的地图构建,从而达到同时定位和地图构建的目的。**定位和建图是两个相辅相成的过程,地图可以提供更好的定位,而定位也可以进一步扩建地图。需要说明的是,上述扫地机器人例子中,定位和建图是SLAM的基本要求,而路径规划是在此基础上的高级功能,不属于SLAM的讨论范畴。

    S L A M 的 应 用

    SLAM所使用的传感器主要分为激光雷达和视觉两大类。在SLAM研究史上,早期SLAM研究几乎全使用激光雷达作为传感器,其优点是精度高,解决方案相对成熟。但是缺点也非常明显,比如价格贵、体积大,信息少不够直观等。

    视觉SLAM就是用摄像头作为主传感器,用拍摄的视频流作为输入来实现同时定位与建图。视觉SLAM广泛应用于AR、自动驾驶、智能机器人、无人机等前沿领域。我们知道SLAM的两大核心:定位和建图。下面分别进行说明。

    1、定位相关应用
    SLAM在自动驾驶中最主要的功能就是更加精确的确定汽车自身的位置(当然建图也很重要)。说到这里,很多人会有疑问:现在手机上的百度/高德/腾讯等地图类App就可以定位,为什么还需要SLAM来定位呢?

    原因是这样的:目前地图类App在室外定位、导航方面确实做的很不错,而且衍生出很多基于地理位置的游戏、社交、生活类应用。不过现在的定位系统仍然存在以下两个主要问题。

    1、地图类App背后使用的是GPS技术,但民用GPS最多也就达到几米的定位精度,驾车的读者应该深有体会:这些地图类App导航时并不知道当前车辆在哪个车道上。

    2、GPS只能在室外使用。而在建筑物内、洞穴、海底等很多地方,GPS会失效。而往往这些地方对于定位的需求很强烈,要想解决GPS失效区域的定位,目前最有效的就是SLAM技术。

    如下图所示是著名开源算法ORB-SLAM2使用架设在汽车上的摄像头进行定位的结果。从图中不难看出,算法非常清晰的展现了汽车当前所在的车道。


    同样的,对于室内使用的自主移动机器人来说,定位也完全依赖SLAM技术。如下图是单目SLAM的过程。此外像京东,阿里这种大型的电商已经在自己的仓库配备了仓储机器人,也称AGV(Automated Guided Vehicle),可以根据建立的地图确定自身的位置,然后根据任务需求进行路径规划来搬运货物。


    2、建图相关应用
    比如使用手机上的单目摄像头可以对物体进行扫描,生成对应的三维模型。这称为小尺度下的三维建模。当然,也可以对较大尺度的场景进行三维重建,比如下图下就是Google project tango利用鱼眼摄像头对室外的大场景进行的三维重建。

    最近几年,随着消费级RGB-D相机的普及,室内场景的三维重建也是一个非常热门的方向。利用重建的结果可以实现很多 功能,比如室内移动机器人可以根据重建结果判断障碍物距离、识别理解环境,进行导航;比如可以根据重建结果在家里玩增强现实游戏;还可以将二维图片和重建结果进行融合实现三维漫游等。


    讨论
    SFM(structure from motion)是一种和SLAM非常类似的算法,关于SFM和SLAM的异同,下面说法错误的是?

    A. SFM和SLAM基本讨论的是同一问题,不过SFM最早来自计算机视觉领域,而SLAM则是来自于机器人领域。SFM的structure对应SLAM的mapping,SFM的camera pose对应SLAM的location。

    B. SFM一般是离线处理,而SLAM更强调实时性,一般在线处理。

    C. SFM处理的图片一般没有要求,可以是不同时间不同相机拍摄的同一个场景,而SLAM一般要求是同一相机拍摄的序列图像或连续视频。

    D. 目前SFM主要是要完成3D reconstuction,而SLAM主

    要是要完成localization。

    E. SFM通常使用摄像机作为传感器,而SLAM在传感器选择方面,除了摄像机,通常还包括惯导、激光雷达等传感器。

    F. 如果想要快速对自由女神像进行3D重建,在没有特殊硬件的情况下,最好的方式是选择SLAM。

    欢迎留言讨论,或者进入知识星球「从零开始学习SLAM」(菜单栏回复 “星球” 了解详情)一起学习交流~

    相关阅读

    从零开始一起学习SLAM | 为什么要学SLAM?

    从零开始一起学习SLAM | 学习SLAM到底需要学什么?

    零基础小白,如何入门计算机视觉?
    原文链接:从零开始一起学习SLAM | SLAM有什么用?
    ---------------------
    作者:electech6
    来源:CSDN
    原文:https://blog.csdn.net/electech6/article/details/83065386
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    读书笔记7
    读书笔记5
    读书笔记6
    读书笔记4
    读书笔记2
    读书笔记3
    读书笔记1
    嵌入式linux的调试技术
    硬件抽象层:HAL
    蜂鸣器驱动
  • 原文地址:https://www.cnblogs.com/CV-life/p/10040746.html
Copyright © 2020-2023  润新知