自动驾驶:高精地图

什么是高精地图

区分两个概念:

  • HD Map, 即high definitin map,高分辨率地图
  • HDA Map,即Highly automated driving map,高度自动驾驶地图

导航地图

平时手机上用的高德地图,百度地图等等就属于这一类

  • 它的表述形式倾向“有向图”结构,把道路抽象成一条条的边,各边连通关系构成整体上的有向图。例如就画一下道路的拓扑,道路上有几条线,实线还是虚线,具体处在道路的多少m处都不知道。
  • 导航地图只是给驾驶员提方向性的引导。识别标志标牌、入口复杂情况、行人等都是由驾驶员来完成,地图只是引导作用。导航地图是根据人的行为习惯来设计的。反正是给人用的,人能够很容易的把抽象的信息和实际场景匹配起来,进而确定当前位置。
    在这里插入图片描述

HD Map

  • 然而对于机器来讲,看似很简单的逻辑分析却往往难以实现。于是需要把地图信息用机器可以做运算的数据形式进行量化。于是可以应用于低阶辅助驾驶的ADAS Map应运而生,它里面包括了更多的信息,例如当前位置在当前路径的多少m处,当前路径多少m处的限速是多少,车辆前方多远处会有道路分叉和汇入道路,各段道路的曲率是多少等等,给辅助驾驶的关键控制逻辑提供一些必要的输入,例如在哪变道,何时变道等。

  • 随着自动驾驶等级的提高,对地图信息的要求也越来越高,于是HD Map就出现了,它几乎可以提供几乎所有的道路信息,例如车道线位置,种类,颜色;交通信号灯位置及朝向,道路维修区域等等。

高精地图完全为机器设计的

下图右边是比较典型的复杂路口,包括人行横道、红绿灯、限速标牌、车道左转右转类型。

  • 我们可以看到图中的路口中间有虚拟的连接线。真实道路中不存在连接线。连接线是为了让车辆更好的去理解环境,并在高精地图上表示出来。
  • 通过这一步,在人类构建的交通设施环境下,自动驾驶车辆便能运行。

在这里插入图片描述

现阶段的高精度地图更多地被定义为:服务于无人驾驶驾驶的地图。相比于传统地图的“定性”描述来说,高精度地图是一种“定量”的描述。

  • 以坡度为例,传统地图能提供的仅仅是前方有上(下)坡这个信息,但无法提供上(下)坡的角度;
  • 以弯道为例,传统地图提供的仅仅是前方有个比较“急”的弯道,但无法提供弯道的曲率半径;
  • 以路口为例,传统地图提供的仅仅是前方路口有红绿灯这个信息,并不知道红绿灯的具体位置在哪。

高精度地图

  • 它提供了极高的精度:可以提供传统地图提供不了的精确数据,这就是高精度地图的“定量”描述。
    • 这些定量描述对人类驾驶员驾驶汽车来说没有多大帮助,因为人类是高度智能化的个体,拥有极高的图像识别、信息联想和学习能力
    • 而这些能力这是目前无人驾驶“大脑”所不具备的。为了弥补无人驾驶“大脑”还不够聪明的缺陷,高精度地图挺身而出。
  • 它在描述上更加全面
    • 高精地图最主要的特征是需要描述车道、车道的边界线、道路上各种交通设施和人行横道
  • 对实时性的高清更高
    • 实时性是非常关键的指标,因为自动驾驶完全依赖于车辆对于周围环境的处理,如果实时性达不到要求,可能在车辆行驶过程中会有各种各样的问题及危险。

高精地图的组成

高精地图可以作为自动驾驶的「大脑」。「大脑」里面最主要是地图、感知、定位、预测、规划、安全。综合处理成自动驾驶车辆能接受的外部信息,并统一运行在实时的操作系统上。

  • 车上配备的传感器类似于人的感知系统,用来感知外部环境;自动驾驶车辆会把感知的结果通过「大脑」处理后发送给控制系统。
  • HMI人机交互接口前期主要用于内部调试,后期当自动驾驶车辆量产后,需要用户输入目的地等信息。
  • 因此,高精地图对于感知、定位、规划、决策、仿真和安全都是不可缺少的。

