您好,欢迎来到中国自动驾驶高精地图产业创新发展论坛2019!

百度无人车Apollo:高精地图的格式

发布日期:2020-09-14

GRCC hdmap 今天 

手机阅读

点击上方蓝色字体,关注我们

我在前面的文章中讲了高精地图的采集方案分为视觉和激光雷达,当我们采集完成地图之后,需要吧地图完整的表述出来,我们怎么来表述,这就涉及到高精地图的格式规范。

业界有比较通用的两种,一种是nds(导航数据标准),一种是openddrive,,还有一些其他的格式规范。

现在日本有个刚成立的公司omp专门做高精地图测绘的,在世界范围内比较通用的是nds和opendrive:

欧洲NDS组织研究的NDS,是近3年发展起来的多跨国企业联合开发的统一地图存储标准,其突出特点是:在兼顾性能和功能的基础上,采用了数据库技术存储地图数据,能够比较好地解决地图增量更新、扩展和数据安全的问题。他有几点特点如下:

一是产品数据库

nds偏重格式文档本身,大概有上百页的格式文档,他对于整个地图考虑的非常全面。nds数据库有分为很多产品,每个产品可以独立升级更新,*典型的是nds里既包含a公司的基本导航技术数据,有保存了b公司的poi数据。

二局部更新升级

Nds还支持局部更新,以国家,州,或者省市区为范围进行局部更新。在nds地图中有poi,它是地图上的一个点,兴趣点的意思,就是图上任何一个商家店铺都可以叫做poi点。它提供了很多描述功能,包括表述语音,基本地图显示,功能非常全面,但是比较复杂。

三是level的划分

nds地图有level概念,level类似传统手机的地图比例尺的概念,就是小比例尺下,可以看到全国,放大之后只能看到某一个区域如一栋楼。

四是块的构建

每个level划分块。分块是地图领域的一个通用技术,因为地图范围非常大,我们把整个地图切成一个个小格子,在每个小格子里面,装地图数据,就像我们看到的百度地图或高德地图加载的时候,它就是一块一块的加载出来的,那就是地图划分的小格子。

Nds规范非常重,国内厂商用的也不是很多,但在国外,大厂商像宝马,他们用的比较多。

下面我们看看opendrive地图。

百度在阿波罗里面也放了一个地图的标准,apollo OpenDRIVE规范是在标准OpenDRIVE规范基础上结合阿波罗在自动驾驶方面的技术积累和实践经验改造而成的,相对于标准OpenDRIVE规范,在数据表达上更加简单易行,对自动驾驶***也更加友好。百度的opendrive跟标准的opendrive有什么区别,后面会讲。Opendrive是德国制定的国际通用的规范(nds和opendrive都是欧洲企业制定的),下面跟大家详细的说一下opendrive。

如果大家读过apollo的源码会对于Opendrive在道路表述上有很好的理解,我们来理解几个概念:

第一个是section:

Opendrive在表述道路的时候,车道数变多变少的时候,如上图所示,我们把中间灰色的线,从中间打断,如上图左边两个道路图中显示一样,分成三个section,sectiona,section,sectionc,section a因为上面有一条路消失了,section c是因为下边的一条路消失了(在代码里有section的概念)。一条道路kennel会被切分成很多section,切分原则是依据车道路变化,依据道路上的虚实线变化。还有就是道路有一段是有栅栏的,这块也可能被切断。

第二个是lane:

reference line在标准opendrive里面是一个非常重要的概念,没有reference line基本上什么都做不了。基于Reference line然后向左向右,他的id向左递增,向右递减,这是他的规范标准。比如说reference line的id是0,向左123,向右-1-2-3,这是定死的。

第三个路口的概念

在上图右侧图是一个路口,叫junction,如果我们去看apollo代码,发现里面也有junction的东东,在junction中包含了虚拟路,红色的线(上图右图),红色的线类似虚拟路,虚拟路主要是连接可通行方向,就是在路口,没有车道线,但我们需要把可通行方向给链接起来,告诉自动驾驶车辆,你应该怎么走。

前面所涉及的概念在opendrive里面都是基于reference line。

第四个tracking

tracking是基于reference line和偏移量的坐标系,它里面有个概念叫做st,s相对于一条车道,车道的reference line的起点的偏移量,t是基于reference line的一个横向的偏移量,一个是横向的一个是纵向的,tacking中也有类似roll,yaw,pitch的概念,

有基于reference line和偏移量的了tacking坐标系之后,在opendrive里面所有车道线的描述都是基于reference line的偏移量,举个例子车道线是reference line,这条线的描述都是基于它的偏移量的,就是说这条线描述都是基于他的偏移的。它不仅把车道线,通过偏移量的方程来描述,他的其他属性,如车道线可能左右会有一个坡度,他的坡度信息,也是通过基于reference line偏移的方程描述的,道路宽度也是基于reference line的偏移量方程描述的,当然形式本身非常复杂。

在实际应用中我们也遇到了很多问题,所以在百度opendrive里面做了些改进,改完之后,对开发着更友好。对我们自己做这种表述计算更加方便。


作者:飘哥 



相关文章

下载 | 第2部分GB:T XXXX.2-XXXX智能运输系统 智能驾驶电子地图数据模型与交换格式 :城市道路征求意见稿.pdf
高精度地图OpenDrive格式详解
高精地图文件协议格式定义




SELECTED EVENTS




 

长按二维码识别关注



我就知道你“在看”


  • 电话咨询
  • 021-22306692
  • 15021948198
None