多人分散式網路架構
以高階分散式網路架構
實踐多人飛行模擬訓練系統之建置
研究生:王耀聰
研究主題
  網際網路已漸漸成為人們生活的一部份,它不僅拉近了人與人之間的距離,更促使原本相互獨立的研究領域得以進行整合。本論文旨在描述網際網路與虛擬實境兩種技術的整合背景與問題,並說明如何運用高階分散式網路架構建構多人飛行模擬訓練系統。

  本論文有三大發展主軸,如圖一所示,分別為「高階分散式網路架構」、「物件化互動場景」及「飛行模擬訓練器」。其中,分散式網路架構用於系統通訊流程的規劃,物件化互動場景代表虛擬實境場景分析與設計的方法,至於飛行模擬訓練器則是整個系統的規格來源。

圖一 研究主軸

  高階分散式網路架構全名為 High Level Architecture( HLA ),是由美國國防部模式與模擬局針對各種模擬平台所提供的一套共通網路架構標準,使用 HLA 架構可以讓多人模擬的執行更即時而不受網路環境的優劣影響。

  本論文想要呈現的主旨在於如何從規格的制訂、系統分析與設計到落實系統設計,期能提供產官學界一個整合虛擬實境與高階分散式網路架構的雛形系統分析範本。本論文將描述如何運用統一模式語言(United Model Language,UML)進行系統分析,進而與虛擬實境場景軟體整合,開發「物件化互動場景」。

  本論文的最終目標是建構一個『多人飛行模擬訓練系統』,用來模擬真實世界中,戰鬥機駕駛訓練所具備的團隊合作與分組對抗機制,並以教官台擔任指揮任務的塔台。多人飛行模擬訓練的優點是每一次的訓練課程都將因為駕駛員反應的延遲和操作的誤差而產生隨機的結果,且駕駛員除了根據教官台隨機的指示做出不同的反應,還要根據目前隊友的情況做出適當的決策,因此不僅可以培養駕駛員的臨場反應,還能訓練隊員之間的搭配默契。

 

研究說明
  高階分散式網路架構為本論文最重要的主軸,在介紹 HLA 之前,首先說明兩個專有名詞:

 

  1. Federation:

      Federation,名詞,中譯為『聯盟』,包含三部分:Federate、Runtime Infrastructure (RTI)、Runtime Interface,是HLA所定義的最大模擬單位,泛指由眾多模擬程式所組成的集合體

     

  2. Federate:

      Federate原意若作形容詞中譯為『聯合的』;及物動詞中譯為『使…聯合』。但在HLA的用語中為名詞,代表Federation的成員,泛指任何一種形式的模擬程式,依種類可分為五種:電腦模擬、載人模擬器、資料監控程式、資料蒐集程式、操作介面。

     

圖二 動態系統方塊圖

  其組成分為三個部分:「HLA 介面定義」、「HLA 物件模型範本」、「HLA規則」。其中, HLA 介面定義描述由執行時資訊結構(RTI)所提供的服務,並確認每一個 Federate 都有提供 Callback Function。而 HLA 物件模型範本定義了 Federation / Simulation / Management Object Model 的格式,開發者可運用這些共通的物件模型來記錄資訊。至於 HLA 規則共包含十條規則,用來定義 Federation 組成子項的責任歸屬與彼此的關連性,又可細分為 Federation Rule 和 Federate Rule 各五條。

