随着无人驾驶技术的兴起,高精地图也随之发展起来,可以说高精地图是为无人驾驶而生的,无人驾驶车辆的调度、感知、定位、决策、规划、控制等都会使用到高精地图。那么高精地图到底是什么呢?
为了介绍高精地图,我们来看一下地图的发展历史。
第一代地图:纸版地图
古老的地图我们就不进行研究了,离我们比较遥远,我们先来看一下地图的近代史——纸版地图。在电子设备还不发达的时代里,纸版地图占据了主要的统治地位,很多办公室、家里都会挂张地图,去外地也最好备一张当地的地图。纸版地图存在比较多的问题,首先,纸版地图无法更新,如果地理环境发生了变化,地图与实际的地方就对不上号了;另外一个问题是,我们并不知道自己在地图上的实时位置,在熟悉的地方可以靠经验来判断,在不熟悉的地方就只能向别人打听。
第二代地图:电子导航地图
电子导航地图已经由纸版的变为电子版的。电子导航地图的呈现方式主要是2D平面地图,它是最开始的导航仪使用的地图,在使用时需要将各城市的地图数据下载至导航仪中,路径规划通过本地芯片进行计算后得出结果。可以完成A点至B的行程,但是计算逻辑基本只会考虑距离以及道路属性(国道、省道、环路、收费高速等)。这个时代的导航仪没有联网功能,所以地图没法自动更新,需要手动下载地图进行更新;优点是我们终于知道我们在地图的什么位置了,虽然有的时候不太准;另外就是虽然可以规划路径,但是规划算法比较落后,而且有时候会规划处比较差的路径或者走不通的路径。
第三代地图:智能导航地图
之所以将这一代的地图称之为智能导航地图,是因为这一代的地图主要在智能设备上使用,如智能手机、平板电脑等。这一代的地图不再依赖硬件设备,而是比较通用的app,安装到之鞥呢设备上就可以使用,本地数据开始联网,并且逐步引入大数据和云计算。同样由A点前往B点,导航所考虑的问题越来越多,道路是否拥堵、选择最短距离还是时间最短的路线,都在其考量范围之内。而且随着地图精度的提升,在通过岔道口时,导航还会弹出道路图像和引导路线。
第四代地图:高精地图
高精地图,顾名思义是精度很高的地图,它是为无人驾驶而生的。目前我们市面销售的车辆所配备主流自动驾驶功能大多是L2级别的,也有配备L3级别的。大多数车辆由车头前置的摄像头和毫米波雷达来确认车辆正前方的可通行区域内是否有车辆,如果有车辆,则在安全制动距离内跟车,如果没有车辆,则加速到设置的循航速度。配备L3级别的车辆则可以实现特定区域的完全自动驾驶,可以实现变道、超车等行为。这些功能依靠现有普通地图是无法实现的,毕竟目前所使用的地图坐标精度大约在5-10米左右,达不到自动驾驶的要求。
但是高精地图的绝对精度一般都会在亚米级,以高德地图为例,绝对精度可以达到10厘米以内,而且横向的相对精度往往还要更高。高精地图不仅有高精度的坐标,同时还有准确的道路形状,并且每个车道的坡度、曲率、航向、高程,侧倾的数据也都包含在内。
上面对高精地图进行了简单介绍,下面我们再来介绍一下常用的高精地图格式。
OpenDRIVE高精地图
OpenDRIVE是目前国际上较通用的一种格式规范,由一家德国公司制定。
在运用OpenDRIVE格式规范表述道路时,会涉及Section、Lane、Junction、Tracking四个概念。
无论车道线变少或变多,都是从中间的灰线切分。切分之后的地图分为Section A、Section B和Section C三部分。一条道路可以被切分为很多个Section。按照道路车道数量变化、道路实线和虚线的变化、道路属性的变化的原则来对道路进行切分。
在第二个Lane概念中,Reference Line在OpenDRIVE规范中非常重要。没有Reference Line,可以说一事无成。基于Reference Line,向左表示ID向左递增,向右表示ID向右递减,它是格式规范的标准之一,同时也是固定的、不可更改的。比如,Reference Line的ID为0,向左是1、2、3,向右是−1、−2、−3。
Junction是OpenDRIVE格式规范中的路口概念。Junction中包含虚拟路,虚拟路用来连接可通行方向,用红色虚线来表示。在一张地图中,在遇到对路口的表述时,虽然说路口没有线,但我们要用虚拟线来连接道路的可通行方向连,以便无人驾驶车辆明确行进路线。
以上三个概念在OpenDRIVE格式规范中,是基于Reference Line条件下应用,还有基于Reference Line和偏移量条件下的应用,其中十分重要的一个概念叫做Tracking。Tracking的坐标系是ST,S代表车道Reference Line起点的偏移量,T代表基于Reference Line的横向偏移量。前者是纵向的,后者是横向的。
在OpenDRIVE里,所有对车道线的描述都基于Reference Line的偏移量。比如,我们这个车道线表示的Reference Line,关于它的描述都是基于它的偏移。这个车道线可以通过方程来描述,其他属性如车道线左右的坡度,也可以通过一个基于Reference Line偏移的方程来描述。这种形式非常复杂,在实际操作中困难重重。
Apollo高精地图
Apollo的高精地图采用了OpenDrive格式。但是在OpenDrive基础上进行了修改,使地图格式更加适应无人驾驶,Apollo高精地图与标准的OpenDrive高精地图的差别如下表所示。
主要区别 | 标准OpenDrive | Apollo |
应用场景 | 主要用于仿真场景 | 主要用于无人驾驶场景 |
元素表达形式 | 使用曲线方程和基于参考线的偏移描述车道形状 | 使用绝对坐标序列描述元素形状 |
元素丰富度 | 提供常见的元素类型,如:道路、交叉点、信号和对象 | 细化元素表达并丰富元素属性。如增加新的禁止停车区域、人行横道、减速带、停车线、允许停车标志、运行减速标志等 |
自适应无人驾驶算法 | 不适用 | 整合百度的无人驾驶经验,以提高无人驾驶算法的可用性和可靠性 |
NDS高精地图
NDS是一种非常全面的地图表述方式。由于其数据库可以细分和运用了Level两种技术,NDS对地图的格式规范做得非常到位。NDS有丰富的格式文档,因此NDS把数据库做了细分,每个细分后的产品都能够独立更新升级。其最典型表现是一个NDS不仅包括基本导航技术数据、POI数据(即地图上的一个点,地图上每一家商家店铺都可以被称之为一个POI数据点),还支持局部更新,即使是对一个国家或者省市的相关内容进行局部更新,都十分便捷。
为了方便用户,NDS还提供语音、经纬度等描述功能。NDS中另外一个非常重要的概念叫做Level(尺度),其含义类似于传统手机地图功能中的比例尺。通过放大或缩小比例尺,来浏览全国或某个区域、某栋楼的地图信息。分块技术作为地图领域中一项普遍通用的技术,也被应用到Level中。由于地图的范围非常大,利用Level把整个地图切成一个又一个的小格子,在每个小格子中填充数据。当我们在使用百度地图或高德地图时,这些小格子显而易见。
虽然这一规范十分重要,但是该技术目前在国内尚未普及,国外使用则相对较普遍,特别是宝马等大厂商使用较多。该操作也是使NDS的地图格式规范全面到位的原因之一。
lanelet2高精地图
lanelet2是自动驾驶领域高精度地图的一种高效表达方式,它以彼此相互连接的lanelets来描述自动驾驶可行驶区域,不仅可以表达车道几何,也可以完整表述车道拓扑,同时可以集成交通规则和人的驾驶习惯。
著名的开源无人驾驶软件系统Autoware使用的高精度地图以前是Vector Map Format(VMF),现在已经是lanelet2格式。