周 龍,王國(guó)慶,楊 康,黃 鑫
(長(zhǎng)安大學(xué)工程機(jī)械學(xué)院,西安710064)
最早的虛擬駕駛系統(tǒng)主要應(yīng)用在航空航天領(lǐng)域,用來(lái)對(duì)飛機(jī)駕駛員進(jìn)行培訓(xùn),以此來(lái)降低飛行訓(xùn)練的危險(xiǎn)系數(shù)以及訓(xùn)練成本[1]。近年來(lái),隨著計(jì)算機(jī)圖形技術(shù)和仿真技術(shù)的發(fā)展,以及全世界汽車(chē)保有量的迅速提高,無(wú)人車(chē)虛擬駕駛系統(tǒng)應(yīng)運(yùn)而生[2]。國(guó)內(nèi)外都對(duì)虛擬駕駛系統(tǒng)進(jìn)行了深入的研究:文獻(xiàn)[3]建立了自主車(chē)行駛的虛擬環(huán)境及典型障礙物模型;文獻(xiàn)[4]建立復(fù)雜道路口的三維虛擬場(chǎng)景和實(shí)現(xiàn)了場(chǎng)景的指定路徑漫游,并將其運(yùn)用于車(chē)輛導(dǎo)航系統(tǒng);文獻(xiàn)[5]采用三維圖像技術(shù)結(jié)合虛擬儀表技術(shù)推出了模擬駕駛培訓(xùn)系統(tǒng);文獻(xiàn)[6]開(kāi)發(fā)了低成本計(jì)算機(jī)上的分布式駕駛模擬技術(shù),完成3D環(huán)境和車(chē)輛的重復(fù)數(shù)據(jù)采集;文獻(xiàn)[7]設(shè)計(jì)了逼真的虛擬場(chǎng)景以及車(chē)輛動(dòng)力學(xué)模型,使用戶(hù)通過(guò)轉(zhuǎn)向、離合、油門(mén)等操縱機(jī)構(gòu)駕駛控制車(chē)輛,通過(guò)場(chǎng)景中車(chē)輛模型的運(yùn)動(dòng)姿態(tài)控制四自由度的運(yùn)動(dòng)平臺(tái),實(shí)現(xiàn)人機(jī)交互。
然而現(xiàn)階段虛擬駕駛系統(tǒng)只是單純地作為演示或者駕駛培訓(xùn)系統(tǒng),并沒(méi)有真正發(fā)揮虛擬系統(tǒng)的潛在價(jià)值。因此,提出一種面向人類(lèi)智慧提取的無(wú)人車(chē)虛擬訓(xùn)練系統(tǒng),通過(guò)搭建虛擬場(chǎng)景記錄人類(lèi)操控車(chē)輛的數(shù)據(jù)信息,提取人類(lèi)的駕駛智慧。系統(tǒng)大幅降低了無(wú)人車(chē)研發(fā)成本、縮短研發(fā)周期、降低安全風(fēng)險(xiǎn)。同時(shí)虛擬訓(xùn)練系統(tǒng)可運(yùn)行于多個(gè)主流平臺(tái)。
人類(lèi)在駕駛車(chē)輛過(guò)程中,利用人類(lèi)感官判斷車(chē)輛與周?chē)h(huán)境的相對(duì)速度、方向、距離等信息,根據(jù)信息變換相應(yīng)的駕駛動(dòng)作,操控車(chē)輛行駛。而無(wú)人車(chē)在研發(fā)過(guò)程中,控制程序復(fù)雜,需要在不同的場(chǎng)景下進(jìn)行長(zhǎng)時(shí)間的道路測(cè)試。如果將人類(lèi)的駕駛智慧應(yīng)用于無(wú)人車(chē)的研發(fā),將在保證可靠性的同時(shí)極大簡(jiǎn)化研發(fā)流程。但人類(lèi)操控車(chē)輛的智慧是難以定量表達(dá)的,如果采用數(shù)學(xué)建模分析人類(lèi)駕駛技能,過(guò)程復(fù)雜。為提取人類(lèi)駕駛模式,提出一種面向人類(lèi)智慧提取的無(wú)人車(chē)虛擬訓(xùn)練系統(tǒng)。
在虛擬場(chǎng)景中,駕駛員操控?zé)o人車(chē)行駛,不斷變換的虛擬場(chǎng)景使駕駛員沉浸其中,駕駛員根據(jù)虛擬場(chǎng)景中反饋的道路、車(chē)輛位置和障礙物等信息,不斷變換相應(yīng)的駕駛動(dòng)作,與此同時(shí),虛擬傳感器記錄相關(guān)數(shù)據(jù)信息,達(dá)到對(duì)車(chē)輛進(jìn)行訓(xùn)練的目的。通過(guò)對(duì)人類(lèi)駕駛數(shù)據(jù)的處理與分析,形成人類(lèi)操控車(chē)輛的數(shù)據(jù)模版,再將數(shù)據(jù)模版輸入無(wú)人車(chē)控制器,最終實(shí)現(xiàn)對(duì)無(wú)人車(chē)的控制,其整體設(shè)計(jì)思路如圖1所示。
圖1 人類(lèi)智慧提取的整體思路Fig.1 The overall idea of human intelligence extraction
系統(tǒng)提出面向人類(lèi)智慧提取的無(wú)人車(chē)虛擬訓(xùn)練系統(tǒng)架構(gòu)如圖2所示。
由圖2可見(jiàn),系統(tǒng)主要由虛擬場(chǎng)景、車(chē)輛動(dòng)力學(xué)模型、虛擬駕駛及智能化驅(qū)動(dòng)算法三部分構(gòu)成。
其中,利用Unity3D引擎開(kāi)發(fā)具有高度沉浸感的都市虛擬場(chǎng)景,為數(shù)據(jù)采集豐富的場(chǎng)景信息;車(chē)輛動(dòng)力學(xué)建模部分綜合考慮車(chē)輛的驅(qū)動(dòng)、制動(dòng)和轉(zhuǎn)向三個(gè)方面,簡(jiǎn)化車(chē)輛動(dòng)力學(xué)并建立車(chē)輛動(dòng)力學(xué)模型,模擬真實(shí)的駕駛感;虛擬駕駛和智能化驅(qū)動(dòng)算法部分將對(duì)車(chē)輛動(dòng)力學(xué)模型的分析進(jìn)行腳本化,從而通過(guò)腳本控制場(chǎng)景中的車(chē)輛運(yùn)動(dòng)。
圖2 虛擬訓(xùn)練系統(tǒng)整體架構(gòu)Fig.2 The overall architecture of virtual training system
當(dāng)前,都市場(chǎng)景中面臨更復(fù)雜的交通狀況,以現(xiàn)代都市為背景,基于層次細(xì)節(jié)技術(shù)和視景分塊調(diào)度技術(shù),搭建具有高度真實(shí)感的虛擬場(chǎng)景。對(duì)此可得闡釋分述如下。
在城市交通網(wǎng)絡(luò)規(guī)劃中,按照公路建設(shè)標(biāo)準(zhǔn)建模,設(shè)計(jì)了道路交通標(biāo)識(shí)、交通信號(hào)燈、護(hù)欄、人行道等公路元素。為豐富駕駛場(chǎng)景,還設(shè)計(jì)了“S”型彎道、“U”型彎道和立交橋。不同類(lèi)型的道路模型如圖3所示。
圖3 不同類(lèi)型的道路模型Fig.3 The different types of roads
在城市建筑群的搭建中采用 LOD(Level Of Detail)技術(shù)。根據(jù)攝像機(jī)距離景物的遠(yuǎn)近,使物體的網(wǎng)格具有不同的細(xì)節(jié)層次。當(dāng)物體距攝像機(jī)遠(yuǎn)時(shí),顯示物體低細(xì)節(jié)網(wǎng)格,反之,顯示物體高細(xì)節(jié)網(wǎng)格。場(chǎng)景中某一建筑物的2個(gè)層次網(wǎng)格模型如圖4所示。該技術(shù)降低平臺(tái)對(duì)硬件的要求,提升平臺(tái)運(yùn)行流暢度。同時(shí),虛擬場(chǎng)景中還包括街道場(chǎng)景及其各類(lèi)附屬物,為駕駛數(shù)據(jù)采集提供豐富的場(chǎng)景信息。
圖4 同一建筑不同細(xì)節(jié)層次網(wǎng)格模型Fig.4 Grids of different detail levels of the same building
交通信號(hào)燈是現(xiàn)代交通中的重要組成元素,系統(tǒng)設(shè)計(jì)了常用的機(jī)動(dòng)車(chē)信號(hào)燈和人行橫道信號(hào)燈。信號(hào)燈的時(shí)序變換是信號(hào)燈設(shè)計(jì)的關(guān)鍵,以十字路口為例,將其分為橫向車(chē)道和縱向車(chē)道,則將十字路口機(jī)動(dòng)車(chē)信號(hào)燈時(shí)序變換分為4個(gè)狀態(tài),依次循環(huán),變換順序見(jiàn)表1。
表1 十字路口交通信號(hào)燈的變換順序Tab.1 Change order of traffic lights at crossroads
其中,橫向車(chē)道的2個(gè)機(jī)動(dòng)車(chē)信號(hào)燈的紅燈時(shí)長(zhǎng)為T(mén)0+T1,綠燈時(shí)長(zhǎng)為T(mén)2,黃燈時(shí)長(zhǎng)為T(mén)3;縱向車(chē)道的2個(gè)機(jī)動(dòng)車(chē)信號(hào)燈的紅燈時(shí)長(zhǎng)為T(mén)2+T3,綠燈時(shí)長(zhǎng)為T(mén)0,黃燈時(shí)長(zhǎng)為T(mén)1,由此設(shè)計(jì)出機(jī)動(dòng)車(chē)信號(hào)燈時(shí)序變換的關(guān)鍵函數(shù)詳見(jiàn)如下。
private IEnumeratorChangeToGreenA(floatdelay){
yield return newWaitForSeconds(delay);//黃燈延時(shí)
ChangeGreenA();//切換綠燈
StartCoroutine(ChangeToYellowA(Managers.TrafficLights.green_time)//設(shè)置綠燈時(shí)間
}
路燈在都市交通中發(fā)揮著重要作用,為模擬路燈真實(shí)照明效果,每個(gè)路燈都包含一個(gè)點(diǎn)光源(Point)和一個(gè)圓錐形的燈光網(wǎng)格模型(LightShape),改變路燈的enabled屬性可控制路燈的亮滅,路燈照明效果如圖5所示。
圖5 路燈夜晚照明效果Fig.5 Lighting effect of street lamps at night
駕駛員的駕駛行為與天氣狀況有很大關(guān)系,天氣管理系統(tǒng)能模擬一天中早、中、晚等不同時(shí)段的云和光線的變化。還能模擬下雨、下雪、大霧等不同的天氣環(huán)境,并配有雨聲、風(fēng)聲、雷電聲等相關(guān)音效,豐富了駕駛員的駕駛體驗(yàn)。
系統(tǒng)中的降雨和降雪利用粒子系統(tǒng)(Particle System)實(shí)現(xiàn)。如果將雨雪效果覆蓋整個(gè)場(chǎng)景,會(huì)大大降低系統(tǒng)運(yùn)行效率,因此將粒子發(fā)射器在以車(chē)輛為圓心,半徑25 m的圓形區(qū)域內(nèi)產(chǎn)生雨雪效果,節(jié)省系統(tǒng)資源。
霧天采用霧效模擬實(shí)現(xiàn),其原理是依據(jù)平臺(tái)中景物與攝像機(jī)的遠(yuǎn)近,將物體的顏色和霧的顏色按一定比例混合成新的顏色。假設(shè)場(chǎng)景中任意像素原本顏色為Ci,霧效顏色為Cf,霧效果影響因數(shù)為f,則該像素點(diǎn)經(jīng)過(guò)霧效果處理后的顏色C為:
其中,Ci與Cf為常數(shù),霧效果的實(shí)現(xiàn)主要通過(guò)改變影響因數(shù)f,其取值范圍是0~1。f的值由場(chǎng)景中的攝像機(jī)與物體距離來(lái)確定。當(dāng)攝像機(jī)與物體距離越遠(yuǎn),f值越小,即該處像素點(diǎn)的顏色越接近霧色;當(dāng)攝像機(jī)與物體距離越近,f值越接近1,即該像素點(diǎn)顏色越接近物體本來(lái)的顏色。
霧效果的影響因數(shù)f用二次指數(shù)模式(Exponential Squared)計(jì)算,公式如下:
其中,D表示霧的濃度,z表示攝像機(jī)距物體的距離。
分析可見(jiàn),使用二次指數(shù)模式模擬霧效,f隨z變化速度更快,霧效變化明顯。
為模擬車(chē)輛的真實(shí)行駛狀況,對(duì)車(chē)輛的橫向和縱向動(dòng)力學(xué)進(jìn)行分析,考慮車(chē)輛的驅(qū)動(dòng)、制動(dòng)和轉(zhuǎn)向部分,建立車(chē)輛的動(dòng)力學(xué)模型。車(chē)輛的驅(qū)動(dòng)動(dòng)力學(xué)分析如圖6所示。
圖6 車(chē)輛正常行駛受力分析Fig.6 The stress analysis of vehicles in normal driving
由以上分析以及牛頓第二定律可知,車(chē)輛在正常行駛時(shí)的運(yùn)動(dòng)學(xué)方程為:
其中,M為車(chē)輛的總質(zhì)量;v為車(chē)輛的速度;t為車(chē)輛行駛時(shí)間;Ft為車(chē)輛驅(qū)動(dòng)力;Ff為滾動(dòng)阻力;Da為空氣阻力;Fa為加速阻力;Fθ為坡度阻力。
為模擬真實(shí)駕駛場(chǎng)景,給計(jì)算機(jī)控制的車(chē)輛和行人設(shè)計(jì)智能化驅(qū)動(dòng)算法,使車(chē)輛和行人在虛擬場(chǎng)景中自由運(yùn)動(dòng),實(shí)現(xiàn)整個(gè)系統(tǒng)的信息交互。這里,將給出分析闡述如下。
碰撞檢測(cè)技術(shù)是虛擬對(duì)象之間產(chǎn)生物理現(xiàn)象的基礎(chǔ),也是車(chē)輛運(yùn)動(dòng)模擬的關(guān)鍵部分。利用層次包圍盒算法來(lái)檢測(cè)車(chē)輛與建筑、植被等模型之間的碰撞。給車(chē)輛模型添加碰撞體組件(Collider)、剛體組件(Rigidbody)以及車(chē)輪碰撞器(WheelCollider),使模型由靜態(tài)碰撞體變?yōu)閯?dòng)態(tài)碰撞體。此時(shí)模型可接受外力或外力矩,便能檢驗(yàn)碰撞是否發(fā)生。但僅用這些組件來(lái)模擬車(chē)輛行駛,其效果遠(yuǎn)不如真實(shí)車(chē)輛,因此本系統(tǒng)以這些組件為基礎(chǔ),將對(duì)車(chē)輛運(yùn)動(dòng)學(xué)分析的解算通過(guò)腳本的形式與這些組件相結(jié)合,然后加入車(chē)輛傳動(dòng)系統(tǒng)模型,從而模擬出真實(shí)車(chē)輛的性能。車(chē)輛運(yùn)動(dòng)模擬的主要函數(shù)詳見(jiàn)如下。
voidUpdate( ){
……
Inputs( );//獲取用戶(hù)輸入信息
GearBox( );//車(chē)輛變速箱模擬
Clutch( );//車(chē)輛離合器模擬
Sounds();//車(chē)輛殷勤,制動(dòng)等聲音模擬
ResetCar();//重置車(chē)輛
……
}
voidFixedUpdate( ){
……
Engine();//車(chē)輛引擎驅(qū)動(dòng)力模擬
Braking();//車(chē)輛制動(dòng)力模擬
AntiRollBars( );//車(chē)輛平衡桿模擬
SteerHelper( );//車(chē)輛轉(zhuǎn)向角度模擬
rigid centerOfMass=transform.InverseTransform Point(COM.transform.position);//設(shè)置車(chē)輛的重心
為使駕駛員直接觀察到車(chē)輛的運(yùn)動(dòng)狀態(tài),對(duì)車(chē)輛的跟隨攝像機(jī)設(shè)計(jì)了3種視角。為攝像機(jī)編寫(xiě)腳本,實(shí)現(xiàn)攝像機(jī)相對(duì)于車(chē)輛的伴隨性移動(dòng),方便用戶(hù)觀察周邊環(huán)境。
車(chē)輛智能化驅(qū)動(dòng)算法使計(jì)算機(jī)控制的車(chē)輛實(shí)現(xiàn)自主尋路、自動(dòng)檢測(cè)信號(hào)燈、自主超車(chē)等功能。算法的主要函數(shù)詳見(jiàn)如下。
voidFixedUpdate( ){
Engine( );//引擎控制
Navigation( );//路徑規(guī)劃
FixedRaycasts( );
if(trafficLight?。絥ull)
TrafficLightStatus( );
Resetting( );//碰撞倒車(chē)
AntiRollBars( );
}
給計(jì)算機(jī)控制的車(chē)輛掛載Navigation組件,并設(shè)置目標(biāo)點(diǎn),車(chē)輛便會(huì)根據(jù)目標(biāo)點(diǎn)自動(dòng)避開(kāi)障礙物來(lái)尋找最短路徑。將公路網(wǎng)絡(luò)的屬性設(shè)置為“Navigation Static”,調(diào)整相關(guān)參數(shù)對(duì)道路進(jìn)行“Bake(烘培)”,車(chē)輛可以在公路網(wǎng)絡(luò)上進(jìn)行導(dǎo)航。導(dǎo)航軌跡如圖7所示。計(jì)算機(jī)控制的車(chē)輛到達(dá)信號(hào)燈檢測(cè)區(qū)域后,自動(dòng)檢測(cè)前方交通信號(hào)燈狀態(tài),并按照交通規(guī)則行駛。同時(shí),車(chē)輛在行駛的過(guò)程中實(shí)時(shí)向前方0°、右前方10°、右前方20°以及右方90°發(fā)射4條射線,檢測(cè)并判斷其它車(chē)輛的位置,實(shí)現(xiàn)自主超車(chē)。將車(chē)輛的層(Layer)屬性設(shè)置為“Vehicle”,將射線的觸發(fā)層設(shè)置為“Vehicle”,避免射線檢測(cè)到非車(chē)輛物體被觸發(fā)。
圖7 車(chē)輛導(dǎo)航網(wǎng)絡(luò)Fig.7 The vehicle navigation network
行人智能化驅(qū)動(dòng)算法使行人通過(guò)在行走時(shí)產(chǎn)生隨機(jī)數(shù)來(lái)生成動(dòng)態(tài)漫游路線,同時(shí)利用動(dòng)畫(huà)組件進(jìn)行條件判斷使行人播放行走或者空閑等待動(dòng)畫(huà)。
對(duì)車(chē)輛仿真進(jìn)行測(cè)試,給車(chē)輛設(shè)置不同參數(shù),可以仿真不同的車(chē)輛類(lèi)型,極大提高了平臺(tái)的拓展性。將車(chē)輛最高時(shí)速設(shè)置為140 km/h,驅(qū)動(dòng)方式為前輪驅(qū)動(dòng)。分別測(cè)試最大驅(qū)動(dòng)扭矩為150 N·m、200 N·m和230 N·m時(shí)車(chē)輛的加速過(guò)程曲線如圖8所示,可驗(yàn)證車(chē)輛符合實(shí)際加速過(guò)程。
圖8 不同驅(qū)動(dòng)扭矩時(shí)車(chē)輛的加速過(guò)程曲線Fig.8 The acceleraion process of vehicles with different driving torque
對(duì)系統(tǒng)進(jìn)行交互測(cè)試,虛擬傳感器能準(zhǔn)確記錄車(chē)輛與周?chē)h(huán)境的交互數(shù)據(jù)及人類(lèi)面對(duì)不同狀況的判斷動(dòng)作。其記錄的車(chē)輛速度,及車(chē)輛距車(chē)道左右標(biāo)線距離如圖9所示。
圖9 虛擬傳感器記錄的部分?jǐn)?shù)據(jù)信息Fig.9 The partial data recorded by virtual sensors
針對(duì)現(xiàn)階段無(wú)人車(chē)研發(fā)面臨的迫切問(wèn)題,創(chuàng)造性地提出一種面向人類(lèi)智慧提取的無(wú)人車(chē)虛擬訓(xùn)練系統(tǒng)。完成了系統(tǒng)的搭建,并進(jìn)行了單元測(cè)試和集測(cè)試,測(cè)試結(jié)果表明,該系統(tǒng)立體沉浸感強(qiáng),可靠性高,呈現(xiàn)出良好的交互效果,能有效收集人類(lèi)駕駛車(chē)輛的數(shù)據(jù)信息,為推動(dòng)無(wú)人車(chē)更好的發(fā)展提供了一個(gè)切實(shí)可行的新方案,具有可觀的發(fā)展前景。