吳傳貴,鄭永龍,朱維瑋,張 偉,李金猛
(安徽省航空設備測控與逆向工程實驗室,安徽 蕪湖 241007)
在復雜測試系統搭建過程中,存在系統組成和被測產品復雜、尺寸各異和電纜較多,及擬定建址區域空間有限、周圍復雜、受限較多等問題,給系統搭建選址分析和工藝布置設計帶來了一些困難,僅僅通過平面設計圖紙方式難以滿足分析論證要求,因此,必須采用新技術新方法,提高測試系統搭建工藝布置的有效性和科學性,促進系統搭建的順利實施。文中所討論的基于VR(virtual reality)虛擬現實技術的測試系統工藝布置設計方法,是基于VR技術,以被測產品和系統組成為研究對象,結合擬選建址和條件為約束,以3D顯示和頭盔演示為目標,重點圍繞系統介紹、虛擬布置和仿真調試進行分析研究和設計,以實現VR技術在測試系統搭建選址和工藝布置設計演示系統的應用。
VR技術已有大量應用研究[1-10],文中系統采用VR技術的設計重點:一是利用CATIA、3Dmax軟件設計被測產品和系統組成的三維數模;二是利用PostEngineer軟件(PE平臺)設計實現仿真場景和演示功能。
虛擬不虛,未來已來[11]。隨著第一屆全球虛擬現實大會成功舉辦,VR/AR/MR技術再次快速進入大家的視野。VR技術就是虛擬現實,是利用計算機模擬產生三維虛擬世界,為使用者提供視覺聽覺觸覺等感官的模擬,讓使用者能夠全方位地體驗到不同虛擬場景,真正體驗到身臨其境的觀感,可以高效及時、毫無限制地觀察三維空間內的任何事物。AR(augmented reality)技術就是增強現實,有真有假、真假結合,是通過計算機技術將虛擬的信息應用到真實世界,使真實環境和虛擬物體同時存在、實時地疊加到同一個畫面或空間中。MR(mediated reality)技術就是混合現實,AR的增強版,包括增強現實和增強虛擬[12]。
VR具備沉浸性、交互性、構想性、動作性和自主性等5個特性。VR涉及的關鍵技術有三維計算機圖形學技術、多功能傳感器的交互式接口技術、高清晰度顯示技術和平臺交互開發技術。應用領域有工業仿真、娛樂、軍事航天、室內設計、應急推演、醫學、教學培訓、體育和其他,可以實現科技上的合理性和追求藝術性與視覺效果[13]的統一。
測試系統工藝布置演示系統組成及功能如圖1所示。

圖1 系統組成及功能
測試系統工藝布置演示系統是復雜測試系統的一個集成顯示演示系統,主要包括由主菜單和按鈕組成的主模塊和由系統介紹、虛擬布置和仿真調試等組成的功能子模塊。其中,系統介紹利用顯示視口,外加文字、音頻等元素,多角度對系統各組成進行介紹;仿真布置是根據廠房場地及周邊設施情況,模擬系統各設備的工藝布置;虛擬調試是在完成測試系統工藝布置的基礎上,虛擬仿真被測產品的移動、安裝和放置過程。系統開發軟件PostEngineer(PE平臺)是一套專注于開發三維交互式可視化系統的,三維模型創建軟件是CATIA和3Dmax,其他還有文字、圖片和音頻處理軟件等。
針對測試系統組成,分別對綜合仿真與測試、激勵器和模擬器、專用仿真器、通用與輔助四部分進行梳理,形成各部分組成、安裝形式及位置。確定了測試系統組成及放置原則:一是所有的計算機放置在2臺1.6 m機柜內;二是所有顯示器放置在2組控制臺上集中顯示;三是共有8臺各類激勵器等采用標準機柜的設備;四是劃分地面區域放置非標環境設備;五是單獨劃分地面區域放置電源與液冷設備。
被測產品放置主要集中在三類:一是所有的人機接口產品全部在模擬艙內;二是需要10臺雙層工作臺,放置一般尺寸和重要的產品,大的重的放置在工作臺一層,小的輕的產品放置在二層;三是大型重量的被測產品直接放置在地面專用臺架上。
演示系統中需要各種仿真物體模型,它們的創建直接影響到使用者的視覺效果和真實體驗,主要有廠房及已有設施、系統組成、被測產品等。廠房有墻體、玻璃、地面地板等;場景中已有設施是傳動試驗系統,主要有通道、支座架、系統電腦控制組件、資源機柜組件、液壓及機箱、屏幕組件和機翼地板組件等;測試系統組成主要有計算機及顯示器、綜合顯示屏幕、琴式控制臺及座椅、1.6 m機柜、雙層工作臺、臺架、各種專用模擬器、液冷設備、交直流穩壓電源、產品中轉貨架和推車等;被測產品主要由產品一、產品二、產品三、產品四、產品五等25件模型。
為達到較好的顯示和演示效果,增加逼真感,系統設計過程中需要進行多媒體素材制作,主要有圖片,文字和音頻等,圖片涉及主菜單和功能按鈕、背板、貼圖等內容,用于人機交互控制操作;文字和音頻主要是用于系統介紹模塊,主要有綜合顯示屏幕、綜合控制臺、模擬艙、產品一、產品二、產品三、產品四、產品五、電源及液冷設備等9個組件的說明內容,實現打印文字時能夠同時播放對應的音頻。
演示系統的模型的實現及編輯主要是在PE平臺上完成,因為PE平臺支持的模型格式是.vis格式,目前支持的圖形軟件只有PRO/E 3.0、Solidworks、3Dmax2009模型導出,而場景仿真實體建模是用CATIA設計開發的,所以首先把這些模型通過.stp中間格式轉換進行導入3Dmax轉換為.vis格式。
演示系統的主流程如圖2所示。程序運行后,首先,加載基礎的虛擬場景模型,并且進入項目主模塊顯示主視圖;其次,根據演示要求,選擇頭盔輸出或3D顯示輸出方式,并進入對應的輸出模式,3D顯示和頭盔輸出模式的控制分別通過按鈕和控制點實現;再次,點擊主菜單控件,顯示子模塊功能控制控件,選擇系統介紹、虛擬布置和仿真調試控制件,進入并初始化對應的子模塊;再次,通過功能控件,對各子模塊功能進行開始、暫停、繼續和終止控制,執行不同的動作;最后,當完成演示后,退出結束程序。

