APP下载

直升机模拟器平滑处理系统的设计与实现

2023-09-21饶玉婷

直升机技术 2023年3期
关键词:卡顿视景服务器端

张 剑,周 攀,饶玉婷

(中国直升机设计研究所,江西 景德镇 333001)

0 引言

现代高新技术的发展促进了飞行训练手段的不断进步和更新。飞行训练模拟器因其成本低、安全性好等优越性而受到世界各国家的高度重视,在民用及军事领域均得到广泛使用。飞行训练模拟器不仅是培训飞行员的重要装备,而且是新机种研制及原理验证、飞行故障诊断的重要工具。直升机模拟器包括模拟座舱、视景系统、运动系统、操纵负荷系统、音响系统、管理系统等多分系统,这些分系统分别实现模拟器的不同功能,相互之间交联耦合,共同完成模拟器的仿真训练任务[1]。其中,视景系统对直升机模拟器飞行员驾驶感觉的影响超过其他系统的总和,因此,视景系统功能的好坏直接影响到飞行员对模拟器使用情况的评价。在直升机模拟器研制过程中发现,部分商用视景IG在模拟器联试阶段有画面卡顿现象,在直升机高速飞行或编队高速飞行时尤为明显。因此,为了提高视景系统的仿真效果,如何有效避免画面卡顿是首先要解决的问题。

本文首先简要介绍直升机模拟器视景系统的基本工作原理;然后从数据和原理角度对视景卡顿现象进行分析;在此基础上设计了可用于直升机模拟器的平滑处理系统,并对该平滑处理系统进行了试验验证;最后提出了后续优化的方向[2]。

1 视景系统基本工作原理

视景系统是直升机模拟器的重要组成部分,主要是通过一组或数组视景通道输出从飞行员视点观看的实时图像。在初始化阶段,视景系统首先将对象数据库加载到视景系统内存中,这些数据可能包括原野、机场、公路、湖泊、海岸线、机动车辆、建筑物、树木、森林、植被和飞机等要素。目前有多个标准格式可以用于生成这些实体,包括OpenFlight等,这种格式将每个对象都缩减成具有颜色和纹理的多边形(通常是三角形),定义在数据库的坐标系中。通常,这些对象按照几何顺序进行排列,因此可以根据对象距离来选择不同粒度的对象输出到显示画面中[3]。

随着直升机的机动,飞行员视点位置和方向可以由运动方程计算得出,每帧(通常为60 Hz)内都要对视景进行渲染。缘于不同图像系统的性能差异,在获取新的视点位置和飞行员看到的投影图像之间存在一个延迟,这种延迟通常称为视觉延迟,必须保持在最小范围。当前高等级直升机模拟器选取的延迟一般不超过30 ms。

用于做视景图像显示系统的媒介较多,从成像原理来看,主要有实像直投和虚景成像两大类。较为常见的是实像方式,如投影仪球幕直投成像、LED球带幕成像、液晶显示器成像等,都属于实像成像的一种。部分成像展示如图1所示。

图1 采用显示器成像的程序模拟器效果图

2 平滑处理系统的设计与实现

平滑处理系统主要用于优化视景系统画面卡顿现象,提高直升机模拟器视景系统的仿真效果。本章首先从原理和数据角度出发,分析视景画面卡顿现象可能产生的原因;然后对平滑处理系统的设计思路进行简要介绍,并开展平滑处理效果分析。

2.1 原因分析

为了适应投影仪/显示器/显卡的刷新频率,当前主流视景IG(视景分系统中图像生成部分)刷新频率一般都为60 Hz,如VP等,且作为客户端主动发送数据更新需求;直升机模拟器一般数据交互周期为10 ms(100 Hz),且由主控系统作为客户端主动发送数据更新需求,所有分系统(含视景分系统)作为服务器端被动接收数据更新需求并响应。

问题随之产生:视景IG要作为客户端主动发送数据更新需求,视景分系统又要作为服务器端被动响应数据更新需求。为了完成任务,视景分系统中一般需要再增加一个host服务器端,专门用来处理数据的交互,既响应视景IG的数据更新需求,又响应主控系统的数据更新需求。为了便于从源头分析,假设host服务器采用实时操作系统,对数据转发和处理的延迟都为理想状态。由于视景IG和主控系统两者的数据更新需求频率不一致,因而无法保证视景IG和主控系统收到的数据都是最新的,时间差在两帧之内且不固定,具体分析见图2。

图2 服务器端数据处理原理示意图

图2中,横坐标为时间轴,假设0,10,20,30为host服务器端(以下简称服务器端)接收到的主控系统最新数据时间(也就是数据需求,同步发过来的),数据周期为100 Hz;A、B、C代表接收到的视景IG数据更新需求可能发生的时段,数据周期为60 Hz。由于主控系统和视景IG两个客户端具有相对独立性,所有前30 ms的视景IG数据更新需求可以是A、B、C,也可以是中间的任何一种,也就是具有完全随机性。

