海浪場景

 
虛擬實境即時船舶動態模擬系統之場景與模型建立
Dynamic Modeling and Scene Creation of VR-based
Ship Simulation System
主  題
  海洋是一個變化無常的環境,有時風平浪靜、有時卻是狂風駭浪,在其上航行往往隱藏著無數的危險。所以本文將在虛擬實境的系統上,研究即時船舶動態模擬訓練系統。在此我們將適當建立周圍海浪的動態模型,並提出新的船舶動態模擬理論推導與方法,探討船舶在動態海域上航行時與海浪的各種受力情形,來模擬航行於波濤洶湧海洋的船舶其六自由度變化情形。在動態海域的模擬上,我們係根據長形波公式和細碎公式來作結合,推導其數學模型,提供給整個即時動態模擬訓練系統一個動態的環境。在船舶動態物理模型的建立上,我們根據所建立的動態海域,以流體力學的觀點來計算船舶於海洋上航行時的力和力矩。

  在系統整合部份,本文提出虛擬實境場景底層的軟體架構,使用Windows 2000作業系統所提供的Shared Memory、Socket、FILE等各種通訊介面來作為各個獨立模組的通訊管道,而我們可以增添/刪減任何的通訊介面模組來滿足對場景功能的要求,也可以降低場景主體程式所需要的修改。本文並利用TCP/IP網路連線功能來與六軸運動平台控制器作連結,採用位置控制和沖淡演算(Washout)控制兩種方式在平台上模擬船舶的六軸姿態和力的表現。另外並對網路的傳輸模組採用Real-time的設計機制,介紹整個即時機制的設計方法和流程,以及對整個即時船舶動態模擬訓練系統作分析與討論。最後將虛擬實境場景、即時動態模擬模組、六軸運動平台、力操控搖桿整合成為一完整之即時船舶動態模擬訓練系統。

  另一方面,即時動態視覺模擬操控訓練系統的相關研究在國外已累積相關的經驗與技術,近年來國內的這方面研究發展也大輻增加。而虛擬實境應用於動態模擬訓練系統上,大致均包含了「虛擬實境場景(Virtual Reality Scene)」、「動態模擬模組」與「六軸運動平台(Stewart Platform)」這三大部份,業界中應用最廣的就是航空公司的發行模擬訓練系統,但其產品仍皆以國外為主,所以價格也居高不下。本實驗室已在六軸運動平台的製作與控制上累積了相當程度的經驗與技術,也在高階繪圖工作站(SGI)上發展出陸上軍事模擬訓練系統。但在發展成本考量下,我們購入了在個人電腦上的虛擬實境場景發展工具「VTree」,希望在具備了六軸運動平台控制技術與虛擬實境場景發展工具之後,以平價的個人電腦為基本架構,自行利用發展工具開發「虛擬實境場景」以及和「動態模擬模組」、「六軸運動平台」之間的整合。

  故本文旨在開發「即時船舶動態模擬訓練系統」當中,「虛擬實境場景」與「動態模擬模組」,並藉由網路與其它多台控制運算電腦搭配,完成與六軸運動平台「位置控制器」、「Washout控制器」之整合,使該系統可勝任於「船舶動態模擬訓練系統」的相關應用。也希望在透過本論文的發表,能對這個領域有所貢獻。

說  明
動態海域模擬系統之建立

  我們將整個即時船舶操控模擬訓練系統分為虛擬實境場景視覺呈現與即時動態模擬模組兩大部份,整個模擬系統如下圖(1): 船舶操控模擬訓練系統架構圖所示。在視覺呈現上,我們利用在第二章中所介紹的VTree這套視覺模擬套件來發展模擬逼真的海上場景畫面和音效。而在即時動態模擬模組方面我們主要分為海洋動態模擬模組和船舶操控模擬模組,由虛擬實境場景端負責接收動態海域模擬系統所產生的動態海域並利用VTree繪製海浪紛紜的效果,而虛擬實境場景端除了進一步負責接收使用者透過力搖桿所發出的動態控制命令且傳送至船舶操控模擬模組之外,也把海洋動態模擬模組中船舶因為所處不規則海洋波浪所受的衝擊力、水壓力、浮力…等,傳送至船舶操控動態模擬模組即時計算各種動力和力矩。

  另一方面,我們設計的動態模擬模組,皆在個人電腦所能負荷的運算量的前提下,希望能儘量地真實模擬現實世界中的各種受力,所以我們整個虛擬實境場景中的視覺呈現與即時動態模擬模兩大部份是結合在同一部電腦上同時運算的操控模擬訓練系統,並採共享記憶體(Share Memory)的方式來作為各個模組的連結溝通方式,最後再利用網路連線與六軸運動平台作連結。所以未來如果有更逼真的動態模擬模組但卻無法在同一台電腦負載運算時,我們亦可快速地將此動態模擬模組移往另外一台電腦獨立運算,並利用網路連線來作分散式連結。


