SLAM技术在自动驾驶的应用

  • 2022/07/20

定位在自动驾驶中占据着不可替代的地位,而且未来有着可期的发展。目前自动驾驶中的定位都是依赖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技术的逐渐火热,也将有越来越多的定位人才涌进自动驾驶领域,为自动驾驶注入新鲜血液,带来新的技术方向与研究领域。

参考资料:

[1] https://blog.csdn.net/u010632165/article/details/119426739

人工客服
(售后/吐槽/合作/交友)

相关资讯

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8.
  9. 9.
  10. 10.
  11. 11.
  12. 12.
  13. 13.
  14. 14.
  15. 15.
  16. 16.
  17. 17.
  18. 18.
  19. 19.
  20. 20.
查看全部20条内容