列車駕駛模擬器是培訓軌道交通列車司機的先進工具,具有訓練過程安全、訓練費用小、不影響正常行車、故障及操作訓練可重復等優點。通過列車駕駛模擬器進行司機培訓,可大大縮短司機的培訓周期,在降低培訓成本的同時培養高水準的司機。視景仿真系統是列車駕駛模擬器的重要組成部分,為受訓司機提供有身臨其境的虛擬環境與速度感。
客室監控視景仿真系統作為列車駕駛模擬器視景仿真系統的重要組成部分,模擬地鐵列車客室車廂內部視頻監視器的顯示內容,拓展了列車駕駛模擬器視景系統的功能范圍,在訓練司機處理突發事件能力和培養優良服務意識方面具有重要意義。
本系統作為列車駕駛模擬器視景仿真系統的一部分,包括以下功能:網絡通訊;受網絡信息控制的畫面全屏/分屏顯示;攝像機鏡頭畫面固定/輪循;正常開、關門過程模擬;乘客上下車突發事件(示意性火災、擁擠、緊急按鈕觸發、攝像頭故障、車門故障等)表現。
客室監控視景仿真系統通過網絡通訊接收主控系統命令,處理網絡實時數據包括車站信息,門信息,事件消息等,并可與模擬器的站臺視景仿真系統相聯系。根據本系統中單位通信時間內的數據流量較小、通信頻率高的特點,采用了TCP/ IP 協議中的用戶數據報協議(UDP 協議) 作為網絡通信協議,并在發送的報文頭中加入校驗位,保證數據傳輸的可靠性。經過實際測試,通信延遲指標完全可以滿足列車駕駛視景仿真的實時性要求。
畫面的全屏、分屏功能幫助司機更好地了解車廂狀況。每節車廂設有前后兩個攝像頭,可以通過觸摸屏點擊方式實現某節車廂某個攝像頭畫面的全屏化。
攝像機鏡頭畫面固定/輪循功能實現全屏、分屏時的車廂攝像頭畫面定時切換,達到在分屏數目有限的前提下更好地實現監控每節車廂的目的。
接收主控門信息后,可實現列車門、站臺屏蔽門的個別或者全部的開啟、關閉動作模擬。接收夾人信息后,實現車門夾人現象的模擬。
乘客上下車突發事件(示意性火災,擁擠)模擬乘客上下車的行為以及人群在面對突發事件(如火災)時慌亂現象、擁擠情況下乘客的尋路過程。
1、系統結構
本系統采用OpenGL Performer軟件系統進行開發。OpenGL Performer是SGI公司開發的一個可擴展的高性能實時三維視景開發軟件包,構建于工業標準OpenGL圖形庫基礎上。本系統使用的地鐵車站和車廂的模型采用業界流行的OpenFlight格式,。利用Visual C++ MFC建立應用程序框架,調用OpenGL Performer API,并使用OpenGL進行底層開發實現相應的模塊功能。
系統仿真程序包括: 圖形系統初始化、三維場景模型的載入與管理、視景生成的主循環體3個主要部分。在圖形系統初始化中完成建立和初始化圖形相關的資源。初始化工作完成后,視景仿真程序將所需的三維場景模型從文件中載入內存。
同時根據站臺描述文件、模型文件將相應的站臺、人物模型以及其它相關模型調入內存,并依據文件中提供的參數將這些模型加入到場景中去[1]。在主循環體中,視景仿真程序根據從通信系統接收的列車運行參數以及其它參數,完成對當前場景狀態的更新以及事件的調用,并返回每車載荷信息(乘客數量)與突發事件報警車廂編碼。其流程如圖2所示。
圖1. 客室監控系統結構圖
2、場景模型結構與簡化
場景模型一般用層次建模法(樹形結構)思想進行建模,將同一屬性的模型放在同一節點下進行統一管理。這種以空間位置關系為基礎的層次建模,方便場景管理,也便于Performer API函數對模型的實時控制。
三維模型的復雜程度直接決定了三維視景所要消耗的渲染時間,直接影響視景仿真系統畫面顯示的實時性。使用多層次細節(LOD)技術優化法,對模型中的每個物體分別構造若干個不同細致等級的模型描述,根據景物距視點的距離,調用不同細節層次的模型。
本文中車廂內部設備以及站臺模型均采用了上述LOD思想。靠近視點的模型使用精細模型,遠離視點的模型使用簡化模型或者使用面片貼圖代替。通過場景模型簡化,減少了三維視景所要消耗的渲染時間,提高了圖像的顯示速度。
3、人物模型與簡化
乘客模型采用采用MS3D(MilkShape3D)來構建。建立一個與MS3D文件格式相對應的模型數據結構,將MS3D的數據保存到該結構中。MS3D數據結構中定義了文件頭、頂點信息、三角形信息、材質信息、關節連接信息、關鍵幀數據等。
系統使用三種精細程度模型,如圖3所示。左邊是最簡模型(300面片),中間普通模型(500面片),右邊是精細模型(800面片)。根據人距離攝像頭的距離調用不同層次精細度的模型。這樣既滿足了視景的實時性和真實感,又減少了系統渲染的負擔,可以達到令人滿意的效果。
圖2. milkshape模型對比
1、界面圖形拾取
圖形拾取就是從紛繁的圖形中選取所需圖形的過程,它是交互式圖形系統的重要功能之一。某一圖形被拾取后,其直觀現象是該圖形的顏色發生改變(也有用閃爍或增亮的方法來表示圖形被拾取),其實際意義是要在存儲用戶圖形的數據結構中找到存放該圖形的幾何參數及其屬性的地址,以便對該圖形作進一步的操作。
在屏幕顯示區的下方和右側各有一條工具欄(參見圖5)。下方工具欄可供受訓司機選擇車廂攝像頭號,對應顯示該攝像頭的監視情景。發生突發事件后,圖標變為紅色。右側工具欄可供受訓司機以全屏/分屏模式、查看/輪訓模式,實時查看列車每節車廂內部的情況,還有列車編組和關機選項。
使用圖形拾取技術,響應工具欄的操作。顯示區默認狀態為四分屏,由多通道顯示技術實現。4個通道上方均有信息顯示欄,顯示攝像頭的名稱,是否選中,狀態(查看或輪循)等信息。
2、人群行為
智能體從模擬個人的行為出發,以擬人化方法描述、解釋、預測一個復雜系統的行為,可以有效仿真群體的行為形態。單個的智能主體被視為在某一環境下具有自主性、交互性、合作性、反映能力和預動能力的實體。
在本系統里面,一個智能主體設定為一個單獨的對象,代表了在站臺、車廂環境中一個行人的角色。具體實現時,行人智能體將根據路網情況以及自己的出發地點和目的地計算出一條最短路線。
疏散路徑選擇:個體在逃生時的行為總是采用“感知-決策-行動”過程。在真實環境中,個體選擇疏散路徑總是通過視覺判斷。如出口到個體之間無障礙物,就直線行駛;如有障礙物,就判斷障礙物的位置,然后以最短路徑行駛到障礙物邊緣[3]。
個體在運動時會出現多個人爭搶同一位置和速度快的個體超越速度慢的個體的現象。出現同一時間步爭搶現象時,只能夠留下一個人,其余的停止等待,具有預測碰撞并及早采取繞行和超越措施。每個個體可以感知多個出口,并根據個體的慌張程度和出口的擁擠度來選擇出口。慌張程度高時,選擇靠近的出口,慌張程度低時,選擇出口擁擠度低的出口。
圖3. 乘客行為規則
3、突發事件
客室監控視景仿真系統可模擬八種典型突發事件,包括:火災,煙霧,乘客按下緊急按鈕,乘客解鎖車門,攝像頭故障,供電系統故障(顯示屏黑屏),一個或多個車門故障無法開啟,一個或多個車門故障無法關閉,車門夾人。系統實時接收網絡信息,根據突發事件ID號,判斷事件類型并觸發事件。
客室監控系統運行的硬件平臺:DELL T5400工作站,2GB RAM,圖形卡為NVIDIA Quadro FX4600。軟件平臺:Windows XP,Visual C++ 6.0,OpenGL Performer。
使用北京地鐵2號線站臺、列車車廂模型,以1280 pixels×1024 pixels 的屏幕分辨率輸出視景,仿真客流量0~600人,幀速率穩定在25幀/秒,視景圖像輸出流暢,能夠依據系統需要對圖像進行實時控制,滿足系統要求。圖5為乘客(紅框內)按下緊急按鈕輸出圖像;圖6為火災發生,乘客逃生的輸出圖像。
本文研究了分布式列車駕駛模擬器客室監控視景仿真系統。使用基于TCP/ IP 協議中的用戶數據報協議(UDP 協議) 作為網絡通信協議,對站臺場景和人物模型做了一系列的優化,設計了方便培訓司機操作的友好人機交互界面,對人群行為做了深入研究,實現了預定的設計目標,系統已經在北京地鐵2號線列車駕駛模擬器中得到應用,達到了訓練司機處理突發事件能力的預期效果。
下一步的研究目標:進一步定位人物繪制對CPU的占用率,增加可仿真的乘客人數,優化路徑和避碰算法;模擬更多的突發事件、擴充事件庫,為更好地訓練司機處理突發事件的能力提供有效手段。
圖4. 乘客(紅框內)按下緊急按鈕突發事件
圖5. 火災突發事件
(摘編自《電氣技術》,原文標題為“列車駕駛模擬器客室監控視景仿真系統的實現”,作者為胡峰、朱金陵等。)