查看原文
其他

Apollo进阶课程 ⑧ | 高精地图的格式规范

阿波君 Apollo开发者社区 2022-07-29



上周阿波君为大家详细介绍了「Apollo进阶课程⑦高精地图的采集与生产」



高精地图采集过程中需要用到的传感器有GPS、IMU和轮速计。


无论是哪种传感器都存在一定的缺陷,因此我们不能期望只使用单一一种传感器,得出准确的Pose。


必须各个传感器之间取长补短,才能得出一个相对比较准的Pose。


由此应运而生了高精地图的主要制图方案之一——激光雷达。


激光雷达通过扫描的激光点和GPS、IMU的一些测量数据,计算预测结果与实际结果差距的最小化,得出我们在高精地图采集过程中一个最优化的计算模型。


另外一种主流的制图方案,是Camera融合激光雷达:通过丰富的图像信息和准确的激光雷达数据,最终得出一个非常准确的高精地图。



Apollo目前采用的Camera融合激光雷达的方案。


本周阿波君将与大家分享高精地图的格式规范相关内容。


下面,欢迎开发者们紧随阿波君的脚步,进入进阶课程第8期。




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


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




高精地图格式规范NDS,把数据库做了细分


NDS是一种非常全面的地图表述方式。


由于其数据库可以细分和运用了Level两种技术,NDS对地图的格式规范做得非常到位。


NDS有上百页格式文档,因此NDS把数据库做了细分,每个细分后的产品都能够独立更新升级。


其最典型表现是一个NDS不仅包括基本导航技术数据、B公司的POI数据(即地图上的一个点,地图上每一家商家店铺都可以被称之为一个POI数据点),还支持局部更新,即使是对一个国家或者省市的相关内容进行局部更新,都十分便捷。


为了方便用户,NDS还提供语音、经纬度等描述功能

 

NDS中另外一个非常重要的概念叫做Level(尺度),其含义类似于传统手机地图功能中的比例尺。


通过放大或缩小比例尺,来浏览全国或某个区域、某栋楼的地图信息。


分块技术作为地图领域中一项普遍通用的技术,也被应用到Level中。


由于地图的范围非常大,利用Level把整个地图切成一个又一个的小格子,在每个小格子中填充数据。


当我们在使用百度地图或高德地图时,这些小格子显而易见。


虽然这一规范十分重要,但是该技术目前在国内尚未普及,国外使用则相对较普遍,特别是宝马等大厂商使用较多。


该操作也是使NDS的地图格式规范全面到位的原因之一。

 



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自身的表述计算,具体情况今后我们将详细地分享给大家。


﹏﹏﹏﹏   END  ﹏﹏﹏﹏





阿波君说:


在学习过程中,开发者不仅可以在Apollo开发者社区小程序上对课程内容进行提问,还可以在开发者微信群中交流学习心得,共同学习自动驾驶技术。

开发者社区还将在公众号上定期推送课程相关的技术干货,全程陪伴大家共同进步。祝Apollo开发者们顺利完成《Apollo自动驾驶进阶课程》的学习,在自动驾驶道路上越走越远!

阿波君还欢迎大家在小程序内晒出学习笔记,也可以加入开发者交流社群与大家交流互动,有好礼相送!


    


观看/阅读完该节课程后

在开发者社群

及小程序「社区问答」版块内

上传你的课程笔记截图

手写笔记/电脑文档均可

即可联络社区小助手获取

百度周边纪念品1份

赶快来撩吧~比心~







您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存