一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向智慧交通仿真的交叉路口建模处理方法与流程

2021-11-05 22:35:00 来源:中国专利 TAG:


1.本发明交通仿真领域,具体涉及一种面向智慧交通仿真的交叉路口建模处理方法。


背景技术:

2.领域内总体技术现状描述
3.20世纪80年代以来,国家大力发展基础交通设施建设,我国大中城市的道路建设取得了很大的进步,现在车联网、智能交通系统(its,intelligent transport system)也在快速的发展,形成了较为完善的道路交通系统。但随着车辆数量的增长,城市污染也越来越严重、交通压力也越来越大,交通道路的利用率也呈现出不同的差异,对于交通拥堵路段,市政规划就会重新设计和规划,为了对汽车尾气对环境污染进行评估和验证市政道路设计的合理性和有效性,需要根据城市道路数据设计一套三维的交通仿真系统,来测试仿真效果和效率,同时对于城市交通展示、还原事故现场等具有很重要的意义。目前的交通仿真技术,从仿真规模方面来说,还存在仿真规模小、仿真不够灵活、利用价值较局限。从三维仿真方面来说,大多使用3dmax、cad等图形工具对道路进行建模,而通过程序来对三维路网路口建模的方法都比较复杂,并且需要以计算机图形学知识为基础。
4.与本发明创造最接近的现有技术一
5.现有技术一的技术内容
6.adam goode

nough和scott brown提出了将cityenine和sumo进行融合的方法来构建场景,结合了sumo的仿真优势和city

engine城市模型的建模优势。
7.现有技术一的缺陷
8.其路口模型为固定的静态模型,形状固定,不够灵活,遇到特殊路口,需要重新建模。
9.与本发明创造最接近的现有技术二
10.现有技术二的技术内容
11.王贤隆等人提出了一种自动构建三维城市路网的方法,其中交叉路口部分,通过设定缩回距离来计算路口的控制点,然后通过贝塞尔曲线计算出路口的曲线控制点,最后通过二维纹理映射算法实现可视化效果。
12.现有技术二的缺陷
13.其缩回距离为假定值,不够精确,不同道路类型所涉及的缩回值将不一样,并没有体出一种通用方法。


技术实现要素:

