CN110220521B - 一种高精地图的生成方法和装置 - Google Patents
一种高精地图的生成方法和装置 Download PDFInfo
- Publication number
- CN110220521B CN110220521B CN201910438653.0A CN201910438653A CN110220521B CN 110220521 B CN110220521 B CN 110220521B CN 201910438653 A CN201910438653 A CN 201910438653A CN 110220521 B CN110220521 B CN 110220521B
- Authority
- CN
- China
- Prior art keywords
- lane
- point
- map
- layer
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 21
- 238000004088 simulation Methods 0.000 claims description 27
- 238000004140 cleaning Methods 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 230000001133 acceleration Effects 0.000 claims description 7
- 238000013138 pruning Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 4
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 101100421134 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sle1 gene Proteins 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000004888 barrier function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 239000002243 precursor Substances 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 241000274965 Cyrestis thyodamas Species 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 244000241796 Christia obcordata Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
- G01C21/32—Structuring or formatting of map data
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
- Traffic Control Systems (AREA)
Abstract
一种高精地图的生成方法和装置,该方法采用改进的半边数据结构,对导入的地图按块构建拓扑结构层、几何结构层和交通结构层,然后将每个块连接起来形成完整的仿真地图。通过上述方法和装置生成能够描述高精都市交通网络的数据,以及提供仿真测试车辆的导航以及自定位的算法和接口,以解决高精路网多车道建模的复杂拓扑问题。
Description
技术领域
本发明涉及计算机仿真技术,具体涉及数字地图技术领域,尤其涉及一 种高精地图的生成方法和装置。
背景技术
自主驾驶仿真系统是无人驾驶软件重要生成效率改进工具,承担软件功 能开发,测试,和硬件仿真系统一起组成路测前的重要测试环节。现有商业、 开源仿真软件,云端仿真软件租赁服务,虽然展示了其重要性,但还有很多 实际问题还没有得到很好的解决。
目前,还没有成熟的模拟器能够定义参数化测试场景,以支持内部真正 的自主车辆(自动驾驶L4级)软件功能的运行。工业软件使用的高精地图是 自主开发的重要产品。地图商人们正在关注地理信息系统,获取高精地图是 非常昂贵的。地图商家还试图根据现有收集的地图产品数据建立查询索引。 然而,由于高精地图本身正在建设中,而且场景有限,索引还远远没有准备 好服务。只有合作伙伴才能共享一些高精地图,在模拟器中测试他们的算法。
本发明创造和定义了一种全新都市路网生成(HD-URNG)的框架,通过利用 改进的半边数据结构,自动产生复杂的道路结构用于无人车集成仿真测试 (AVITS)。
发明内容
本发明的目的是提供一种构建无人驾驶环境的都市高精地图的生成方法 和装置,以解决高精路网多车道建模的复杂拓扑问题。
为解决上述问题,本发明的第一方面提供了一种高精地图的生成方法, 包括:
基于预先导入的地形高度图与普通地图数据,将该地图划分成地图块, 其中,通过将地形高度基本一致的该普通地图的网格连成块来获得地图块;
对所得到的每一个地图块,构建拓扑结构层、构建几何结构层、以及构 建交通结构层,以获得高精地图块;以及
将高精地图块连接形成完整的高精地图。
进一步的,所述构建拓扑结构层包括构建地图中的点线关系,实现点到 点的连通。
进一步的,所述构建拓扑结构层包括局部策略阶段、分支阶段、全局策 略阶段和清理阶段;
所述局部策略阶段包括:
初始化候选半边,放入优先队列q中;
选取至少一个候选半边,采用AABB定位邻域的方法,接受、拒绝或者修 改所述选取的至少一个候选半边;
将被接受的候选半边加入到拓扑结构层的树形结构中,并插入到索引树 中;
所述分支阶段包括:
对所述被接受的候选半边用逐渐生长的方法分支出新的候选半边集;
所述全局策略阶段包括:
对所述新的候选半边集中所有的候选半边采用AABB定位邻域的方法,接 受、拒绝或者修改所述所有的候选半边,将被接受的候选半边插入到优先队 列q;
所述清理阶段包括:
清理没有被加入到拓扑结构层的候选半边。
进一步的,所述构建几何结构层包括构建路、车道、车道分段和连接点; 所述路包括至少一个车道,所述车道包括至少一个车道分段,所述连接点包 括车道连接和车道的两端。
进一步的,所述连接点包括拐角、Y连接点、T连接点、十字路口、环形 连接点和蝴蝶连接点。
进一步的,所述几何结构层在拓扑结构层上构建,包括:
遍历拓扑结构层中的每一个半边,将点到点的曲线拓展为曲面,形成车 道分段和车道;
为每个车道设置车道进入点和车道退出点,所述车道进入点为沿着半边 方向的第一个车道分段,所述车道退出点为沿着半边方向的最后一个车道分 段;
创建车道与车道之间的连接点。
进一步的,构建所述交通结构层包括:
全局导航:搜索起点到终点的最短路径;
局部导航:提供仿真车辆自定位和路径规划计算接口,返回一组带有时 间戳的任务,其规定了起始时间、目标位置、预估到达时间、路径点和对应 的到达时间、速度以及加速度。
进一步的,基于所述高精地图,用于自动驾驶L4级的仿真车辆可在高精 地图中实现自定位、局部避障和导航的自动驾驶模拟测试。
本发明的另一方面提供了一种高精地图的生成装置,包括:
地图导入和划分单元,用于导入地图高度图与普通地图数据,将该地图 划分成地图块,其中,通过将地形高度基本一致的该普通地图的网格连成块 来获得地图块;
块地图构建器,针对每个块构建拓扑结构层、几何结构层和交通结构层, 以获得高精地图块;
完整地图构建器,将经过构建的每个高精地图块连接形成完整的高精地 图。
进一步的,所述块地图构建器包括拓扑结构层构建器、几何结构层构建 器和交通结构层构建器;
所述拓扑结构层构建器构建所述拓扑结构层包括构建地图中的点线关 系,实现点到点的连通;
所述几何结构层构建器构建所述几何结构层包括构建路、车道、车道分 段和连接点;所述路包括至少一个车道,所述车道包括至少一个车道分段, 所述连接点包括车道连接和车道的两端;
所述交通结构层构建器构建所述交通结构层包括:全局导航和局部导航;
全局导航:搜索起点到终点的最短路径;
局部导航:提供仿真车辆自定位和路径规划计算接口,返回一组带 有时间戳的任务,其规定了起始时间、目标位置、预估到达时间、路径点和 对应的到达时间、速度以及加速度。
进一步的,所述块地图拓扑结构层构建所述拓扑结构层包括局部策略阶 段、分支阶段、全局策略阶段和清理阶段;
所述局部策略阶段包括:
初始化候选半边,放入优先队列q中;
选取至少一个候选半边,采用AABB定位邻域的方法,接受、拒绝或者修 改所述选取的至少一个候选半边;
将被接受的候选半边加入到拓扑结构层的树形结构中,并插入到索引树 中;
所述分支阶段包括:
对所述被接受的候选半边用逐渐生长的方法分支出新的候选半边集;
所述全局策略阶段包括:
对所述新的候选半边集中所有的候选半边采用AABB定位邻域的方法,接 受、拒绝或者修改所述所有的候选半边,将被接受的候选半边插入到优先队 列q;
所述清理阶段包括:
清理没有被加入到拓扑结构层的候选半边。
进一步的,所述连接点包括拐角、Y连接点、T连接点、十字路口、环形 连接点和蝴蝶连接点。
进一步的,所述几何结构层在拓扑结构层上构建,包括:
遍历拓扑结构层中的每一个半边,将点到点的曲线拓展为曲面,形成车 道分段和车道;
为每个车道设置车道进入点和车道退出点,所述车道进入点为沿着半边 方向的第一个车道分段,所述车道退出点为沿着半边方向的最后一个车道分 段;
创建车道与车道之间的连接点。
进一步的,基于生成装置生成的所述高精地图,用于自动驾驶L4级架构 的仿真车辆可在高精地图中实现自定位、局部避障和导航的自动驾驶模拟测 试。
综上所述,本发明提供了一种高精地图的生成方法和装置,该方法采用 改进的半边数据结构,对导入的地图按块构建拓扑结构层、几何结构层和交 通结构层,然后将每个块连接起来形成完整的仿真地图。通过上述方法和装 置生成能够描述高精都市交通网络的数据,以及提供仿真测试车辆的导航以 及自定位的算法和接口,以解决高精路网多车道建模的复杂拓扑问题。
本发明的上述技术方案至少具有如下有益的技术效果:
1、本发明完成构建一个都市高精路网生成(HD-URNG)方法和装置,可用 于无人车仿真测试集成系统;
2、本发明提供了一种全新都市路网生成(HD-URNG)的框架,通过利用改 进的半边数据结构,自动产生复杂的道路结构用于无人车集成仿真测试 (AVITS)。
附图说明
图1是本发明的高精地图的生成方法的流程示意图;
图2是拓扑结构层的架构示意图;
图3是几何结构层的架构示意图;
图4是交通结构层的架构示意图;
图5是原始环形搜索示意图;
图6是扩展环形搜索示意图;
图7是车道的拓扑结构示意图;
图8是拓扑结构层的生成过程示意图;
图9是将多个曲线拉伸到网格的示意图;
图10是PID控制路径与来自HD-URN的计划路径读数的对比示意图;
图11是C2的车道分段和Y连接点示意图;
图12是连接点的拓扑结构层示意图;
图13是T连接点、交叉路口的2车道示意图;
图14是拐角连接点示意图;
图15是交叉路口分析示意图;
图16是蝴蝶连接点示意图;
图17是映射到局部坐标的地图;
图18是可行距离时间序列图;
图19是从障碍物中提取控制点进行相对路径生成示意图;
图20是B样条控制多边形示意图1;
图21是B样条控制多边形示意图2;
图22是本发明的高精地图的生成装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施 方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例 而并非限制本发明。图1是根据本发明的一种示例性的高精地图生成方法。 该方法由能够进行数据处理的器件或设备来执行,例如计算机等电子设备, 该电子设备也包括便携式电子设备。在结合图1的示例中,将以该方法在计 算机中执行作为示例来进行说明。
如图1所示,一种高精地图的生成方法,包括如下步骤:
步骤100、基于预先导入到计算机中的地形高度图的数据以及普通电子 地图中的网格,将地图划分成块。其中,地形高度图与普通电子地图可由市 售获得。该步骤中,在网格格点所在等高线的切量方向旋转该网格格点,意 在使多个格点数据构造出的地图与真实地形基本一致,进一步,将地形高度 基本一致的网格连成块,由此形成地图块。
步骤200、对所得到的每一个地图块,构建拓扑结构层、构建几何结构 层、以及构建交通结构层,以获得高精地图块。
在步骤200中包括如下步骤:
步骤210、构建拓扑结构层,亦即,构建地图中的点线关系,实现点到 点的连接。在本发明的示例中,可采用逐渐生长(Procedural Growth)分支、 索引树(QuadTree/Octree)、轴对齐矩形边界框AABB定位剪枝等方法构建点 线关系,实现点到点连接。
步骤220、在所得到的拓扑结构层基础上,构建几何结构层,用以呈现出道 路、车道、车道分段和连接点。在此提到的道路包括至少一个车道,该车道 包括至少一个车道分段。在此提到的连接点包括车道连接(即,道路交叉点) 和车道的两个端,示例地,连接点包括拐角、Y连接点、T连接点、十字路口、 环形连接点和蝴蝶连接点等。示例地,可通过随机生成二阶C2B-Spline的算 法,包括曲线处理框架,浮点数递增稀疏采样发生器等生成多车道路面、连 接点等。下文会对该步骤做详细的示例性描述。步骤230、在所得到的几何 结构层基础上,构建交通结构层。在交通结构层上,通过QuadTree/Octree, LaneSeg对象,和设计的仿真车辆模型完成交通层动态障碍物随机生成和针 对用于自动驾驶L4级无人车软件的地图支持功能,模拟IMU-GPS的自定位, 以及支持虚拟车辆路径规划,局部控制的车道线信息读取模块,完成自定位 算法程序。通过地图的拓扑结构,仿真车辆可以完成全局导航。通过在每帧 更新内,会执行一个凸内点检测算法,将仿真车精确加入到一个LaneSeg对 象;给定一个坐标,用QuadTree/Octree以log(n)效率迅速定位到相关 LaneSeg对象,其中n是车道总数;执行uuid匹配目标车辆;通过地图的 拓扑结构,仿真车控可以完成a*star全局导航;仿真车辆为自动驾驶L4级, 通过读取地图车道线信息,可以完成ACC及局部避障、导航等算法。
交通层包含了非静态信息。对于地图来说,生成障碍物算法,动态障碍 物模型是一个单独主题,我们不具体描述,超出了本专利摘要部分涵盖范围。 但交通层应当提供需要地图信息才能完成的计算,或者用于动态信息生成的 方法,具体包含:
寻路算法-模拟地图的路径规划;
自定位算法-模拟地图IMU+GPS惯性导航设备;
局部控制算法–模拟地图局部路径生成模块,支持变道,车道保持等 功能。
通过上述步骤210-230,构建完成每个高精地图块。
步骤300、将高精地图块连接形成完整的高精地图。具体的,可以通过 Housdoff距离和带压缩的并查集算法将经过步骤210、220与230处理的地 图块连接,从而构建出完整的高精地图。
简单地说,本发明图1所给的示例,首先基于等高线与普通电子地图数 据形成构建高精地图所需要的多个地图块;然后,对每个地图块进行处理, 依次形成拓扑结构层、几何结构层与交通结构层;最后,将这些地图块连接 构建出完整的高精地图。由此构建的高精地图可为用于自动驾驶L4级以上 (含L4级别)自动驾驶车辆提供仿真的模拟运行环境。如所知道的,现有的 L4级别以上的自动驾驶车辆,因为没有合适的基于高精地图的测试环境,不 得不让真实车辆在真实场景中进行测试。根据本发明的高精地图为用于自动 驾驶L4级以上的自动驾驶车辆的模拟测试提供了可能。
图2到图4示意了构件路网的过程。图2、图3与图4的区别仅在于在 图右侧分别由虚线引出了拓扑层细节框、几何结构层细节框、以及交通结构 层细节框。图2中,输入参数的参数框中是构建拓扑层时待输入的参数,例 如要生成的地图块(block)的数量,要生成的路(line)的数量,要生成的 路长、路宽等参数。可理解到,参数框中的参数是可根据需求进行配置的, 并不固定不变。路网的架构层框中示意了拓扑结构层,几何结构层,以及交通结构层。几何结构层建立在拓扑结构层之上,交通结构层建立在几何结构 层之上。在应用中,几何结构层可能需要从几何结构层获取一些数据或信息, 拓扑结构层可能需要从拓扑结构层获取一些数据或信息。简单讲,从拓扑结 构层、几何结构层到交通结构层,信息或数据的交互是并非单向。各细节框 中给出的细节数据仅为示意性显示,而无任何限制。
简单地说,对于每一个地图块,构建拓扑结构层的过程包括确立其中心 (Point3D),围绕中心点的主干道Major(Edge),以及与主干道正交的次 干道Minor(Edge);将主干道、次干道放入优先队列q(该优先队列指的是 用于进行计算的优先队列),并根据前面确立中心Point 3D初始化道路密度 函数;参考点离中心越近,则参考道路密度依概率越大。
在建立拓扑结构层的过程中,经历四个阶段,分别是局部策略阶段(localPolicy),分支阶段(branching),全局策略阶段(globalPolicy), 以及清理阶段(cleaning)。作为示例,在局部策略阶段,每次从q(初始阶 段为主干道Major和次干道Minor)获取一个或一个以上的候选半边,采用 AABB(Axis Aligned Bounding Box)来定位邻域(点的领域包含连接到该点的 其他点,以及背向该点的半边),接受、拒绝或者修改候选半边,实现点到点 的拓扑连通关系描述的局部冲突检测。将被接受的半边加入到地图拓扑图层 的树形结构中,并插入到索引树QuadTree/Octree中。接着,对被接受的边, 用逐渐生长Procedural Growth方法,在分支阶段分支出新的候选半边集。 新的候选半边集经过全局策略阶段处理后,插入到优先队列。当达到生成要 求后,最后清理没有被加入到拓扑图层的那些分支。其中,候选半边指尚未 被标记并加入图中的半边。
其中Edge采用了改进的半边结构,其包含下面特征:1.面(Face3D), 是半边(Edge)通过扩展地环形检索(exRingSearch)围成的一个多边形, 而不是传统的三角形;2.点(Point3D/Point2D)会维护两个邻域集合(点 集,边集合),方便后续交通层仿真车辆模拟高精地图检索;3.半边拓扑结 构除了标准属性前驱pre,对边pair,后继succ,起点start,终点end, 还包含扩展属性。
按逆时针旋转,分支为右(right),前(forward),左(left),后 (backward),和补充索引边__next(设置修改的下一段),next(计算后的 后继),__before(设置修改的前一段),before(计算后的前驱),last(和 当前边方向一致的上一段),满足:
right:=edge.succ,
forward:=edge.__next?edge.__next:right.pair.succ(三目条件表 达式),
left:=forward.pair.succ,
backward:=edge.pair=left.pair.succ,
last:=edge.pre!==null?edge.pre.pair.pre:edge.__before(三 目条件表达式),
next:=edge.__next?edge.next:edge.__succ,
before:=edge.__before?edge.__before:edge.pre
图6示意了扩展地环形检索。
扩展环形搜索(exRingSearch)的执行包括(其中,“.”表示所属属性, curr、pre满足扩展的半边结构,id:用户自定义identity,pair:半边对 边,next:半边后继):
步骤1.用pre,curr分别记录搜索中当前边和其前驱,分别用起始搜 索位置e来初始化与pre.next;
步骤2.若curr有效且curr.id不等于e.pair.id,则执行步骤3.否 则退出;
步骤3.若curr为pre.next,则更新pre:=curr,curr:=curr.next; 否则执行原始环形搜索,pre.ringSearch(fn)。其中,图5是原始环形搜索 的示意;如果没有找到半边,即为空值,则更新pre:=pre.pair, curr:=pre.next,否则返回检索到的结果退出;
步骤4.重复上述过程,直到curr空值,或者curr.id等于e.pair.id。
拓扑结构层构建之后,在拓扑结构层上继续构建道路的几何结构层,如 路、车道(Lane)、车道分段(LaneSeg)、连接(Connector)等都将被构建。 其中车道(Lane)采用de-Boor自适应算法等,构建C2连续曲线,具体实施 了一套参数方案来构建随机B-Spline曲线,解决2D/3D随机姿态问题。路 (Road)可以有多个车道(Lane),一个车道有多个车道分段(LaneSeg),它 们共享拓扑结构(该拓扑结构示意在图7中)。连接(Connector)是一个多边形,采用了Bezier曲线,缓和曲线设计标准,来模拟交通口设计标准。它们 有许多形状包括拐角(Corner),Y连接(YConn),T连接(TConn),十字路口 (Intersection)以及蝴蝶连接(ButterflyConn)。它们由车道连接 (LaneLinker)和车道两端组成。
在交通结构层上,通过QuadTree/Octree,LaneSeg,能设计供仿真车 辆模型,完成自定位过程:每帧更新,会执行一个凸内点检测算法,将自己 精确加入到一个车道分段LaneSeg;给定一个坐标可以,用QuadTree/Octree 以log(n)效率迅速定位到相关LaneSeg,其中n是车道总数;执行uuid匹 配目标车辆;通过地图的拓扑结构,仿真车控可以完成a*star全局导航。
通过上面的简述,可以看出,在构建出交通结构层之后,L4级别仿真车 辆,即能够通过读取所构建的地图中的地图车道线信息,通过执行ACC及局 部避障、导航等算法,从而可仿真出L4级别的车辆的无人驾驶过程。
图8是地图拓扑图层(topological layer)生成过程的示意图,公开了 一种将改进半边结构用于计算机仿真拓扑层的逐渐生长(Procedual Growth) 和所需要的数据结构。具体包括四个阶段:局部策略阶段(localPolicy),分 支阶段(branching),全局策略阶段(globalPolicy),以及清理阶段 (cleaning)。其中:
局部策略检测:从优先队列获取一个候选半边e,返回接受或者拒绝, 可能会修改已有的拓扑结构,具体包括(“.”表示所属属性,e满足上述 扩展半边结构;isAdded:是否加入到图了,取true则加入了;isLeaf:是 否叶子节点,取true则是叶子节点,即没有后继;mtch:是mtch_edges的 一个边;mtch.intersect:函数,mtch.intersect(e)表示计算mtch和e 是否相交;succ1:就是mtch.succ的值,”=”表示赋值;succ3:就是 mtch.pair.succ的值……余下以“=”表示的以此类推):
1.候选半边(Major和/或Minor)从优先队列q中弹出,进入局部策略(localPolicy)检测阶段,先用AABB(Axis Aligned Bounding Box)定位 邻域粗筛选,检查候选半边是否在邻域(AABB_RECT2D/3D)(其中,点的邻域 包括连接到该点的其他点以及背向该点的半边)范围内是否有其他边;如果 没有,则表明该候选半边e附近没有边,无需修剪,因此接受候选半边为正 式的半边,返回接受ACCEPT,执行步骤2;如果有,执行步骤3;
2.修改e.isAdded=true,执行一次逆向扩展版环形搜索 (exRingSearch),将路径上的前驱节点p,依次设置p.isLeaf=false;
3.遍历通过索引树查询得到e的邻域集mtch_edges,如果存在mtch ∈mtch_edges,s.t.mtch和e相交非空(p=mtch.intersect(e)!== null),则执行步骤5,否则依概率执行步骤4;
4.随机返回拒绝;
5.分别执行以下策略:
1)若p是e端点,执行步骤2);否则,更新e的终点(e.end)到p,执 行步骤2);
2)将mtch从p点分割成两段seg1,seg2。具体步骤为:记succ1= mtch.succ,succ3=mtch.pair.succ,seg1=mtch,seg3=mtch.pair;创 建从p到seg1.end的边seg2,使得seg3.pair=seg2,并将seg1的终点 (end)设置为p;
3)将mtch.pair从p点分割成两段seg3,seg4。具体步骤为:创建从p 到seg3.end的边seg4,使得seg1.pair=seg4,将seg3的终点(end)设置 为p,并更新其他该地图结构需要的属性;
4)将seg2,seg4插入到QuadTree/Octree,分别用seg2,seg4保存 mtch,mtch.pair的后继关系。具体步骤为:更新seg2.succ到succ1,如 果succ1存在,更新succ1.pre到seg2;更新seg4.succ到succ3,如果succ3 存在,更新succ3.pre到seg4;并分别将seg2赋值到seg1.__next,seg4 赋值到seg3.__next;
5)按照Frenet活动轮廓标架顺序,如果e在mtch右手方向,即e,mtch 外乘积z轴值outdot<0,执行6);否则e在mtch左手方向,执行7);
6)如果p是e的起点,执行以下步骤,否则执行8):seg3.succ=e, 如果e.pre存在,记e.pre为before,重置before.succ=null,e.pre =seg3;否则重置e.pre=seg1;执行10);
7)如果p是e的起点,执行以下步骤,否则执行9):类似地更新 seg1.succ,e.pre;执行12);
8)则p是e的终点,执行更新:seg3.succ=e.pair,如果e.pair.pre 存在,记before=e.pair.pre,重置before.succ=null,e.pair.pre= seg3;否则重置e.pair.pre=seg3;执行11);
9)则p是e的终点,类似地更新seg1.succ,e.pair.pre,执行13);
10)更新e,seg2,seg3,s.t.e.pair.succ=seg2,seg2.pre=e.pair, seg3.succ=null;
11)更新e,seg1,seg3,seg4,s.t.e.succ=seg4,seg4.pre=e, seg1.succ=null,seg3.succ=e.pair.将e加入拓扑图层返回拒绝 (REJECT),不再进一步处理;
12)更新e,seg2,seg3,s.t.e.pair.succ=seg4,seg4.pre=e.pair, seg1.succ=null;
13)更新e,seg1,seg2,seg3,s.t.e.succ=seg2,seg2.pre=e, seg3.succ=null,seg1.succ=e.pair.将e加入拓扑结构层,返回拒绝 (REJECT),不再进一步处理;
14)可选的,若是测试环境,在本阶段可以利用扩展半边环形搜索算法(exRingSearch)执行拓扑结构复检程序。
6.完成步骤5后,若没有返回,则继续执行局部策略检查:如果,mtch, e近似平行或者共线,若不相交直线的距离小于一个数值R,返回拒绝;如 果,e.end与mtch的距离在e的邻域范围(AABB_CIRCLE2D/3D)内,则延 长e到mtch,返回步骤5;
7.返回步骤3;
8.此时没有候选半边和测试,亦未退出,返回接受(ACCEPT);
9.被接受的候选半边,变更状态正式插入索引树;
返回步骤1,直到生成序列满足用户要求。
分支阶段:输入一个被接受的半边e,生成新的候选半边集合 (proposal)。具体包括:
10.创建被接受半边e的候选随机分支e1(right),e3(forward), e5(left),并初始化拓扑关系:根据Major或者Minor用quaternion微调 e3的方向,使得e3=q’eq(旋转e得到e3);e3和e1、e5垂直;e1,e3, e5满足e.succ=e1,e3=e1.pair.succ,e5=e3.pair.succ,e.pair= e5.pair.succ.同理分别添加对边(pair)e2,e4,e6,初始化拓扑结构,并 标记他们为叶子节点;
11.根据机器学习算法,训练普通地图数据得到一个备选模型f:密度-> 长度分布函数g,根据该模型生成e1~e6的长度。
全局策略检测:输入的被接受半边e产生的候选半边集合(proposal), 返回排序、修改、删除、新增的候选半边集合,并加入到优先队列。具体包 括:
12.处理分支阶段产生的候选分支,并根据全局策略设计,排序、剪枝、 调整候选分支,加入到优先队列中:
1)根据主干、匝道、次道等道路要求,设定优先级;
2)排除超出边界的分支;
3)设置新候选分支旋转quaternion,并形变(affine transformation) 附近网格顶点;
其中全局策略包含:依概率拒绝、修剪超过区域的生成边,根据用户城 市布局调整生成边的优先级;
清理阶段:清理没有被加入到地图的半边。具体包括:
13.生成结束后,还有很多候选分支没有加入到以场景树(Scene Graph) 为基础的图层中和scene graph,但是在拓扑树里面(topological tree), 因此需要根据标记,清理一遍,并修复扩展半边的拓扑结构。
由上述四个阶段,构建生成地图的拓扑结构层。
在步骤220中构建几何结构层(如图10所示)的过程中,本发明公开通 过随机生成二阶C2B-Spline的算法技术和装置,包括曲线处理框架,浮点数 递增稀疏采样发生器等生产多车道路面、连接点等装置。该构建几何结构层 包括如下步骤:
步骤221、遍历拓扑结构层中的每一个半边,将点到点的曲线拓展为曲 面,形成车道分段和车道;
步骤222、为每个车道设置车道进入点和车道退出点,所述车道进入点 为沿着半边方向的第一个车道分段,所述车道退出点为沿着半边方向的最后 一个车道分段;
步骤223、创建车道与车道之间的连接点。
每一个拓扑半边,有一个折线polyline定义从起点到终点的具体曲线形 状。曲线通过Extrude方法,被拓展成曲面形成车道,由多个车道组成路(如 图7所示)。下面以具体的实施例来详细说明几何结构层的构建过程。
1.遍历拓扑结构层(topological layer)的半边,执行绘制器:
1)检测被绘制边e的用户添加数据项(e.assoc)道路(e.assoc.road)是 否被创建,是,返回null,否则分别为e,e.pair创建Road对象, e.assoc.road=road,并将road添加进端点用户数据索引中 (e.start.assoc.roads.push(road),e.end.assoc.roads.push(road));其 中start.assoc.roads.push:是一个函数,归属关系,用于将一个对象加入 到另一个队列对象中,e.start.assoc.roads.push(road):将road加入到roads里面。assoc是本地图数据结构中所有元素约定的可编辑的字典,用于 添加本层外、额外的用户数据索引;
2)绘制从起点(e.start)到终点(e.end)的车道,执行4),3),并 添加到场景树中;
3)绘制和e.pair表示的车道,并添加到场景树中,执行4),并添加 到场景树中;
4)e为输入边,e.polyline若没有设定shape类型(polyline:e起点 到终点的沿途点,也可以叫waypoints,几何上就是折线),根据机器学习算 法,训练成熟普通地图数据得到一个备选模型u:密度->道路类型函数v生 成以下类型之一:直线(line),弧线(rad),S型(S_Shape),蛇型(Snake), 蝴蝶型(Butterfly);
5)若e.polyline.shape(shape:折线密集起来,就可以表示曲线,参 考图,有不同的曲线类型。因此shape标记形状)是直线,执行步骤6),否 则执行步骤7);
6)lerp1st是点一次插值函数,w是一个0到1的常数比例,gap是一个 常数,将序列[P1,lerp1st(P1,P2,w),lerp1st(P1,P2,w+gap),
lerp1st(P1,P2,(1-w)-gap),lerp1st(P1,P2,(1-w)),P2]加入到控制 点序列trace=e.polyline.toolkit.cnt,返回trace;(toolkit:工具集; toolkit.cnt:工具集toolkit的控制点;曲线生成算法需要控制点组成,并 组成伯恩斯坦多项式)
7)依次将P1,P1a,其他生成控制点序列(e.polyline.toolkit.cnt); 执行8);依次将P2a,P2加入到控制点序列(e.polyline.toolkit.cnt);其 中P1a是e前驱终点的切向量,根据长随机分布的一个延伸;同理,P2a是 P2后继起点反方向根据长度随机分布的一个延伸;
8)将生成曲线的控制点的所在凸包(Convex Hull)的面(Sides,逆时针 旋转,左或者右方),宽(width)和高(height),随机参数化,并利用随 机分布F产生(0,1)区间上的参数u,v,高斯分布G产生的随机扰动epilon, 采用barycentric插值法得到P=lerp1st(mid,mid2,v),mid2= lerp1st(shifted.start,shifted.end,u+epilon),mid1=lerp1st(P1,P2, u);这样设计u,v的好处是其曲线形状可解释性较强,为了获得F,通过离 线,在线两种方式计算。在线,受到KMeans++初始化器启发,通过递增稀 疏分布族来确保,u,v是不断增长的,并且以较高概率保持间距;离线,大 量绘制以上形状曲线,并采样点P,通过求解P=u*P1+v*P2,获得u,v参数 采样;
9)重复8)直到规定形状的控制点完成产生;
10)接下来,绘制器将曲线切成段(Segment),并通过ExtrudeCurve从 到右,从起点到终点方向完成车道分段LaneSeg曲三角形面块绘制面;如图 9所示,车道分段LaneSeg具有以下特征:在每一个参考点(ref)估计法向量 n,切向量t,分别于左右沿法向量和其相反方向插入车道线点(lane marking point),瞬时曲率k:
2.绘制器绘制完,需要设置每个车道lane的进入点(in-coming,entry) 和退出点(out-coming,exit),并添加到对应的端点上 (e.start.assoc.entries.push(entry),e.end.assoc.exits.push(exit))。 其中进入点是一个车道分段LaneSeg实例,是沿着所在拓扑边方向的第一个 基于段的LaneSeg实例;退出点是一个LaneSeg实例,是沿着所在拓扑边方 向的最后一个基于段的LaneSeg实例
3.遍历非叶子节点,创建连接点(connetor),通过Bezier曲线、土木 工程广泛采用的过渡曲线设计(national Transition Curve Design,JTG B01-2003,CN),连接连接点内的所有entry和exit对(LaneLinker).连 接点(joint)是以下形状之一:拐角(Corner,如图14所示)、Y连接点(YConn, 如图11所示)、T连接点(TConn,如图13所示)、十字路口(Intersection, 如图13、18所示)、环形连接点(CircleConn)、蝴蝶形连接点(ButterflyConn,如图16所示),车道曲面绘制过程同步骤1。其中蝴蝶形 连接点由环绕上升线(spiral rising curve)组成,与直行车道异面,通常 成对出现,使得连接点看起来像蝴蝶翅膀一样。
由上述方法构建生成地图的几何结构层。
在步骤230中构建交通结构层(如图10所示)的过程中,本发明公开了 一种用于面向L4级别的仿真车辆在仿真地图里实现自定位,导航的方法。无 人车导航包括全局导航和局部路径规划。
全局导航:搜索起点到终点的最短路径。
1、全局导航可以被描述为在连接点的转向指令序列{<lane i,si>},其中, Lane_i:第i个车道;Si:第i个转向指令;等价于起始车道lane0和转向 指令序列{si}。假定从A点到B点,首先判断A,B是否在同一个块(Block)。 若A,B在一个Block则执行2;否则检测A,B是否在一个Island。若A,B在 一个Island则执行3否则执行4;
2、则A,B在一个构建器构建的局部拓扑图里,执行A*算法或其他启发 性寻路算法,通过在A*加一个同步记录栈,输出转向指令序列{si},满足 O(Param)<L,其中Param是用户输入的几何参数,L是构建单元的常参数 或者上限参数的一个函数,这个意义上,我们得到常数复杂度搜索过程;
3、则A,B在一个Island,但不在一个block内,记A所在block为blockA, B所在block为blockB,在一个连通分支Island内,我们用A*搜索,先得 到从BlockA到BlockB所经过的block序列{bi},我们在拓扑层构建见得已 经使用带压缩并查集建立block之间连接关系并转换为半边,记做{bridge}, 则path(A,B)=
path(A,bridge0.start)+
∑{bridgei+path(bridgei.end,bridgei+1.start)}+path(bridgen-1.end,B)
,其中n桥(Bridge)的数目,path用A*搜索找从起点到终点的最短路径,不 同block间可以使用工作线程同时进行计算;
4、则A,B不在一个Island,记A所在的岛屿为IslandA,B所在岛屿为 IslandB,在拓扑层构建阶段已经使用带压缩并查集建立island之间连接关 系并转换为半边记做bridge,则path(A,B)=path(A,bridge.start)+ bridge+path(bridge.end,B);
局部导航:输入车辆探测距离内的障碍物位置、速度,主仿真车位置, 速度,返回利用B-Spline曲线凸包性质生成的带时间戳的路径轨迹点 (wayPoints),躲避障碍物;
5、局部导航提供仿真车辆自定位,路径规划计算接口。每次规划的结果 是一组带有时间戳的任务(Job)。带时间戳的任务规定了起始时间,目标位置, 预估到达时间(eta),路径点(waypoints)和对应的到达时间(eta),速度,加 速度;具体地:
6、利用车辆和障碍物自定位模块,获取当前世界坐标系位置(x,y,z), 速度v(矢量);
7、以车道线距离(x,y,z)最近的点为参考点(ref),将(x,y)映 射成横向坐标u(车道线参考点纵向垂直方向距离),和纵向坐标v(从车道 起点到ref的累积长度);
8、记主仿真车辆的坐标作为(u0,v0),将障碍物坐标(u,v)转换成 局部坐标(u-u0,v-v0);
9、若驾驶指令为直行,则计算(u0,v0)到正前方最近障碍物的距离 的一组带时间戳的相对任务(waypoint);具体计算方法是采用“里程- 时间”图:不同障碍物在同一车道,每个时间点的位移形成一个图,图的 交点就是发生碰撞的(时间,位移)点(如图18所示);前车向后延伸到 安全距离的轨迹s1,和后车想钱延伸的安全距离s2之间的区域为可行域,在包含s1,s2之间采样得到控制点序列s,用de-Boor算法生成B-Spline 曲线,根据B-Spline闭包原理,则生成曲线在可行域,满足二阶光滑; 将位移转换为相对位置,得到一组带时间戳的相对路径点(waypoint); 执行14;
10、若驾驶指令为变道,若右前方向变道,利用Tracker从右方向,右 前方向,正前方,右后方向,召回最靠前,且车道线方向距离小于安全距离 常数倍的动态障碍物,确定带插入位置(如图19所示);其中Tracker是AVITS 仿真车辆实现的一个虚拟感知器融合(sensor fusion)障碍物视频流跟踪器, 记录每个时间戳8个方向,检测距离内障碍物;执行11);若左前方向便道, 执行12);
11、计算不带时间戳的相对路径;则沿动态障碍物左方向,左前方向, 正前方按照安全距离延伸的边界点,就是我们的控制点集合S;我们通过de Boor算法生成二阶光滑B-Spline曲线trace;根据其凸包性质,我们可以 得出产生的相对路径线不会和障碍物交叉,如图20、图21所示,执行13);
12、计算不带时间戳的相对路径;则沿动态障碍物右方向,右前方向, 正前方按照安全距离延伸的边界点,就是我们的控制点集合S;我们通过de Boor算法生成二阶光滑B-Spline曲线trace;根据其凸包性质,我们可以 得出产生的相对路径线不会和障碍物交叉,如图20、图21所示;执行13);
13、计算主仿真车辆相对于待插入车辆的相对速率标量v0,采样计算每 个时间戳t,在trace的位置,得到一组带时间戳的相对路径点
14、封装为一组带时间戳的任务(Job)返回;主车收到数据后,将其放 入优先队列中,每次从队列中读取,检测是否过期,如果没有过期用当前主 车坐标恢复为世界坐标,即得到局部规划路径;否则直接扔掉,重新请求。
由上述方法构建生成地图的交通结构层。
至此,每个地图块的拓扑结构层、几何结构层和交通结构层都已构建完 毕,然后根据步骤300,将构建好的每个地图块连接起来形成完整的高精地 图。
对上述文中出现的技术术语“块”、“岛屿”作以下解释:
其中涉及的块(Block)作为地图拓扑层结构元素,满足以下特征:Block 是构建器执行单元,包含了该块的坐标范围;坐标范围由底层的网格(Grid) 表示,网格是一个数据坐标,用来生成地形图Terrain,对于相同高度的 Terrain合并成一个大的坐标单元;为了使得Block的数据共享,并对已有 地图进行交互扩展,块可以和临近的块用最小Hausdoff距离合并;具体步骤 如下:
1、遍历块的grid边界单元,读取4邻域或者8邻域grid单元所在块就 是邻域块;
2、对邻域块采用Housdoff距离,找到最近的叶子边对<a,b>,创建半边 e1使得e1.start=a.start,e1.end=b.pair.start;创建半边e2使得 e2.start=b.start,e2.end=a.pair.end;
3、修改a,b,e1,e2的拓扑结构,使得:a.__next=e1,b.pair.pre= e1,b.__next=e2,a.pair.pre=e2;
4、修改a,b的叶子节点状态为否。
其中涉及的“岛屿”(Island)作为地图拓扑层结构元素,满足以下特征: “岛屿”是基于“块”合并策略通过带压缩的并查集构建的连通分支,并包 含所有的“块”的叶子节点。具体步骤如下:
1、将所有岛屿初始化为带压缩并查集节点(DisjointedNode),随机顺 序放在一个队列q中;这里DisjointedNode是通过继承TreeNode结构编写 的带压缩并查集节点;
2、从队列中拿出一个岛屿islandA,用Housdoff距离,从q中选出一 个待匹配岛屿islandB,合并islandA和islandB,放回q中,此时q数量减 1;
3、重复2,直到q的长度为1。
本发明的第二方面提供了一种高精地图的生成装置,如图22所示,包括:
地图导入和划分单元410,用于导入地图高度图与普通地图数据,将该 地图划分成地图块,其中,通过将地形高度基本一致的该普通地图的网格连 成块来获得地图块。
块地图构建器420,针对每个块构建拓扑结构层、几何结构层和交通结 构层,以获得高精地图块;所述块地图构建器包括块地图拓扑结构层构建器, 构建所述拓扑结构层采用逐渐生长Procedural Growth分支、索引树 QuadTree/Octree、轴对齐矩形边界框AABB定位剪枝的方法构建地图中的点 线关系,实现点到点的连通;所述块地图构建器包括块地图几何结构层构建 器,所述块地图几何结构层构建器构建所述几何结构层包括构建路、车道、 车道分段和连接点;所述路包括至少一个车道,所述车道包括至少一个车道 分段,所述连接点包括车道连接和车道的两端;所述块地图构建器包括块地 图交通结构层构建器,所述块地图交通结构层构建器构建所述交通结构层包 括:全局导航:搜索起点到终点的最短路径;局部导航:提供仿真车辆自定 位和路径规划计算接口,返回一组带有时间戳的任务,其规定了起始时间、 目标位置、预估到达时间、路径点和对应的到达时间、速度以及加速度。
完整地图构建器430,通过Housdoff距离和带压缩的并查集算法将经过 构建的每个高精地图块连接形成完整的高精地图。
综上所述,本发明提供了一种高精地图的生成方法和装置,该方法采用 改进的半边数据结构,对导入的地图按块构建拓扑结构层、几何结构层和交 通结构层,然后通过Housdoff距离和带压缩并查集算法,将每个块连接起来 形成完整的仿真地图。通过上述方法和装置生成能够描述高精都市交通网络 的数据,以及提供仿真测试车辆的导航以及自定位的算法和接口,以解决高 精路网多车道建模的复杂拓扑问题。
本发明还提供处理器,其包括存储部与处理部。该存储部中存储指令, 所述指令再被所述处理部执行时,如本申请所描述示例的高精地图的生成方 法被执行。
本发明还提供自动驾驶模拟测试装置,其包括本申请所示例的高精地图 生成装置,或能够执行本申请所描述示例的高精地图的生成方法。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释 本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和 范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和 边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (12)
1.一种高精地图的生成方法,其特征在于,包括:
基于预先导入的地形高度图与普通地图数据,将该地图划分成地图块,其中,通过将地形高度基本一致的该普通地图的网格连成块来获得地图块;
对所得到的每一个地图块,构建拓扑结构层、构建几何结构层、以及构建交通结构层,以获得高精地图块;其中,采用逐渐生长分支、索引树和轴对齐矩形边界框AABB定位剪枝方法构建拓扑结构层;基于所述拓扑结构层利用随机生成二阶C2 B-Spline的算法构建几何结构层;基于全局导航和局部导航构建所述交通结构层;所述全局导航包括搜索起点到终点的最短路径;所述局部导航包括提供仿真车辆自定位和路径规划计算接口,返回一组带有时间戳的任务,其规定了起始时间、目标位置、预估到达时间、路径点和对应的到达时间、速度以及加速度;以及
将高精地图块连接形成完整的高精地图;
其中,
所述构建拓扑结构层包括构建地图中的点线关系,实现点到点的连接;
所述构建拓扑结构层还包括局部策略阶段、分支阶段、全局策略阶段和清理阶段;其中,
所述局部策略阶段包括:
初始化候选半边,放入优先队列q中;
选取至少一个候选半边,采用AABB定位邻域的方法,接受、拒绝或者修改所述选取的至少一个候选半边;
将被接受的候选半边加入到拓扑结构层的树形结构中,并插入到索引树中;
所述分支阶段包括:
对所述被接受的候选半边用逐渐生长的方法分支出新的候选半边集;
所述全局策略阶段包括:
对所述新的候选半边集中所有的候选半边采用AABB定位邻域的方法,接受、拒绝或者修改所述所有的候选半边,将被接受的候选半边插入到优先队列q;
所述清理阶段包括:
清理没有被加入到拓扑结构层的候选半边。
2.根据权利要求1所述的高精地图的生成方法,其特征在于,所述构建几何结构层包括构建路、车道、车道分段和连接点;所述路包括至少一个车道,所述车道包括至少一个车道分段,所述连接点包括车道连接和车道的两端。
3.根据权利要求2所述的高精地图的生成方法,其特征在于,所述连接点包括拐角、Y连接点、T连接点、十字路口、环形连接点和蝴蝶连接点。
4.根据权利要求2所述的高精地图的生成方法,其特征在于,所述基于所述拓扑结构层利用随机生成二阶C2 B-Spline的算法构建几何结构层,包括:
遍历拓扑结构层中的每一个半边,将点到点的曲线拓展为曲面,形成车道分段和车道;
为每个车道设置车道进入点和车道退出点,所述车道进入点为沿着半边方向的第一个车道分段,所述车道退出点为沿着半边方向的最后一个车道分段;
创建车道与车道之间的连接点。
5.根据权利要求1-4中任一项所述的高精地图的生成方法,其特征在于,基于所述高精地图,用于自动驾驶L4级的仿真车辆可在高精地图中实现自定位、局部避障和导航的自动驾驶模拟测试。
6.一种高精地图的生成装置,其特征在于,包括:
地图导入和划分单元,用于导入地图高度图与普通地图数据,将该地图划分成地图块,其中,通过将地形高度基本一致的该普通地图的网格连成块来获得地图块;
块地图构建器,针对每个块构建拓扑结构层、几何结构层和交通结构层,以获得高精地图块;其中,采用逐渐生长分支、索引树和轴对齐矩形边界框AABB定位剪枝方法构建拓扑结构层;基于所述拓扑结构层利用随机生成二阶C2 B-Spline的算法构建几何结构层;基于全局导航和局部导航构建所述交通结构层;所述全局导航包括搜索起点到终点的最短路径;所述局部导航包括提供仿真车辆自定位和路径规划计算接口,返回一组带有时间戳的任务,其规定了起始时间、目标位置、预估到达时间、路径点和对应的到达时间、速度以及加速度;
其中,
所述构建拓扑结构层包括构建地图中的点线关系,实现点到点的连接;
所述构建拓扑结构层还包括局部策略阶段、分支阶段、全局策略阶段和清理阶段;其中,
所述局部策略阶段包括:
初始化候选半边,放入优先队列q中;
选取至少一个候选半边,采用AABB定位邻域的方法,接受、拒绝或者修改所述选取的至少一个候选半边;
将被接受的候选半边加入到拓扑结构层的树形结构中,并插入到索引树中;
所述分支阶段包括:
对所述被接受的候选半边用逐渐生长的方法分支出新的候选半边集;
所述全局策略阶段包括:
对所述新的候选半边集中所有的候选半边采用AABB定位邻域的方法,接受、拒绝或者修改所述所有的候选半边,将被接受的候选半边插入到优先队列q;
所述清理阶段包括:
清理没有被加入到拓扑结构层的候选半边;以及
完整地图构建器,将经过构建的每个高精地图块连接形成完整的高精地图。
7.根据权利要求6所述的高精地图的生成装置,其特征在于,所述块地图构建器包括拓扑结构层构建器、几何结构层构建器和交通结构层构建器;
所述拓扑结构层构建器构建所述拓扑结构层包括构建地图中的点线关系,实现点到点的连接;
所述拓扑结构层构建器构建所述拓扑结构层还包括局部策略阶段、分支阶段、全局策略阶段和清理阶段;其中,
所述局部策略阶段包括:
初始化候选半边,放入优先队列q中;
选取至少一个候选半边,采用AABB定位邻域的方法,接受、拒绝或者修改所述选取的至少一个候选半边;
将被接受的候选半边加入到拓扑结构层的树形结构中,并插入到索引树中;
所述分支阶段包括:
对所述被接受的候选半边用逐渐生长的方法分支出新的候选半边集;
所述全局策略阶段包括:
对所述新的候选半边集中所有的候选半边采用AABB定位邻域的方法,接受、拒绝或者修改所述所有的候选半边,将被接受的候选半边插入到优先队列q;
所述清理阶段包括:
清理没有被加入到拓扑结构层的候选半边;
所述几何结构层构建器构建所述几何结构层包括构建路、车道、车道分段和连接点;所述路包括至少一个车道,所述车道包括至少一个车道分段,所述连接点包括车道连接和车道的两端;
所述交通结构层构建器构建所述交通结构层包括:全局导航和局部导航;其中,
所述全局导航:搜索起点到终点的最短路径;
所述局部导航:提供仿真车辆自定位和路径规划计算接口,返回一组带有时间戳的任务,其规定了起始时间、目标位置、预估到达时间、路径点和对应的到达时间、速度以及加速度。
8.根据权利要求7所述的高精地图的生成装置,其特征在于,所述连接点包括拐角、Y连接点、T连接点、十字路口、环形连接点和蝴蝶连接点。
9.根据权利要求8所述的高精地图的生成装置,其特征在于,所述基于所述拓扑结构层利用随机生成二阶C2 B-Spline的算法构建几何结构层,包括:
遍历拓扑结构层中的每一个半边,将点到点的曲线拓展为曲面,形成车道分段和车道;
为每个车道设置车道进入点和车道退出点,所述车道进入点为沿着半边方向的第一个车道分段,所述车道退出点为沿着半边方向的最后一个车道分段;
创建车道与车道之间的连接点。
10.根据权利要求6-9中任一项所述的高精地图的生成装置,其特征在于,基于生成装置生成的所述高精地图,用于自动驾驶L4级的仿真车辆可在高精地图中实现自定位、局部避障和导航的自动驾驶模拟测试。
11.一种处理器,其包括存储部与处理部,所述存储部中存储指令,所述指令再被所述处理部执行时,如权利要求1-5中任一项所述的高精地图的生成方法被执行。
12.一种自动驾驶模拟测试装置,其包括如权利要求6-10中任一项所述的高精地图的生成装置,或能够执行如权利要求1-5中任一项所述的高精地图的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910438653.0A CN110220521B (zh) | 2019-05-24 | 2019-05-24 | 一种高精地图的生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910438653.0A CN110220521B (zh) | 2019-05-24 | 2019-05-24 | 一种高精地图的生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110220521A CN110220521A (zh) | 2019-09-10 |
CN110220521B true CN110220521B (zh) | 2023-07-07 |
Family
ID=67818061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910438653.0A Active CN110220521B (zh) | 2019-05-24 | 2019-05-24 | 一种高精地图的生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110220521B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110634291B (zh) * | 2019-09-17 | 2020-12-29 | 武汉中海庭数据技术有限公司 | 基于众包大数据的高精度地图拓扑自动构建方法及系统 |
CN110716209B (zh) * | 2019-09-19 | 2021-12-14 | 浙江大华技术股份有限公司 | 地图构建方法、设备及存储装置 |
CN112987711B (zh) * | 2019-11-30 | 2022-08-09 | 华为技术有限公司 | 自动驾驶规控算法优化方法及仿真测试装置 |
CN110992813B (zh) * | 2019-12-25 | 2021-07-09 | 江苏徐工工程机械研究院有限公司 | 一种露天矿山无人驾驶系统的地图创建方法及系统 |
CN113405558B (zh) * | 2020-02-29 | 2024-04-09 | 华为技术有限公司 | 自动驾驶地图的构建方法及相关装置 |
CN111580493B (zh) * | 2020-04-14 | 2022-08-30 | 吉利汽车研究院(宁波)有限公司 | 一种自动驾驶仿真方法、系统及介质 |
CN111982139B (zh) * | 2020-07-21 | 2022-07-12 | 北京五一视界数字孪生科技股份有限公司 | 道路连接关系确定方法、装置、存储介质及电子设备 |
CN111856968B (zh) * | 2020-07-31 | 2023-07-21 | 成都信息工程大学 | 一种基于并行计算的大规模交通仿真系统及方法 |
CN112525212B (zh) * | 2020-12-17 | 2023-04-21 | 武汉光庭信息技术股份有限公司 | 一种交通道路最可能路径生成方法及系统 |
CN113516865B (zh) * | 2021-03-17 | 2022-07-05 | 北京易控智驾科技有限公司 | 基于高精度地图的矿山无人驾驶路网车辆排队方法和装置 |
CN112985428B (zh) * | 2021-04-22 | 2021-08-17 | 速度时空信息科技股份有限公司 | 基于安全角度的高精传感地图的图层的优先级参取方法 |
CN113934935B (zh) * | 2021-10-20 | 2024-07-02 | 平安国际智慧城市科技股份有限公司 | 交互式法院地图生成方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106441319A (zh) * | 2016-09-23 | 2017-02-22 | 中国科学院合肥物质科学研究院 | 一种无人驾驶车辆车道级导航地图的生成系统及方法 |
EP3287338A1 (de) * | 2016-08-23 | 2018-02-28 | Omv Refining & Marketing Gmbh | Verfahren zur erstellung eines digitalen gleisplans einer gleisanlage |
CN108803607A (zh) * | 2018-06-08 | 2018-11-13 | 北京领骏科技有限公司 | 一种用于自动驾驶的多功能仿真系统 |
CN109256028A (zh) * | 2018-08-28 | 2019-01-22 | 武汉市众向科技有限公司 | 一种用于无人驾驶的高精度路网自动生成的方法 |
CN109597862A (zh) * | 2018-10-31 | 2019-04-09 | 百度在线网络技术(北京)有限公司 | 基于拼图式的地图生成方法、装置及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805463B2 (en) * | 2007-05-08 | 2010-09-28 | Laser-Scan, Inc. | Three-dimensional topology building method and system |
CN111542860B (zh) * | 2016-12-30 | 2024-08-27 | 辉达公司 | 用于自主车辆的高清地图的标志和车道创建 |
DE102017220242A1 (de) * | 2017-11-14 | 2019-05-16 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Erstellen und Bereitstellen einer Karte |
-
2019
- 2019-05-24 CN CN201910438653.0A patent/CN110220521B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3287338A1 (de) * | 2016-08-23 | 2018-02-28 | Omv Refining & Marketing Gmbh | Verfahren zur erstellung eines digitalen gleisplans einer gleisanlage |
CN106441319A (zh) * | 2016-09-23 | 2017-02-22 | 中国科学院合肥物质科学研究院 | 一种无人驾驶车辆车道级导航地图的生成系统及方法 |
CN108803607A (zh) * | 2018-06-08 | 2018-11-13 | 北京领骏科技有限公司 | 一种用于自动驾驶的多功能仿真系统 |
CN109256028A (zh) * | 2018-08-28 | 2019-01-22 | 武汉市众向科技有限公司 | 一种用于无人驾驶的高精度路网自动生成的方法 |
CN109597862A (zh) * | 2018-10-31 | 2019-04-09 | 百度在线网络技术(北京)有限公司 | 基于拼图式的地图生成方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110220521A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110220521B (zh) | 一种高精地图的生成方法和装置 | |
CN108871368B (zh) | 一种高精度地图车道横向拓扑关系的构建方法、系统及存储器 | |
KR100579767B1 (ko) | 다각형으로 표현된 도로지도 데이터의 작성과 이용을 위한장치와 방법 | |
WO2020108207A1 (zh) | 一种高精度地图的构建方法及装置 | |
CN110021072B (zh) | 面向全息测绘的多平台点云智能处理方法 | |
CN106920278B (zh) | 一种基于Reeb图的立交桥三维建模方法 | |
CN108009666B (zh) | 基于动态路网的层级优先最优路径计算方法 | |
CN104077326A (zh) | 一种道路数据的处理方法及装置 | |
CN114777799B (zh) | 一种路口高精地图生成方法、装置、电子设备及存储介质 | |
CN114509065B (zh) | 地图构建方法、系统、车辆终端、服务器端及存储介质 | |
CN115435798A (zh) | 无人车高精地图路网生成系统及方法 | |
CN106709126A (zh) | 一种基于城市道路的路网构建模型 | |
Andreev et al. | Towards realistic pedestrian route planning | |
Khoche et al. | Semantic 3d grid maps for autonomous driving | |
CN116958316B (zh) | 拓扑图生成方法、装置、计算机设备及存储介质 | |
Behr et al. | Map matching for semi-restricted trajectories | |
Sugihara et al. | Roof report from automatically generated 3D building models by straight skeleton computation | |
Gao et al. | A procedural generation method of urban roads based on osm | |
Kanakagiri | Development of a virtual simulation environment for autonomous driving using digital twins | |
KR102462749B1 (ko) | 표준노드링크정보와 지형정보로부터 디지털 트윈 도로를 자동 생성하는 시스템 및 방법 | |
Sugihara | Straight skeleton for automatic generation of 3-D building models with general shaped roofs | |
CN118464028B (zh) | 一种基于分治策略的农机路径规划方法 | |
CN115077550B (zh) | 一种基于导航地图与高精地图匹配的无人车路径规划方法 | |
MURASE et al. | Automatic generation of 3D building models for environmental education by straight skeleton computation | |
Wang et al. | Two-dimensional Automatic Smooth Road Representation and Vehicle Trajectory based on key nodes for Complex Intersection Modeling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |