王 欣,方 東
(蚌埠汽車(chē)士官學(xué)校司訓(xùn)勤務(wù)系,安徽蚌埠233011)
當(dāng)前,針對(duì)汽車(chē)駕駛員訓(xùn)練的虛擬仿真系統(tǒng)已廣泛應(yīng)用于軍內(nèi)外汽車(chē)駕駛員培養(yǎng)工作中,利用虛擬仿真技術(shù)提高訓(xùn)練效益已經(jīng)得到了廣泛的應(yīng)用,相關(guān)研究成果豐碩。朱忠祥等[1]對(duì)于將Direct3D技術(shù)在汽車(chē)駕駛視景仿真系統(tǒng)中的應(yīng)用進(jìn)行了探索,陳?。?]、劉宏[3]利用 Vega Prime 軟件工具對(duì)三維汽車(chē)駕駛視景系統(tǒng)進(jìn)行了開(kāi)發(fā),張俊友等[4]利用虛擬現(xiàn)實(shí)技術(shù)設(shè)計(jì)了一種汽車(chē)駕駛模擬訓(xùn)練系統(tǒng),吳初娜等[5]利用OSG圖像渲染技術(shù)提高了視景仿真系統(tǒng)的仿真度,劉天祥等[6]對(duì)汽車(chē)駕駛模擬訓(xùn)練中的問(wèn)題進(jìn)行了深入研究,提出了相應(yīng)的對(duì)策建議。然而,目前國(guó)內(nèi)針對(duì)汽車(chē)駕駛訓(xùn)練工作所使用的虛擬仿真系統(tǒng)多是針對(duì)駕駛員技能形成而言的,對(duì)于汽車(chē)駕駛教練員能力素質(zhì)培養(yǎng)的虛擬仿真訓(xùn)練系統(tǒng)仍然處于空白狀態(tài)。本文基于虛擬仿真技術(shù)提出了一種基于功能更強(qiáng)大的Unity3D軟件的汽車(chē)駕駛教練虛擬仿真系統(tǒng)的設(shè)計(jì),用于規(guī)范汽車(chē)駕駛教練員的教練過(guò)程,訓(xùn)煉教練員處置突發(fā)情況的能力。
本系統(tǒng)由硬件和軟件兩部分構(gòu)成(如圖1所示)。硬件模塊為駕駛教練輸入設(shè)備和顯示設(shè)備,與以往的駕駛模擬器相比,本系統(tǒng)在原有駕駛輸入設(shè)備的基礎(chǔ)上添加了輔助副制動(dòng)踏板,用以模擬真實(shí)教練車(chē)輛的駕駛室,因此在進(jìn)行道路課目教練仿真時(shí)需要兩名用戶(hù)共同使用,一人模擬駕駛學(xué)員(以下簡(jiǎn)稱(chēng)學(xué)員)操作車(chē)輛,另一人模擬教練員。軟件部分為視景仿真模塊,為本系統(tǒng)的核心,包括以下6個(gè)部分。
圖1 系統(tǒng)總體設(shè)計(jì)
(1)三維模型庫(kù)。包含涉及汽車(chē)駕駛教練的多種教練車(chē)型,用戶(hù)可根據(jù)需要進(jìn)行選擇。
(2)視覺(jué)設(shè)計(jì)模塊。包含兩部分:一是駕駛室視角,其中包括左右后視鏡視角;二是外部視角,用戶(hù)觀察位置位于駕駛室上方,由后向前觀察車(chē)輛,或是在場(chǎng)地課目教練中,以外部視角的形式進(jìn)行場(chǎng)地漫游。
(3)物理系統(tǒng)模塊。主要包括車(chē)輛模型物理系統(tǒng)設(shè)計(jì)和其他模型物理系統(tǒng)設(shè)計(jì),仿真出與真實(shí)世界一致的物理特性。
(4)文本、音視頻模塊。文本部分主要用于文本顯示與輸入,音視頻模塊主要配合場(chǎng)景運(yùn)行中發(fā)生的“事件”展示效果。
(5)粒子系統(tǒng)設(shè)計(jì)。用于展示雨、雪、霧等天氣效果。
(6)場(chǎng)景生成模塊。將上述各個(gè)部分集成到場(chǎng)景中,控制場(chǎng)景的選擇、運(yùn)行、重置和退出等操作。
(1)用戶(hù)界面良好。用戶(hù)登錄后可自行選擇課目,對(duì)場(chǎng)地、人員、車(chē)輛和教練器材進(jìn)行貼近真實(shí)的準(zhǔn)確建模,支持場(chǎng)地的第一視角漫游功能,支持多視角切換和觀看。
(2)物理系統(tǒng)建模準(zhǔn)確真實(shí)。能夠建立類(lèi)似真實(shí)車(chē)輛的動(dòng)力系統(tǒng),能夠產(chǎn)生與真實(shí)世界一致的碰撞、形變等效果,可對(duì)場(chǎng)景中的車(chē)輛模型進(jìn)行類(lèi)似真實(shí)車(chē)輛駕駛的操作,能夠展示不當(dāng)操作帶來(lái)的后果,例如倒車(chē)移位時(shí)的碰桿效果等。
(3)實(shí)現(xiàn)汽車(chē)駕駛教練中場(chǎng)地課目的操作演示和教練過(guò)程的模擬仿真。能夠全景多角度展示場(chǎng)地課目教練過(guò)程、具體課目教練方法與內(nèi)容。
(2)課題種類(lèi)繁多,涉及的學(xué)科領(lǐng)域廣闊,管理部門(mén)不能了解所有的科研項(xiàng)目,這就需要科研人員和科研管理部門(mén)加強(qiáng)溝通,協(xié)調(diào)好科研事項(xiàng),完善預(yù)算評(píng)審機(jī)制。
(4)針對(duì)道路課目設(shè)計(jì)一般道路駕駛的交通環(huán)境,包含交通信號(hào)燈、會(huì)車(chē)、超車(chē)、讓車(chē)等情況,能夠隨機(jī)實(shí)時(shí)仿真可能出現(xiàn)的交通情況。
(5)可實(shí)現(xiàn)軟、硬件部分的良好交互。通過(guò)使用駕駛教練輸入設(shè)備能夠流暢地操作車(chē)輛模型,進(jìn)行實(shí)時(shí)清晰顯示,在道路課目中可實(shí)時(shí)攝錄用戶(hù)操作并進(jìn)行場(chǎng)景錄屏與回放。
(6)能夠?qū)Ψ抡孢^(guò)程實(shí)現(xiàn)有效的管理和控制??梢愿鶕?jù)需要進(jìn)行場(chǎng)景調(diào)用、重置、回放等操作,確保實(shí)現(xiàn)仿真過(guò)程的靈活性和可控性。
硬件部分包括駕駛教練輸入設(shè)備和顯示設(shè)備。顯示設(shè)備為投影儀、投影幕和筆記本電腦顯示屏,筆記本電腦生成場(chǎng)景并實(shí)時(shí)傳遞到計(jì)算機(jī)屏幕和投影幕上,完成顯示輸出。駕駛教練輸入設(shè)備分為駕駛輸入設(shè)備和副制動(dòng)踏板。駕駛輸入設(shè)備采用羅技G27模擬輸入設(shè)備,主要分為方向盤(pán)模塊、變速桿模塊和腳踏板模塊:變速桿模塊和腳踏板模塊通過(guò)RS232接口與方向盤(pán)模塊連接集成,電源從方向盤(pán)獲取;方向盤(pán)與計(jì)算機(jī)之間通過(guò)USB接口連接,方向盤(pán)帶力反饋功能,能夠?qū)?chǎng)景中車(chē)輛模型的顛簸等效果通過(guò)機(jī)電信號(hào)轉(zhuǎn)換反饋給方向盤(pán)。該設(shè)備簡(jiǎn)單輕便,其方向盤(pán)部件、變速桿部件均帶有卡槽,可固定在任意的桌子上,配合兩把普通座椅即可完成模擬駕駛室構(gòu)建。副制動(dòng)踏板為定制的USB腳踏板,由腳踏板、彈簧桿和防滑底座組成,通過(guò)USB接口與計(jì)算機(jī)相連。系統(tǒng)的教練輸入設(shè)備不需要額外的支架或座艙,可根據(jù)需要拆卸組裝,整體結(jié)構(gòu)如圖2所示。
圖2 硬件部分結(jié)構(gòu)
場(chǎng)景生成模塊主要完成場(chǎng)景的生成、運(yùn)行和控制。文本、音視頻模塊,粒子系統(tǒng)模塊實(shí)現(xiàn)在道路課目場(chǎng)景中利用代碼進(jìn)行場(chǎng)景錄屏,通過(guò)筆記本電腦上的攝像頭攝錄模擬教練員對(duì)于學(xué)員方向盤(pán)的干預(yù)動(dòng)作。用戶(hù)踏下副制動(dòng)踏板時(shí),在場(chǎng)景中出現(xiàn)提示,并實(shí)時(shí)顯示副制動(dòng)踏板的使用次數(shù),硬件系統(tǒng)的按鍵定義見(jiàn)文獻(xiàn)[7]。
2.2.1 三維模型庫(kù)
本系統(tǒng)中的三維模型在3DMAX下進(jìn)行創(chuàng)建、渲染,包括三維模型的形態(tài)結(jié)構(gòu)、表面紋理、材質(zhì)、顏色、透明度和三維模型的坐標(biāo)系等,需將其轉(zhuǎn)換為FBX模型格式導(dǎo)入U(xiǎn)nity3D,通過(guò)該軟件的屬性面板設(shè)置模型的位置、角度和大小。
2.2.2 視覺(jué)設(shè)計(jì)模塊
對(duì)于駕駛室視角,涉及Unity3D場(chǎng)景中多個(gè)Camera畫(huà)面共存的問(wèn)題,其解決方法是利用其屬性中的深度選項(xiàng)(Depth)的數(shù)值和Camera的畫(huà)面大小位置選項(xiàng)來(lái)實(shí)現(xiàn)。不同Camera中的Depth數(shù)值較高的Camera畫(huà)面優(yōu)先顯示,在車(chē)輛模型的相應(yīng)位置綁定Camera。例如在駕駛位置放置一個(gè)Camera(其名稱(chēng)為MCamera),在左右后視鏡位置各綁定一個(gè)Camera將其作為MCamera的子對(duì)象,設(shè)置左右后視鏡處的Camera上的Depth值高于MCamera,并合理設(shè)置畫(huà)面大小,即可完成駕駛室視角設(shè)計(jì)(如圖3所示)。
圖3 視角、車(chē)輛物理系統(tǒng)設(shè)計(jì)
外部視角的實(shí)現(xiàn)方法是導(dǎo)入U(xiǎn)nity3D中自帶的Camera(其名稱(chēng)為Camera3),合理設(shè)置其位置角度,將其附加為車(chē)輛模型的子對(duì)象即可。外部視角的漫游功能設(shè)計(jì)方法為在導(dǎo)入的Camera(其名稱(chēng)為Camera1)上綁定代碼,即可通過(guò)鍵盤(pán)鼠標(biāo)進(jìn)行控制??衫肬nity3D自帶的GUI功能生成界面按鈕(Gui Button),通過(guò)代碼控制相應(yīng)的Button進(jìn)行視角切換。
2.2.3 物理系統(tǒng)模塊
物理系統(tǒng)模塊包括車(chē)輛物理模型和其他對(duì)象的物理特性。Unity3D提供的物理引擎以剛體力學(xué)為基礎(chǔ),包含盒裝碰撞體、膠囊碰撞體、網(wǎng)格碰撞體等多種碰撞體并具備碰撞檢測(cè)功能[7]。用戶(hù)可以將其直接添加給仿真對(duì)象,結(jié)合代碼對(duì)其屬性面板進(jìn)行參數(shù)設(shè)置,完成仿真對(duì)象物理特性設(shè)置。
(1)車(chē)輛物理模型設(shè)置。車(chē)輛物理模型設(shè)置是物理系統(tǒng)建模的重點(diǎn),一般情況下可將車(chē)輛在道路環(huán)境下的行駛簡(jiǎn)化為多剛體(Rigidbody)運(yùn)動(dòng),其物理模型主要分為兩部分車(chē)體、懸架和車(chē)輪,車(chē)輪與車(chē)體通過(guò)旋轉(zhuǎn)鉸鏈相連,這樣懸架可以簡(jiǎn)化為阻尼和彈簧,車(chē)輪相對(duì)于車(chē)體的運(yùn)動(dòng)只包括圍繞車(chē)輪中心的旋轉(zhuǎn)和相對(duì)于車(chē)體的垂直運(yùn)動(dòng)。
a.車(chē)體物理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)。通過(guò)受力分析,在Unity3D中為使車(chē)體表面能夠較為精確地展示其物理特性,一般添加網(wǎng)格碰撞體,同時(shí)添加剛體屬性并選擇使用重力,根據(jù)不同車(chē)型設(shè)置其質(zhì)量大小。
b.車(chē)輪物理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)。Unity3D中提供車(chē)輪碰撞體(WheelCollider)來(lái)模擬車(chē)輛動(dòng)力特性,車(chē)輪物理特性設(shè)置步驟為:
首先,為車(chē)輪模型分別添加WheelCollider,調(diào)整WheelCollider的中心使其與車(chē)輪中心重合,在WheelCollider屬性面板中合理設(shè)置其半徑使其與車(chē)輪邊緣相吻合,并設(shè)置車(chē)輪質(zhì)量;
其次,根據(jù)仿真車(chē)輛類(lèi)型確定其驅(qū)動(dòng)輪和轉(zhuǎn)向輪,結(jié)合實(shí)際車(chē)輛參數(shù)在驅(qū)動(dòng)輪模型中利用代碼設(shè)置車(chē)輪動(dòng)力參數(shù)(WheelCollider.Motor-Torque),在轉(zhuǎn)向輪模型中選擇轉(zhuǎn)向角參數(shù)(Wheel-Collider.SteerAngle),利用代碼進(jìn)行設(shè)置,同時(shí)需要編寫(xiě)代碼設(shè)置車(chē)輪的最大和最小轉(zhuǎn)向角、最大功率轉(zhuǎn)速、懸掛彈簧、阻尼器等參數(shù);
再次,在仿真中為確保車(chē)輪始終處于地面之上轉(zhuǎn)動(dòng),隨地面起伏運(yùn)動(dòng),需要實(shí)時(shí)計(jì)算車(chē)輪位置,其方法是從WheelCollider中心實(shí)時(shí)向地面發(fā)射一條射線,調(diào)用Physics.Raycast來(lái)獲取一個(gè)射線與地面的碰撞點(diǎn),從而實(shí)時(shí)調(diào)整車(chē)輪位置;
最后,可根據(jù)WheelCollider中的前向摩擦力(Forward Friction)和側(cè)向摩擦力(Sideways Friction)參數(shù),來(lái)模擬不同路面的駕駛效果。
c.車(chē)輛重心設(shè)置。在仿真中,車(chē)輛重心位置的設(shè)置方法是:先運(yùn)行場(chǎng)景,利用Unity3D自帶的物理引擎計(jì)算出車(chē)輛模型的重心坐標(biāo),然后修改XYZ坐標(biāo)中的Y坐標(biāo)值即可。一般Y坐標(biāo)值越小,車(chē)輛重心越低,其穩(wěn)定性越高。
(2)其他物體物理特性。其他物體物理特性利用Unity3D自帶的碰撞體和剛體屬性進(jìn)行設(shè)置。以倒車(chē)移位課目中的撞桿為例,導(dǎo)入設(shè)置好位置與大小的模型后,添加貼圖和網(wǎng)格碰撞體,同時(shí)添加剛體屬性,選擇使用重力并設(shè)置好質(zhì)量。仿真中當(dāng)車(chē)輛模型與其發(fā)生碰撞時(shí),場(chǎng)景中豎立在地面上的樁桿會(huì)“真實(shí)的”向一側(cè)傾倒。
(3)其他車(chē)輛駕駛行為設(shè)計(jì)。在道路課目中,設(shè)置了會(huì)車(chē)、超車(chē)、讓車(chē)等交通情況,要求其他車(chē)輛模型具備自主智能自主行駛行為的AI(Automate Intelligence)設(shè)計(jì),主要包括自動(dòng)避讓、沿預(yù)定路線行駛、交通信號(hào)燈設(shè)置3個(gè)方面內(nèi)容。
a.自動(dòng)避讓。在車(chē)輛模型周?chē)砑雍信鲎搀w和網(wǎng)格碰撞體(統(tǒng)稱(chēng)為AIcollider),忽略AIcollider的碰撞效果,設(shè)置好閾值,通過(guò)AIcollider的檢測(cè)功能計(jì)算與其接觸的其他剛體或碰撞體距離車(chē)輛模型的位置,如超過(guò)設(shè)定閾值,車(chē)輛模型會(huì)根據(jù)代碼自動(dòng)做出減速、剎車(chē)和向左右車(chē)道變道等行為。
b.沿預(yù)定路線行駛。利用Unity3D自帶的導(dǎo)航組件(Navigation)在場(chǎng)景中設(shè)置其行駛軌跡參考點(diǎn),將其連成線即可,在轉(zhuǎn)彎處需設(shè)置盒碰撞體,編寫(xiě)代碼忽略該碰撞體與車(chē)輛模型的碰撞,當(dāng)車(chē)輛模型進(jìn)入該碰撞體,通過(guò)代碼的設(shè)定進(jìn)行自動(dòng)減速,場(chǎng)地課目中自主運(yùn)行部分按照此步驟設(shè)置車(chē)輛自動(dòng)運(yùn)行軌跡。
c.交通信號(hào)燈設(shè)置。在道路課目場(chǎng)景中,首先利用狀態(tài)機(jī)設(shè)置紅綠燈的顯示與切換,然后為模型添加盒碰撞體(命名為L(zhǎng)ightCollider),忽略其碰撞屬性,當(dāng)車(chē)輛模型的AIcollider與LightCollider接觸時(shí),判斷信號(hào)燈狀態(tài),如為紅燈則車(chē)輛停止行駛。
本系統(tǒng)的工作使用流程如圖4所示,具體步驟如下。
圖4 系統(tǒng)工作流程
(1)用戶(hù)登錄,進(jìn)行課目選擇。主要分為道路課目和場(chǎng)地課目,其生成場(chǎng)景如圖5所示。
(2)選擇場(chǎng)地課目。只需一名用戶(hù)即可,每一課目包含該課目的自主運(yùn)行場(chǎng)景、技能操作場(chǎng)景和教練演示場(chǎng)景,按照熟悉操作要領(lǐng)、自主體驗(yàn)思考到教練演示過(guò)程進(jìn)行使用,使用戶(hù)實(shí)現(xiàn)由技能回顧鞏固到技能教授的初步轉(zhuǎn)變。
第一,自主運(yùn)行場(chǎng)景向用戶(hù)展示課目的操作完成過(guò)程,理解具體課目如何完成,有哪些要求;
第二,技能操作場(chǎng)景讓用戶(hù)駕駛模擬車(chē)輛模型,思考如何進(jìn)行教練,例如選擇選位停車(chē)點(diǎn),輸入講解內(nèi)容及需要引導(dǎo)學(xué)員觀察的參考點(diǎn)等,系統(tǒng)進(jìn)行位置和文本記錄;
圖5 系統(tǒng)生成場(chǎng)景
第三,教練演示場(chǎng)景用于規(guī)范教練程序和內(nèi)容,例如具體課目中,展示具體教練程序、停車(chē)講解點(diǎn)位、講解內(nèi)容引導(dǎo)學(xué)員觀察的參考點(diǎn)和注意事項(xiàng)等,通過(guò)文本配合音頻解說(shuō)展現(xiàn)給用戶(hù),用戶(hù)輸入進(jìn)行對(duì)比,使其形成初步的直觀印象,從而規(guī)范程序方法。
(3)選擇道路課目。需要兩名用戶(hù)配合,訓(xùn)練教練員交通情況處置能力。例如對(duì)學(xué)員方向盤(pán)的干預(yù)以及副制動(dòng)的使用,首先需要通過(guò)軟件演示,規(guī)范教練員對(duì)學(xué)員方向盤(pán)的干預(yù)動(dòng)作與方法,然后運(yùn)行場(chǎng)景實(shí)時(shí)錄像和場(chǎng)景的回放,檢驗(yàn)教練員對(duì)學(xué)員駕駛行為干預(yù)時(shí)機(jī)的判斷和干預(yù)效果的有效性,可由組訓(xùn)者進(jìn)行實(shí)時(shí)點(diǎn)評(píng)和動(dòng)作糾正。
本系統(tǒng)利用Unity3D軟件建立貼近駕駛教練實(shí)際工作的虛擬仿真教練環(huán)境,與傳統(tǒng)的用于駕駛員培訓(xùn)的駕駛模擬器相比:從外形上看,在以往駕駛模擬器的基礎(chǔ)上添加了模擬副制動(dòng)踏板,更加貼近教練車(chē)輛駕駛的實(shí)際;構(gòu)成簡(jiǎn)單,拆卸安裝方便體現(xiàn)了簡(jiǎn)便性;通過(guò)對(duì)教練過(guò)程進(jìn)行全面展示,可以規(guī)范教練員具體課目的教練程序,還可有效鍛煉教練員處置突發(fā)情況確保訓(xùn)練安全的能力,從而有效克服場(chǎng)地、人員、車(chē)輛和安全性等方面因素的限制,對(duì)于教練員教學(xué)能力和交通情況的處置能力的形成具有重要的意義。
[1] 朱忠祥,宋正河,毛恩榮.Direct3D在開(kāi)發(fā)汽車(chē)駕駛訓(xùn)練模擬器視景系統(tǒng)中的應(yīng)用[J].中國(guó)農(nóng)業(yè)大學(xué)學(xué)報(bào),2001,6(6):67-71.
[2] 陳俊.車(chē)輛駕駛模擬器視景仿真技術(shù)研究[D].杭州:浙江大學(xué),2012:64-67.
[3] 劉宏.汽車(chē)模擬駕駛?cè)S視景仿真系統(tǒng)[D].西安:西安理工大學(xué),2008:31-33.
[4] 張俊友,焦學(xué)健,柴山,等.基于虛擬現(xiàn)實(shí)的汽車(chē)駕駛模擬器設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造,2013(4):39-41.
[5] 吳初娜,于鵬程,孫純,等.三維模擬駕駛仿真系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(7):2771-2775.
[6] 劉天祥,張志剛.汽車(chē)駕駛模擬訓(xùn)練問(wèn)題研究[J].軍事交通學(xué)院學(xué)報(bào),2012,14(7):26-29,34.
[7] Unity Technologies.Unity 4.x從入門(mén)到精通[M].北京:中國(guó)鐵道出版社,2013:339-363,320-525.