圖2 主流程
功能模塊設計主要是對系統介紹、虛擬布置和仿真調試三個模塊的設計,根據模塊名稱分別創建不同的三維虛擬場景、提供功能菜單控制按鈕、自動播放等功能,其包含的元素主要有按鈕、動畫和變量。具體功能和元素詳見表1。

表1 功能模塊的功能及元素
載入模型后,可以通過平臺對模型進行簡單編輯:
(1)模型節點修改,如名稱、路徑的修改新建等,修改后,便于后期交互設計。
(2)模型材質處理貼圖處理,為了使模型更加真實地接近真實的物體。
(3)調節模型的透明度、顯示及隱藏,透明度的取值范圍為(0,1),其中,0和1分別表示完全透明和不透明,通過選中物體或節點,選擇顯示或隱藏。
(4)對模型的大小進行縮放及位置調整,通常情況下,CATIA的采用單位是mm,而PE平臺采用單位為m,為此,模型導入平臺后,其大小需要縮小1 000倍,一般情況下,縮放時按坐標系x、y、z的三個方向同步調整,通過移動和旋轉物體或節點實現模型位置的調整。
PE平臺提供幀動畫、管道動畫和組合動畫等設計。幀動畫完成移動平面對象、移動實體、旋轉實體和縮放實體等動作;管道動畫模擬一些接線、油路、電路走向功能;組合動畫是通過平臺的動畫功能進行組合,將設計的幀動畫及動作事件按照時間軸的形式組合起來。該系統設計過程中,只涉及到了幀動畫和組合動畫?,F以仿真調試子模塊為例,共包括有被測產品一至五移動安裝等5個基本組合動畫,將5個基本組合動畫再次組合形成了自動播放仿真調試子模塊的總動畫,各基本組合動畫都是由幀動畫組合而成,如被測產品一移動安裝動畫包括有:推車移動、產品移動安裝、推車及產品移動、推車及產品旋轉、產品移動放置等幀動畫。
界面對象主要有圖片、文字和聲音等。其中,聲音是以動畫形式創建,圖片和文字是通過添加界面對象方式創建。系統介紹子模塊中,充分應用了圖片、文字和聲音等界面對象。圖片有系統介紹背景和文本顯示背景;打印文本的同時同步播放音頻,文字和聲音的內容相同,主要有綜合顯示屏幕、綜合控制臺、模擬座艙、被測產品一、被測產品二、被測產品三、被測產品四、被測產品五、電源及液冷設備測試區說明內容。
平臺提供了控制點、按鈕、觸發器、區域、鍵盤響應和旋鈕等。其中,控制點是指當用鼠標點擊某個物體時,用動畫來表達產生的反饋。按鈕類似于控制點,指鼠標點擊平面按鈕而產生的反饋,但是在頭盔輸出模式下,按鈕的功能需要通過控制點來實現。觸發器可以定義一個事件,當系統滿足觸發器設置條件時,自動執行相應的動畫。本系統主要通過控制點、按鈕和觸發器實現交互控制,如在主模塊中,通過按鈕實現主菜單和功能菜單的控制交互;在系統介紹子模塊中,通過控制點實現系統各組成的介紹控制;在仿真調試子模塊中,通過控制點和觸發器實現物體閃爍的停止。
變量和函數程序編輯也是平臺控制功能,變量用于記錄交互過程中產生的數據變化,用于不同事件發生的邏輯控制;函數有系統庫和自定義功能函數,系統庫函數包括模型操作、數據庫、網絡通信以及其他函數。本系統中主模塊定義有modeid變量,用于記錄各模塊之間的交互;在系統介紹子模塊中,定義有close_type和control_id變量,用于打開/關閉介紹視口的控制。函數在設計過程中有大量的應用,特別是通過函數實現的3D顯示和頭盔輸出功能,調用outputDisplay("3D")函數實現3D顯示。
運行測試系統工藝布置演示系統后,操作者可以通過菜單按鈕實現各子模塊的選擇,實現自動或交互操作。如圖3所示,系統介紹子模塊中播放介紹綜合控制臺,通過文本、音頻和動畫,在新的視口中對其進行說明。