以A为例,a1代表在接受到视景IG数据更新需求时,刚接受到主控发过来的最新直升机数据,因此可以将最新数据直接反馈给视景IG。这时候视景IG接收到的就是当前时刻最真实的数据。类似分析,a2代表反馈给视景IG的数据是6.66 ms之前的数据。当时对于视景IG来说,是按照最新数据来处理的,这时候在模拟器中看到的直升机位置,就比真实位置落后了6.7 ms。虽然位置不能用时间来表示,但是从侧面反映如果要找回6.7 ms内的位置偏差,就可以考虑用速度积分的方式来实现。a3代表有3.3 ms的位置偏差。B和C分别代表其它典型数据处理时间,其中C和A比较接近,正好慢了1帧时间;B属于特例,从b2时刻看出,数据更新可能比真实位置落后了9.9 ms。由于100 Hz和60 Hz之间的最小公倍数是600,转换到时间轴为6 s,因此6 s就具有特殊意义,意味着如果起点视景IG更新需求是A的方式,那么6 s后还是以A的方式进行数据更新,同样适用于B和C等其他方式。

对于主控系统来说,数据需求一般为地形高度、地面材质等信息,最新数据和真实数据相差几毫秒,对模拟器来说没有太大影响,可以不考虑。对于视景IG来说,数据需求一般为直升机姿态、直升机位置等信息,尤其是直升机位置信息,几毫秒的差异反映到画面上,在直升机高速飞行或编队飞行时产生的位置偏差可以超过1 m,反映到画面上就是可视化的抖动,肉眼能看到直升机位置的突变。这个后果对直升机模拟器飞行员训练来说是致命的。

2.2 平滑处理系统设计与实现

接上图,由于A、B、C具有随机性,因此探究的解决方法以A为例进行分析,最终的解决方法需要涵盖A、B、C在内的所有可能性。

解决实际问题,只需要对位置信息做平滑处理。位置信息可能是经纬度或者大地坐标等,不考虑坐标转换,以大地坐标为例来做平滑处理;视景IG接收数据有很多,对于平滑处理有用的数据除了坐标位置,还有该坐标对应的速度、加速度等信息,这是前提条件。结合文章前节的分析,本文提出以下平滑处理解决方案:

在接收到主控系统数据时,即记录下当前的时间戳,如图2中,0 ms、10 ms、20 ms、30 ms收到数据时分别记录当前时间为t0、t10、t20、t30;在接收到视景IG数据更新需求时,即记录下当前的时间戳,如图2中,a1、a2、a3收到数据更新需求时分别记录当前时间为ta1、ta2、ta3;时间戳参数应该是实时更新的,如t0会被t10替代,然后依次被t20、t30替代,ta和tb同理。

位置解算基本公式如下:

X=x+Δx=x+v×Δt

(1)

由于不考虑坐标转换,采取大地坐标系下的直接坐标,因此该坐标系下三轴(x轴、y轴、z轴)的位置解算方法同样适用,如下:

Xx=xx+Δxx=xx+vx×Δt

Xy=xy+Δxy=xy+vy×Δt

Xz=xz+Δxz=xz+vz×Δt

(2)

式中,X为反馈给视景IG的位置信息;x为接收到的主控系统转发位置信息,Δx为平滑增量,可以用速度积分的方式求出。

按图2,套用上公式,针对a1、a2、a3三个点来说,有以下分析:

Xa1=x0+v0×(ta1-t0)

Xa2=x10+v10×(ta2-t10)

Xa3=x30+v30×(ta3-t30)

(3)

因此,对于无论A、B、C哪种形式,哪个点,都可以套用上公式。

2.3 平滑处理效果分析

选取大地坐标系中x方向位置信息作为参考,进行平滑处理效果分析。

图3是未进行平滑处理的原始数据。

图3 未进行处理的原始数据

从数据可以看到,服务器端发送给视景IG的位置信息不稳定,会频繁出现规律的延迟。图4是按照上述平滑处理系统的思路进行平滑处理后的数据。从数据可以看到,平滑处理后的数据质量有大幅度的提升,其中部分毛刺可能是由于服务器端、视景IG或主控系统未处理理想状态所致。

图4 进行平滑处理后的数据

3 结束语

本文为解决直升机模拟器画面卡顿问题,提出了一种平滑处理的方法,并开展了设计和实现。目前该技术已经应用在直升机模拟器中,提升了视景系统的显示效果。

猜你喜欢

卡顿视景服务器端
Linux环境下基于Socket的数据传输软件设计
最忠实的守墓犬
最忠实的守墓犬
最忠实的守墓犬
vega及其在战场环境视景仿真系统中的应用
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
全回转拖轮运动建模与视景仿真
基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真
网页防篡改中分布式文件同步复制系统