14.本发明针对现有交通仿真系统中交叉路口建模存在人工建模工作量大、可视化效果不佳的问题,提供一种面向智慧交通仿真的交叉路口建模处理方法。
15.本发明的目的是通过以下技术方案来实现的:
16.一种面向智慧交通仿真的交叉路口建模处理方法,包括如下步骤:
17.步骤s1、将gis数据进行交叉路口分类;
18.步骤s2、判断交叉道路是否存在交叉路口;
19.步骤s3、基于步骤s2判断结果对道路进行拆分得到交叉路口的顶点数组;
20.步骤s4、基于delaunay三角剖分算法得到交叉路口网格的三角索引;
21.步骤s5、路口纹理映射uv计算的方法如下:
22.生成的路口结构是一个多边形,基于多边形顶点三角索引,找到路口的多边形边界,以边界最小值,即顶点中x、z轴的最小值为uv坐标系的原点,再计算路口每个顶点与原点的差值,计算出每个顶点索引对应的uv坐标,利用差值进行平铺,通过这种方法能正确地生成路口纹理映射关系。
23.作为优选方式,本发明将交叉路口分为x类交叉路口和y类交叉路口两大类,x类交叉路口包括了标准的十字路口和x型路口,而y类交叉路口包括了t型路口和y型路口。
24.作为优选方式,对于区分交叉路口的类型,可以通过公共控制点处于各条道路自身控制点的位置来区分,以下将公共控制点称作交叉点;
25.如果交叉点在各条道路自身控制点的中间部分,既非起始和终止点,则该路口属于x类交叉路口;如果交叉点在其中一条道路自身控制点的起始或终止点,另外一条的中间部分,则该路口属于y类交叉路口。
26.作为优选方式,在判断交叉道路是否存在交叉路口步骤中,通过射线查询来判断交叉部分是否存在交叉点,具体做法如下:
27.1)首先以球体范围射线查询道路重叠的部分,剔除非道路类型的对象,只保留道路对象,将得到一组道路类型对象的列表;
28.2)循环遍历步骤1)得到的道路类型对象列表,取到道路对象的控制点数组,对两两道路控制点数组进行比较查询,如果存在有相同控制点,说明存在交叉路口;
29.3)保存查询到的交叉点位置,并记录交叉点在各条交叉道路控制点数组中的索引。
30.作为优选方式,对道路进行拆分得到路口顶点数组的算法如下:
31.1)首先判断交叉路口的类型,遍历交叉道路和其索引,判断是否存在索引是道路控制点的起始点或终止点;
32.2)判断结束后将计算道路拆分后的偏移量。图中道路1的控制点为a,b,o,道路2的控制点为c,d,o;o为交叉点,w1为道路1路宽的一半,w2为道路2路宽的一半,θ为两条道路之间的夹角。根据两条道路的控制点可以得到向量od和向量ob,则可求得夹角θ,将θ的角度换算为弧度,根据正余弦函数,计算出道路1和道路2的偏移量为公式(1):
[0033][0034]
其中θ∈(0,π],offset∈(0,3],且为常数;
[0035]
3)计算完偏移量后,根据路口类型对道路进行拆分并以偏移量偏移;
[0036]
4)道路拆分后,取与路口相关的道路网格顶点作为路口网格顶点,最后得到交叉路口的顶点数组。
[0037]
作为优选方式,在对道路进行拆分得到路口顶点数组的算法中,根据路口类型对
道路进行拆分并以偏移量偏移的具体做法如下:
[0038]
若属于x类交叉路口,则所有道路都将拆分为两条新的道路,再根据偏移量进行偏移;
[0039]
若属于y类交叉路口,则只需要拆分索引在中间部分的道路,然后拆分后的新道路以计算出的偏移量偏移,而处于起始或终止索引的道路只需偏移即可。
[0040]
作为优选方式,步骤s4:
[0041]
得到路口顶点数组后,对数组进行排序,使其以顺时针的一个多边形结构存储,得到新的路口顶点数组;
[0042]
再利用delaunay三角剖分算法得到mesh的三角形索引,该算法输入新的路口顶点数组,输出三角形化后的顶点数组和三角形索引数组。
[0043]
作为优选方式,步骤s5具体算法步骤如下:
[0044]
1)首先找到路口模型的最小边界值;
[0045]
2)以最小边界值作为uv坐标系原点minuv,循环计算每个顶点与原点的差值,以x轴的差值作为uv的x,以z轴的差值作为uv的y,循环结束将得到路口纹理映射关系。
[0046]
作为优选方式,找到路口模型的最小边界值:以任意一顶点为初始值,循环遍历所有路口顶点,比较他们的x值,找到最小的x值,同理找到最小的z值,这样就找到路口模型的最小边界值。
[0047]
本发明的有益效果是:
[0048]
1.交叉路口模型可随道路动态更改;
[0049]
2.原理简单易懂,生成快速;
[0050]
3.适用于大规模交叉路口模型自动生成。
附图说明
[0051]
为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0052]
图1为x类交叉路口示意图;
[0053]
图2为y类交叉路口示意图;
[0054]
图3为非交叉路口(a)与交叉路口(b)示意图;
[0055]
图4为偏移量计算示意图;
[0056]
图5为道路拆分示意图;
[0057]
图6为delaunay三角剖分算法关键步骤示意图;
[0058]
图7为纹理映射效果图;
[0059]
图8为通过gis数据生成路网的效果图。
具体实施方式
[0060]
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
[0061]
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
[0062]
实施例一
[0063]
一种面向智慧交通仿真的交叉路口建模处理方法,包括如下步骤:
[0064]
步骤s1、将gis(地理信息系统)数据进行交叉路口分类;
[0065]
步骤s2、判断交叉道路是否存在交叉路口;
[0066]
步骤s3、基于步骤s2判断结果对道路进行拆分得到交叉路口的顶点数组;
[0067]
步骤s4、基于delaunay三角剖分算法得到交叉路口网格的三角索引;
[0068]
步骤s5、路口纹理映射uv计算的方法如下:
[0069]
路口结构是一个多边形网格(网格
‑‑
mesh),网格由顶点、三角形、uv组成。由于生成的路口结构是通过三角面片实现的,因此对于路口纹理也只需要考虑二维纹理映射,从二维纹理平面到三维物体表面的映射就是二维纹理映射。
[0070]
一般二维纹理平面是有范围限制的,在这个被称为纹理空间的平面区域内,可以离散分离出每点的灰度值和颜色值,并且能够用数学函数表达,纹理空间的两个维度称为u和v,这就是为什么它们被称为uv坐标的原因。这些坐标的u、v数值通常介于0到1之间,覆盖整个纹理。根据纹理设置,超出此范围的坐标将被夹紧或引起平铺。因为是左手坐标系,即给生成的路口模型在xoz平面上计算纹理映射关系,关于路口的纹理贴图,本发明采用与道路颜色相同的纯色图片作为路口的纹理贴图,生成的路口结构是一个多边形,基于多边形顶点三角索引,我们只需要找到路口的多边形边界,以边界最小值,即顶点中x、z轴的最小值为uv坐标系的原点,再计算路口每个顶点与原点的差值,计算出每个顶点索引对应的uv坐标,利用差值进行平铺,通过这种方法能正确地生成路口纹理映射关系。
[0071]
实施例二
[0072]
本发明将交叉路口分为x类交叉路口和y类交叉路口两大类,x类交叉路口包括了标准的十字路口和x型路口,而y类交叉路口包括了t型路口和y型路口。
[0073]
对于区分交叉路口的类型,可以通过公共控制点处于各条道路自身控制点的位置来区分,以下将公共控制点称作交叉点;
[0074]
如果交叉点在各条道路自身控制点的中间部分,既非起始和终止点,则该路口属于x类交叉路口;如果交叉点在其中一条道路自身控制点的起始或终止点,另外一条的中间部分,则该路口属于y类交叉路口。具体的道路结构与路口的关系如图1、图2所示。
[0075]
实施例三
[0076]
在判断交叉道路是否存在交叉路口步骤中,在没有得到路口位置信息数据之前,如果通过循环查找道路之间的交叉关系,将会大大增加程序计算复杂程度,这将是不合理的做法。由于生成的路网当中存在道路交叉重叠但不存在交叉点的地方,如图3中(a)结构,
因为在实际路网中还存在道路高架与下穿的情况,这将与交叉路口产生混淆。图3(b)为存在交叉点的情况。
[0077]
本步骤将通过射线查询技术来判断交叉部分是否存在交叉点,具体做法如下:
[0078]
1)首先以球体范围射线查询(unity3d引擎中的球体投射碰撞检测)道路重叠的部分,剔除非道路类型的对象,只保留道路对象,将得到一组道路类型对象的列表;
[0079]
2)循环遍历步骤1)得到的道路类型对象列表,取到道路对象的控制点数组,对两两道路控制点数组进行比较查询,如果存在有相同控制点,说明存在交叉路口;
[0080]
3)保存查询到的交叉点位置,并记录交叉点在各条交叉道路控制点数组中的索引,为后续拆分道路提供拆分点位置。
[0081]
实施例四
[0082]
通过步骤s2能根据交叉道路判断出是否存在交叉路口,并得到交叉点位置和交叉点在交叉道路中的索引。接下来对道路进行拆分得到路口顶点数组的算法如下:
[0083]
1)首先判断交叉路口的类型,遍历交叉道路和其索引,判断是否存在索引是道路控制点的起始点或终止点;
[0084]
具体为:遍历交叉道路,判断其索引是否为0,如果为0则说明交叉点是该道路控制点的起始点,如果为控制点数组的大小减1,则为控制点的终止点,如果有一条路的索引为起始点或终止点,则该路口为y类路口,若都不存在,则为x类路口。索引通过步骤s4来获取。起始点和终止点作用是判断交叉路口的类型和道路以哪个方向偏移。具体为如图5(b)道路2所示,将控制点以向量oc方向偏移。假设道路控制点数组为p,数组大小为n,若索引为0,则向量oc=p[1]