ROS是业界普遍接受的实时操作系统,百度内部也在研发自己的操作系统。

  • 在2019CES的Apollo 3.5发布会上,Apollo正式发布首个自动驾驶高性能开源计算框架 Cyber RT。
  • Apollo Cyber RT系统是 Apollo 开源软件平台层的一部分,作为运行时计算框架,处于实时操作系统 (RTOS) 和应用模块之间。
  • Apollo Cyber RT作为基础平台,支持流畅高效的运行所有应用模块。

在这里插入图片描述

高精地图与其他模块的关系

SAE将自动驾驶分成六个等级, 在SAE的六等级分类方法中,L0级别是人类驾驶,L1到L3级别是辅助驾驶,L3以上是自动驾驶。

L3级别以下不需要高精地图,但在L3、L4级别,高精地图是标配。L5之上是否需要高精地图还不确定

高精地图与定位模块的关系

正如拼图游戏那样,首先无人驾驶车辆需要进行自定位,弄清楚其在地图上的确切位置。高精地图里面由定位提供的Feature有很多,例如电线杆、车道线、停止线和人行横道等都能提供很多的约束信息。

  • Feature提取,车辆各类传感器收集的数据,如摄像机图像处理数据、激光雷达三维点云数据进行Feature提取,用于查找地标。
  • 与高精地图进行特征匹配得到精确结果。
    • 预处理,筛选走不准确的或质量差的数据。
    • 坐标转换,将来自不同视角的数据转换为统一的坐标系。
    • 数据融合,将来自各种车辆和传感器的数据合并。

详解

在这里插入图片描述

现在主流的自动驾驶的定位方案有两种:一种是基于点云,另一种是基于Camera。其本身都是一种对周围环境的感知。

  • 感知后是Feature提取,提取之后可以通过特征匹配最终得到精确结果。
  • 自动驾驶车辆在路口“看”到建筑物,然后通过激光雷达能搜到点云的信息,通过点云的特征提取,然后通过复杂的组合变换、视角变换,最终通过跟周围环境的比对能得到比较准确的定位坐标。
  • 目前主流Camera定位的视觉方案,会实时做Location Feature的提取。在HDMap里面也存储了对应的一些Location相关的特征。经过两个提取特征的比较后可以得到相对准确的定位位置信息。
  • Camera下有GNSS,雷达也有。有初值之后可以减少搜索的范围,在工程上可以搜到更好的结果。

在这里插入图片描述
左侧「路边的特征」图片是我们利用粒子滤波提取路边特征的演示。

  • 车辆在初始位置时,Camera可以观测到在它左边有一棵树。这棵树可能是高精地图的Feature,通过Feature我们知道车辆可能的位置。

  • 下一刻,Camera观测到它右边又有一棵树。通过这两个Feature的比对,再通过概率性叠加计算,几次迭代后就可以大概确定车辆所在道路的位置。

  • 道路上的Feature是非常多的,除了树以外,也可能是车道线。

右侧「道路车道线」图片是基于车道线的匹配情况演示。通过Camera、Deep Learning和实时的检测模块,系统能够实时地检测到车道线。

  • 从右图可以看出左边的车道线匹配情况不太好,右边的车道线匹配比较好
  • 这时候能大概的确定我们在右边车道线对应的相关位置。

高精地图与感知模块的关系

自动驾驶车辆搭载的传感器类型有很多。但64线激光雷达、Camera和Radar等传感器都有一定局限性

  • 64线激光雷达号称有一百米的检测距离。但实践中超过60米之后,点云本身已非常稀疏,60米外检测的可信度会继续下降。
  • 自动驾驶车辆在行驶中如果遭遇洒水车,或者碰到雾霾天气,对激光雷达的检测可信度也会有很大影响。
  • Camera的局限更大,在夜间、逆光的情况下很难达到非常好的视觉效果。
  • Radar的穿透能力很强,但精度不高。

所以基于这些传感器本身的局限性,高精地图能够提供非常大的帮助

  • 开发者可以把高精地图看作是离线的传感器,在高精地图里,道路元素的位置都被标注好了。
  • 出现物体的遮挡时,感知模块就可以提前做针对性的检测(感兴趣区域ROI),不仅可以减少感知模块的工作量,而且可以解决Deep Learning 的部分缺陷。识别可能会有些误差,但先验之后可提高识别率。

高精地图与规划、预测、决策模块的关系

