目录
高精地图规范格式分类
NDS格式规范
Open DRIVE格式规范
原文链接:Apollo进阶课程 ⑧ | 高精地图的格式规范
上周阿波君为大家详细介绍了「Apollo进阶课程⑦高精地图的采集与生产」。
高精地图采集过程中需要用到的传感器有GPS、IMU和轮速计。
无论是哪种传感器都存在一定的缺陷,因此我们不能期望只使用单一一种传感器,得出准确的Pose。
必须各个传感器之间取长补短,才能得出一个相对比较准的Pose。
由此应运而生了高精地图的主要制图方案之一——激光雷达。
激光雷达通过扫描的激光点和GPS、IMU的一些测量数据,计算预测结果与实际结果差距的最小化,得出我们在高精地图采集过程中一个最优化的计算模型。
另外一种主流的制图方案,是Camera融合激光雷达:通过丰富的图像信息和准确的激光雷达数据,最终得出一个非常准确的高精地图。
Apollo目前采用的Camera融合激光雷达的方案。
本周阿波君将与大家分享高精地图的格式规范相关内容。
下面,欢迎开发者们紧随阿波君的脚步,进入进阶课程第8期。
高精地图规范格式分类
高精地图的格式规范,即对采集到的地图如何进行一个完整的表述。
对此,目前最主流的通用格式规范分NDS和OpenDRIVE两种。此外还有日本OMP公司的格式规范。
NDS格式规范
高精地图格式规范NDS,把数据库做了细分
NDS是一种非常全面的地图表述方式。
由于其数据库可以细分和运用了Level两种技术,NDS对地图的格式规范做得非常到位。
NDS有上百页格式文档,因此NDS把数据库做了细分,每个细分后的产品都能够独立更新升级。
其最典型表现是一个NDS不仅包括基本导航技术数据、B公司的POI数据(即地图上的一个点,地图上每一家商家店铺都可以被称之为一个POI数据点),还支持局部更新,即使是对一个国家或者省市的相关内容进行局部更新,都十分便捷。
为了方便用户,NDS还提供语音、经纬度等描述功能。
NDS中另外一个非常重要的概念叫做Level(尺度),其含义类似于传统手机地图功能中的比例尺。
通过放大或缩小比例尺,来浏览全国或某个区域、某栋楼的地图信息。
分块技术作为地图领域中一项普遍通用的技术,也被应用到Level中。
由于地图的范围非常大,利用Level把整个地图切成一个又一个的小格子,在每个小格子中填充数据。
当我们在使用百度地图或高德地图时,这些小格子显而易见。
虽然这一规范十分重要,但是该技术目前在国内尚未普及,国外使用则相对较普遍,特别是宝马等大厂商使用较多。
该操作也是使NDS的地图格式规范全面到位的原因之一。
Open DRIVE格式规范
Apollo也开发了自己的OpenDRIVE格式规范
OpenDRIVE是目前国际上较通用的一种格式规范,由一家德国公司制定。
需要说明的一点是百度Apollo中也开发了自己的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的横向偏移量。
前者是纵向的,后者是横向的。此外,还有一些概念,如Heading、Pitch和Roll等,不再赘述。
OpenDRIVE里对车道线的描述都基于Reference Line
在OpenDRIVE里,所有对车道线的描述都基于Reference Line的偏移量。
比如,我们这个车道线表示的Reference Line,关于它的描述都是基于它的偏移。
这个车道线可以通过方程来描述,其他属性如车道线左右的坡度,也可以通过一个基于Reference Line偏移的方程来描述。
这种形式非常复杂,在实际操作中困难重重。
百度在Open Derive格式规范中对该技术进行了改进,使之对开发者更加友好,也更利于Apollo自身的表述计算,具体情况今后我们将详细地分享给大家。