智慧机场及智慧机场跑道车辆实时跟踪渲染方法与系统

文档序号:31700852发布日期:2022-10-01 08:06阅读:297来源:国知局
智慧机场及智慧机场跑道车辆实时跟踪渲染方法与系统
智慧机场及智慧机场跑道车辆实时跟踪渲染方法与系统
1技术领域
1.本发明属于机场安全技术领域,涉及一种智慧机场及智慧机场跑道车辆实时检测并跟踪渲染的方法与系统,具体涉及一种智慧机场及基于cesium的智慧机场跑道车辆实时跟踪渲染的方法与系统。
2

背景技术:

2.近年来,智慧机场近年越来越多,因此对机场跑道上的飞机、引导车辆进行实时跟踪渲染成为了一个重点研究对象。
3.现有的许多车辆跟踪系统第一种是通过gps芯片或者北斗芯片接收卫星信号,确定自身位置,再将车辆位置传送回控制中心,而控制中心将车辆位置信息显示在由具有导航电子地图制作资质企业测绘的电子地图上,从而实现实时获知车辆位置的系统。但通过该种方法进行跟踪定位也存在许多缺陷。gps或北斗所依赖的网络资源有限。gps所依赖的网络是整个系统种的纽带,没有它,数据就没办法发出和接收。对于机场跑道上的车辆进行实时跟踪造成了很大的误差甚至错误。第二种是通过摄像头覆盖路面区域,对区域内的车辆进行跟踪定位。该种方法存在着视频数据量过大,在大量数据下不能保证实时处理造成累积,从而产生延时不能保证实时跟踪处理。其次由于机场跑道宽度太宽,摄像头只能建设在跑道两边,从而不能清晰的覆盖监测整个跑道区域。
4.因此,如果能够监测全部的机场跑道区域,及时地将机场跑道上的车辆信息进行处理,并渲染到机场的bim模型上,便可以对整个机场实现智慧监测,对机场跑道上的车辆进行实时跟踪渲染。
3

技术实现要素:

