当前位置: 首页 > 科技观察

本文讲述SLAM技术在自动驾驶中的应用

时间:2023-03-16 15:44:09 科技观察

定位在自动驾驶中占有不可替代的地位,未来发展前景广阔。目前,自动驾驶中的定位依赖于RTK和高精度地图,这给自动驾驶的实现增加了很多成本和难度。试想一下,人类在开车时不需要知道自己的全球高精度定位和周围的详细环境。拥有全局导航路径并匹配车辆在路径上的位置就足够了。这里涉及到的是SLAM领域的关键技术。什么是SLAMSLAM(SimultaneousLocalizationandMapping),又称为CML(ConcurrentMappingandLocalization),实时定位与建图,或并发建图与定位。问题可以描述为:把机器人放到未知环境的未知位置,有没有办法让机器人一步步画出完整的环境地图,同时决定机器人应该往哪个方向走.比如扫地机器人就是一个非常典型的SLAM问题。所谓完整地图(consistentmap)就是指可以毫无障碍地走到房间的每一个角落。SLAM于1988年由Smith、Self和Cheeseman首先提出,由于其重要的理论和应用价值,被许多学者认为是实现真正完全自主移动机器人的关键。当模拟人来到一个陌生的环境时,为了快速熟悉环境并完成自己的任务(比如找饭店、找旅馆),此时需要依次做以下事情:用眼睛观察周围的地标,如建筑物、树木、花坛等,并记住它们的特征(特征提取)b.在自己的脑海中,根据双筒望远镜获得的信息,重建3D地图中的特征地标(3D重建)c.行走时,不断获取新的特征地标,修正脑海中的地图模型(bundleadjustmentorEKF)d.根据前段时间行走得到的特征地标确定自己的位置(轨迹)e.当无意间走了很长一段路的时候,将其与脑海中之前的路标进行匹配,看看是否回到了原路(闭环检测)。实际上这一步是可选的。以上五个步骤是同时进行的,所以是SimultaneousLocalizationandMapping。激光SLAM和视觉SLAM目前SLAM中使用的传感器主要分为两类,激光雷达和摄像头。激光雷达分为单线和多线,其角分辨率和精度也各有优势。VSLAM主要是用相机实现的。摄像头的种类很多,主要分为单目、双目、单目结构光、双目结构光、ToF。它们的核心是获取RGB和深度图(深度信息)。由于控制成本的影响,近年来视觉SLAM越来越流行。通过低成本摄像头进行实时测绘定位,技术难度也很大。以ToF(飞行时间)这种有前途的深度获取方法为例。传感器发射调制的近红外光,并在遇到物体时将其反射。传感器通过计算光发射和反射的时间差或相位差,换算出被摄景物的距离,从而产生深度信息。类似于雷达,或者想象成蝙蝠,softkinetic的DS325使用ToF解决方案(由TI设计)。但其接收器具有特殊的微结构,有2个或更多的快门,测量ps级的时间差,但其单位像素尺寸通常为100um,因此目前的分辨率并不高。有了深度图之后,SLAM算法就开始发挥作用了。由于Sensor和需求的不同,SLAM的呈现形式也略有不同。大致可以分为激光SLAM(也分为2D和3D)和视觉SLAM(也分为Sparse、semiDense、Dense),但主要思想是相似的。ElementsofSLAMAlgorithmImplementationSLAM技术非常实用,但也相当困难。在需要时刻精准定位的自动驾驶领域,SLAM的实现也很难完成。一般来说,SLAM算法在实现时主要考虑以下四个方面:1.地图表示问题,稠密和稀疏等是其不同的表达方式,需要根据实际场景需求来选择;2.信息感知问题,需要考虑如何综合感知这个环境。RGBD相机FOV通常比较小,而激光雷达比较大;3、数据关联问题,不同的传感器有不同的数据类型、时间戳、坐标系表达式,需要统一处理;4.定位与构图问题是指如何实现位姿估计与建模,涉及到很多数学问题、物理模型建立、状态估计与优化;其他问题包括循环检测问题、探索问题(exploration)和绑架问题。目前流行的视觉SLAM框架主要包括前端和后端:前端前端相当于VO(visualodometer),研究帧与帧之间的转换关系。首先提取每帧图像的特征点,利用相邻帧图像进行特征点匹配,然后利用RANSAC去除较大的噪声,再进行匹配得到一个位姿信息(位置和姿态)。同时可以使用IMU(Inertialmeasurementunit惯性测量单元)对前端提供的姿态信息进行过滤融合,后端主要是对前端的结果进行优化,利用过滤理论(EKF,UKF,PF),或优化理论TORO,G2O来优化树或图。最后,获得最优姿态估计。后台和后端的难点很多,涉及到的数学知识也比较多。总的来说,大家已经逐渐抛弃了传统的过滤理论,走向了图优化。因为根据滤波理论,滤波稳定性增加太快,对于需要频繁反演的EKF(ExtendedKalmanFilter)PF来说压力很大。基于图的SLAM通常以关键帧(keyframes)为基础建立多个节点以及节点之间的相对变换关系,例如仿射变换矩阵,并持续维护关键节点以保证图的容量。在保证准确性的同时,减少了计算量。未来SLAM在自动驾驶领域的应用Slam技术在室内移动机器人、AR场景、无人机等多个领域都取得了不错的效果和成果。在自动驾驶领域,SLAM技术并没有受到太多关注。一方面,由于目前自动驾驶行业的定位,大部分都是通过RTK来解决,不会投入过多的资源进行深入研究。另一方面,一方面也是因为现在的技术还不成熟。在自动驾驶这个与生活相关的领域,任何新技术都必须经过时间的考验才能被接受。未来,随着传感器精度的逐步提升,SLAM也将在自动驾驶领域大显身手。其低成本和强劲的性能将为自动驾驶带来革命性的变化。随着SLAM技术的逐渐普及,将会有越来越多的定位人才涌入自动驾驶领域,为自动驾驶注入新鲜血液,带来新的技术方向和研究领域。