陆书成, 高 岩, 王长波
(华东师范大学 计算机科学与技术学院, 上海 200062)
野外作战环境与城市作战环境有较大区别: 城市作战环境主要包括城市建筑物组成的掩蔽环境、路网组成的机动环境、街区组成的攻守环境、各种提供补给的生活设施组成的休整保障环境等[1], 其地形平坦且植被覆盖区域少; 而野外战场环境地形地势高低不平, 地理要素复杂多样, 包括沙地、草地等, 不同的地形特征还包括不同的植被类型和水文特征, 主要人造设施为道路、防御工事、民居等. 在野外战场环境仿真中, 道路仿真是其中一个重要的组成部分. 除了经典的L 系统[2]方法, 近些年的道路建模方法有深度学习方法[3]、最短路径方法[4]、基于样例的方法[5]等; 但这些方法的研究目标主要是城市的建模、规划和模拟, 主要关注的是道路网络的布局而不是详细的道路几何结构设计. 而战场仿真更加强调真实性、准确性, 侧重于根据真实世界道路网络数据来构建具有较强真实感的道路三维模型; 此外, 野外战场环境地形条件复杂, 对道路与地形的贴合度以及道路的曲率也有严格要求.OpenStreetMap (简称OSM)的交通要素分类丰富, 种类齐全, 且能够准确实时更新[6], 可满足军事作战实时性、准确性的要求. 故本文采用OSM 地理信息数据作为数据源并用于提取道路网络.
对于道路网络信息的组织, 普遍采用Yang 等[7]所提出的结点、链接、路段和车道的组织结构来描述: 结点表示道路交叉口; 路段表示一组车道; 而链接则表示路段的集合. 路段结点存储有路段的起点、终点和曲率等道路网络数据. Wang 等[8]在Yang 等[7]所提结构的基础上, 利用曲线来定义道路的边界, 并且定义了道路之间的邻接关系, 丰富了道路网络的数据结构. Amara 等[9]通过过滤、细分和融合等操作, 将一系列非结构化的折线道路的网络数据转换为以图形表示. Zhang 等[10]则使用模板设计来代替Yang 等[7]的方案: 通过预先定义的各类道路类型模板, 在解析GIS (Geographic Information System)数据的同时, 生成具体的语义信息; 然后通过语义的相互拼接构成整个道路网络的结构. 本文亦以Yang 等[7]所提结构为基础, 将道路网络描述为由道路连接点、路段、道路内部结点等组成的结构.
道路建模的关键是道路中心线的构建. Amara 等[11]根据GIS 数据对道路结点的点邻域的曲率进行了估计, 然后根据这些曲率对道路及结点进行了分类, 最后通过相应的函数对道路中心线进行拟合.Schmitt 等[12]提出了一种受机器人运动规划启发的回旋曲线模型道路映射技术, 其中心线的生成受车辆动画模拟效果的影响. Boucher 等[13]通过非线性滤波器融合GPS、OSM 和DEM(Digital Elevation Model)数据来估算道路高程和坡度参数. 本文在结合上述方法的基础上, 为增强道路建模的真实性和可塑性, 引入G2连续的Hermite 插值样条曲线来表示道路中心线.
Cura 等设计了一个名为StreetGen[14]的道路生成框架, 通过GIS 矢量数据进行道路主干的生成,并通过引入GIS 栅格数据对道路的边缘进行矫正, 达到了较好的建模效果. 王华等[15]针对现有交通路网语义建模方法不支持新增道路的问题, 提出了支持动态编辑的交通路网语义建模方法, 提升了道路建模的灵活性. 本文基于Hermite 插值样条曲线提出的基于网格变形的道路模型拟合算法, 以期能提高道路模型的复用和减少人工成本.
本文通过分析野外战场环境中道路网络的特点, 构建相应的抽象模型, 引入OSM 地理信息数据、地形高程、工程建设规范等多源数据, 并结合各种仿真技术, 以提高道路网络建模的效率和真实感的,为野外战场环境中的地理要素提供可行的分析角度和准确高效的建模方法.
本文面向野外战场环境的道路建模仿真流程分为3 个阶段: 道路数据预处理阶段、道路结点高度调整阶段、道路模型实例化阶段. 具体如图1 所示.
图1 面向野外战场环境的道路建模仿真框架Fig. 1 Road modeling and simulation framework oriented to battlefield environments
OSM 道路数据可以从OpenStreetMap 的官方网站①https://www.openstreetmap.org/获取. 栅格地图数据是将地图分割成有规律的数据网格; 而OSM 扩展自矢量地图数据, 通过线段和点来描述地图信息, 此外, 它还通过标签指定每个数据元素的属性. 在道路网络中, 路段由线段表示; 结点由具有经纬度坐标、层级信息、道路类型等属性数据的点表示, 路段由结点组成. 道路标签通常用于指定每种道路的类型和功能.
为了便于后续建模的需要, 本文以Yang 等[7]所提结构为基础, 将道路网络数据组织结构描述为如图2 所示的组织结构: 路段、道路连接点和道路内部结点的形式; 由根结点指向道路连接点, 道路连接点是道路网络中连接大于2 条路段 (即交叉口) 的结点, 或者路段的开始结点和末尾结点; 每个道路连接点存有所有相邻道路连接点和路段的数据; 路段为1 条不含有交叉口的道路, 其内部结点用于构造道路中心线. 图2 中,I1为道路连接点, 它连接路段R1, 其内部由道路内部结点N1、N2、N3组成;I2为I1的后继道路连接点, 其连接3 条路段以及3 个后继道路连接点;R1和R2是不同类型的路段.
图2 道路网络数据组织结构Fig. 2 Data organization structure of road networks
道路网络数据组织结构代码如下.
OSM 道路结点由基于球面的经纬度坐标确定. 本文采用的地形高程数据采集自SRTM(Shuttle Radar Topography Mission) 全球海拔数据库(为了便于地形建模已经投影至平面坐标). 为了让OSM 矢量数据与地形高程数据进行配准, 需要对原始OSM 矢量数据的经度(longitude)坐标(lLon)、纬度(latitude)坐标(lLat)(单位为度(°))进行墨卡托投影[16-17], 将其转换为平面坐标. 坐标转换通过公式(1)和公式(2)完成, 其中CEP=2π×6378137 是赤道周长,x和y是在xOy平面上转换后的坐标.
首先, 通过OSM 标签剔除道路外的其他数据. 利用无向图对道路结点进行组织, 建立结点和路段之间的联系, 便于寻找路段的连接点和划分不同道路类型与道路层级的路段. 由于OSM 的原始道路数据不包含路口信息, 而路口可能由不同道路类型或不同道路层级的路段组成. 算法1 具体描述了将OSM 道路矢量数据组织成如图2 所示的道路网络数据结构的道路划分.
路网划分算法遍历整个道路网络矢量数据的集合, 对集合中的每一条路段中的每一个结点进行判断, 计算该结点在无向图中对应顶点的度的大小. 若顶点的度大于2 且不是该条道路的开始结点或结束结点, 则需要对其进行进一步的划分. 将从开始结点或者上一个划分结点到该结点的所有结点作为一段新的路段加入到道路集合 (行3—行12).
然后, 对道路集合中的道路进行处理. 道路的开始结点、前驱结点或末尾结点、后继结点如果存在, 说明该结点为道路连接点, 需提取出来并与路段关联 (行13—行15). 将每一条道路的第一个结点作为道路连接点, 如果末尾结点为道路连接点则剔除. 如果有前驱道路连接点, 则进行关联(行16—行24); 没有则表示该道路连接点为最前道路连接点. 然后将当前连接点加入道路连接点集合. 最后遍历道路连接点集合, 将最前道路连接点与根结点关联, 即可通过根结点遍历整个道路网络 (行29—行34).
算法1 道路划分算法输入: OSM 道路网络道路集合inputWays输出: 道路连接点根结点rootIntersection 1: For way in inputWays do 2: For node in way do 3:Road →add(node)4: If Degree(node)> 2 and node not in {WayStart,WayEnd} do 5:roadList.add(Road)6:Road →clear()7:Road →add(node)8: End if 9: End for 10:roadList.add(Road)11:Road →clear()12: For road in roadList do 13:prevIntersection=road →getStartNode()→getPrevNode()14:nextIntersection=road →getEndNode()→getNextNode()15:road →setIntersection(preIntersection,nextIntersection)16:Intersection →create(road →popFirstNode())17: If nextIntersection!=NULL do 18:Road →popEndNode()19: End if 20:Intersection →addRoad(road)21: If prevIntersection!=NULL do 22:preInterection →addNextIntersection(Intersection)23:Intersection →addPrevIntersection(preInterection)24: End if 25:intersectionList.add(Intersection)26: End for 27:roadList.clear()28: End for 29: For Intersection in intersectionList do 30:topIntersection=Intersection →findTopInserction()31:If(!rootIntersection →findNextIntersection(topIntersection))32:rootIntersection →addNextIntersection(topIntersection)33: End if 34: End for 35: ReturnrootIntersection
在道路中心线构建前, 需要对道路进行高度调整. 由于OSM 数据中不包含高度数据, 本文通过DEM 地形高程数据和工程建设道路规范, 对路段设置相对于地面的最大高度、最小高度、默认高度和路段最大斜率.
层级道路高度调整可保证路段中每个结点处的斜率最小, 避免道路坡度过于陡峭. 算法2 是基于DEM 数据的层级道路高度调整算法. 该算法需要对道路进行如图3 所示的2 次遍历. 第一次遍历从道路的起始点开始: 根据高程数据和距离地面默认高度(Hdefault)对该路段的起始点设置高度值; 对于之后的结点, 先保持前一个结点的高度, 如果该高度保持在最大高度(Hmax, 本文将Hmax作为Hdefault进行高度调整)和最小高度(Hmin)之间, 则不变, 否则根据距离地面的最大高度或最小高度以及高程数据进行高度调整 (行1—行13).
图3 道路层级高度调整Fig. 3 Road level height adjustment
第二次反向遍历: 根据道路结点的最大斜率(kmax), 对除道路连接点外的所有结点进行判断, 即若当前结点的斜率超过最大斜率, 则根据最大斜率调整前一个结点的高度 (行14—行23).
算法2 层级道路高度调整算法inputRoads;Terrain.z;node.z;Hdefault;Hmax;Hmin;kmax输入: 所有进行过预处理的道路 地形高程数据 道路结点高度 默认高度 最大高度最小高度 道路的最大斜率输出: 所有进行过层级道路高度调整的道路outputRoads 1: For Roadj in inputRoads do 2: For nodei in Roadj from nodestart to nodeend do 3: If !IsLink(nodei)&&nodei ==nodestart then 4:nodei.z =Terraini.z+Hdefault 5: Continue 6: End if 7:nodei.z =nodei−1.z 8: If nodei.z-Terraini.z >Hmax then 9:nodei.z =Terraini.z+Hmax 10: Else if nodei.z-Terraini.z 12: End if 13: End for 14: For nodei in Roadj from nodeend to nodestart do 15: If !IsLink(nodei) and Abs((nodei−1.z-nodei.z)/dist(nodei,nodei−1))>kmax then 16: If (nodei−1.z-nodei.z)/dist(nodei,nodei−1)>0 then 17:nodei−1.z =kmax·dist(nodei,nodei−1) +nodei.z 18: Else if (nodei−1.z-nodei.z)/dist(nodei,nodei−1)<0 then 19:nodei−1.z =-kmax·dist(nodei,nodei−1) +nodei.z 20: End if 21: End if 22: End for 23: End for 24: outputRoads = inputRoads 25: Return outputRoads 在层级高度调整之后, 道路连接点由于进行过多次高度调整, 导致道路连接点只满足它所连接的一条路段的高度范围和斜率范围, 所以需要对道路连接点进行高度调整, 保证道路连接点处不发生高度突变. 道路连接点高度估计涉及不同的道路类型或者不同的道路层级, 存在如下3 种情况. 情况1: 连接的路段层级相同且没有连接(Link)路段. 情况2: 连接的路段中存在不同层级的路段或Link 路段. 情况3: 连接的路段均为Link 路段. 对于情况1, 多次高度调整不会多次改变道路连接点高度, 则不需要进行高度估计, 其计算公式为 对于情况2, Link 路段是对应主路的匝道, 其高度的变化不应该影响到主路的高度, 而导致局部高度的突然改变, 所以道路连接点高度调整为层级高度调整算法中所有非Link 道路的道路连接点的平均值, 其计算公式为 对于情况3, 连接的路段都为Link 路段, 说明该连接点是Link 路段的分叉路口, 所有匝道均需考虑, 高度调整为层级高度调整算法中所有Link 道路的道路连接点的平均值, 其计算公式为 图4 为道路连接点高度估计示例. 如图4 所示, 道路连接点1、点2 和点3 分别为情况1、情况2 和情况3 的例子. 路段R1和R2为不同层级的道路,R3为Link 道路. 图中省略道路内部结点. 对于结点1, 连接的路段中都为同一层且没有Link 路段, 则不需要进行高度调整. 对于结点2, 连接的路段中存在不同层级的路段以及Link 路段, 所以结点2 的高度调整为路段R2、R3和R4在层级高度调整中计算得到的道路连接点高度的平均值. 对于结点3, 连接的道路都为Link 道路, 所以结点3 的高度调整为Link 路段R5、R6和R7在层级高度调整中计算得到的道路连接点高度的平均值. 图4 道路连接点高度估计示例Fig. 4 Example of road connection point height estimation 本文采用具有G2连续的Hermite 插值样条曲线来构建道路中心线, 它由分段三次多项式进行表示, 样条曲线的形状由控制点和控制点处的切线共同约束. 其定义为 其中, 利用Hermite 可以保证同一路段内的道路保持G2连续. 在道路结点高度调整阶段, 已经确定道路结点的位置, 此外还需要设置控制结点相应的切线. 对于道路内部结点, 只需将对应切线的斜率设置为道路的延伸方向. 对于只连接2 条路段的道路连接点, 只需考虑连接路段的第一个内部结点的延伸方向, 而对于连接多条路段的交叉路口则不适用道路中心线, 具体见3.3 节. 在构建好道路中心线以后, 通过确定模型网格顶点与样条曲线之间的变换矩阵将网格模型拟合到道路中心线上. 根据Hermite 样条曲线的多项式定义可知, 样条曲线上的任意点可通过u值计算得出,u值为网格顶点距离网格模型端点的距离Lv与网格模型总长度Lmesh的比值, 即 为了表示样条曲线上任意一点的变换, 通过构建如图5 所示的局部坐标系来表示样条曲线上任意一点的坐标, 其中p1p2代表一段Hermite 样条曲线, 以样条曲线上任意一点p0的切线方向vdir为横轴(vx), 向上向量vup为竖轴 (vz) , 垂直于横轴和竖轴方向的为纵轴 (vy) . 图5 根据Hermite 样条曲线构建局部坐标系Fig. 5 Constructing a local coordinate system based on the Hermite spline 图6 道路路段中心线与网格模型的对应关系Fig. 6 Correspondence between the center line of the road section and the grid model 通过确定Ps,n和Pe,n所在的Hermite 样条曲线, 即可由求得其在Hermite 样条曲线所在位置对应的参数u, 其中us,n对应Ps,n,ue,n对应Pe,n. 相应公式为 确定us,n和ue,n后, 可以根据Hermite 的定义(公式(7)–公式(11)), 计算出对应点的坐标和切线.对分段的道路中心线应用不同的网格模型并进行相应的变换, 可以得到过渡自然的道路实例化效果. 在求外接圆圆心p时, 选择向量Op与2 条道路的方向向量夹角均为锐角的圆心. 对一个道路连接点的所有路段计算偏移值之后, 每条路段都会与其左边和右边的路段产生一个偏移值δ, 选择较大的偏移值, 以保证最终获得的偏移能够满足该交叉点的所有道路. 在通过偏移值消除多个路段造成的重叠部分后, 需要重新设置路段的开始结点. 假设经过计算得出的偏移值为δOffset, 则在道路连接点δOffset距离处设置新的道路开始点, 并将该结点的高度调整为道路连接点的高度, 保证道路交叉路口处模型较为平整. 根据道路的最大斜率kmax重新调整道路结点的高度. 然后在相邻的2 条道路之间根据偏移值计算出交叉路口轮廓线的Hermite 样条曲线参数. 如图7(b)所示,ps与pe为两端的控制点,vs与ve为控制点的切线方向. 图7 道路交叉路口网格模型合并Fig. 7 Road intersection grid model merging 在获取交叉口轮廓线后, 对其进行采样得到交叉路口的多边形表示, 利用耳切法对其表面进行三角划分, 获取对应的顶点序列, 用于三角面的生成. 侧表面为四边形, 通过划分为2 个三角面进行生成. 为验证本文所提出方法在野外战场环境中的可行性和对复杂层级交通道路的还原度, 采用图8 所示的场景信息, 其中, 图8(a)为地形高程数据, 其地势崎岖不平, 传统道路建模方法难以构建合适的道路网络; 图8(b) 为局部的可视化OSM 地理信息; 图8(c)为复杂层级道路网络结构. 为了尽可能地展示道路网络生成的效果, 本文对OSM 数据道路中的道路进行了筛选, 筛除了所有的建筑物; 对国家公路系统中道路进行了构建, 对于其他非规范公路(连接住宅区的道路)不进行构建; 由于乡村公路存在大量用于连接路段的未分类道路类型, 为了道路连续性, 对此部分道路进行了构建. 图8 (a) 野外战场环境地形高程信息; (b) 野外战场环境OSM 地理信息; (c) 复杂层级道路网络结构Fig. 8 (a) Terrain and elevation information of battlefield environments, (b) OSM geographic information of battlefield environments, and (c) complex hierarchical road network structures 关于矢量数据结构的拓扑准确性评估, Amara 等[9]、Zhang 等[10]和Cura 等[14]简单地将生成结果与现实世界中相关道路的参考图像进行了比较, 以及列举了一些简单的数据信息, 如生成时间等; 但是这些结果不能量化地比较道路生成的准确性. 因此, 本文引入Wiedemann 等[18-19]提出的道路网络评估标准, 其评估的相应公式[18-19]为 完整性用于评估OSM 道路矢量数据的提取程度. 完整性100%表示提取了OSM 矢量数据中的所有结点. 完整性通过计算生成道路中成功生成的道路结点占比来评估. 正确性用于评估生成的道路模型的准确程度. 正确性100%表示准确地重建了OSM 道路网络中的所有道路. 正确性通过计算路段建模和交叉路口建模后模型缺失和重叠程度来评估. 此为对于层级为0 的路段, 其默认高度为0, 不同于城市或者郊区环境, 在野外战场环境中, 存在复杂崎岖的地形特征, 为了评估在野外战场环境中的仿真效果, 引入地形贴合误差(E)的评价指标,用于评估在复杂地形中的建模效果. 对于地形贴合误差应保持在较低的误差, 而不应该过大或者过小:过大会导致道路明显地悬浮在地形上; 过小或者为0 会导致道路完全贴合地面, 在极端陡峭的地形上会导致模型生成错误(对于这种地形应尽可能贴合较多的地面). 地形贴合误差用所有层级为0 道路的道路结点与地形高程之间的高度差的均值来表示, 其计算公式为 本文采用Unreal Engine 4.19 版本、CPU 为i7-9750H、内存为32 GB、操作系统为Windows10 来测试本文提出的道路仿真建模技术. 4.3.1 道路建模仿真各阶段结果 在道路数据预处理阶段的任务是处理OSM 数据中的道路, 并将道路分类划分. 实验场景中路网信息处理前后的路段数量、交叉口数量等信息见表1 所示. 表1 道路数据预处理结果Tab. 1 Road data preprocessing results 可以看出, 道路网络中普遍存在大量的交叉路口, 通过在预处理阶段拆分道路交叉口, 将路段都拆分直道结构, 便于将道路网络的建模仿真划分为路段建模和交叉口建模两个部分, 根据不同部分的特点采用不同的建模技术来进行道路建模, 然后将各部分再结合成一个实体, 有利于构建出道路网络不同部分的特点. 此外, 预处理拆分出更多的路段, 使每条路段的长度尽可能地小, 有助于减少层级道路高度调整时的误差积累. 拆分出的交叉路口由道路连接点表示, 在道路连接点高度估计中, 用于对局部道路高度的平滑, 保证道路不发生高度突变. 在道路结点高度调整阶段, 将道路结点与地形贴合, 并生成道路中心线用于实例化阶段生成道路模型, 图9 展示了完整的道路中心线结果, 可以看到道路网络基本覆盖了整个野外战场环境, 对于复杂层级道路也有比较良好的提取结果. 图9 (a) 野外战场环境中心线布局图; (b) 复杂层级网络中心线布局图Fig. 9 (a) Layout of the centerline for battlefield environments, (b) layout of the centerline for complex hierarchical networks 图10(a)展示了在野外战场环境中路网构建的效果: 道路能在很好地与地形相结合, 并且通过对交叉路口的建模, 可以使道路连接自然完整. 图10(b)展示了复杂道路网络的路网构建效果: 路网中的立交桥分层自然, 并且在高度和坡度上比较真实地还原了现实场景, 而对路网中的Link 道路也能够跟主路进行很好的连接. 图10 (a) 野外战场环境建模效果; (b) 复杂层级网络建模效果Fig. 10 (a) Modeling results for battlefield environments, (b) modeling results of complex hierarchical networks 表2 所示是野外战场环境和复杂道路网络整个建模仿真各个阶段的平均用时. 野外战场环境道路类型和道路层级比较单一, 仿真过程主要用于处理路段的划分和网格的变形, 对于单个复杂的路网,则需要大量时间处理交叉路口与不同层级的路段. 表2 道路建模仿真方法各阶段运行时间Tab. 2 Running time for each stage of the road modeling and simulation method 4.3.2 道路建模仿真效果评估 建模仿真效果评估的结果见表3. 完整性主要取决于道路数据预处理的结果, 在道路数据预处理中, 通过将道路交叉口的结点分离出来, 由各个路段共用, 将道路网络建模划分为直道路段建模和交叉口建模, 在预处理过程中没有删除和增加结点, 因此, 按照预处理结果生成的结点与OSM 原始数据的结点一致, 完成性应该为100%, 与实验数据吻合. 表3 道路建模仿真效果评估Tab. 3 Evaluation of the road construction mode simulation effect 正确性主要取决于中心线构建和道路建模的结果. 对于道路网络中的复杂路口, 可能造成路段划分的过小, 如图11(a)所示. 该路口将会被划分出3 条无道路内部结点的路段, 根据交叉路口建模方法, 将会导致这3 个路口产生重叠、产生错误, 效果如图11(b)所示. 对于野外战场环境, 其主要是比较简单的道路网络; 而对于复杂层级网络将会有较多的复杂交叉路口, 所以其正确性较野外战场环境有所下降. 图11 复杂路口建模错误效果Fig. 11 Complex road modeling error effect 在野外战场环境中, 地势不像城市道路一样平坦开阔. 由图8(a)和图9(a)可知, 野外战场环境地形复杂, 存在大量的山脉丘陵等地理要素, 虽然一般实际道路会沿着平坦地区建造, 但不免存在局部的地势起伏. 由表3 中的数据可以看出, 复杂层级网络构造在较为平坦的地形上, 其基本贴合地面; 而对于野外战场地形, 在高度调整阶段将会对道路进行平滑, 使得道路和地形表面产生一定的贴合误差,产生缝隙. 当前大多数道路建模方法皆为城市道路建模. 本文与Yu[20]所提出的城市道路网络建模方法进行了比较. Yu 的方法同样引入了Wiedemann 等[18-19]的评测指标, 但该方法无法支持层级道路, 只能对OSM 数据中的层级为0 的道路进行建模仿真, 且只支持在平坦地面进行构建, 对地势起伏较大的野外环境容易导致模型构建错误. Yu 的方法与本文方法相关数据的比较见表4 所示. 表4 道路建模仿真方法比较Tab. 4 Comparison of ways to simulate simulation methods Yu 的方法中, 交叉路口的建模方法通过路段边缘的顶点序列进行直接构建, 在相连路段的边缘不能形成凸多边形时, 将会无法生成道路模型, 导致完整性下降. 此外, 由于Yu 的方法不支持层级道路且直接贴合地面, 地形贴合误差为0, 这将在极端陡峭的地形上产生模型生成错误, 不适用于野外战场环境的道路建模. 又由于运用Yu 的方法构建的道路网络都是层级为0 的地面道路, 所以其不存在高度调整阶段, 并且不会处理到多层级道路中连接多级道路的匝道建模. 所以在建模时间方面, 本文方法需要更多的时间来处理复杂的道路建模场景, 并且在处理更多复杂道路建模的情况下产生更多如图11 所示的情况, 导致正确率有所下降. 而Yu 的方法因为会导致模型生成错误, 造成道路网络局部不连通, 亦产生了更严重的正确性下降. 根据表4 和4.3 节可以看出, 本文方法相较于一般的城市道路建模方法, 可以适应野外战场环境的特点, 可对高度进行自适应调整, 扩展了高度调整让道路建模方法能够适用于层级道路的建模, 并且误差和建模时间都在可接受的范围内. 本文在结合国内外现有道路建模方法的基础上, 结合战场地形环境复杂多样、道路网络实时性高等特点, 提出了一种面向野外战场环境的道路建模仿真技术: 首先, 通过对OSM 数据进行预处理, 提取出OSM 中的道路信息并进行划分便于道路中心线的构建; 然后, 根据地形高程数据和道路工程建设规则, 构建层级道路模型, 并利用Hermite 样条曲线生成道路中心线; 最后, 通过网格变形方法拟合道路网格模型, 实现道路网络的生成. 本文道路建模仿真技术可以完整地生成路网的真实细节; 可以支持上百千米地形的野外战场道路建模, 对于局部道路建模构建时间可达毫秒级, 可以适应野外战场环境的特点; 可对地面道路高度进行自适应调整, 并且扩展了高度调整让道路建模方法能够适用于层级道路的建模; 可满足军事训练和军事推演的需求, 达到了研究目标, 为野外战场环境中的地理要素提供了可行的分析角度和高效的建模和绘制方法. 本文研究工作也存在诸多不足之处, 如无法支持隧道和桥梁等特殊道路、道路纹理和道路表示的表现力不足、OSM 道路网络数据细节不够等. 但这些不足可以成为下一步研究的方向.2.2 道路连接点高度估计
3 道路模型实例化
3.1 道路中心线构建
3.2 网格变形和路段建模
3.3 交叉路口建模
4 实验结果
4.1 实验数据
4.2 评估标准
4.3 实验结果
4.4 方法比较
5 结 语