圖(1):船舶操控模擬訓練系統架構圖

  海洋是一個瞬息萬變、很複雜的水體運動現象。而在從事自然景象之電腦繪製模擬領域中,研究者通常會面臨兩大問題:其一為模擬結果的真實性,即逼真程度,其二為模擬速度的快慢。一般而言愈真實的模擬將會耗費會長的建構時間,而海面的形狀變化很大,且屬大範圍的模擬,將很難同時解決上述兩大問題,所以我們研究的目的在以不影響整個即時模擬系統速度的前提下,盡可能模擬出愈真實的動態海域。我們將以海波和湧浪作為整體海域的基本波形,提出表達這兩類海浪的數學參式,縮短建構時間,並同時依據不同之海面環境條件諸如風速、風向等,產生相對應之整體動態海域。

  根據波浪學,最基本的規則波浪系統可以下面之正弦波數學式表之:

  在此式中,係數A大小代表正弦波的大小,而係數k則在控制波長的大小,當k值愈大時波長則愈小 (L = 2π/ k ) ,參數f則在控制週期的大小,當f愈大時週期則愈小(T = 1 / f )。如圖3-3所示,我們藉著調整A、k、f三項參數來控制正弦波形,以此來產生不同的波浪曲線。

  由於上式僅能表達出二維之波浪曲線,為能推展到三維波浪曲線,我們將z軸座標加入:

  

  式中:波向參數

  因此為了模擬風吹海面引起之不規則波浪,製造出紛紜波浪的效果,可以將無數各不同振幅、不同波頻和不同相位之長形波浪重疊而成,每一成份波(component wave)均可視為一微小振幅波[3-4]。為了程式撰寫的可行性,所以我們假設海面由n個不同成份波所合成,則此n個合成波公式將推導為如下:

  

  式中()為第i個成份波的參數(由亂數產生)。


圖(2):海浪模擬圖

船舶操控之動態模型建立

  在虛擬實境的相關技術中,我們首先考慮的是如何建構物體的實體模型及如何真實地把它們顯示在螢幕上。一旦要將這些技術應用到真實世界的模擬時,還須考慮一些自然法則的模擬,所以在實用的虛擬實境系統中,勢必要加入能處理動態環境的技術。因此在上一章中完成海浪浪動態模擬後,我們將配合所模擬出的海浪動態資料,來作為我們虛擬場景中的動態環境,推導船舶在動態海域中六軸運動方程式,藉此來發展完整的動態船舶操控模擬系統。

船舶質心受力之推導

  根據文獻,因為只有通過物體質心的力才能有效對其產生加速度,因此當我們把所有作用於船舶的外力整理出來之後,接下來的工作就是求得所有通過質心的有效分力,也就是造成船舶加速位移的加速度力。根據下圖: 通過船舶質心之加速度力平面示意圖所示,我們可以推得船舶質心受到有效加速力總和為:

  若是我們再更進一步,將上述式子的表示法加以簡化,可表示為下式所示之方程式結果:

式中i代表船舶船底的第i個截面積
代表該船底截面積所受的波浪力總合
代表由質心指向該船底截面積之向量
代表方向單位向量
代表船舶所受到的引力
代表船舶引擎的力


圖(4):通過船舶質心之加速度力平面示意圖

船舶質心所受之力矩推導

  緊接著我們開始計算船舶質心所受到的轉矩,來推求其角度姿態的變化。根據下圖: 船底單一截面積所提供轉矩之平面示意圖可知,船底單一截面積受波浪力而對質心產生轉矩,其轉矩和為:

  同理如質心加速度的簡化方法,我們可將上式所有船底截面積之轉矩和表示為下式所示之方程式結果:

其中i代表船舶船底的第i個截面積
代表該船底截面積所受的波浪力總合
代表由質心指向該船底截面積之向量

圖(5):船底單一截面積所提供轉矩之平面示意圖

船舶質心之整體運動推導分析

  經過上述求得船舶的質心加速度之後,我們可以求得下列船舶模擬數據:

質心加速度
質心速度 
     