规划、预测和决策也是自动驾驶里非常重要的模块。

  • 规划模块:
    • 在Apollo源码里有Planning的模块,是用来专门研究规划的。它完成的工作主要有两个:
      • 第一是A点到B点的长距离规划;
      • 第二个是短距离规划。
        • 自动驾驶车辆在行驶过程中面临动态环境。其中包括道路交通的参与者,比如其他车辆和行人。我们要根据障碍物的实时位置及时地做局部规划。
    • 高精地图的规划是Lean级别的,传统导航只需知道点到点的信息。对于高精地图而言,规划需要知道从哪个Lean到哪个Lean,是一系列Lean的序列。
    • 在轨迹约束中,经高精地图运算后,自动驾驶车辆避让时会清楚地知道目的地在哪/怎么选,并提供可行的解空间。
  • 预测模块:作用是把其他道路参与者的可能行驶的路径轨迹和行动预测出来。
    • 预测的体系比较复杂,但底层仍依赖于高精地图。
    • 例如,自动驾驶车辆「看到」其他车辆在左转车道上,系统会预测此车辆很大概率上要左转;若是「看到」其他车辆在右转车道上,系统会预测此车辆很大概率上要右转;「看到」行人在人行横道上,这时候红绿灯是绿的,系统则预测行人要过马路。
  • 决策模块: 它主要是根据规划和预测的结果决定自动驾驶车辆是跟车、超车还是在红绿灯灯前停下等决策。
    • 高精地图能够提供先验的知识,让车辆决策更加准确。
  • 控制模块:把决策结果分解为一系列的控制行动,然后分发给控制模块执行。
    • 高精地图给规划、预测和决策模块提供先验的知识,高精地图能够让车辆「决策」更加准确。

从以上分析可以看到,规划、预测、决策和控制的每个步骤都与高精地图有密切的关系。

在这里插入图片描述

高精地图与安全模块的关系

自动驾驶的主要目标是能够取代人类司机,能够取代的前提是自动驾驶车辆必须足够的安全。而自动驾驶车辆联网后,遭受攻击无可避免

自动驾驶车辆可能遭受4个维度的攻击:传感器、操作系统、控制系统和通信系统。

  • 传感器是自动驾驶车辆辆上通用的模块,相当于IMU惯性测量单元,它对于磁场是非常敏感,如果我们在车辆周围放一些强磁场,会影响它测量的准确度。
  • 轮速器也有风险。车轮变形和损坏都会影响测量精度。
  • 激光雷达依赖于激光反射。如果我们在周围环境上加载人工的反射物或假的红绿灯,就会让我们的车直接停下。假的GPS信号和激光也会对系统造成干扰。
  • 定位模块依赖于高精地图提供的信息来做运动学的约束;激光雷达依赖高精地图做一些三维点的扫描。
  • Apollo提供的定位方案基于激光雷达反射值。反射值不准确就会对定位精度有影响,红绿灯对规划决策控制也有很大的影响。

针对任何一种攻击,目前来说,还很难有全面有效的方法来防止问题发生。

高精地图能在这里面起什么作用?高精地图能提供离线的标准信息。比如说,激光雷达在场景中扫描到物体,通过与高精地图中的信息进行对比匹配。如果结果不一致,我们可以大概率地认为此地有问题,这就是通过多传感器的融合来解决安全问题。

高精地图与仿真系统的关系

实际情况中,开发者很难把所有的策略迭代都放在车上去测试,所以需要非常强大的仿真系统。

仿真的主要问题是「真实」,怎样做到「真实」?

  • Apollo的仿真系统主要是基于高精地图/真实场景来构建。仿真场景回放后,和真实上路的实际情况相比,可以基本保证Gap不会很大。
  • 在实际测试的过程中,Apollo的测试人员也会录一些Bag,记录实测中遇到的一些问题,并放到仿真系统里去做测试。
  • 高精地图为仿真地图提供了最底层的基础结构,能让仿真系统更好的去模拟真实道路的场景。

没有高精地图的高可靠性,L3/L4自动驾驶无法落地。

高精地图的作用

静态的perception

高精地图是静态的Perception。机器理解不了,我们可以把人理解的经验赋予给驾驶系统,相当于把人的经验传授给它。

弥补系统性缺陷

自动驾驶需要非常复杂的计算系统,4G的传输速度并不能满足现阶段自动驾驶的海量数据传输需求。

  • 64线激光雷达、Camera和其他传感器,每时每刻都会产生巨量的数据,这些数据不能传回云端,就不能采用互联网的模式:通过云端计算把结果发送给终端。
  • 5G是否能达到数据传输的要求还需要再验证。目前从5G的宣传层面来看,能够达到数据实时传输的效果,但是5G的普及还需要时间。所以我们现在把大量的数据都放在终端。
  • Apollo的自动驾驶车辆后面有非常大的计算单元。基于英特尔工控机,Apollo把所有的计算都放在车上,这会对计算速度和实时性有很大的影响。

