基于OSM路网数据生成 Apollo-OpenDrive高精地图

(整期优先)网络出版时间:2023-05-09
/ 2

基于OSM路网数据生成 Apollo-OpenDrive高精地图

蔡珂芳

零束科技有限公司 201805

摘要:为满足自动驾驶对高精地图的仿真和测试需求,实现不同格式地图之间的转换,本文参考目前市场主流地图格式,对比OpenStreetMap(OSM)路网数据元素和Apollo-OpenDrive路网数据元素,提出基于OSM生成Apollo-OpenDrive高精地图的方法,通过仿真测试验证了本文所提方法的可行性,对解决高精地图采集难度大、制作成本高、以及不同格式地图之间的转换可行性提供了重要参考。

关键词:OpenstreetmapApollo-OpenDrive;自动驾驶;高精地图

引言:随着自动驾驶的快速发展,全面稳定地构建车辆周围道路环境已经是开发高阶自动驾驶车辆中重要的一环。与传统导航电子地图相比,高精地图能够提供更丰富的道路元素、能够保证自动驾驶所需的精度和鲜度,这决定了高精地图在自动驾驶中应用的方向:高精地图作为环境模型构建的重要基础,能够对车辆决策、规划控制模块提供感知信息;高精度地图可以对车端感知设备进行冗余完善;基于高精地图进行车道级定位,实现车道级规划。

Apollo-OpenDrive格式地图作为主流的地图数据被广泛用于自动驾驶,百度使用Apollo平台集成了Apollo-OpenDrive高精地图,对自动驾驶车辆进行仿真测试[1],Violante等人对比了Apollo-OpenDrive、NDS等地图数据格式,提出了Apollo-OpenDrive在仿真和实车测试中的应用过程[2]。然而高精地图采集难度大,制作成本高,因此提高效率、降低成本是制作地图的重要考虑因素。在自动驾驶的背景下OSM被用于自定位或与传感器数据融合[3]以辅助道路环境监测,然而OSM数据只是粗略地描述道路信息,并不能为自动驾驶提供车道级信息。因此,本文从高精地图制作成本、生产高效性以及自动驾驶应用方面进行综合考虑,提出了基于OSM路网数据转换生成Apollo-OpenDrive地图数据的方法。

1数据格式定义

除了通过传感器采集获取有效的地图数据来源,可以通过导航数据源获得自动驾驶所需求的地图信息。OSM是一种开源和广泛使用的数据源,其包括准确的道路拓扑数据以及道路属性。这为使用OSM数据源转换生成Apollo-OpenDrive地图数据提供了重要依据。

1.1OpenStreetMap

OSM是一种开源的全球性导航地图,主要通过志愿者使用GPS追踪器、摄像头等工具绘制[4],用户可以基于OSM数据格式对地图进行编辑。OSM主要包括以下数据元素:Node,每个节点在空间中代表为一个经纬度坐标,所包含的tag能够标识该节点的属性信息;Way,由多个节点组成,是路网构成的主要要素,可表达道路和车道等属性信息;Relation,标识在空间或者逻辑上相互关联的Node、Way、Aera等要素,可基于tag类型标识路线、实体等复杂属性信息,具体数据格式见下图1。

图1 OSM数据格式 图2 Apollo-OpenDrive主要数据结构

1.2Apollo-OpenDrive

Apollo-OpenDrive基于OpenDrive地图数据进行了部分元素表达修改,整体架构和数据格式并未改变。图2所示Apollo-OpenDrive主要数据结构,包括头、道路、接口等节点。道路节点主要包括车道、实体、信号体节点。其中车道节点以界面为单位进行切分,并包括道路边界、车道边界、中心线等几何点集合信息。道路拓扑关系会以路段、车道前序、车道后续、车道相邻等数据进行关联映射。实体以几何点集合信息表达,主要包括人行横道、停止线和减速带等实体轮廓信息。信号体以几何点集合信息表达,主要包括交通标识等实体信息。接口节点定义了接口区域,映射道路与道路之间的连接关系。

2高精地图生成方法
基于Tinyxml2库对OSM数据进行读取,获得Apollo-OpenDrive所需的Node、Way和Relation元素信息。通过调用Tinyxml2库接口按照Apollo-OpenDrive格式进行DOM Tree构建,并按照序列化方法将所构建的地图数据进行XML格式数据存储。图3所示了OSM地图数据的读取、解析和存储架构。