圖3 系統介紹視口運行圖
6.1.1 軟件框架設計基本理解
軟件框架是用戶集成構件的架構,抽象描述應用系統中所有構件的接口關系及結合規則,可以從多個不同角度來理解:
(1)從構件角度,軟件框架是整個或部分系統的可重用設計,是應用系統的骨架,由一組抽象構件及構件實例相互作用而成。
(2)從程序設計角度,軟件框架主要是應用程序的框架定義,實現提供標準用戶定義模塊放置功能。
(3)從領域應用角度,軟件框架是完成業務需求的功能集合的一個概念模型,具有根據用戶需要快速實現相關參數修改而得到一個新的應用系統的能力。
軟件框架設計可以為大規模開發提供基礎和規范,其設計過程可以將一些公共部分抽象提取,形成公共類和工具類,從而達到應用的目的,縮短項目開發周期,降低開發和維護成本,同時,可以使開發人員更多地關注與業務邏輯相關的實現設計上,減少很多不必要的工作量,提高開發效率,總體上提高開發質量,實現多方互贏。
6.1.2 軟件框架設計原則
軟件框架設計遵循的原則主要有:
(1)滿足功能需求和非功能需求的原則,軟件框架是應用系統的骨架,必須遵循軟件系統滿足功能和非功能的基本設計原則。
(2)實用性原則,軟件系統是針對用戶需求而開發的,必須從實用出發,不能為了框架而設計框架,不要發生“高來高去”或“過度設計”的情況。
(3)滿足重用的要求,這是軟件框架設計的出發點,要最大程度提高開發效率和質量水平。
6.1.3 軟件框架搭建
軟件框架設計搭建主要包括需求分析、概要設計、軟件結構設計、用戶接口設計、軟件結構搭建、具體功能實現和整合與調整。其中,對于軟件結構搭建而言,重點工作是進行平面元素定義、功能布局、功能菜單切換跳轉設計、模塊分類組號設計、特殊功能及通用功能實現等。
6.2.1 XML格式基本形式
流程文件采用XML格式進行管理控制,以“workshop”關鍵字開始,包含多個流程“process”,“process”又由多個步驟“step”組成,基本形式如下:
< workshop...>
< process...>
< step.../>
< step.../>
...
< process...>
< step.../>
< step.../>
...
6.2.2 關鍵字說明
由于篇幅關系,現主要對“workshop”、“process”和步驟關鍵字進行簡要說明。
關鍵字“workshop”包含兩個屬性“version”和“database”,“version”代表版本號,“database”指定了動作數據庫的連接字符串。
關鍵字“process”包含“name”、“start”、“continuous”和“active”等四個屬性,“name”為流程命名,若省略則由系統自動命名;“start”指定流程執行的相對起始時間,可省略,默認為“0”;“continuous”指定流程是否循環執行,“true”表示循環,“false”表示不循環,可省略,默認為“false”;“active”指示流程是否處于活動狀態,“true”表示處于活動狀態,“false”表示不處于活動狀態,可省略,默認為“true”,此時流程會自動運行,否則流程不能自動運行,但可以當作子流程被調用。
步驟關鍵字必須內嵌于“process”中,其中有多種類型:如動作“step”、動畫“animation”、程序“program”、判斷“judgement”、空閑“idle”、掛起“untill”以及子流程“sub”。所有步驟類型都有如下的共同屬性:步驟編號“id”,不能省略,必須唯一;前一步驟編號“prev”,表明前后步驟的串聯關系,可省略,默認將上一個定義的步驟當作前一步驟,但是如果當前步驟是第一個定義的,則沒有上一個步驟;相對于前一步驟的等待時間“waiting”,即表示當前一步驟結束后,等待多長時間當前步驟才開始執行,可省略,默認為“0”(即上一步驟執行完成后,立即執行當前步驟),該屬性可以為負值,其表示為前一步驟結束前還剩余多長時間時就可以提前啟動當前步驟,但是這個提前量不能早于上一步驟的啟動時間。
測試系統工藝布置演示系統發布后,通過3D顯示為決策建設選址和設計工藝布置提供直觀的圖像參考依據;通過頭盔演示,使系統建設相關人員能夠身臨其境地體驗VR場景,感受系統組成介紹的真實性、產品移動安裝的空間合理性,可以提前發現問題和不足,不斷及時完善,有效地節省時間和成本,提高了工藝布置的有效性和科學性。通過演示系統使工藝布置設計達到更好的效果,實現了科技合理性和藝術與視覺效果的統一,具有一定的借鑒和推廣作用。