我们希望Apollo的各模块都能达到实时级的响应,但是自动驾驶车辆的计算量太大,想要达到实时级的响应,仍需其他模块的辅助。

举个例子,高精地图告诉感知/控制模块,在你的双向通行的车道中有栅栏隔离,对向车道的车不可能过来,系统就可以放弃检测对向车道上的障碍物,有效地降低系统负担。

传感器有局限,但高精地图给自动驾驶提供了超视觉、超过传感器边界的远距离感知

高精地图的采集与生成

采集过程需要用到的传感器

各式各样传感器和算法相结合,自动驾驶汽车才能生成可用的高精地图。

因此, 高精地图的采集与生产 是一系列非常复杂的行为。

高精地图采集所需要的传感器主要有 GPS 、 IMU 、 轮速计 三类。

GPS

空间点位置的计算原理 (通过GPS)

  • 空间点位置是一个「三维坐标」,TA有「三个变量」,需要「三个方程」。
  • 从理论上来说,如何才能得到空间点位置相关的三个方程?
  • 通过观测三颗卫星与空间点位置的距离,利用三角测量法,就可以准确地得到地球上任何一点的空间位置。
  • 但三颗卫星的测量方案在实际应用中,可能会存在「误差」。
  • 因此,在空间点位置的计算过程中,我们经常要检测四颗或四颗以上卫星,才能实现「精确的定位」。

举例来说,在高速路等非常空旷的地方时,自动驾驶汽车所能接收到的GPS的信号非常好。不需要复杂的策略,就能得到很好的定位结果。因此,空旷地带的GPS精确、好用 。这就是为什么很多公司刚进入自动驾驶领域研发时,都会选择「高速路线」的原因。

而在城市道路环境下,GPS将会非常难用。

  • 这是由于高楼等障碍物遮挡,导致自动驾驶汽车所能接收到的GPS信号发生偏移。一般来说,GPS在城市中定位的「平均偏差」在50米左右。

众所周知,在城市复杂道路中,自动驾驶车辆上搭载的GPS偏差0.5米,所造成的事故后果都是不可估量的,更不用说如此大的偏差了。

IMU

目前 IMU (惯性测量单元)是自动驾驶汽车的标配。

  • IMU是测量三轴加速度的一个装置,通过算出积分,得到任意两帧间的相对运动。
  • IMU有「高端」和「低端」之分。高端IMU能保持较长时间的计算精确度,而低端IMU在GPS信号丢失的情况下,能够维持比较精确的时间非常短。
  • 实际工作中,由于不可避免的各种干扰因素, 如果不对该运动加以校正,IMU的误差会就随着时间的推移变得越来越大 。

轮速器

轮速计 本身存在缺陷。

  • 目前,轮速计的使用非常普遍,很多汽车都配备了轮速计。
  • 在现代汽车技术的应用中,轮速计被用来做「运动约束」,如从A点到B点,汽车行驶的距离
  • 但是由于车型差异、地面交通路况不同。如地面结冰与水泥路面,二者路况不同,路面的摩擦系数也不一样 ,就会导致轮速计统计结果的差异。

这是为什么轮速计本身存在缺陷的原因所在。

采集过程中的制图方案

高精地图采集过程中需要用到的传感器有GPS、IMU和轮速计。无论是哪种传感器都存在一定的缺陷,因此我们不能期望只使用单一一种传感器,得出准确的Pose。必须各个传感器之间取长补短,才能得出一个相对比较准的Pose。

由此产生了两种主流的制图方案:

  • 激光雷达 :通过扫描的激光点和GPS、IMU的一些测量数据,计算预测结果与实际结果差距的最小化,得出我们在高精地图采集过程中一个最优化的计算模型。
  • Camera融合激光雷达:通过丰富的图像信息和准确的激光雷达数据,最终得出一个非常准确的高精地图。

激光雷达

激光雷达 通过「发射」和「接收」激光光束得到两点之间的距离,因此其精确度非常高。

  • 激光雷达内部的扫描部件与光学部件,通过收集反射点与反射点发生的时间和水平角度,从而得出任意一点的空间信息和光强度。
  • 该坐标信息扫描的是某个局部,通过一定的坐标转换,能够形成一个全局的坐标系。