圖三 HLA 基本組成圖

  HLA介面定義(HLA Interface Specification),由「RTI Executive Process」、「Federation Executive Process」及「libRTI Library」三大元素組成,逐一說明如下:

 

  1. RTI Executive Process(RtiExec)

      RtiExec 負責管理 Federation 的生成與消滅,並維護在網路上每一個 Federation 所使用的名稱不重複,每一個執行中的 Federation 都有一個 FedExec 程序協助 RtiExec 進行名稱識別。此外,RtiExec 還必須協助將想要登入之 Federate 導入正確的 FedExec。

     

  2. Federation Executive Process(FedExec)

      FedExec 負責管理在同一個 Federation 中,多個 Federate 的登入(Join)和登出(Resign)情形,並協助 Federate 間的資料交換。每個登入 Federation 的F ederate 都會被 FedExec 指派一個唯一的處理器(Federation Wide Unique Handle)。FedExec 的生命週期分成六個部分:Federation Management、Declaration Management、Object Management、Data Distribution Management、Time Management、Ownership Management,是 RTI 最重要的部分。

     

  3. libRTI Library

      libRTI 負責為 Federate 提供 HLA 的各種服務,使之能夠與 RtiExec、FedExec 和其他 Federate 溝通。libRTI 中的 RTIambassador 類別包含 RTI 所提供之服務,Federate 的所有請求都必須透過 RTIambassador 的函數來呼叫。而 libRTI 中的抽象類別 FederateAmbassador 用來識別每個 Federate 負責提供的 Callback 函數。由於 FederateAmbassador 是抽象的,所以每個 Federate 都必須重新實作(Implement)FederateAmbassador 所定義的每個函數。由於 RTI 對 Federate 的回應是非同步的,Federate 必須預留一個管道供 RTI 呼叫,此管道即為 Callback 函數。如此一來,Federate 不用一直等候 RTI 服務回覆,進而節省等待時間來作更多運算,故使用 HLA 架構可以讓多人模擬的執行更即時而不受網路環境的優劣影響。

  HLA 必須以物件導向的方式設計,因此需要物件模型範本(Object Model Template,OMT),但 HLA 並未規定 Federate 內的物件規劃細節,只要求開放部分 Federate 資料以促進模擬重複使用的可能。開發者可以利用美國模式與模擬局(DMSO)所提供 OMDT 物件模型開發工具將這些資訊按照標準的格式填寫,並且以 Federation Execution Data(FED)的檔案格式儲存。HLA 物件模型範本又可細分為三種:「Federation Object Model」、「Simulation Object Model」及「Management Object Model」,說明如下:

 

  1. Federation Object Model

      Federation Object Model(FOM)描述在Federation有哪些分享的物件,其屬性為何,如何互動。每個Federation只有一個FOM,OMDT所儲存的Federation Execution Data(FED)檔案格式是執行RTI的輸入,用來定義一些屬性的初始值。

     

  2. Simulation Object Model

      Simulation Object Model(SOM)將Federate描述成一物件,說明擁有哪些屬性,提供哪些功能,以供未來其他Federation重複使用。每個Federate只有一個SOM。

     

  3. Management Object Model

      Management Object Model(MOM)定義用來管理Federation的物件有何屬性及互動。OMDT物件模型發展工具已內建必要的MOM。

  HLA 規則(HLA Rule)共包含十條規則,用來定義 Federation 組成子項的責任歸屬與彼此的關連性,又可細分為 Federation Rule 和 Federate Rule 各五條,其相關說明如下:

 

  1. Federation Rule

    Federation Rule說明 Federation 之間的關連性,共有五條,大意如下:
    (1) Federation 必須根據 HLA OMT 定義 Federation Object Model(FOM)
    (2) 所有 FOM 的物件類別必須定義在 Federate,而非 RTI
    (3) 執行過程中,所有FOM的資料交換必須透過 RTI
    (4) 執行過程中,Federate 與 RTI 的溝通,必須符合 HLA Interface Specification
    (5) 執行過程中,特定物件的屬性只能歸屬於一個 Federate

     

  2. Federate Rule

    Federate Rule旨在說明各個 Federate 的責任歸屬,共有五條,大意如下:
    (1) Federation 必須根據 HLA OMT 定義 Simulation Object Model(SOM)
    (2) Federate 必須根據 SOM 的定義,更新、反映屬性,傳送、接收互動。
    (3) 執行過程中,Federate 必須根據 SOM 的定義,移轉或接受屬性的所有權。
    (4) 根據 SOM 的定義,Federate 必須有能力變更其更新物件屬性的條件。
    (5) Federate 必須有能力管理自己的時間,以利於與其他 Federate 進行資料交換。

研究成果
  目前已完成整個多人飛行模擬訓練系統的雛形,可進行多達六部飛機搭配六部六軸平台的多人模擬訓練,多人飛行模擬訓練系統的系統架構如下圖四所示,包含四部電腦,分別執行教官台、分散式作業系統、第一部飛機、第二部飛機及平台控制。

