高精地图OpenDRIVE数据格式转换研究

您所在的位置:网站首页 怎么获取地图数据格式 高精地图OpenDRIVE数据格式转换研究

高精地图OpenDRIVE数据格式转换研究

2024-05-11 05:09| 来源: 网络整理| 查看: 265

高精地图包含准确的几何坐标信息、道路形状以及每个车道的坡度、曲率、航向、高程等信息,可以提升静态地物语义识别的优势和感知算法的效率,提供环境的详细信息[1]。

目前,高精地图采集方式主要有专业测绘模式和众包采集模式两种。在传统方法中,数据处理主要是对点云进行三维环境重构,并利用一些复杂的算法提取道路特征[2]。非传统方法包括对高精度的遥感影像数据和轨迹数据进行处理,提取车道线。张萍等[3]提出一种能有效提取相似轨迹的改进最长公共子序列(longest common subsequence,LCSS)算法;张世强等[4]利用道路缓冲区去除非道路要素,再使用形态学算子去除噪声,并利用方向和面积因子提取不同的车道线。

目前,高精地图的构建技术与格式规范并不统一,仍处于探索发展阶段。国际上流行的自动驾驶高精地图格式主要有导航数据标准(navigation data standard,NDS)、OpenDRIVE、OpenStreetMap(OSM)、KIWI[5]。OpenDRIVE作为一种流行的高精地图标准,已经被很多公司使用。Althoff等[6]提供了OpenDRIVE到Lanelets的转换器,解决不同公司和研究机构之间高精地图格式不一致的问题;Shi[7]以OSM为数据源,将其转换为OpenDRIVE格式;Idrobo[8]研发了一个OpenDRIVE数据格式的地理处理工具箱,可将OpenDRIVE文件转换为标准GIS矢量,并进行可视化。虽然OpenDRIVE已经得到广泛应用,但是目前并没有一个普遍的shp转OpenDRIVE的工具。本文重点研究了矢量地图数据shp到OpenDRIVE格式高精地图的转换工艺,根据OpenDRIVE地图格式的规范及需求,实现地图数据从shp到OpenDRIVE格式的自动转换,以满足自动驾驶对高精地图的需求。

1 技术流程

1) 点云数据处理。采集车完成数据的采集后,将这些激光数据转为2000国家大地坐标系(China Geodetic Coordinate System 2000,CGCS2000)下的标准格式的激光点云,并进行矢量化提取,将生成的点、线、面数据导入ArcGIS,并存储为shp格式。

2) shp数据构建。对采集到的点云数据进行矢量化提取,得到点、线、面矢量数据,并根据OpenDRIVE规范设计字段。

3) OpenDRIVE格式转换。根据OpenDRIVE规范,对格式转换中用到的算法进行实现,并将计算结果填写到生成的xodr文件中。

4) 仿真验证。在仿真平台验证转换格式后的数据,主要是对道路及车道间的拓扑关系进行验证。Sumo作为一款仿真软件,可以针对性地规划一条道路上每辆车的运行路线,并将其展示出来。因为路口处的连接情况多且复杂,所以在Sumo的可视化平台中主要对路口处的车流进行检验,根据车流是否能够通行来判断拓扑连接是否正常。

2 shp到OpenDRIVE格式转换设计 2.1 OpenDRIVE格式解析

OpenDRIVE采用可扩展标记语言(extensible markup language,XML)描述了基于轨迹的道路网络,并以多级标签的形式将复杂、丰富的道路信息存储在xodr文件中。OpenDRIVE结构如图 1所示。

图 1(Fig.1) 图 1 OpenDRIVE格式分级结构 Fig.1 Hierarchical Structure of OpenDRIVE Format 2.2 需要计算的属性

OpenDRIVE要求的属性中,有些不能从shp数据中直接得到,需要经过代码计算,再以标签属性的方式填入OpenDRIVE文件。几何对象属性见表 1

表 1(Tab.1) 表 1 对象属性 Tab.1 Attributes of Objects 表 1 对象属性 Tab.1 Attributes of Objects 几何目标 字段名称 取值含义 道路 pre 前任道路/路口 suc 后继道路/路口 elementId 前任后继的ID elementType 前任后继的类型 length 道路长度 参考线 hdg 参考线起点处的斜率 s 参考线起点相对所在道路起点的长度值 length 表示参考线长度 x 参考线起点x坐标 y 参考线起点y坐标 curv 参考线曲率 pre 前任参考线 suc 后继参考线 车道 s 车道起点相对所在道路起点的长度值 width 车道宽度 pre 前任车道 suc 后继车道 信号灯 s 信号灯相对所在道路起点的长度值 t 与s轴垂直的坐标值 fromLane 信号灯作用的起始车道 toLane 信号灯作用的最终车道 人行道 s 对象质心相对所在道路起点的长度值 t 与s轴垂直的坐标值 hdg 人行道斜率 2.3 转换中的关键问题

1) heading(hdg)值计算。每条参考线的hdg值即为该参考线起点处的切线斜率,以正东方向为x轴,正北方向为y轴,顺时针为负值,逆时针为正值,角度记录的格式为弧度制。计算过程见图 2。

图 2(Fig.2) 图 2 hdg计算流程 Fig.2 hdg Calculation Process