3 OSM数据的解析架构

2.1坐标系统转换

OSM数据元素的几何坐标均以wgs84坐标表示,由于Apollo-OpenDrive数据以全局坐标为基准,需要对wgs84数据基于UTM坐标系进行平面投影。考虑到所采集的道路长度不超过500km,转换过程中的误差会非常小,并且该转换过程主要考虑较高的相对精度而非绝对位置精度,因此本文使用以下公式进行转换,其中latRadian和lonRadian分别为纬度和经度,x,y分别为UTM平面坐标值。

2.2道路生成

Apollo-OpenDrive需要几何点集来表示道路几何和车道几何。每条道路都有一个整体边界,每条车道的中心线和边界线也为几何点集所表示。然而在OSM中仅使用一组点集来表达道路,车道仅使用标签Tag来说明。在多车道情况下OSM道路中心点集为车道通行方向的分界线,按照车道宽度,基于中心点集依次向右进行偏移获得车道的中心线和边界线,然后基于Tag标签对车道进行属性赋值,获得Apollo-OpenDrive地图。然而在单车道情况下OSM中心点集被视为车道中心线,因此中心点集需向两侧同时偏移获得车道边界线。同样在道路转弯处对每条道路中心线偏移,获得两侧道路边界线,基于两侧边界线的起始点和终点,通过贝叶斯曲线进行拟合获得平滑的轨迹道路连接线,车道数据生成见图4。

 

4 Apollo-OpenDrive道路生成示意 5 Apollo-OpenDrive接口模型

2.3接口生成
    通过遍历OSM中标签Tag 为Junction的Node,然后基于节点号进行查找道路集合,并定义该Node点为道路集合的接口。基于道路生成方法对道路集合进行Apollo-OpenDrive生成,并应用所生成的道路集合和道路端口节点定义接口区域。对于接口区域定义每条道路为汇入道路。每对汇入道路的拓扑连接关系通过贝叶斯曲线拟合生成连接道路。同时为明确每对汇入道路的连接方向,需要对汇入道路按照道路行驶方向定义车道和道路的前序和后序关系。综上道路的接口主要包括接口区域、汇入道路、连接道路等元素,结合车道和道路的拓扑关系,按照图5所示构建接口模型。
3测试验证

基于本文所提供的方法,为验证OSM能够有效地生成Apollo-OpenDrive地图,搭建了仿真平台,图6所示了OSM整体转换结果,可以看出Apollo-Opendrive保留了OSM主干路路网数据,将如建筑物、公交站等特征去掉,图层更加清晰。同时Apollo-Opendrive对数据属性进行了扩展,具体见图7所示道路层和接口层局部构造,可见基于OSM有效生成了道路边界线、车道中心线以及Junction Aera,和上述理论方法存在较好的一致性。

 

6 Apollo-OpenDrive生成结果
总结:本文基于高阶自动驾驶对高精地图的需求,分析了OSM开源路网数据生成Apollo-Opendrive格式地图的可行性。通过对比OSM和Apollo-Opendrive数据格式,解析OSM主干路路网数据,提出了道路生成和接口生成的重要数据元素和转换步骤。并通过仿真测试的方法对比分析了整体结构路网数据以及局部道路和接口特征数据,验证了所生成的Apollo-Opendrive路网模型和理论方法推导的一致性。显然,本文仅对提出方法仅进行仿真测试验证,后续仍需对所转换的路网数据进行实车测试,并对复杂路网场景进行改善。

参考文献:

[1] Baidu. 2019. Apollo. http://apollo.auto/. Accessed: 2019-06-26.

[2] A COMPLETE END-TO-END SIMULATIONFLOW FOR AUTONOMOUS DRIVING

FRAMEWORKS

[3] K.Wong,E.Javanmardi, M. Javanmardi, Y. Gu, and S. Kamijo,“Evaluating the Capability of OpenStreetMap for Estimating Vehicle Localization Error,”in Proc.of the IEEE Intelligent Transportation Systems Conf., 2019, pp. 142–149.

[4]OpenStreetMap.2019.Aboutopenstreetmap.https://www.openstreetmap.org/about.Accessed: 2019-06-24.