无论是GPS,还是IMU、轮速计,各个传感器都存在一定的缺陷, 我们无法仅运用单一的传感器,采集出一个精确的数据。

所以要综合运用各种传感器。

  • 通过将GPS、IMU和轮速计测出的数据进行「融合」,再运用「Slam算法」,对Pose进行「矫正」,最终才能得出一个「相对精确的Pose」。
  • 最后把空间信息通过激光雷达「扫描出三维点」,转换成一个「连续的三维结构」,从而实现整个空间结构的「三维重建」。

camera融合激光雷达

虽然激光雷达采集的信息非常精确,但它采集的信息非常少,无法提供像图像那样丰富的语义信息、颜色信息。

因此,目前 主流自动驾驶研发公司 ,如百度,采用的是 Camera融合激光雷达 的方案。

通过融合二者的优势,综合运用丰富的图像信息和精确的激光雷达数据,最终得出一个非常精确的高精地图。

其他方案

高精地图生产的方案供应商还有英伟达、宽凳科技、DeepMotion和Level 5公司等。

  • 其中, 英伟达 做GPU出身,其计算硬件 非常强大。
  • 国内的 宽凳科技 号称是用纯视觉制图,精度能做到20厘米,能够通过在线检测实时生成制图。
  • DeepMotion 运用的也是纯视觉制图方案,其理论精度可达厘米级。
  • 此外,还有来自国外的 Level 5 公司,该公司运用车载行车记录仪或手机上较低端的Camera就能够实现众包制图,但它的具体效果还不是很明确。

高精地图的规范格式分类

高精地图的格式规范,即对采集到的地图如何进行一个完整的表述。

对此,目前最主流的通用格式规范分NDS和OpenDRIVE两种。此外还有日本OMP公司的格式规范。

NDS格式规范

  • 数据库可以细分:每个细分后的产品都能够独立更新升级,支持局部更新,还提供语音、经纬度等描述功能。
  • Level(尺度):通过放大或缩小比例尺,来浏览全国或某个区域、某栋楼的地图信息。由于地图的范围非常大,利用Level把整个地图切成一个又一个的小格子,在每个小格子中填充数据。

NDS是一种非常全面的地图表述方式,对地图的格式规范做得非常到位。但是该技术目前在国内尚未普及,国外使用则相对较普遍,特别是宝马等大厂商使用较多。

Open DRIVE格式规范

OpenDRIVE是目前国际上较通用的一种格式规范,由一家德国公司制定。

在运用OpenDRIVE格式规范表述道路时,会涉及Section、Lane、Junction、Tracking四个概念。

  • Section:照道路车道数量变化、道路实线和虚线的变化、道路属性的变化的原则来对道路用灰线进行切分。
  • Lane:基于Reference Line,向左表示ID向左递增,向右表示ID向右递减,比如Reference Line的ID为0,向左是1、2、3,向右是−1、−2、−3。
  • Junction:是路口概念,包含虚拟路(红色虚线)用来连接可通行方向,以便无人驾驶车辆明确行进路线。
  • Tracking:坐标系是ST,S代表车道Reference Line起点的偏移量(纵向),T代表基于Reference Line的横向偏移量。

此外,还有一些概念,如Heading、Pitch和Roll等,不再赘述。

需要说明的一点是百度Apollo中也开发了自己的OpenDRIVE,与德国的OpenDRIVE有所不同。

  • 在德国OpenDRIVE里,所有对车道线的描述都基于Reference Line的偏移量,这种形式非常复杂,在实际操作中比较困难。

  • 百度在Open Derive格式规范中对该技术进行了改进,使之对开发者更加友好,也更利于Apollo自身的表述计

业界的高精地图产品

  • Here有很好基础优势。作为一家传统图商,他的用户基数可以保证地图以更快的速度和形式更新。
  • MobileEye更侧重于使用Camera,在图像处理方面也做得更好,使用视觉信息来进行辅助驾驶,是一种基于众包的视觉制图。
  • 谷歌Waymo的技术实力雄厚,其自研的激光雷达据称可以检测到两个足球场(240米)外的物体数据。并且整体的生产成本比Velodyne的64线激光雷达的售价(8万美元)低90%左右,这对于开发者来说是非常诱人的价格。
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值