5.本发明的目的是提供一种智慧机场及通过websocket前端接收数据,使用cesium地图引擎实现实时跟踪渲染机场跑道路面上的车辆的方法与系统,用以解决机场跑道这种大范围的,不利于通过摄像头监测全部区域,同时降低延迟和误差的智慧机场跑道监测。
6.本发明的智慧机场所采用的技术方案是:一种智慧机场,所述机场包括n条跑道,每条跑道包含m条道,每条道包含x个板块;其中,n、m、x为预设值;
7.所述x个板块,每个板块的大小相同,相邻的前后左右板块之间相差的经纬度一致;
8.所述跑道下埋设有光纤传感器,实时采集跑道震动数据,前端控制器根据跑道震动数据判断该板块号是否有车辆经过,并根据机场跑道不同区域板块划分的不同权限,实时检测机场跑道安全并及时对入侵进行报警。
9.本发明的方法所采用的技术方案是:一种智慧机场跑道车辆实时跟踪渲染方法,包括以下步骤:
10.步骤1:构建等比例机场全景模型;
11.步骤2:将obj格式的机场全景模型转化为cesium支持加载的3dtiles格式;
12.步骤3:根据机场真实经纬度坐标在cesium地图引擎中对应坐标加载模型,生成实景三维地图;
13.步骤4:根据实施接收的数据,对机场跑道上的车辆在三维地图上实时跟踪渲染;
14.光纤传感器与前端控制器通过websocket通信协议进行数据传输,接收的数据格式约定协议如下:
15.(1)当跑道上没有车辆行驶的情况下,前端接收“nodata”,代表当前没有车辆需要跟踪渲染;
16.(2)当只有一辆车辆行驶时,前端接收车辆数据,第一位数据是每一辆车辆的标识,直到车辆驶出跑道,该标识被销毁,下一辆车的标识依次增加;第二位数据代表正向行驶或逆向行驶;后6位数据为车辆当前板块编号;
17.(3)当同一时刻有多辆车的数据时,不同车辆数据用预设符号隔开,不同车辆数据的首位车辆标识数字依次增加,每台车辆数据的含义与(2)中一致;
18.(4)当车辆经过错台时,前端接收错台报警数据,前两位数据标识代表车辆经过错台,后6位数据代表错台所在板块编号。
19.本发明的系统所采用的技术方案是:一种智慧机场跑道车辆实时跟踪渲染系统,包括以下模块:
20.模块1,用于构建等比例机场全景模型;
21.模块2,用于将obj格式的机场全景模型转化为cesium支持加载的3dtiles格式;
22.模块3,用于根据机场真实经纬度坐标在cesium地图引擎中对应坐标加载模型,生成实景三维地图;
23.模块4,用于根据实施接收的数据,对机场跑道上的车辆在三维地图上实时跟踪渲染;
24.光纤传感器与前端控制器通过websocket通信协议进行数据传输,接收的数据格式约定协议如下:
25.(1)当跑道上没有车辆行驶的情况下,前端接收“nodata”,代表当前没有车辆需要跟踪渲染;
26.(2)当只有一辆车辆行驶时,前端接收车辆数据,第一位数据是每一辆车辆的标识,直到车辆驶出跑道,该标识被销毁,下一辆车的标识依次增加;第二位数据代表正向行驶或逆向行驶;后6位数据为车辆当前板块编号;
27.(3)当同一时刻有多辆车的数据时,不同车辆数据用预设符号隔开,不同车辆数据的首位车辆标识数字依次增加,每台车辆数据的的含义与(2)中一致;
28.(4)当车辆经过错台时,前端接收错台报警数据,前两位数据标识代表车辆经过错台,后6位数据代表错台所在板块编号。
29.本发明解决了机场跑道这种大范围区域不便对车辆进行跟踪渲染的问题,加快了从接收数据,到渲染跟踪车辆得到处理速度,并减少了位置上的误差。
附图说明
30.图1是本发明实施例的机场等比例模型并加载到cesium引擎中的流程图;
31.图2是本发明实施例的方法流程图;
32.图3是本发明实施例中对于相邻很近的a、b两点线性插值算法示意图;
33.图4是本发明实施例中对于相邻很近的a、b两点lagtange插值算法示意图;
34.图5是本发明实施例中对于相邻较远的a、b两点线性插值算法示意图;
35.图6是本发明实施例中对于相邻较远的a、b两点lagtange插值算法示意图。
4具体实施方式
36.为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
37.本实施例提供的一种智慧机场,机场包括n条跑道,每条跑道包含m条道,每条道包含x个板块;其中,n、m、x为预设值,根据跑道实际建设情况设定;x个板块,每个板块的大小相同,相邻的前后左右板块之间相差的经纬度一致;
38.跑道下埋设有光纤传感器,实时采集跑道震动数据,前端控制器根据跑道震动数据判断该板块号是否有车辆经过,并根据机场跑道不同区域板块划分的不同权限,实时检测机场跑道安全并及时对入侵进行报警。
39.本实施例提供的一种智慧机场跑道车辆实时跟踪渲染方法,包括以下步骤:
40.步骤1:构建等比例机场全景模型;
41.请见图1,本实施例将设计好的机场bim模型按照真实经纬度、建设方位加载在cesium地图引擎中实现融合;跑道建设包含东(e)西(w)两条跑道,每条跑道包含10条道,每一条道包含1200个板块。
42.以西跑道为例,根据真实建设状况在bim模型的西跑道上也划分出a~j十条跑道,同时,每条跑道划分为1200个板块并对其进行编号,其中每个板块的大小相同,相邻的前后(即南北方向)左右(即东西方向)板块之间相差的经纬度一致。例如:以a跑道为例,起始板块编号为wa0000,末尾板块编号为wa1199,其中w(west)代表西跑道,a代表a号跑道,后4位数字代表该跑道的数字编号,从起始位置依次增加。
43.通过西跑道的东西南北四个点位的坐标wwest,weast,wnorth,wsouth;得到整个跑道的矩形区域wrunway;对矩形wrunway使用cesium.math.lerp函数可将其划分为10
×
1200个跑道板块,也就是a~j跑道,每条跑道1200个板块。为方便后续的计算,将每个板块中心点经纬度作为该板块整体的经纬度计算。
44.步骤2:将obj格式的机场全景模型转化为cesium支持加载的3dtiles格式;
45.步骤3:根据机场真实经纬度坐标在cesium地图引擎中对应坐标加载模型,生成实景三维地图;
46.步骤4:根据实施接收的数据,对机场跑道上的车辆在三维地图上实时跟踪渲染;
47.光纤传感器与前端控制器通过websocket通信协议进行数据传输,每0.25s接收1个数据,接收的数据格式约定协议如下:
48.(1)当跑道上没有车辆行驶的情况下,前端接收“nodata”,代表当前没有车辆需要跟踪渲染;
49.(2)当只有一辆车辆行驶时,前端接收车辆数据,例如:0xwd0016。第一位数据“0”是每一辆车辆的标识,直到车辆驶出跑道,该标识被销毁,下一辆车的标识依次增加;第二
位数据“x”代表正向行驶(即从由南向北),如果为“y”代表逆向行驶(即由北向南);后6位数据为车辆当前板块编号;
50.(3)当同一时刻有多辆车的数据时,不同车辆数据用