p[0],将控制点p[0]以oc方向偏移;若索引为n

1,则向量oc为p[n

2]

p[n

1],将控制点p[n

1]以oc方向偏移。
[0085]
2)判断结束后将计算道路拆分后的偏移量。如图4所示,图中道路1的控制点为a,b,o,道路2的控制点为c,d,o;o为交叉点,w1为道路1路宽的一半,w2为道路2路宽的一半,θ为两条道路之间的夹角。根据两条道路的控制点可以得到向量od和向量ob,则可求得夹角θ,将θ的角度换算为弧度,根据正余弦函数,计算出道路1和道路2的偏移量为公式(1):
[0086][0087]
其中θ∈(0,π],offset∈(0,3],且为常数,offset本文设置数值为1.5;
[0088]
3)计算完偏移量后,根据路口类型对道路进行拆分并以偏移量偏移;
[0089]
4)道路拆分后,取与路口相关的道路网格顶点作为路口网格顶点,最后得到交叉路口的顶点数组。
[0090]
在对道路进行拆分得到路口顶点数组的算法中,根据路口类型对道路进行拆分并以偏移量偏移的具体做法如下:
[0091]
若属于x类交叉路口,则所有道路都将拆分为两条新的道路,再根据偏移量进行偏移;如图5中(a)将道路1拆分为道路1