圖四 系統架構圖

  實作步驟如圖六所示,包含三個階段,說明如下:

 

  1. 建構虛擬實境場景雛形程式:

      本論文所實作之『多人飛行模擬訓練系統』主要包含兩大虛擬實境場景,一為多人飛機場景,另一為飛行訓練教官台。

     

  2. 撰寫HLA通訊流程驗證程式:

      本論文最重要的核心主軸,也是耗費最多時間去理解的是高階分散式網路架構(HLA)的背景,在閱讀 HLA 官方文件的過程中,曾經分段去測驗每種管理服務的函數如何使用,但最困難的地方是縱使瞭解每種管理服務的使用方法,卻仍無法將拼湊出一個完整系統架構。系統整合問題在詳細閱讀 RTI 範例程式的來龍去脈,並畫出整個範例程式的流程圖之後,得到了初步的解答。最後,本論文仿照範例程式的系統架構,重新設計出整合系統的通訊流程。

     

  3. 整合場景程式與通訊流程:

      在整合場景程式與通訊流程的過程中,最常遭遇到的困難就是 WTK 以及 RTI 兩套函示庫之間的衝突。由於 RTI 為了實現在不同硬體作業平台上都能正確無誤地傳送與顯示資料,故重新定義了許多 C++ 常用的語法,例如 cout、cin、cerr …等。因此,同時連結 WTK 及 RTI 兩種函示庫,就會因為重複定義了一些符號(Symbol)而發生錯誤。本論文最後是運用 WTK 的 C 語法搭配 RTI 的 C++ 語法,才暫時解決重複定義的問題。

圖五 系統驗證流程圖

  多人飛機的畫面如圖七所示,教官台的畫面則如圖八所示。

圖六 多人飛行模擬程式展示畫面

圖七 教官台模擬程式展示畫面

 

未來展望
本論文想要呈現的主旨在於如何從規格的制訂、系統分析與設計到落實系統設計,目前所實作之『多人飛行模擬訓練系統』功能事實上還十分陽春,但其困難點在於系統的複雜度較高,必須要有多方面的背景知識才有辦法完成,以下列舉一些未來可以改進的方向:

 

  1. 增加系統功能完整性

      目前『多人飛行模擬訓練系統』所完成的功能並沒有如原先規劃的規格完整,像在通訊架構方面,六軸控制平台原先規劃採用HLA,但後來卻改採TCP/IP;在多人飛行場景方面,目前只有做到飛機與地面、飛彈與地面的碰撞偵測,但事實上現實中還有飛機與飛機、飛機與飛彈的碰撞偵測尚未完成。此外,目前飛彈的位置並未傳送給其他飛機場景和教官台,而且當飛彈發射之後,其碰撞偵測該歸屬於誰,發生碰撞時是否還要告知其他飛機場景該飛彈已經爆炸,如此才能保持資料的一致性。因此,『多人飛行模擬訓練系統』在系統的功能方面還有很大的進步空間,基於目前完成的基礎架構,相信未來想完成這些功能就不是困難的事情。

     

  2. 深入未使用之RTI管理服務

      目前『多人飛行模擬訓練系統』只有使用到RTI六大管理服務中的四種,關於負責加速資料傳輸的資料發佈管理(DDM)及負責控制權移轉的控制權管理(OWM)這兩項RTI管理服務還可以繼續深入瞭解。未來可將DDM運用在飛機的雷達掃瞄方面,當飛機的相對位置差異太大的時候,因為不需要顯示在畫面上,便可以選擇不接收其他飛機送出的飛機姿態與飛彈姿態。至於OWM則可以運用在教官台,像是教官台可以強制要求某一部飛機放棄模擬飛行,或者飛機場景可以將飛彈的控制權移交給其他飛機來處理。

     

  3. 擴大系統安全嚴謹度

      由於『多人飛行模擬訓練系統』會搭配六軸平台進行飛行模擬訓練,故在系統安全方面必須要格外嚴謹,目前所實作的流程並沒有考慮讓到六軸平台緊急停止的機制;此外,由於網路的不即時性,對六軸平台也可能會造成控制上的困擾。因此怎麼樣擴大系統安全的嚴謹程度,以及六軸平台方面是否能夠擁有預測下一步飛機姿態,甚至偵測飛機姿態數值是否發散的能力,這些就是必須額外花時間去思考與設計的。

     

  4. 進行跨網域飛行模擬

      目前『多人飛行模擬訓練系統』只有在區域網路中進行飛行模擬,然而根據HLA的本質,應該可以經過一些設定,讓整個系統擁有跨越不同網域進行模擬的能力。此時,網路的不即時特性會更強烈地顯現出來,勢必會出現一些新的問題與研究方向。

     

  5. 檢驗HLA通訊效能

      雖然本論文的主軸是高階分散式網路架構,但並未針對HLA的通訊效能進行分析與評估,因此無法驗證高階分散式網路架構是否能夠提供更多元化的模擬訓練解決方案,亦無法驗證高階分散式網路架構是否具有比TCP/IP、UDP架構及共享記憶體架構來得優良的特點,這些驗證與比較都可以是很好的研究方向。