一种能够实现在浏览器中实时模拟无人机飞行场景的方法与流程

文档序号:16132940发布日期:2018-12-01 00:32阅读:2055来源:国知局

本发明涉及无人机模拟领域,具体为一种能够实现在浏览器中实时模拟无人机飞行场景的方法。

背景技术

当前已有一些基于3d地图的pc端无人机的飞行模拟软件,是基于谷歌地球进行搭建3d场景进而实现模拟飞行场景。但是现有技术存在以下问题:(1)使用的pc端模拟软件具有平台的限制,无法方便快捷的在任意电脑上模拟实时飞行状态;(2)由于谷歌地球不再更新,因此在扩展和性能的优化上具有一定的限制;(3)以往的轮询方式查询飞行器状态需要频繁的建链与断链,整个系统性能消耗大。



技术实现要素:

1、所要解决的技术问题:

为了解决现有技术存在的问题,本发明提供了一种能够实现在浏览器中模拟无人机飞行场景的方法,可以广泛应用于飞行器飞行状态的实时模拟场景,包括但不限于航空客机,无人机,卫星。

2、技术方案:

一种能够实现在浏览器中模拟无人机飞行场景的方法,包括以下步骤:

步骤一:无人机在飞行过程中通过本地网络实时将飞行参数发送给地面站;所述地面站为与无人机在同一个网络的控制端,能够控制和监测无人机。

步骤二:所述地面站将接收的飞机信息与飞行参数传输至云数据中心。

步骤三:当用户通过浏览器访问web服务器时,web服务器从云数据中心获取用户要访问的正在飞行的对应飞机的飞机信息和飞行信息。飞行参数包括:航向、速度、位置。飞行状态包括:电压状态,载荷状态,连接状态,网络状态。

步骤四:浏览器根据步骤三获取的信息在cesium三维地球上绘制出飞机3d模型,并不断从web服务器获取飞机的飞行信息和参数并模拟到3d模型上,此时无人机的飞行情况在浏览器上得到了实时的模拟,包括飞行状态、航迹、音视频。

步骤五:用户能够通过浏览器对飞机发布指令;浏览器执行所述指令对指定飞机控制;所述指令经由web服务器发送给云服务器端;云服务器将所述指令下发到对应地面站;地面站通过所在局域网作用于对应的无人机以达到对无人机的控制。

进一步地,所述云数据中心与地面站是利用netty长连接进行通信。

进一步地,所述步骤四具体包括以下步骤:4.1用户使用浏览器输入网站地址访问3d模拟飞行系统。

4.2初始化cesium的3d场景;所述场景包括3d地球,地图瓦片,地形。

4.3从服务器获取无人机的实时信息;根据无人机的飞机信息生成无人机3d模型并判断该无人机是否已经被添加到已经生成的3d场景中;如果未添加,则根据无人机的飞机信息添加一个对应的飞机3d模型到3d场景中。

4.4如果已经添加了该飞机模型,则更新飞机的飞行信息;所述飞行信息包括速度,方向,高度信息。

4.5每隔预定的频率对飞机的飞行3d模型进行更新;所述更新的方法为在间隔的预定时间间隔内,利用拉格朗日插值算法进行更新。

进一步地,所述更新的方法为:预设更新频率为1次/秒;在间隔的一秒内,利用拉格朗日插值算法:

其中:上下两秒的点的位置坐标分别为:(x1,y1,z1)、(x2,y2,z2)以及插值数量n,算出1s内的插值数量个数的位置的点集,使得1s内飞行都是动态且连续的。

3、有益效果:

(1)本发明选用cesium作为本系统的三维开发框架,解决三维地球的可维护性问题。

(2)本发明与服务器的通信采用用websocket长连接进行通信,能够提高了链路的稳定性,同时提高了性能。

附图说明

图1为本发明的系统模块组成图;

图2为本发明的3d场景具体实现图。

具体实施方式

下面结合附图对本发明进行简单的说明。

如附图1、2所示,一种能够实现在浏览器中模拟无人机飞行场景的方法,包括以下步骤:

步骤一:无人机在飞行过程中通过本地网络实时将飞行参数发送给地面站;所述地面站为与无人机在同一个网络的控制端,能够控制和监测无人机。