,’隔开,不同车辆数据的首位车辆标识数字依次增加,例如:0xwd0016,1xwc0163,2ywh0007...;每台车辆数据的含义与(2)中一致;
51.(4)当车辆经过错台时,前端接收错台报警数据,例如:ctwd0091;前两位数据标识“ct”代表车辆经过错台,后6位数据代表错台所在板块编号,其含义与步骤1描述一致。错台报警数据的接收与车辆正常数据接收互不影响。
52.以接收一个车辆数据cardata(0xwd0016)为例。首先判断是否为错台数据,cardata.substring(0,2)!=”ct”,因此该数据不是错台数据;cardata[1]=’x’,因此判断该车辆行驶方法为正向行驶;cardata.substring(2,4)=’wd’,因此判断该车辆行驶在西跑道的d号跑道;cardata.substring(4)=’0016’;因此判断所处位置在该跑道的16号板块。
[0053]
请见图2,步骤4的具体实现包括以下子步骤:
[0054]
步骤4.1:根据接收的车辆经过的板块编号,计算车辆所处的经纬度以及高度从而确定车辆的实际运动轨迹,其中高度height为固定值2,经度longitude和纬度latitude计算公式表示为:
[0055]
longitude=lonlat[i].longitude+platenumber
×
londifferencevalue;
[0056]
latitude=lonlat[i].latitude+platenumber
×
latdifferencevalue;
[0057]
其中,lonlat[i].longitude为第i条跑道起始位置经纬的经度,例如:lonlat[0]存放a跑道起始位置(wa0000)的经度和纬度;lonlat[i].latitude为第i条跑道起始位置经纬的纬度;platenumber为此次接收数据的板块数字编号,例如:1xwc0163通过计算转化得到platenumber值为163;londifferencevalue为划分的板块号前后相邻的板块之间的经度差;latdifferencevalue为划分的板块号前后相邻的板块之间的纬度差;
[0058]
本实施例中,划分后的每个板块统一以该板块中心点的经纬度坐标作为该板块整体的经纬度坐标。同时,以该点坐标作为检测的车辆坐标,因此误差范围为0~0.5个板块。
[0059]
由于cesium中动态模型的渲染需要当其内部坐标数组长度length≥2才能正常渲染,因此在接收第一个车辆数据时向cesium内部坐标数组添加两个点的坐标,第一个点是接收到的正常数据板块前半个板块经纬度位置,第二个点为正常接收的数据板块经纬度位置。可在接收到第一个数据之后,cesium可正常跟踪渲染车辆模型,时间误差为接收第一个数据的时间误差,即为步骤4中描述的0.25s。
[0060]
本实施例中,对运动车辆的实时速度进行计算更新;定义predata记录上一条数据的板块号,计算车辆实时速度speed为:
[0061][0062][0063]
其中,data是当前接收的车辆数据所在的板块号,distance是两个板块之间实际距离,predata是前一条数据的板块号,math.abs(data-predata)是前一条数据和当前数据
两条数据的板块绝对值差,用来计算距离;timedifference是两次数据传输的时间差,timenow是当前接收数据时的时间戳,由new date().gettime()得到,timepre记录上一次接收数据时的时间戳。
[0064]
步骤4.2:将步骤4.1计算所得到的车辆经度纬度和高度数据实时添加进入czml中所定义的位置数组position.cartographicdegrees中,首先判断该数据是否为该车辆的第一个数据,定义变量flag并初始化flag=0进行标识。如果flag=0,则判断该数据是第一个数据,此时应该添加两个点的坐标用来减少时间延迟;否则添加当前一个数据,使flag++;通过实时渲染跟踪车辆轨迹。
[0065]
本实施例中,在czml中根据两次数据接收的时间戳进行插值,预设距离差临界值,在接收当前数据时,与前一次数据进行对比,当两次数据距离之差小于等于临界值时,使用线性插值算法,大于临界值时使用lagtange插值算法。
[0066]
请见图3,对于相邻很近的a、b两点,线性插值算法为:车辆从a点
‑‑‑
》b点,中间的路线使用线性插值生成c1、c2两点,可以看到a
‑‑‑
》c1、c1
‑‑‑
》c2、c2
‑‑‑
》b车辆可以保持原本从左到右的方向不变。
[0067]
请见图4,对于相邻很近的a、b两点,lagtange插值算法为:车辆从a点
‑‑‑
》b点,中间的路线使用lagtange插值算法生成c1、c2(或c3、c4)两点到达b点,可以看到a
‑‑‑
》c1、c1
‑‑‑
》c2、c2
‑‑‑
》b车辆的方法不是从左到右,会导致模型车辆一直旋转的效果。
[0068]
请见图5,对于相邻较远的a、b两点,线性插值算法为:车辆从a点
‑‑‑
》b点
‑‑‑
》c点,中间的路线使用线性插值生成c1、c2两点,线性插值会生成折线状的车辆运动轨迹,使得模型车辆的运动路线不平滑。
[0069]
请见图6,对于相邻较远的a、b两点,lagtange插值算法为:车辆从a点
‑‑‑
》b点
‑‑‑
》c点,中间的路线使用lagtange插值算法生成c1、c2两点,lagtange插值算法会生成平滑的运动轨迹。
[0070]
基于以上对比分析,本实施例设计距离差临界值(根据实际情况确认),在接收当前数据时,与前一次数据进行对比,当两次数据距离之差小于等于临界值时,使用线性插值算法,大于临界值时使用lagtange插值算法。
[0071]
本实施例设置可以合法进入跑道的板块区域,如果接收到该车辆的第一个数据包含着该合法区间,则为正常车辆,对cesium中渲染的车辆模型颜色显示为绿色,否则是为入侵车辆,对cesium中渲染的车辆模型颜色显示为红色,并在系统首先显示报警信息。
[0072]
当不再接收到首位数据包含该车辆标识的车辆数据之后,清空cesium中保存车辆位置坐标的信息以保证系统的工作性能。本实施例数据添加到数组完毕之后,修改czml内置的当前时间防止从头重新开始执行:czml[0].clock.currenttime=viewer.clock.currenttime.tostring(),然后加载czml数据viewer.datasources.add(cesium.czmldatasource.load(czml))。此方法添加czml数据进行渲染会使得viewer.datasources._datasources数组随着时间逐渐增加,因此要使用viewer.datasources.remove函数实时将viewer.datasources._datasources数组进行清空,只保留数组最后两项,提高系统工作性能。
[0073]
该车辆运动停止时,数据也停止接收,此时将position.cartographicdegrees中的数据置空,清除缓存提高性能,同时将flag=0初始化。车辆运行结束后,前端页面显示此
次车辆运行的相关信息,包括运行时间,最高速度,平均速度,运行轨迹。
[0074]
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1