2) 道路曲线拟合。shp数据中的线数据由一系列绝对坐标点数据组成。而OpenDRIVE中,无论是道路形状的拟合还是高程变化的趋势均以曲线方程式的形式存储,所以要在满足精度误差要求的条件下对点数据进行曲线拟合。如何在保证精度的情况下进行曲线拟合是数据转换中的重要问题。有学者提出了基于GPS的道路线形拟合方法,将最小二乘法和GPS测量数据应用于道路线形拟合[9, 10];也有学者提出了一种基于MATLAB和CAD平台的道路线性拟合方法,通过MATLAB的曲线拟合工具箱实现对道路线形的拟合[11]。

本文采用最小二乘方法,调用Python库中的polyfit函数拟合三次多项式构造的曲线,并参考文献[9]中的方法对道路进行分割,对小的道路基元进行拟合,原矢量图与拟合结果见图 3。要注意的是,每个基元序列连接在一起后,要保证在连接点处的两个基元序列的斜率几乎相等。如果斜率差距过大,导入仿真软件时,连接点处会存在沟壑,导致车辆无法通行。本文选取前一条曲线的终点和当前曲线的起点进行斜率计算,以保证前后曲线连接处的斜率变化在误差范围内。

图 3(Fig.3) 图 3 原矢量图与拟合结果 Fig.3 Original Vector Diagram and Fitting Results

3) 拓扑关系计算。在OpenDRIVE规范中,道路、参考线、车道都要进行拓扑关系计算。道路的拓扑关系包括一条道路的前任道路以及后继道路。

如果一条道路的起点或终点连接的是另一条道路,那么该道路的前任或者后继就是道路,否则判断该道路的前任或者后继是否为路口。详细拓扑关系计算流程如图 4所示。

图 4(Fig.4) 图 4 拓扑关系计算流程 Fig.4 Flow Chart of Topological Relation Calculation

4)信号灯坐标计算。在OpenDRIVE中,信号灯的坐标通过s、t记录。s指信号灯在当前道路的位置距离道路起点的长度,t指信号灯与当前道路的垂直距离。计算方法如下:①从起点遍历道路的节点;②计算当前节点的累计距离s;③计算当前节点与信号灯的距离;④找到与信号灯距离最近的两个点,信号灯的s值即为当前的s值;⑤计算两个点的直线方程;⑥计算该直线方程与信号灯的距离t;⑦根据信号灯与直线方程的相对位置关系判断t值的符号。

5) 生成xodr文件。将处理好的shp数据导入PostgreSQL空间数据库,编写Python脚本连接数据库,使用ElementTree库创建xodr文件。遍历道路图层表中的属性并将其填入对应标签。

3 实例研究

本文选取武汉市智能网联汽车与智慧交通应用示范区内单向约120 km的范围进行高精地图制作,其中包含了环岛、十字交叉路口等重要路况,以及红绿灯、标志牌等道路设施。

实验所用操作系统为Windows10、Centos7虚拟机;矢量数据编辑软件为ArcGIS 10. 2;编程语言为Python3.7;编译器为Pycharm 2019.3.3;数据库为PostgreSQL;OpenDRIVE地图查看工具为OdrViewer;仿真软件为Sumo。

3.1 实验结果

转换结果见图 5。从转换后的图形来看,矢量要素的数量完整,要素之间的连接关系正常。

图 5(Fig.5) 图 5 转换结果 Fig.5 Conversion Results 3.2 检验及分析 3.2.1 转换质量

shp数据的要素与OpenDRIVE要素转换质量如表 2所示。其中,道路和交叉口的转换正确率为100%,而其他要素则略有损失。分析后发现,车道缺失是因为shp数据中的laneID重复,实际车道应该更多;红绿灯与人行道的缺失是因为其所属道路的属性值录入有误,导致其与不存在的道路错误匹配,无法正常显示。解决方法如下:计算车道与其属性列中记录的道路之间的距离,超过阈值即认为关联道路错误,并进行人工检查修改。

表 2(Tab.2) 表 2 各图层转换数量 Tab.2 Numbers of Conversions for Each Layer 表 2 各图层转换数量 Tab.2 Numbers of Conversions for Each Layer 图层名称 图层含义 shp数据 OpenDRIVE数据 正确率% road 道路 186 186 100 lane 车道 14 538 15 079 96. 4 junction 路口 131 131 100 traffic_light 红绿灯 415 403 97. 1 crosswalk 人行道 386 401 96. 3 3.2.2 拓扑验证

由于OdrViewer只能对转换结果进行显示,本文选择在Sumo仿真平台进行拓扑关系验证。它可以对交通流实现微观控制,即可以单独规划道路上每一辆车的运行路线[12]。使用Sumo工具将生成的xodr文件导出为.net文件以及车流信息的.rou文件。如果车辆能够在道路间、车道间通行,则说明其拓扑连接关系正确。

本文对131个路口进行了拓扑检查,发现有8个路口出现道路缺少的情况。分析后发现是车道属性表中的道路ID录入错误,导致道路没有车道无法通行。

4 结束语

在对高精地图的数据内容以及OpenDRIVE格式进行详细解析的基础上,本文使用目前高精地图生产中常用到的shp格式进行地图的制作,并将处理后的数据转换为OpenDRIVE格式数据。在研究过程中,对shp数据的处理制作以及OpenDRIVE格式转换的关键问题进行了分析,并对具体解决方法进行算法设计和代码实现,实现了从矢量格式到OpenDRIVE的自动转换,缩短转换的周期,提升了效率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3