步骤二:所述地面站将接收的飞机信息与飞行参数传输至云数据中心。

步骤三:当用户通过浏览器访问web服务器时,web服务器从云数据中心获取用户要访问的正在飞行的对应飞机的飞机信息和飞行信息。

步骤四:浏览器根据步骤三获取的信息在cesium三维地球上绘制出飞机3d模型,并不断从web服务器获取飞机的飞行信息和参数并模拟到3d模型上,此时无人机的飞行情况在浏览器上得到了实时的模拟,包括飞行状态、航迹、音视频。

步骤五:用户能够通过浏览器对飞机发布指令;浏览器执行所述指令对指定飞机控制;所述指令经由web服务器发送给云服务器端;云服务器将所述指令下发到对应地面站;地面站通过所在局域网作用于对应的无人机以达到对无人机的控制。

进一步地,所述云数据中心与地面站是利用netty长连接进行通信。

进一步地,所述步骤四具体包括以下步骤:4.1用户使用浏览器输入网站地址访问3d模拟飞行系统。

4.2初始化cesium的3d场景;所述场景包括3d地球,地图瓦片,地形。

4.3从服务器获取无人机的实时信息;根据无人机的飞机信息生成无人机3d模型并判断该无人机是否已经被添加到已经生成的3d场景中;如果未添加,则根据无人机的飞机信息添加一个对应的飞机3d模型到3d场景中。

4.4如果已经添加了该飞机模型,则更新飞机的飞行信息;所述飞行信息包括速度,方向,高度信息。

4.5每隔预定的频率对飞机的飞行3d模型进行更新;所述更新的方法为在间隔的预定时间间隔内,利用拉格朗日插值算法进行更新。

进一步地,所述更新的方法为:预设更新频率为1次/秒;在间隔的一秒内,利用拉格朗日插值算法:

其中:上下两秒的点的位置坐标分别为:(x1,y1,z1)、(x2,y2,z2)以及插值数量,算出1s

内的插值数量个数的位置的点集,使得1s内飞行都是动态且连续的。

为了解决三维地球的可维护性,本发明选用cesium作为本系统的三维开发框架。cesium是一款出色的gis(英文全称:geographicinformationsystem地理信息系统)框架,它提供了丰富且高效的3d场景模拟,并且具有广大的用户群体,社区、论坛活跃,版本更迭快速,加载体量、加载效率都非常令人满意。同时,由于在该系统中需要加载大量的3d模型和3d实体,所以在加载模型方面,本发明秉承聚合的思路,即将具有统一特性的三维模型统一归纳管理,以提高模型的渲染效率以及浏览器的响应速度。

在与服务器端的通信选择上,本发明放弃了当前广泛被使用的ajax(英文全称:asynchronousjavascriptandxml异步javascript和xml)通信的方式,改用新出现的更具可靠性的websocket(一种新的长连接网络协议)作为主要的通信方式。这里对ajax和websocket作简单的介绍和比较。在浏览器端,ajax是短连接,即给服务器发送完消息后就断开与服务器的连接,下一次发送消息需要重新建立连接。如果频繁的从服务获取飞行器的数据就需要频繁的建链、断链,而这造成了服务器性能的损耗。websocket是长连接,即在与服务器建立连接后一直保持该连接不断开,之后所有的前后端通信都复用这条已建立的链路,提高了链路的稳定性,同时提高了性能。

经测试,本系统可以在多数主流浏览器(谷歌、火狐、ie等)运行,解决了以往pc端需要安装软件才可使用的限制,现在可以随时随地在浏览器使用该模拟系统,有效解决了平台的限制。同时,本系统使用聚合的思路,比如将所有的禁飞区模型、轨迹模型、无人机模型等各自归为一类,统一加载、渲染、回收,在加载10000个模型和实例的情况下仍然可以保持高效的运行。除此以外,本系统使用websocket长连接实现前后端通信,避免了频繁建链/断链造成的性能损耗和时延。经测试,在1000个并发样本,4000次请求的情况下,短链接最高延时达到22282ms,长连接的最大延时为9586ms,性能提升232%。

虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1