質心位置 
     
  
  
  


  所以在計算求得輸出後,我們將透過一連串的積分以求得船舶質心之速度、加速度、角速度、角加速度、位置等模擬數據。根據文獻,我們將船舶動態模擬整個積分的系統架構圖示如下。這邊由於船舶本身並非圓球體,因此角度之轉動慣量均不相同,所以我們必須把這三個方向的轉動慣量獨立出來,再經過一連串的積分才行。


圖(6):船舶動態模擬系統架構圖

系統整合

  船舶操控模擬訓練系統,除了場景畫面與動態模擬模組之間的搭配外,還必須加入網路連線功能來與六軸運動平台「位置控制器」、「Washout濾波控制器」以及力操控搖桿等外部硬體模組整合。為此我們在本章「系統整合」當中,先提出整個虛擬實境動態模擬之架構,介紹虛擬實境中所使用的各項工具及整個系統中的相互關係,然後提出通訊介面模組的觀念,透過網路來連接操控模擬訓練系統與其它外部硬體。而本章除了對虛擬實境場景的底層軟體架構、場景連線、六軸運動平台通訊及搖桿通訊介面模組加以說明之外,並提出在Windows 2000下架構Real-time系統機制的模組,使得整個虛擬實境的動態模擬場景能在精確的時間機制下進行。最後,將介紹船舶操控模擬訓練系統與這些外部模組整合起來的整個系統流程,以展示最終完整的即時動態視覺船舶操控模擬訓練系統。

場景的連線

  以前虛擬實境主要是以單機為主,隨著Internet的發展,現在最熱門的虛擬實境應用也向網路化邁進。另一方面,在虛擬實境的相關技術中,我們首先考慮的是如何建構物體的實體模型及如何真實地把它們顯示在螢幕上,一旦要將這些技術應用到真實世界的模擬時,還須考慮一些自然法則的模擬。所以虛擬實境在場景部份為了要擬真,需要更多的點數和多邊形面來模擬場景中之物體,而另一部份為了表現出真實世界中之實際物理特性,我們亦加入了動態模擬單元來計算各物體在虛擬世界中之受力情況,也因為如此造成計算時間的大量消耗和硬體的龐大需求。因此在本論文中將虛擬實境場景和控制部份分開成分散式平行處理系統,以網路來作為溝通的介面。我們虛擬實境場景的連線方式,除了考慮到IBM Compatible PC及Windows作業系統是否有支援以外,還必須考慮到連接的模組、控制電腦及其作業系統是否也有提供。在多方考慮之下,我們選擇採用RS-232與TCP/IP網路傳輸協定作為虛擬場景和與各個模組之間的底層資料傳輸協定。

六軸運動平台通訊介面模組

  六軸運動平台通訊介面模組主要分為位置控制通訊介面模組和Washout通訊介面模組。一般來講我們將虛擬場景中之船舶六軸姿態直接傳遞給平台控制端,經逆向運動學轉換為六軸腳長之伸縮量,即是所謂的位置控制通訊介面模組,並利用視覺效果及移動可動平台,讓駕駛員感受到相當程度的直線和旋轉的速度和加速度,以達到航行模擬的效果。我們對Stewart平台運動軌跡的描述是採用 Cartesian Space 表示即輸入Stewart平台的位置姿態(x、y、z、α、β、γ),經由逆向運動學的轉換得各個致動器所對應的長度,再透過控制器來控制各個致動器的長度,即我們實際是在 Joint Space 下做油壓致動器的控制。

力操控搖桿介面模組之設計流程

  與操控模擬訓練系統搭配的力操控搖桿硬體模組,其控制器是由交大電控系「人與機器實驗室」所提供。該控制模組為Microsoft公司出品的SideWinder力操控搖桿。操控者透過力操控搖桿與虛擬實境作互動,其有如操控者的舵盤,透過RS232或Game Port傳輸界面將搖桿的動作傳送至虛擬場景動態模型。經由力操控搖桿與VTree這套虛擬實境場景開發套件的連接,我們可以即時獲得操控者所輸入的搖桿位置座標,換算成動態模型中船舶引擎的輸出,藉此操控船舶來與我們的即時船舶模擬訓練系統作互動。

