張 劍,周 攀,饒玉婷
(中國直升機(jī)設(shè)計(jì)研究所,江西 景德鎮(zhèn) 333001)
現(xiàn)代高新技術(shù)的發(fā)展促進(jìn)了飛行訓(xùn)練手段的不斷進(jìn)步和更新。飛行訓(xùn)練模擬器因其成本低、安全性好等優(yōu)越性而受到世界各國家的高度重視,在民用及軍事領(lǐng)域均得到廣泛使用。飛行訓(xùn)練模擬器不僅是培訓(xùn)飛行員的重要裝備,而且是新機(jī)種研制及原理驗(yàn)證、飛行故障診斷的重要工具。直升機(jī)模擬器包括模擬座艙、視景系統(tǒng)、運(yùn)動(dòng)系統(tǒng)、操縱負(fù)荷系統(tǒng)、音響系統(tǒng)、管理系統(tǒng)等多分系統(tǒng),這些分系統(tǒng)分別實(shí)現(xiàn)模擬器的不同功能,相互之間交聯(lián)耦合,共同完成模擬器的仿真訓(xùn)練任務(wù)[1]。其中,視景系統(tǒng)對(duì)直升機(jī)模擬器飛行員駕駛感覺的影響超過其他系統(tǒng)的總和,因此,視景系統(tǒng)功能的好壞直接影響到飛行員對(duì)模擬器使用情況的評(píng)價(jià)。在直升機(jī)模擬器研制過程中發(fā)現(xiàn),部分商用視景IG在模擬器聯(lián)試階段有畫面卡頓現(xiàn)象,在直升機(jī)高速飛行或編隊(duì)高速飛行時(shí)尤為明顯。因此,為了提高視景系統(tǒng)的仿真效果,如何有效避免畫面卡頓是首先要解決的問題。
本文首先簡要介紹直升機(jī)模擬器視景系統(tǒng)的基本工作原理;然后從數(shù)據(jù)和原理角度對(duì)視景卡頓現(xiàn)象進(jìn)行分析;在此基礎(chǔ)上設(shè)計(jì)了可用于直升機(jī)模擬器的平滑處理系統(tǒng),并對(duì)該平滑處理系統(tǒng)進(jìn)行了試驗(yàn)驗(yàn)證;最后提出了后續(xù)優(yōu)化的方向[2]。
視景系統(tǒng)是直升機(jī)模擬器的重要組成部分,主要是通過一組或數(shù)組視景通道輸出從飛行員視點(diǎn)觀看的實(shí)時(shí)圖像。在初始化階段,視景系統(tǒng)首先將對(duì)象數(shù)據(jù)庫加載到視景系統(tǒng)內(nèi)存中,這些數(shù)據(jù)可能包括原野、機(jī)場、公路、湖泊、海岸線、機(jī)動(dòng)車輛、建筑物、樹木、森林、植被和飛機(jī)等要素。目前有多個(gè)標(biāo)準(zhǔn)格式可以用于生成這些實(shí)體,包括OpenFlight等,這種格式將每個(gè)對(duì)象都縮減成具有顏色和紋理的多邊形(通常是三角形),定義在數(shù)據(jù)庫的坐標(biāo)系中。通常,這些對(duì)象按照幾何順序進(jìn)行排列,因此可以根據(jù)對(duì)象距離來選擇不同粒度的對(duì)象輸出到顯示畫面中[3]。
隨著直升機(jī)的機(jī)動(dòng),飛行員視點(diǎn)位置和方向可以由運(yùn)動(dòng)方程計(jì)算得出,每幀(通常為60 Hz)內(nèi)都要對(duì)視景進(jìn)行渲染。緣于不同圖像系統(tǒng)的性能差異,在獲取新的視點(diǎn)位置和飛行員看到的投影圖像之間存在一個(gè)延遲,這種延遲通常稱為視覺延遲,必須保持在最小范圍。當(dāng)前高等級(jí)直升機(jī)模擬器選取的延遲一般不超過30 ms。
用于做視景圖像顯示系統(tǒng)的媒介較多,從成像原理來看,主要有實(shí)像直投和虛景成像兩大類。較為常見的是實(shí)像方式,如投影儀球幕直投成像、LED球帶幕成像、液晶顯示器成像等,都屬于實(shí)像成像的一種。部分成像展示如圖1所示。
圖1 采用顯示器成像的程序模擬器效果圖
平滑處理系統(tǒng)主要用于優(yōu)化視景系統(tǒng)畫面卡頓現(xiàn)象,提高直升機(jī)模擬器視景系統(tǒng)的仿真效果。本章首先從原理和數(shù)據(jù)角度出發(fā),分析視景畫面卡頓現(xiàn)象可能產(chǎn)生的原因;然后對(duì)平滑處理系統(tǒng)的設(shè)計(jì)思路進(jìn)行簡要介紹,并開展平滑處理效果分析。
為了適應(yīng)投影儀/顯示器/顯卡的刷新頻率,當(dāng)前主流視景IG(視景分系統(tǒng)中圖像生成部分)刷新頻率一般都為60 Hz,如VP等,且作為客戶端主動(dòng)發(fā)送數(shù)據(jù)更新需求;直升機(jī)模擬器一般數(shù)據(jù)交互周期為10 ms(100 Hz),且由主控系統(tǒng)作為客戶端主動(dòng)發(fā)送數(shù)據(jù)更新需求,所有分系統(tǒng)(含視景分系統(tǒng))作為服務(wù)器端被動(dòng)接收數(shù)據(jù)更新需求并響應(yīng)。
問題隨之產(chǎn)生:視景IG要作為客戶端主動(dòng)發(fā)送數(shù)據(jù)更新需求,視景分系統(tǒng)又要作為服務(wù)器端被動(dòng)響應(yīng)數(shù)據(jù)更新需求。為了完成任務(wù),視景分系統(tǒng)中一般需要再增加一個(gè)host服務(wù)器端,專門用來處理數(shù)據(jù)的交互,既響應(yīng)視景IG的數(shù)據(jù)更新需求,又響應(yīng)主控系統(tǒng)的數(shù)據(jù)更新需求。為了便于從源頭分析,假設(shè)host服務(wù)器采用實(shí)時(shí)操作系統(tǒng),對(duì)數(shù)據(jù)轉(zhuǎn)發(fā)和處理的延遲都為理想狀態(tài)。由于視景IG和主控系統(tǒng)兩者的數(shù)據(jù)更新需求頻率不一致,因而無法保證視景IG和主控系統(tǒng)收到的數(shù)據(jù)都是最新的,時(shí)間差在兩幀之內(nèi)且不固定,具體分析見圖2。
圖2 服務(wù)器端數(shù)據(jù)處理原理示意圖
圖2中,橫坐標(biāo)為時(shí)間軸,假設(shè)0,10,20,30為host服務(wù)器端(以下簡稱服務(wù)器端)接收到的主控系統(tǒng)最新數(shù)據(jù)時(shí)間(也就是數(shù)據(jù)需求,同步發(fā)過來的),數(shù)據(jù)周期為100 Hz;A、B、C代表接收到的視景IG數(shù)據(jù)更新需求可能發(fā)生的時(shí)段,數(shù)據(jù)周期為60 Hz。由于主控系統(tǒng)和視景IG兩個(gè)客戶端具有相對(duì)獨(dú)立性,所有前30 ms的視景IG數(shù)據(jù)更新需求可以是A、B、C,也可以是中間的任何一種,也就是具有完全隨機(jī)性。
以A為例,a1代表在接受到視景IG數(shù)據(jù)更新需求時(shí),剛接受到主控發(fā)過來的最新直升機(jī)數(shù)據(jù),因此可以將最新數(shù)據(jù)直接反饋給視景IG。這時(shí)候視景IG接收到的就是當(dāng)前時(shí)刻最真實(shí)的數(shù)據(jù)。類似分析,a2代表反饋給視景IG的數(shù)據(jù)是6.66 ms之前的數(shù)據(jù)。當(dāng)時(shí)對(duì)于視景IG來說,是按照最新數(shù)據(jù)來處理的,這時(shí)候在模擬器中看到的直升機(jī)位置,就比真實(shí)位置落后了6.7 ms。雖然位置不能用時(shí)間來表示,但是從側(cè)面反映如果要找回6.7 ms內(nèi)的位置偏差,就可以考慮用速度積分的方式來實(shí)現(xiàn)。a3代表有3.3 ms的位置偏差。B和C分別代表其它典型數(shù)據(jù)處理時(shí)間,其中C和A比較接近,正好慢了1幀時(shí)間;B屬于特例,從b2時(shí)刻看出,數(shù)據(jù)更新可能比真實(shí)位置落后了9.9 ms。由于100 Hz和60 Hz之間的最小公倍數(shù)是600,轉(zhuǎn)換到時(shí)間軸為6 s,因此6 s就具有特殊意義,意味著如果起點(diǎn)視景IG更新需求是A的方式,那么6 s后還是以A的方式進(jìn)行數(shù)據(jù)更新,同樣適用于B和C等其他方式。
對(duì)于主控系統(tǒng)來說,數(shù)據(jù)需求一般為地形高度、地面材質(zhì)等信息,最新數(shù)據(jù)和真實(shí)數(shù)據(jù)相差幾毫秒,對(duì)模擬器來說沒有太大影響,可以不考慮。對(duì)于視景IG來說,數(shù)據(jù)需求一般為直升機(jī)姿態(tài)、直升機(jī)位置等信息,尤其是直升機(jī)位置信息,幾毫秒的差異反映到畫面上,在直升機(jī)高速飛行或編隊(duì)飛行時(shí)產(chǎn)生的位置偏差可以超過1 m,反映到畫面上就是可視化的抖動(dòng),肉眼能看到直升機(jī)位置的突變。這個(gè)后果對(duì)直升機(jī)模擬器飛行員訓(xùn)練來說是致命的。
接上圖,由于A、B、C具有隨機(jī)性,因此探究的解決方法以A為例進(jìn)行分析,最終的解決方法需要涵蓋A、B、C在內(nèi)的所有可能性。
解決實(shí)際問題,只需要對(duì)位置信息做平滑處理。位置信息可能是經(jīng)緯度或者大地坐標(biāo)等,不考慮坐標(biāo)轉(zhuǎn)換,以大地坐標(biāo)為例來做平滑處理;視景IG接收數(shù)據(jù)有很多,對(duì)于平滑處理有用的數(shù)據(jù)除了坐標(biāo)位置,還有該坐標(biāo)對(duì)應(yīng)的速度、加速度等信息,這是前提條件。結(jié)合文章前節(jié)的分析,本文提出以下平滑處理解決方案:
在接收到主控系統(tǒng)數(shù)據(jù)時(shí),即記錄下當(dāng)前的時(shí)間戳,如圖2中,0 ms、10 ms、20 ms、30 ms收到數(shù)據(jù)時(shí)分別記錄當(dāng)前時(shí)間為t0、t10、t20、t30;在接收到視景IG數(shù)據(jù)更新需求時(shí),即記錄下當(dāng)前的時(shí)間戳,如圖2中,a1、a2、a3收到數(shù)據(jù)更新需求時(shí)分別記錄當(dāng)前時(shí)間為ta1、ta2、ta3;時(shí)間戳參數(shù)應(yīng)該是實(shí)時(shí)更新的,如t0會(huì)被t10替代,然后依次被t20、t30替代,ta和tb同理。
位置解算基本公式如下:
X=x+Δx=x+v×Δt
(1)
由于不考慮坐標(biāo)轉(zhuǎn)換,采取大地坐標(biāo)系下的直接坐標(biāo),因此該坐標(biāo)系下三軸(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為接收到的主控系統(tǒng)轉(zhuǎn)發(fā)位置信息,Δx為平滑增量,可以用速度積分的方式求出。
按圖2,套用上公式,針對(duì)a1、a2、a3三個(gè)點(diǎn)來說,有以下分析:
Xa1=x0+v0×(ta1-t0)
Xa2=x10+v10×(ta2-t10)
Xa3=x30+v30×(ta3-t30)
(3)
因此,對(duì)于無論A、B、C哪種形式,哪個(gè)點(diǎn),都可以套用上公式。
選取大地坐標(biāo)系中x方向位置信息作為參考,進(jìn)行平滑處理效果分析。
圖3是未進(jìn)行平滑處理的原始數(shù)據(jù)。
圖3 未進(jìn)行處理的原始數(shù)據(jù)
從數(shù)據(jù)可以看到,服務(wù)器端發(fā)送給視景IG的位置信息不穩(wěn)定,會(huì)頻繁出現(xiàn)規(guī)律的延遲。圖4是按照上述平滑處理系統(tǒng)的思路進(jìn)行平滑處理后的數(shù)據(jù)。從數(shù)據(jù)可以看到,平滑處理后的數(shù)據(jù)質(zhì)量有大幅度的提升,其中部分毛刺可能是由于服務(wù)器端、視景IG或主控系統(tǒng)未處理理想狀態(tài)所致。
圖4 進(jìn)行平滑處理后的數(shù)據(jù)
本文為解決直升機(jī)模擬器畫面卡頓問題,提出了一種平滑處理的方法,并開展了設(shè)計(jì)和實(shí)現(xiàn)。目前該技術(shù)已經(jīng)應(yīng)用在直升機(jī)模擬器中,提升了視景系統(tǒng)的顯示效果。