SLAM技术在自动驾驶的应用

时间:2022-07-21
    定位在自动驾驶中占据着不可替代的地位,而且未来有着可期的发展。目前自动驾驶中的定位都是依赖RTK配合高精地图,这给自动驾驶的落地增加了不少成本与难度。试想一下人类开车,并非需要知道自己的全局高精定位及周围的详细环境,有一条全局导航路径并配合车辆在该路径上的位置,也就足够了,而这里牵涉到的,便是SLAM领域的关键技术。
    什么是SLAM

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

    SLAM早由Smith、Self和Cheeseman于1988年提出。由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。

    模拟人类来到一个陌生的环境时,为了迅速熟悉环境并完成自己的任务(比如找饭馆,找旅馆),这时应当依次做以下事情:


    a.用眼睛观察周围地标如建筑、大树、花坛等,并记住他们的特征(特征提取)
    b.在自己的脑海中,根据双目获得的信息,把特征地标在三维地图中重建出来(三维重建)
    c.当自己在行走时,不断获取新的特征地标,并且校正自己头脑中的地图模型(bundle adjustment or EKF)
    d.根据自己前一段时间行走获得的特征地标,确定自己的位置(trajectory)
    e.当无意中走了很长一段路的时候,和脑海中的以往地标进行匹配,看一看是否走回了原路(loop-closure detection)。实际这一步可有可无。
    以上五步是同时进行的,因此是Simultaneous Localization and Mapping。
    激光SLAM与视觉SLAM

    目前用在SLAM上的传感器主要分两大类,激光雷达和摄像头。激光雷达有单线多线之分,角分辨率及精度也各有千秋。


    而VSLAM则主要用摄像头来实现,摄像头品种繁多,主要分为单目、双目、单目结构光、双目结构光、ToF几大类。他们的都是获取RGB和depth map(深度信息)。

    由于受制成本的影响,视觉SLAM在近些年变得越来越流行,通过低成本的摄像头进行实时的建图与定位,这里面的技术难度也是非常之大。以ToF(Time of Flight),一种很有前景的深度获取方法为例。传感器发出经调制的近红外光,遇物体后反射,传感器通过计算光线发射和反射时间差或相位差,来换算被拍摄景物的距离,以产生深度信息。类似于雷达,或者想象一下蝙蝠,softkinetic的DS325采用的就是ToF方案(TI设计的)。但是它的接收器微观结构比较特殊,有2个或者更多快门,测ps级别的时间差,但它的单位像素尺寸通常在100um的尺寸,所以目前分辨率不高。


    在有了深度图之后呢,SLAM算法就开始工作了,由于Sensor和需求的不同,SLAM的呈现形式略有差异。大致可以分为激光SLAM(也分2D和3D)和视觉SLAM(也分Sparse、semiDense、Dense),但其主要思路大同小异。
    SLAM算法实现的要素
    SLAM技术非常实用,同时难度也相当大,在时刻需要定位的自动驾驶领域,想要完成SLAM落地也是困难重重。一般来说,SLAM算法在实现的时候主要考虑以下4个方面:
    1、地图表示问题,比如dense和sparse都是它的不同表达方式,这个需要根据实际场景需求去抉择
    2、信息感知问题,需要考虑如何全面的感知这个环境,RGBD摄像头FOV通常比较小,但激光雷达比较大
    3、数据关联问题,不同的sensor的数据类型、时间戳、坐标系表达方式各有不同,需要统一处理
    4、定位与构图问题,就是指怎么实现位姿估计和建模,这里面涉及到很多数学问题,物理模型建立,状态估计和优化
    其他的还有回环检测问题,探索问题(exploration),以及绑架问题(kidnapping)。
    目前比较流行的视觉SLAM框架主要包含前端和后端:
    前端:前端相当于VO(视觉里程计),研究帧与帧之间变换关系。
    首先提取每帧图像特征点,利用相邻帧图像,进行特征点匹配,然后利用RANSAC去除大噪声,然后进行匹配,得到一个pose信息(位置和姿态),同时可以利用IMU(Inertial measurement unit惯性测量单元)提供的姿态信息进行滤波融合后端则主要是对前端出结果进行优化,利用滤波理论(EKF、UKF、PF)、或者优化理论TORO、G2O进行树或者图的优化。终得到的位姿估计。
    后端:后端这边难点比较多,涉及到的数学知识也比较多,总的来说大家已经慢慢抛弃传统的滤波理论走向图优化去了。
    因为基于滤波的理论,滤波器稳度增长太快,这对于需要频繁求逆的EKF(扩展卡尔曼滤波器),PF压力很大。
    而基于图的SLAM,通常以keyframe(关键帧)为基础,建立多个节点和节点之间的相对变换关系,比如仿射变换矩阵,并不断地进行关键节点的维护,保证图的容量,在保证精度的同时,降低了计算量。
    SLAM未来在自动驾驶领域的应用
    Slam技术目前已经在多个领域都取得了不错的落地效果与成绩,包括室内的移动机器人,AR场景以及无人机等等。而在自动驾驶领域,SLAM技术却一直未得到太多的重视,一方面由于定位在目前的自动驾驶行业中大多通过RTK来解决,并不会投入过多的资源去进行深入的研究,另一方面也是由于目前技术还不成熟,在自动驾驶这种关乎生命的领域,任何一种新技术都得经过时间的检验才能被接受。
    在未来,随着传感器精度的逐渐提升,SLAM也会在自动驾驶领域大显身手,其成本的低昂性,性能的鲁棒性,都将为自动驾驶带来革命性的变化。而随着SLAM技术的逐渐火热,也将有越来越多的定位人才涌进自动驾驶领域,为自动驾驶注入新鲜血液,带来新的技术方向与研究领域。
上一篇:信号隔离和电源隔离的知识点解读
下一篇:开关电源的9项检测方法和判定标准

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料