1和道路1

2,然后以offset1向两边偏移,道路2拆分为道路2

1和道路2

2,以offset2向两边偏移,最后移除道路1和道路2;
[0092]
若属于y类交叉路口,则只需要拆分索引在中间部分的道路,然后拆分后的新道路以计算出的偏移量偏移(以图5(a)所示,拆分后得到两条新的道路,以计算好的偏移量,对两条新道路进行偏移。),而处于起始或终止索引的道路只需偏移即可,如图5中(b)道路1拆
分为道路1

1和道路1

2,以offset1向两边偏移,而道路2不拆分,以offset2偏移,最后移除道路1。
[0093]
实施例五
[0094]
在实施例一的基础上,步骤s4:
[0095]
得到路口顶点数组后,对数组进行排序,使其以顺时针的一个多边形结构存储,得到新的路口顶点数组;
[0096]
再利用delaunay三角剖分算法得到mesh(mesh是指模型的网格,3d模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的。所以一个3d模型的表面其实是由多个彼此相连的三角面构成。三维空间中,构成这些三角形的点和边的集合就是mesh。)的三角形索引,该算法输入新的路口顶点数组,输出三角形化后的顶点数组和三角形索引数组。
[0097]
三角剖分,其定义为,假设二维实数域上的有限点集为p,边e是由点集中的点作为顶点构成的闭合线段,e为e的集合。那么该点集p的一个平面图g即三角剖分t=(p,e),该平面图满足条件:
[0098]
1、除了端点,点集中的任何点都不包含在平面图中。
[0099]
2、边和边没有交叉点,也就是说没有相交边。
[0100]
3、平面图中只存在三角面,且散点集p的凸包由所有三角面的合集组成。
[0101]
本发明采用的三角剖分算法是经典的delaunay三角剖分,它是一种特殊的三角剖分,也是实际中运用最多的三角剖分算法。首先我们讲下它的定义,先理解什么是delaunay边,假设e中的一条端点为a,b的边e,若存在一个圆经过a,b两点且在圆内不存在点集p中的其余任何点,圆上可最多再存在一个点,即空圆特性,则边e称为delaunay边。所谓的delaunay三角剖分,就是点集p的一个三角剖分t的所有边都是delaunay边,那么该三角剖分就是delaunay三角剖分。
[0102]
算法基本步骤是:
[0103]
1、构造一个超级三角形,包含所有散点,放入三角形链表。
[0104]
2、将点集中的散点依次插入,在三角形链表中找出外接圆包含插入点的三角形(称为该点的影响三角形),删除影响三角形的公共边,将插入点同影响三角形的全部顶点连接起来,完成一个点在delaunay三角形链表中的插入。
[0105]
3、根据优化准则对局部新形成的三角形优化。将形成的三角形放入delaunay三角形链表。
[0106]
4、循环执行上述第2步,直到所有散点插入完毕。
[0107]
这一算法的关键的第2步如图6所示。
[0108]
实施例六
[0109]
如图7所示,步骤s5具体算法步骤如下:
[0110]
1)首先需要找到路口模型的最小边界值;
[0111]
2)以最小边界值作为uv坐标系原点minuv,循环计算每个顶点与原点的差值,以x轴的差值作为uv的x,以z轴的差值作为uv的y,循环结束将得到路口纹理映射关系。
[0112]
找到路口模型的最小边界值:以任意一顶点为初始值,循环遍历所有路口顶点,比较他们的x值,找到最小的x值,同理找到最小的z值,这样就找到路口模型的最小边界值。
[0113]
本发明是一种基于gis道路数据中的点、线,自动化的交叉路口建模方法。包括基于gis数据的交叉路口分类;交叉路口网格生成算法,交叉路口纹理映射计算方法。本发明交叉路口模型可随道路动态更改;原理简单易懂,生成快速;适用于大规模交叉路口模型自动生成。图8为通过gis数据生成路网的效果图。
[0114]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,应当指出的是,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献