王軼 周舒 羅果 段曉英
摘要:GL Studio作為一款專(zhuān)業(yè)的虛擬仿真軟件,已廣泛應(yīng)用于航空器模擬駕駛訓(xùn)練系統(tǒng)的開(kāi)發(fā),但在城市軌道列車(chē)模擬駕駛訓(xùn)練系統(tǒng)中的應(yīng)用卻較少。文章詳細(xì)介紹了利用GL Studio軟件實(shí)現(xiàn)城市軌道列車(chē)駕駛控制臺(tái)旋鈕開(kāi)關(guān)、按鈕開(kāi)關(guān)、操作手柄等儀表設(shè)備圖形對(duì)象、行為模型的建立過(guò)程。實(shí)踐證明,GL Studio能夠應(yīng)用于城市軌道列車(chē)駕駛控制臺(tái)的儀表設(shè)備的虛擬仿真,并達(dá)到良好的效果。
關(guān)鍵詞:GL Studio;城市軌道列車(chē);虛擬;駕駛控制臺(tái)
中圖分類(lèi)號(hào):TP391.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)02-0070-02
0 引言
隨著我國(guó)城市軌道交通行業(yè)的飛速發(fā)展,城市軌道運(yùn)營(yíng)里程、城軌列車(chē)數(shù)量不斷增加,對(duì)城軌列車(chē)駕駛員的培養(yǎng)需求也越來(lái)越大,由于城市軌道交通建設(shè)成本高,運(yùn)營(yíng)安全責(zé)任大,城軌列車(chē)駕駛員的培養(yǎng)不可能在真實(shí)運(yùn)營(yíng)環(huán)境中進(jìn)行實(shí)車(chē)訓(xùn)練,只能通過(guò)計(jì)算機(jī)仿真技術(shù)進(jìn)行模擬駕駛訓(xùn)練[1]。而計(jì)算機(jī)仿真的關(guān)鍵就是對(duì)城市軌道列車(chē)駕駛控制臺(tái)上的操作手柄、按鈕、儀表等儀器設(shè)備進(jìn)行虛擬,使列車(chē)駕駛員能夠獲得與真實(shí)列車(chē)一致的操作感受,從而達(dá)到訓(xùn)練的效果。
1 GL Studio的簡(jiǎn)介
GL Studio是美國(guó)DiSTI(Distributed Simulation Technology Inc.)公司研發(fā)的,是目前世界上最先進(jìn)的虛擬儀器開(kāi)發(fā)工具[2],具有獨(dú)立性、交互性、快速性的特點(diǎn)[3]。使用GL Studio開(kāi)發(fā)虛擬儀器系統(tǒng)對(duì)用戶(hù)的編程知識(shí)要求不高。GL Studio具有代碼生成的功能,由GL Studio設(shè)計(jì)器創(chuàng)建的文件可以通過(guò)代碼生成器生成C++和OpenGL源代碼[4]。由代碼生成器生成的源代碼有兩種應(yīng)用方式,一是單獨(dú)運(yùn)行,二是嵌入其它應(yīng)用程序中。GL Studio具有“所見(jiàn)即所得”的功能,為提高虛擬儀器系統(tǒng)的真實(shí)感和圖形對(duì)象設(shè)計(jì)的效率,用戶(hù)可利用Photoshop、CorelDRAW等專(zhuān)業(yè)圖像處理軟件對(duì)儀器系統(tǒng)的實(shí)物照片進(jìn)行處理,制作成圖形對(duì)象的貼圖插入到GL Studio設(shè)計(jì)器,創(chuàng)建為圖形對(duì)象。軟件具有操作功能簡(jiǎn)單、對(duì)編程能力要求低、開(kāi)發(fā)界面友好、開(kāi)發(fā)效率高、設(shè)計(jì)開(kāi)發(fā)的優(yōu)點(diǎn)。
2 設(shè)計(jì)圖形對(duì)象
使用Photoshop圖像處理軟件制作城市軌道列車(chē)虛擬駕駛控制臺(tái)的操作手柄、開(kāi)關(guān)、按鈕及控制臺(tái)面板。在制作時(shí)各類(lèi)“器件”的外觀、顏色及運(yùn)行狀態(tài)要盡量與實(shí)物器件一致,也可使用高清實(shí)物照片進(jìn)行處理,并保存為*.png格式的圖像紋理。因?yàn)?.png格式完全支持alpha通道透明度,可以更好地利用透明紋理設(shè)計(jì)圖形界面[5]。在制作各類(lèi)“器件”的圖像紋理時(shí),像素大小最好選擇2的n次冪進(jìn)行,這樣可以提高系統(tǒng)運(yùn)行的效率。另外,所有的“器件”的圖像紋理要跟控制臺(tái)面板的顯示窗口的大小一致,同一塊面板上的不同“器件”最好擺放在同一張圖片上,保證圖像紋理的比例一致,從而避免繁瑣的調(diào)整,也能夠減少開(kāi)發(fā)與運(yùn)行時(shí)顯示的差異。
3 建立行為模型
虛擬駕駛控制臺(tái)主要由操作手柄、開(kāi)關(guān)、按鈕等“器件”組成,因此首先創(chuàng)建面板,然后在創(chuàng)建好的面板上依次創(chuàng)建其它“器件”。
3.1 旋鈕開(kāi)關(guān)
以遮陽(yáng)簾開(kāi)關(guān)為例,介紹旋鈕開(kāi)關(guān)的具體實(shí)現(xiàn)過(guò)程。在GL Studio設(shè)計(jì)窗口的工具欄,選擇矩形工具創(chuàng)建一個(gè)矩形。選擇矩形,右鍵單擊,打開(kāi)“對(duì)象屬性”對(duì)話(huà)框,在“紋理”選項(xiàng)卡中選擇“添加紋理”按鈕,添加旋鈕開(kāi)關(guān)紋理貼圖,單擊“Actual Size”使紋理貼圖以實(shí)際像素大小應(yīng)用到矩形中。選中旋鈕開(kāi)關(guān)旋轉(zhuǎn)對(duì)象,單擊工具欄中旋鈕裝置圖標(biāo),創(chuàng)建一個(gè)旋鈕裝置。遮陽(yáng)簾開(kāi)關(guān)有三個(gè)檔位,旋轉(zhuǎn)范圍從“升”刻度處至“降”刻度處。選擇工具欄中的旋轉(zhuǎn)工具,轉(zhuǎn)動(dòng)旋鈕指示條與“升”刻度對(duì)齊。打開(kāi)“Object Properties”對(duì)話(huà)框,單擊“Knob”標(biāo)簽,進(jìn)入旋鈕屬性欄,在“General”標(biāo)簽中選擇“Angle Range”,即角度范圍,拖動(dòng)“Preview Position”滑動(dòng)條,使旋鈕指示條旋轉(zhuǎn)至與“降”刻度對(duì)齊,確定旋鈕開(kāi)關(guān)的起點(diǎn)和終點(diǎn)位置。在“Object Properties”對(duì)話(huà)框,單擊“Detents”標(biāo)簽,在“Number of Detents”輸入框中輸入數(shù)字“3”,在“Distribute Evenly”中生成3個(gè)滑動(dòng)條,表示包括起點(diǎn)和終點(diǎn)在內(nèi),旋鈕共有3個(gè)檔位。拖動(dòng)2號(hào)滑動(dòng)條,轉(zhuǎn)動(dòng)旋鈕指示條與“off”刻度對(duì)齊,拖動(dòng)3號(hào)滑動(dòng)條,轉(zhuǎn)動(dòng)旋鈕指示條與“降”刻度對(duì)齊,完成旋鈕開(kāi)關(guān)的檔位設(shè)置。將遮陽(yáng)簾開(kāi)關(guān)的初始狀態(tài)設(shè)置為“2”。其它旋轉(zhuǎn)開(kāi)關(guān)也按上述方法進(jìn)行建立。
3.2 按鈕開(kāi)關(guān)
虛擬駕駛控制臺(tái)的按鈕開(kāi)關(guān)均為帶指示燈的自動(dòng)復(fù)位開(kāi)關(guān),即使用鼠標(biāo)左鍵點(diǎn)擊按鈕開(kāi)關(guān),按鈕垂直向下運(yùn)動(dòng),激發(fā)事件,松開(kāi)鼠標(biāo)左鍵后,按鈕自動(dòng)復(fù)位,指示燈亮起。具體實(shí)現(xiàn)過(guò)程是,在GL Studio設(shè)計(jì)窗口工具欄中選擇圓形工具,創(chuàng)建一個(gè)圓形。選擇一個(gè)圓形,右鍵單擊,打開(kāi)“對(duì)象屬性”對(duì)話(huà)框,然后在“紋理”選項(xiàng)卡中選擇“添加紋理”按鈕,添加按鈕開(kāi)關(guān)初始狀態(tài)紋理貼圖,單擊“Actual Size”使紋理貼圖以實(shí)際像素大小應(yīng)用到圓形中,將對(duì)象名命名為“button_off”。同樣,創(chuàng)建一個(gè)新的圓形,添加按鈕點(diǎn)擊狀態(tài)的紋理,并將其命名為“button_on”。同時(shí)選擇“button_off”、“button_on”兩個(gè)對(duì)象,單擊工具欄中按鈕圖標(biāo),創(chuàng)建一個(gè)按鈕裝置。打開(kāi)“Object Properties”對(duì)話(huà)框,單擊“Push Button”標(biāo)簽,進(jìn)入按鈕屬性欄,在“Up Position Geometry”選項(xiàng)欄中選擇“button_off”,即按鈕開(kāi)關(guān)初始狀態(tài),在“Down Position Geometry”選項(xiàng)欄中選擇“button_on”,即按鈕開(kāi)關(guān)點(diǎn)擊狀態(tài)。在“Behavior”選項(xiàng)欄選擇“Momentary”實(shí)現(xiàn)自復(fù)位功能,點(diǎn)擊“Initial State”按鈕,預(yù)覽按鈕開(kāi)關(guān)的運(yùn)動(dòng)狀態(tài)。
3.3 操作手柄
虛擬駕駛控制臺(tái)有2個(gè)操作手柄,主控手柄和方向手柄。主控手柄即駕駛操作手柄,有8個(gè)檔位,分別為“B1- B4檔”為前進(jìn)檔,“N檔”空檔,“P1- P3檔”制動(dòng)檔;方向手柄有3個(gè)檔位“前進(jìn)檔”、“0檔”和“后退檔”,用于控制列車(chē)行進(jìn)的方向。
以主控手柄為例,具體實(shí)現(xiàn)過(guò)程是,在GL Studio設(shè)計(jì)窗口中創(chuàng)建一個(gè)矩形。在“Object Properties”對(duì)話(huà)框,“Texture”標(biāo)簽,添加方向手柄“B1”狀態(tài)紋理貼圖,將對(duì)象名命名為“Forward_1”。同理,添加其他檔位狀態(tài)紋理貼圖,點(diǎn)擊工具欄中Switch圖標(biāo),創(chuàng)建一個(gè)開(kāi)關(guān)裝置,打開(kāi)“Object Properties”對(duì)話(huà)框,單擊“switch”標(biāo)簽,拖動(dòng)“Current Detent”滑動(dòng)條可以看到面板上方向手柄在8個(gè)檔位之間的變化。
根據(jù)上述方法逐一完成城市軌道列車(chē)虛擬駕駛控制臺(tái)所有“器件”的設(shè)計(jì)與建模,如圖1所示。
4 代碼的生成
虛擬駕駛控制臺(tái)中各類(lèi)“器件”之間都存在某種邏輯關(guān)聯(lián),當(dāng)某一個(gè)器件的動(dòng)作會(huì)激發(fā)另一個(gè)器件的狀態(tài)發(fā)生相應(yīng)變化。所以要根據(jù)各個(gè)“器件”之間的邏輯關(guān)系添加用戶(hù)代碼,實(shí)現(xiàn)虛擬駕駛控制臺(tái)的邏輯功能。以控制關(guān)左門(mén)按鈕的代碼為例進(jìn)行說(shuō)明。
邏輯關(guān)系是按關(guān)左門(mén)按鈕,門(mén)全關(guān)指示燈亮,首先我們定義。
BUTTONSTATE button;
LIGHTSTATE light;
根據(jù)按鈕的屬性,我們添加以下控制函數(shù)。
int
instmmentClass::closeleftdoorGlsPushButton_ObjctCallback(GlsPushButton*self,DisplayEvent*ev)
{
MouseEvent*mev=(ev->eventType==EVENT_MOUSE?(MouseEvent*)ev:NULL);
KeyboardEvent*kev=(ev->eventType==EVENT KEYBOARD?(rKeyboardEvent*)ev:NULL);
if(ObjectEventls(ev,”StateChange”))
{
if(closeleftdoorGlsPushButton->State()==1)//按下關(guān)左門(mén)按鈕
{
button.closerightdoor=1;? ? ?//關(guān)右門(mén)按鈕狀態(tài)為1
light.closedoorok=l;? ? ?//門(mén)全關(guān)指示燈亮
}
}
return 1;
}
代碼中,closeleftdoorGlsPushButton為按鈕對(duì)象的名稱(chēng)。
5 結(jié)語(yǔ)
本文研究了GL Studio虛擬仿真軟件的應(yīng)用,對(duì)城市軌道列車(chē)駕駛控制臺(tái)的旋鈕開(kāi)關(guān)、按鈕開(kāi)關(guān)、操作手柄進(jìn)行仿真。經(jīng)實(shí)踐開(kāi)發(fā)證明,GL Studio能夠應(yīng)用于城市軌道列車(chē)駕駛控制臺(tái)的儀表設(shè)備的虛擬仿真,并取得良好的效果。
參考文獻(xiàn)
[1] 高云鶴.淺談列車(chē)駕駛仿真培訓(xùn)及其關(guān)鍵技術(shù)研究[J].內(nèi)蒙古科技與經(jīng)濟(jì),2016(24):109-111.
[2] 李建海,何青洋,孫艷麗.基于GL Studio的航空虛擬儀表設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2017(5):999-1002.
[3] 周堯.基于GL Studio的虛擬儀表開(kāi)發(fā)和關(guān)鍵技術(shù)研究[J].機(jī)械工程與自動(dòng)化,2015(6):75-77.
[4] 孫嗣棟,祝笑舟,李航.基于GL Studio與PhotoShop的柴油機(jī)訓(xùn)練仿真系統(tǒng)面板設(shè)計(jì)[J].系統(tǒng)解決方案,2015(7):13-15.
[5] 劉魯峰.基于GL Studio的虛擬儀表的仿真研究[J].甘肅科學(xué)學(xué)報(bào).2015,27(2):15-18.
Application of GL Studio in Virtual Driving Console of Urban Rail Train
WANG Yi, ZHOU Shu, LUO Guo, DUAN Xiao-ying
(Chongqing Vocational College Of Public Transportation, Chongqing? 402247)
Abstract:As a sort of professional virtual simulation software, GL Studio has been widely applied in the development of simulated driving training system of aircrafts, but it is less applied in simulated driving training system of urban rail trains. In this article, the author elaborated the course of building models of knob switches, button switches, operating handles and similar instrumentation graphic objects and behaviors on the driving console of urban rail train with GL Studio. Practices prove that, GL Studio can be applied in virtual simulation of instrumentation on the driving console of urban rail trains with a good effect.
Key words:GL Studio; urban rail train;virtual; driving console