Real-Time系統之設計與分析

  在一般的虛擬實境的應用堙A維持一個穩定且快速的更新頻率( Refresh rate) 是絕對必需的,否則不僅會使得整體運作的效能降低,還會造成使用者身體上的不適,導致許多和虛擬環境之間互動的困難。所以我們必須作一有效的時間控制,使得整個動態模擬系統中的各項運算資源都能合理分配給各項的系統單元。由此可知,一個實用的虛擬實境系統除了在視覺上的顯示須要快速穩定的更新頻率外,在我們系統與各通訊模組間的連線通訊上也須要維持一穩定適當的溝通傳輸速率,尤以場景與六軸運動平台間的傳輸連線最為重要。

  所以系統必須要具備運算時間預測和排程各項運算等特性才能作有效的時間控制,也才能達到即時、互動的需求。但一般而言,要得到完全準確的運算時間預測是不可能的,原因是我們並無法得知系統中的一個程式或程序何時終結,而在Windows 2000的作業系統之下,時間的計算是靠CPU來處理,然而分享CPU cycles不固定,更無法獲得真正的時間。此外,進行運算時間預測所花費的時間必須比真正花在運算的時間要來的短,如此才有剩餘的時間來進行運算,而在給定的時間內,各項的運算必須要透過排程控制器來作協調,故我們將設計透過外界傳送進來的Clock來當作業系統的時間訊息,細部的原理和設計方法將以下圖(7)來作簡介說明。


圖(7):Real-time系統設計架構示意圖

船舶動態模擬之整體系統流程

  最後,我們將提出整個船舶動態模擬系統整合之流程。前面章節的介紹我們已經介紹船舶動態模擬系統中各個模組所扮演的角色和實現的方法,,我們整個動態模擬系統中是以一部以 Windows 2000為作業系統的IBM Compatible PC為基礎,利用VTree這套視覺模擬軟體發展套件來發展高畫質的虛擬海上場景,並發展即時動態模擬模組來模擬海面的波浪變化情形,且同時推導海浪和船舶間的即時互動模組來模擬海上行駛的受力情況。而除了視覺效果外,整個模擬系統架構將如下圖(8): 舶動態模擬系統整合流程圖所示,虛擬場景本身即時地與海洋動態模擬模組和船舶動態操控模型模組作連接,並將海洋場景畫面顯示出來,另一方面我們所發展的動態模擬系統透過Game port與力操控搖桿、和TCP/IP網路傳輸介面來與六軸運動平台控制器作通訊整合達成所謂的「互動式虛擬場景」,我們並設計利用RS232來傳送外部所送至場景的clock以發展即時分散式船舶動態模擬系統。


圖(8):整個船舶動態模擬系統整合流程圖

結論與展望
  在本論文中我們已完成即時船舶動態模擬訓練系統中的虛擬實境場景的地形、物件之編輯。在動態海域模擬,我們提出以長形波公式和細碎公式作為結合的海浪數學模擬式,作為我們能即時模擬動態海域的推導方法。在船舶動態模擬方面我們所提出的動態模擬理論及方法,藉由動態海域的加入,也已經成功地搭配海浪場景成為船舶操控模擬訓練系統的一部份,讓使用者感受到航行於海洋中的六自由度變化情形。而場景底層的各種通訊介面模組也可以不經過修改,如網路連線模組、動態模擬計算模組、Real-time機制模組、Washout通訊模組…等,都可以直接使用於其它在視窗環境下所開發的場景,大幅增加我們訓練系統的可移植性。

  在未來的工作上,本文提出下列項目以供參考:

  1、 圖形效果方面,虛擬實境場景在地形、物件的細緻度以及不同天候狀況的模擬效果上,仍須要藉由更多的3D繪圖技巧來達成。

  2、 在動態海域的模擬上,我們以整個即時系統的速率為優先考量下而犧牲了更逼真海浪模擬品質,唯在現今兩者不可兼得的情況下,仍需藉由3D圖學的研究和動態數學式的簡化來取得兩方面最好的平衡點。另一方面,真實海面波動情形的實際數據十分缺乏,定量上的比較尚有待今後進一步的探討。

  3、 舶動態操控模擬方面,動態模擬模組當中除了考慮動態海域的影響外,仍需考慮自然界其它外力更深一層的影響,如下雨、暗礁、洋流、魚群、海底地震…等不同的外在因素,另外在即時訓練系統的前提,應再考慮更複雜的流體力學和各自由度非線性耦合受力情形。

  4、 於我們船舶動態模擬模型的建立是先以因應娛樂性價值的前提上所做的研究在船底的假設方面,所以我們是以平底船作為推導物理模型推導的模型,之後應在更深考慮船底的各種型式,以因應現實生活中不同的真實模型,作為更有價值的船舶駕駛訓練用途。

  5、 整合系統中的即時機制實現方法中,是以DOS端的個人電腦來產生時脈,而在以後實作上可以直接利用硬體方式來做出一個震盪器,如此不但可以更降低即時機制的誤差,可以降低整個系統的成本。

  若能完成上述這些項目,就能讓動態模擬更為精密、即時動態視覺更為真實,成為更為精確之即時船舶動態模擬訓練系統。