孫 雪, 黃志球,3, 沈國華,3, 王金永, 徐 恒
(1. 南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院, 江蘇 南京 211106; 2. 南京航空航天大學(xué)高安全系統(tǒng)的軟件開發(fā)與驗證技術(shù)工業(yè)和信息化部重點實驗室, 江蘇 南京 211106; 3. 軟件新技術(shù)與產(chǎn)業(yè)化協(xié)同創(chuàng)新中心, 江蘇 南京 210093)
無人駕駛車輛系統(tǒng)主要包括3部分:環(huán)境感知、行為決策和動作實施。相關(guān)研究涉及到很多學(xué)科內(nèi)容,如:計算機(jī)技術(shù)、模式識別、自動控制等。行為決策系統(tǒng)決定了無人駕駛車輛行駛的安全性與合理性,因此提高智能化行為決策水平一直是研究者努力的方向[1]。盡管已經(jīng)開展了眾多研究,由于城市交通環(huán)境比高速交通環(huán)境具有更高的復(fù)雜性和不確定性,現(xiàn)有的決策系統(tǒng)在實時性、安全性等方面仍然存在很多不足。其中城市交通環(huán)境中的復(fù)雜性主要表現(xiàn)在交通參與者多、道路狀況復(fù)雜、交通參與者之間交互頻繁;不確定性主要體現(xiàn)在他車和行人行駛意圖的不確定、傳感器感知的不確定。
目前,無人駕駛車輛行為決策模型大致有基于規(guī)則的模型和基于統(tǒng)計的模型兩大類?;谝?guī)則的模型是通過建立駕駛環(huán)境條件與駕駛動作之間的對應(yīng)關(guān)系進(jìn)行決策,計算效率比較高,但無法考慮駕駛環(huán)境中的不確定性。所以基于規(guī)則模型的準(zhǔn)確性較低;基于統(tǒng)計的模型將駕駛環(huán)境中的不確定性考慮其中,提高了準(zhǔn)確性,由于模型結(jié)構(gòu)較復(fù)雜導(dǎo)致計算量較大,對模型結(jié)構(gòu)進(jìn)行實時更新工作量較大。
Gipps[2]基于車輛駕駛行為的安全性、期望性和必要性進(jìn)行規(guī)則決策。有限狀態(tài)機(jī)是常用的基于規(guī)則建模的方法。文獻(xiàn)[3]中進(jìn)行決策時用到了分層狀態(tài)機(jī),底層表示駕駛行為的轉(zhuǎn)換條件及具體動作,中間層表示駕駛行為,頂層表示車輛的狀態(tài),但該方法當(dāng)駕駛場景較復(fù)雜時,對駕駛狀態(tài)的管理和劃分比較麻煩,適合于簡單場景。Furda等人[4]采用petri網(wǎng)進(jìn)行決策,基于多標(biāo)準(zhǔn)決策設(shè)計了自動駕駛車輛的實時決策系統(tǒng);從多個駕駛行為中,選擇出安全且符合駕駛規(guī)則的行為。近年來,本體已經(jīng)成功應(yīng)用于自動駕駛領(lǐng)域。Amand等人[5]描述了如何將本體應(yīng)用于交通參與者和基礎(chǔ)設(shè)施之間的時空關(guān)系的模型交互上。黃璐[6]提出了基于本體的無人駕駛車輛場景評估方法。本體通過對駕駛場景元素及其之間的關(guān)系進(jìn)行語義描述,將先驗駕駛經(jīng)驗考慮其中,構(gòu)建本體知識庫,充分表達(dá)了駕駛場景中的多源異構(gòu)信息。從而解決了目前的行為決策方法對駕駛場景信息描述不充分以及人類的先驗駕駛經(jīng)驗無法有效充分利用造成的駕駛動作不合理的問題。
基于統(tǒng)計的模型考慮了交通道路環(huán)境中存在的不確定性。其中,最常用的決策模型是貝葉斯網(wǎng)絡(luò)(Bayesian network, BN)和部分可觀測馬爾可夫決策過程(partially observable Markov decision process, POMDP)。Ulbrich等人[7]提出了一種基于非線性動態(tài)BN的駕駛場景建模方法,該方法提高了無人駕駛車輛在不確定環(huán)境下自主換道的可靠性,但是對駕駛場景的理解和表達(dá)能力不足。Brechtel等人[8]提出將連續(xù)狀態(tài)層次BN轉(zhuǎn)換模型嵌入POMDP模型中,一定程度上降低了時間的不確定性和環(huán)境感知的不確定性對行為決策的影響,但計算效率較低。Noh等人[9]對智能車輛決策系統(tǒng)使用BN進(jìn)行情況評估和戰(zhàn)略決策。Bouton等人[10]提出基于POMDP模型的在線信念狀態(tài)規(guī)劃方法。
城市道路環(huán)境中,無人駕駛車輛在行駛過程中會遇到很多復(fù)雜、不確定的因素。這些因素給無人駕駛車輛的行為決策系統(tǒng)帶來了嚴(yán)峻的挑戰(zhàn)。不合理的行為決策結(jié)果將導(dǎo)致重大交通事故。結(jié)合本體和BN的優(yōu)勢,本文提出了兩者相結(jié)合的無人駕駛車輛行為決策模型。首先,根據(jù)無人駕駛車輛自身傳感器感知到的駕駛場景信息,對駕駛場景進(jìn)行本體建模,但構(gòu)造出的本體無法表示駕駛場景中的不確定信息,對其進(jìn)行概率擴(kuò)展,使用Java開發(fā)工具包Jena進(jìn)行解析。然后,以Netica應(yīng)用程序接口為基礎(chǔ),將擴(kuò)展后的駕駛場景本體轉(zhuǎn)換為BN模型。最后,通過BN概率推理得到當(dāng)前駕駛場景下無人駕駛車輛的最佳駕駛行為。
本文行為決策方法框架如圖1所示。
圖1 行為決策方法框架Fig.1 Framework of behavior decision-making method
本體是一種統(tǒng)一的、規(guī)范的知識描述方法,通常用來描述領(lǐng)域知識。在計算機(jī)領(lǐng)域,本體從語義層次上描述知識,可以看成描述某個領(lǐng)域知識的一個通用概念模型[11]。
本體可表示為一個五元組(C,R,F,A,I)。其中,C是本體中的類集;R是類的層次關(guān)系集合;F為函數(shù);A為公理;I是實例。
(1) 類或概念:領(lǐng)域內(nèi)的概念,可以是實際存在的真實事物,也可以是抽象的概念。
(2) 關(guān)系:用于描述類與類之間的關(guān)系。
(3) 函數(shù):是一種特殊的關(guān)系,該關(guān)系中前n-1個元素可以唯一決定第n個元素。
(4) 公理:表示永遠(yuǎn)成立的事實。
(5) 實例:某個類中真實存在的個例。
根據(jù)文獻(xiàn)[12]給出的駕駛場景分層模型。本節(jié)給出了與行為決策相關(guān)的4個類:道路類、障礙物類、行為類和自身車輛類;3個與表示概率相關(guān)的類:概率類、狀態(tài)類和變量類。本體類的層次關(guān)系如圖2所示。
圖2 類的層次關(guān)系Fig.2 Hierarchy relationship of classes
(1) 自身車輛類:自身車輛類描述了無人駕駛車輛自身的狀況。如自身的速度、方向、與他車的相對速度和相對位置等。
(2) 行為類:行為類表示無人駕駛車輛駕駛行為的集合。分為橫向行為和縱向行為。
(3) 障礙物類:障礙物類表示無人駕駛車輛在行駛過程中遇到的障礙物實體集合,包括行人和車輛。
(4) 道路類:表示無人駕駛車輛行駛道路的狀況。包括路口、車道、車道線、人行橫道、路面標(biāo)記、交通燈和交通標(biāo)志。
(5) 與表示概率相關(guān)的類中概率類有兩個子類:先驗概率類和條件概率類。
對象屬性描述了類和類之間的關(guān)系,通過定義域和值域?qū)λ枋龅年P(guān)系進(jìn)行約束。從語義上講,基本的關(guān)系共有4種:類與實例的關(guān)系、父類與子類的關(guān)系、局部與整體的關(guān)系、類的屬性關(guān)系[13]。
(1) 自身車輛類/障礙物類和行為類的關(guān)系:車輛可以執(zhí)行駕駛行為。因此車輛與行為動作之間具有決定的對象屬性,其定義域是自身車輛類/障礙物類,值域是行為類。
(2) 自身車輛類/障礙物類和道路類的關(guān)系:車輛當(dāng)前時刻在某個車道上行駛。所以車輛和車道之間具有在車道上的屬性,其定義域是自身車輛類/障礙物類,值域是車道;車道與車道之間有左車道、右車道屬性,其定義域和值域都是車道;車道與車道線之間有左車道線、有右車道線的屬性。定義域是車道,值域是車道線。
(3) 自身車輛類和障礙物類的關(guān)系:自身車輛與障礙物之間有相對位置的關(guān)系,再者障礙物會影響自身車輛的駕駛動作。定義域是障礙物類,值域是自身車輛類。
下面給出部分關(guān)系屬性和部分?jǐn)?shù)據(jù)屬性,分別如表1和表2所示。
表1 部分關(guān)系屬性
表2 部分?jǐn)?shù)據(jù)屬性
本體知識庫由斷言工具箱(簡稱為ABox)和術(shù)語工具箱(簡稱為TBox)組成。TBox主要包含了具體領(lǐng)域的背景知識,如概念、關(guān)系、定理、約束條件以及推理規(guī)則等。ABox主要包含了具體領(lǐng)域的情景知識,如類的實例/對象以及它們之間的關(guān)系等。ABox是對TBox中的概念模型的實例化表示,給出類存在的一些實例[14]。本體的知識庫由TBox和ABox共同組成。將構(gòu)建好的駕駛場景本體作為無人駕駛領(lǐng)域的知識庫,將本體明確的形式化的描述特性充分發(fā)揮出來。
無人駕駛車輛自主行駛過程中的一個駕駛場景如圖3所示,圖3中顯示自身車輛處在T型路口區(qū)域。
圖3 駕駛場景Fig.3 Driving scenario
(1) 行為類:縱向行為包括加速、減速、保持速度和停車;橫向行為包括直行向右變道和向左變道。如圖4所示。
(2) 障礙物類:無人駕駛車輛同車道前方車輛、右車道前方車輛和右車道后方車輛。如圖5所示。
圖4 行為類Fig.4 Class of Behavior
圖5 障礙物類Fig.5 Class of Obstacle
(3) 道路類:無人駕駛車輛在左車道行駛,其右方車道為右車道;車道線有實線和虛線;路面標(biāo)記包括直行路面標(biāo)記、右轉(zhuǎn)路面標(biāo)記、直行右轉(zhuǎn)路面標(biāo)記;交通標(biāo)志包括限速40 km/h。如圖6所示。
該駕駛場景下的本體模型結(jié)構(gòu)如圖7所示。
圖6 道路類Fig.6 Class of Road
圖7 駕駛場景本體模型結(jié)構(gòu)Fig.7 Ontology model structure of driving scenario
本體模型結(jié)構(gòu)實現(xiàn)了對駕駛場景中的類/實體的狀態(tài)和語義關(guān)系的結(jié)構(gòu)化表達(dá)。根據(jù)對駕駛場景的分析,通過該本體模型充分表達(dá)了駕駛場景中的多源異構(gòu)信息以及參與者之間的時空交互關(guān)系[15],為下面根據(jù)駕駛場景得到最佳駕駛動作提供了場景理解信息。
BN是概率論與圖論相結(jié)合的產(chǎn)物,用來表示變量之間概率依賴關(guān)系的有向無環(huán)圖。適用于不確定性知識的表達(dá)和推理。BN由有向無環(huán)圖和條件概率表(conditional probability table, CPT)組成。有向無環(huán)圖中的節(jié)點表示隨機(jī)變量X={X1,X2,…,Xn},節(jié)點之間的邊表示節(jié)點之間具有依賴關(guān)系,由父節(jié)點指向子節(jié)點。CPT表示子節(jié)點與父節(jié)點之間依賴程度,用概率值去量化,有
P(Xi|Xi-1,…,X1)=P(Xi|Pa(Xi))
(1)
式中,Pa(Xi)是節(jié)點Xi的父節(jié)點集合。
BN的學(xué)習(xí)是通過當(dāng)前時刻新的證據(jù)對先前建立的BN進(jìn)行更新的過程,包括結(jié)構(gòu)學(xué)習(xí)和參數(shù)學(xué)習(xí)。參數(shù)學(xué)習(xí)是已知BN的結(jié)構(gòu),去確定CPT。結(jié)構(gòu)學(xué)習(xí)是既要確定BN結(jié)構(gòu),又要確定CPT。
本節(jié)在結(jié)構(gòu)已知、單個參數(shù)、完整數(shù)據(jù)的情況下用最大似然估計(maximum likelihood estimation, MLE)對BN進(jìn)行學(xué)習(xí)。給定一個概率分布D,假設(shè)其概率密度函數(shù)或概率分布函數(shù)為fD,以及一個分布參數(shù)θ,可以從這個分布中抽取一個具有n個值的采樣X1,X2,…,Xn,通過fD,就可以計算出它的概率[16],表示為
P(X1,X2,…,Xn)=fD(X1,X2,…,Xn|θ)
(2)
似然函數(shù)為
(3)
對似然函數(shù)兩邊取對數(shù):
(4)
對InL(θ)求導(dǎo)數(shù)并令之為0:
(5)
式(5)為對數(shù)似然方程,解這個方程得到的值就是未知參數(shù)的最大值。把θ帶入式(2)中即可得所求最大概率[17]。
BN推理是指利用BN的結(jié)構(gòu)及其CPT,在新的情況下計算可能取值的最大概率值的問題。BN推理問題有3大類:后驗概率問題、最大可能解釋問題和最大后驗假設(shè)問題。本文主要利用BN的后驗概率問題進(jìn)行推理。后驗概率問題是指已知BN中某些節(jié)點的概率值,根據(jù)這些概率值計算其他一些節(jié)點在新的先驗概率下概率值的問題,最后選擇最大的后驗概率值對應(yīng)的節(jié)點狀態(tài)為當(dāng)前狀態(tài)。BN的推理分為4種:
(1) 預(yù)測推理:根據(jù)先驗證據(jù),求出在先驗概率發(fā)生的條件下某些結(jié)果發(fā)生的概率。
(2) 診斷推理:已知結(jié)果,求出導(dǎo)致該結(jié)果發(fā)生的各種原因的概率。
(3) 支持推理:結(jié)果產(chǎn)生了,造成該結(jié)果產(chǎn)生的原因很多,需要找出各種原因發(fā)生的概率以及這些原因之間的關(guān)系和相互影響的程度。
(4) 包含上述多種類型的推理。
本文主要利用的是預(yù)測推理,根據(jù)無人駕駛車輛當(dāng)前駕駛環(huán)境以及周圍障礙車輛可能采取的駕駛動作進(jìn)行決策推理。
BN推理的主要步驟如下:
步驟 1確定節(jié)點的先驗概率以及具有依賴關(guān)系的節(jié)點之間的條件概率;
步驟 2確定在當(dāng)前時刻一些節(jié)點的概率值;
步驟 3根據(jù)需求選擇合適推理算法,用概率推理求相關(guān)節(jié)點的條件概率值。
實際上BN推理的過程就是實現(xiàn)Bayes公式的過程:在已知某些節(jié)點的概率P(Xi)或者已知證據(jù)(記作E)時求未知節(jié)點Xj取某一特定值e的概率,即計算條件概率
(6)
BN中的節(jié)點代表隨機(jī)變量,節(jié)點之間的依賴關(guān)系用有向邊來表示,有向邊由父節(jié)點指向子節(jié)點,并用CPT來表示一個變量對另一個變量的影響程度。本體中包含了很多的類/實例,類/實例又通過對象屬性聯(lián)系起來。由此可見,本體和BN之間就結(jié)構(gòu)方面存在一定的映射關(guān)系??梢詫⒈倔w中的類/實例映射為BN中的節(jié)點,根據(jù)本體中的類/實例之間的對象屬性映射為BN的有向邊。如果對本體進(jìn)行概率擴(kuò)展,使本體也具有概率信息,就可以將本體轉(zhuǎn)換為BN。本體向BN轉(zhuǎn)換過程如圖8所示。
圖8 轉(zhuǎn)換過程Fig.8 Conversion process
轉(zhuǎn)換過程分為3個步驟:
步驟 1使用Web本體語言(web ontology language, OWL)按道路情況和車輛情況構(gòu)建無人駕駛車輛駕駛場景本體,將駕駛場景信息按類表示。由于OWL描述的都是概念之間明確的關(guān)系,要么為真,要么為假,不能表示不確定的信息[18]。所以在構(gòu)造本體時加入了與概率相關(guān)的類,用概率的方式去表示不確定性信息,并將不確定信息的概率內(nèi)容附加在本體上。
步驟 2使用OWL對無人駕駛車輛駕駛場景本體進(jìn)行概率擴(kuò)展后,接著利用Java開發(fā)工具包Jena對領(lǐng)域本體進(jìn)行解析得到本體中的類/實例關(guān)系以及先驗概率和條件概率信息。
通過OWL建立好本體后,接下來使用本體的時候通過OWL文件直接獲取就可以。通過調(diào)用Jena OntoModel的Read方法:ontModel.read(“file:E:/tool/AutonomousVehicle.owl”),讀取AutonomousVehicle.owl文件去建立本體模型[19]。然后利用Jena對本體進(jìn)行解析,解析成BN工具Netica可讀的信息,如下:
類-實例信息:
……………………
冒號前的類對應(yīng)BN中的節(jié)點,冒號后的實例對應(yīng)BN節(jié)點的取值。
類-類信息:
……………………
括號內(nèi)的兩個類具有依賴關(guān)系,這兩個類對應(yīng)BN中邊的兩個節(jié)點,前者表示父節(jié)點,后者表示子節(jié)點。
先驗概率信息:
P(Line=Solid)=0.5
P(Line=Dotted)=0.5
……………………
條件概率信息:
P(RightFrontCar=Decelerate|Obstacle=Exit)=0.491
P(RightFrontCar=TurnRight|Obstacle=Exit)=0.509
P(RightFrontCar=Decelerate|Obstacle=Exit)=0.491
……………………
步驟 3最后用Netica提供的Java API接口根據(jù)這些信息將本體轉(zhuǎn)換成BN,通過BN進(jìn)行概率推理,最大的概率值對應(yīng)的駕駛動作即為當(dāng)前駕駛場景下的最佳駕駛動作[19]。
BN和本體的映射關(guān)系如下:
(1) BN中的節(jié)點來自于本體中的類和實例;
(2) BN中的邊是根據(jù)本體的類與類和類與實例之間的關(guān)系確定的,即本體的對象屬性,在具有依賴關(guān)系的節(jié)點之間添加一條有向邊,父節(jié)點指向子節(jié)點[20-21];
(3) BN中的CPT內(nèi)容都來自于解析本體時得到的先驗概率信息和條件概率信息[22]。
本節(jié)采用Netica作為BN的可視化推理工具[23]。通過以上步驟由駕駛場景下無人駕駛車輛領(lǐng)域本體得到駕駛場景下由本體驅(qū)動的BN,然后根據(jù)駕駛場景及其周圍車輛的駕駛狀況,結(jié)合式(2)~式(5)對BN進(jìn)行更新,計算出當(dāng)前駕駛場景下無人駕駛車輛可能采取的駕駛動作的概率。其中概率值最大的駕駛動作即為當(dāng)前駕駛場景下無人駕駛車輛所要采取的駕駛動作。用此方法,T型路口處駕駛場景的初始BN如圖9所示。其中,
E1:V1<4 m/s &D2<25 m &D3<15 m
E2:V1<4 m/s & 25 E3:V1<4 m/s & 25 E4: 4 m/s E5:4 m/s E6:4 m/s V1是無人駕駛車輛與本車道前方車輛的相對速度;D2是無人駕駛車輛與右方車道前方車輛的相對距離;D3是無人駕駛車輛與右方車道后方車輛的相對距離。無人駕駛車輛在駕駛環(huán)境下可能采取的駕駛動作的概率值就是根據(jù)與周圍車輛的相對速度和相對距離所在區(qū)間的概率取值計算得到的。BN中的節(jié)點及其含義如表3所示。 表3 BN節(jié)點及其含義 整個BN描述了3部分信息[24]: (1) 道路狀況 當(dāng)前無人駕駛車輛行駛的道路為兩車道,無人駕駛車輛在左車道行駛。車道有左車道線和右車道線。右車道線為虛線,表明當(dāng)無人駕駛在行駛過程如果有向右變道需要,在周圍環(huán)境滿足換道條件時可進(jìn)行右轉(zhuǎn)。 圖9 T型路口駕駛場景BNFig.9 BN of T-junction driving scenario (2) 無人駕駛車輛周圍障礙車輛可能采取的駕駛動作 在T型路口處,無人駕駛車輛周圍有3輛障礙車輛:前方車輛,該車輛位于左車道;右前方車輛,該車輛位于右車道;右后方車輛,該車輛位于右車道。當(dāng)前駕駛場景下,前方車輛可能會采取兩種駕駛動作:當(dāng)前車道下減速行駛和當(dāng)前車道下保持原有速度行駛;右前方車輛可能采取的駕駛動作是:路口右轉(zhuǎn)或路口減速直行;右后方車輛可能采取的駕駛動作是:保持速度原車道行駛,原車道加速行駛。障礙物車輛在當(dāng)前駕駛環(huán)境下可能采取的駕駛動作是無人駕駛車輛在行駛環(huán)境中遇到的一種不確定性[25],所以我們要充分考慮到障礙物車輛在當(dāng)前駕駛環(huán)境下可能采取的駕駛動作,這對無人駕駛車輛行駛的安全性至關(guān)重要。 (3) 無人駕駛車輛在當(dāng)前駕駛場景下要采取的駕駛動作 無人駕駛車輛在當(dāng)前駕駛場景下可能采取的駕駛動作主要是根據(jù)道路狀況以及周圍障礙車輛采取的駕駛動作決定的,所以本文將周圍障礙車輛可能采取的駕駛動作作為不確定性放在BN中考慮。將道路狀況和周圍障礙車輛可能采取的駕駛動作對應(yīng)到無人駕駛車輛與周圍障礙車輛相對速度和相對距離的區(qū)間內(nèi),然后計算無人駕駛車輛可能采取的橫向駕駛動作和縱向駕駛動作的概率取值。根據(jù)周圍障礙車輛可能采取的駕駛動作的概率值和無人駕駛車輛與前方車輛的相對速度,與右前方車輛,右后方車輛的相對距離來決定無人駕駛車輛的駕駛動作。用最大后驗概率推理得無人駕駛車輛可能采取動作的概率,概率值最大的駕駛動作即為無人駕駛車輛在當(dāng)前駕駛環(huán)境下要采取的橫向駕駛動作和縱向駕駛動作。 當(dāng)無人駕駛在左車道行駛,前方車輛原車道減速,右前方車輛右轉(zhuǎn),右后方車輛原車道保持速度行駛時,對初始BN進(jìn)行更新推理,得到如圖10所示的BN(a)。 圖10 更新后的BN(a)Fig.10 Updated BN(a) 對BN的學(xué)習(xí)包括結(jié)構(gòu)學(xué)習(xí)和參數(shù)學(xué)習(xí)[26]。結(jié)構(gòu)學(xué)習(xí)是通過上述方法得到無人駕駛車輛在T型路口當(dāng)前駕駛環(huán)境下的本體結(jié)構(gòu),然后通過轉(zhuǎn)換規(guī)則得到當(dāng)前駕駛環(huán)境下無人駕駛車輛在T型路口的BN結(jié)構(gòu)。當(dāng)BN結(jié)構(gòu)被定義好之后,就要對BN結(jié)構(gòu)進(jìn)行參數(shù)學(xué)習(xí),根據(jù)先前證據(jù)去估計節(jié)點的條件概率分布的模型參數(shù)。由于車輛行駛數(shù)據(jù)集服從高斯分布,即模型參數(shù)θ的先驗分布g(θ)服從高斯分布,如下所示: (7) 式中,μ為數(shù)學(xué)期望;σ為方差。 通過Bayes公式,對于θ的后驗分布如下所示: (8) 根據(jù)式(8)在Bayes公式條件下求模型參數(shù)θ。x為獨立同分布的數(shù)據(jù)采樣,f為分布模型。對模型參數(shù)進(jìn)行微分,求解不定式,最后得到BN模型下的分布函數(shù)[27]。 用下式根據(jù)分布函數(shù)求最大后驗分布值: (9) 將由式(8)計算得到的行為模型參數(shù)θ代入到式(9)中,此時BN的結(jié)構(gòu)和參數(shù)都已經(jīng)確定。然后對BN模型的分布函數(shù)進(jìn)行最大值求解。最后得到的值即為所求的最大后驗分布值。 本文中無人駕駛車輛的駕駛動作由橫向駕駛動作和縱向駕駛動作組成。只要計算出無人駕駛車輛在當(dāng)前駕駛環(huán)境下可能采取的橫向駕駛動作和縱向駕駛動作的概率值,就可以得到無人駕駛車輛在當(dāng)前駕駛環(huán)境下所要采取的駕駛動作,其中取值最大的即為無人駕駛車輛在當(dāng)前駕駛環(huán)境下所要采取的橫向駕駛動作和縱向駕駛動作。通過上述最大后驗概率計算方法,能得到無人駕駛車輛可能采取的橫向駕駛動作和縱向駕駛動作的概率??赡懿扇〉臋M向駕駛動作為直行和右轉(zhuǎn);可能采取的縱向駕駛動作為加速、減速、保持速度和停車等待。從BN(a)中可以看到橫向駕駛動作最大概率為P(TurnRight)=0.562;縱向駕駛動作最大概率為 P(Decelerate)=0.412。所以當(dāng)前方車輛原車道減速,右前方車輛右轉(zhuǎn),右后方車輛原車道保持速度行駛時,無人駕駛車輛減速向右變道。 同理,當(dāng)前方車輛原車道減速,右前方車輛右轉(zhuǎn),右后方車輛原車道加速時,對原來的BN進(jìn)行更新推理,得到如圖11所示的BN(b)。 圖11 更新后的BN (b)Fig.11 Updated BN (b) 同理,通過計算得無人駕駛車輛可能采取的橫向駕駛動作和縱向駕駛動作的概率。橫向駕駛動作最大概率為P(GoStraight)=0.594縱向駕駛動作最大概率為P(Decelerate)=0.378。 所以當(dāng)前方車輛原車道減速,右前方車輛右轉(zhuǎn),右后方車輛原車道加速時,無人駕駛車輛采取原車道減速行駛。 Prescan是一個用于駕駛輔助系統(tǒng)以及交通道路場景建模的車輛仿真應(yīng)用軟件,其界面提供了構(gòu)建駕駛場景的各種元素,如車輛、道路、建筑物、道路標(biāo)志等,還可以設(shè)置每個路段上車輛的行駛速度和行駛路徑,將駕駛場景元素模型拖拽到新建界面就可以搭建駕駛場景[28]。Prescan還可以實現(xiàn)和Simulink的聯(lián)合,在Simulink中生成相應(yīng)的車輛,行人等控制模塊[29],從而實現(xiàn)對其的控制和操作。整個仿真實驗由4部分組成[30],如圖12所示。 圖12 仿真實驗步驟Fig.12 Steps of simulation experiment (1) 用Prescan搭建相應(yīng)的交通場景,如圖13所示。仿真駕駛場景1是一個T型路口,主道路為同向兩車道,右方T字區(qū)域為單向雙車道,車道均限速40 km/h。一開始無人駕駛車輛(紅色汽車)在主道路行駛,然后行駛至T型路口區(qū)域。自身車輛周圍有3輛車,分別設(shè)定好固定的行駛軌跡和行駛速度,規(guī)定無人駕駛車輛本車道前方車輛一開始以5 m/s勻速行駛,然后進(jìn)行減速。右邊車道后方車輛以6 m/s的速度勻速直線行駛,右邊車道前方車輛以6 m/s勻速行駛,然后進(jìn)行減速,在T型路口處右轉(zhuǎn)。 仿真駕駛場景2是一個具有人行橫道的雙向四車道,車道均限速40 km/h。周圍車輛都以5 m/s的速度勻速直線行駛,人行橫道處減速行駛。 仿真駕駛場景3是一個雙向四車道,車道均限速40 km/h,周圍車輛都以5 m/s的速度勻速直線行駛,人行橫道處減速行駛。無人駕駛車輛(紅色汽車)在行駛過程中遇到了行人橫穿道路的突發(fā)情況。 (2) Prescan的傳感器庫中有各種功能的傳感器,與真實傳感器的效果一樣。我們要根據(jù)仿真實驗的目的選擇合適的傳感器,以求達(dá)到真實模擬的效果。 圖13 仿真駕駛場景Fig.13 Simulation driving scenarios (3) 在Simulink中搭建相應(yīng)的動力學(xué)控制系統(tǒng),如車輛動力模型。交通場景搭建好后,通過Prescan可直接運行Simulink進(jìn)行決策控制算法的搭建,系統(tǒng)搭建的Simulink仿真模型包括動力學(xué)模塊和行為模塊,如圖14所示。 圖14 動力學(xué)模型Fig.14 Dynamical model 無人駕駛車輛通過自身的傳感器和雷達(dá)系統(tǒng)將感知到的環(huán)境信息輸送給決策模塊進(jìn)行決策。先根據(jù)行駛道路路況以及周圍車輛的行駛情況判斷車輛所屬駕駛場景,將駕駛場景信息作為輸出傳遞給行為模塊,行為模塊根據(jù)自身車輛與周圍車輛的相對速度和距離進(jìn)行行為決策,從而在當(dāng)前時刻控制車輛的行駛。決策模塊將決策信息轉(zhuǎn)換為輪偏角信息輸出給車輛動力學(xué)模型進(jìn)行控制,使車輛作出相應(yīng)的駕駛動作。 (4) 運行實驗。根據(jù)Prescan/Simulink聯(lián)合仿真,可以得到無人駕駛車輛的運行軌跡、速度、加速度等信息,可以從輸出的數(shù)據(jù)和圖形中觀察到無人駕駛車輛的行駛狀態(tài)。 無人駕駛車輛在當(dāng)前時刻的駕駛環(huán)境下所要采取的駕駛動作實際是由橫向駕駛動作和縱向駕駛動作組成的。橫向駕駛動作是由車輛的橫向加速度體現(xiàn)的,縱向動作是由縱向加速度體現(xiàn)的。正常情況下,車輛如果跟隨前方車輛行駛,車輛的橫向加速度維持在-2~2 m/s2。無人駕駛車輛在變道或超車行為決策過程中,橫向加速度的變化都比較大(本實驗規(guī)定車輛右轉(zhuǎn)的橫向加速度為正值)。無人駕駛車輛在駕駛場景1行駛過程中的橫向加速度和縱向加速度的變化如圖15所示。 圖15 駕駛場景1中的加速度Fig.15 Acceleration in driving scenario 1 從橫向加速度來看,橫向加速度值在區(qū)間-1~4 m/s2內(nèi),可知在這段仿真實驗時間內(nèi),無人駕駛車輛的橫向駕駛動作只有直行和右轉(zhuǎn),沒有采取左轉(zhuǎn)的橫向駕駛動作。15~20 s,無人駕駛車輛的橫向加速度值突然增加,變化幅度很大,可見在這段時間內(nèi)無人駕駛車輛采取了向右變道的橫向駕駛動作。由于駕駛道路中限速40 km/h,從縱向加速度來看,縱向加速度的變化幅度并不大,以相對平穩(wěn)的速度行駛。 行為決策結(jié)果以及無人駕駛車輛運行軌跡如圖16和圖17所示。初始階段,無人駕駛車輛加速行駛,然后根據(jù)與前方車輛的相對速度調(diào)整自己的車速,跟車行駛。T型路口處,左車道車輛增多,行駛速度緩慢,無人駕駛車輛也隨之減速跟車行駛。此時右車道前方車輛右轉(zhuǎn),與右車道前后方車輛的相對距離符合變道條件,此時無人駕駛車輛采取向右變道,駛?cè)胲囕v較少的右車道行駛,然后根據(jù)前方車輛的行駛狀況,調(diào)整行駛速度跟車行駛。 圖16 駕駛場景1中的駕駛動作Fig.16 Driving actions in driving scenario 1 圖17 駕駛場景1中的行駛軌跡Fig.17 Trajectory in driving scenario 1 無人駕駛車輛在駕駛場景2行駛過程中的橫向加速度和縱向加速度如圖18所示。 圖18 駕駛場景2中的加速度Fig.18 Acceleration in driving scenario 2 橫向加速度在10~15 s時間段內(nèi),變化范圍較大,其余時間段都變化不大,無人駕駛車輛在仿真時間段大部分時間都在跟車行駛,為加快駕駛?cè)蝿?wù),進(jìn)行了一次右轉(zhuǎn)。由于駕駛道路中限速40 km/h,縱向加速度整個過程變化不大,車輛行駛的比較平穩(wěn),采取的駕駛動作都比較合理。 行為決策結(jié)果以及無人駕駛車輛運行軌跡如圖19和圖20所示。 初始階段,無人駕駛車輛加速行駛,該駕駛場景中,車輛較多,無人駕駛車輛根據(jù)周圍車輛駕駛狀態(tài)調(diào)整車速跟車行駛。為快速完成駕駛?cè)蝿?wù),通過傳感器和雷達(dá)感知到與周圍車輛的距離滿足變道條件且車道線類型為白虛線,無人駕駛車輛右轉(zhuǎn)進(jìn)入同方向的右車道,無人駕駛車輛加速行駛。由于前方人行橫道處有行人通過,無人駕駛車輛減速行駛,直至停車等待行人通過。 圖19 駕駛場景2中的駕駛動作Fig.19 Driving actions in driving scenario 2 圖20 駕駛場景2中的行駛軌跡Fig.20 Trajectory in driving scenario 2 無人駕駛車輛在駕駛場景3行駛過程中的橫向加速度和縱向加速度如圖21所示。橫向加速度在24~28 s時間段內(nèi),變化范圍較大,在這段時間內(nèi),無人駕駛車輛在為加快駕駛?cè)蝿?wù),進(jìn)行了一次左轉(zhuǎn)。其余時間段變化不大。在第8 s時由于有行人突然橫穿道路,需要車輛立即停車,無人駕駛車輛緊急剎車,縱向加速度發(fā)生了劇烈的變化。車輛重新啟動后,加速度變化還比較平穩(wěn)。采取的駕駛動作都比較合理。 圖21 駕駛場景3中的加速度Fig.21 Acceleration in driving scenario 3 行為決策結(jié)果以及無人駕駛車輛運行軌跡如圖22和圖23所示。 圖22 駕駛場景3中的駕駛動作Fig.22 Driving actions in driving scenario 3 圖23 駕駛場景3中的行駛軌跡Fig.23 Trajectory in driving scenario 3 初始階段,無人駕駛車輛加速行駛,達(dá)到一定的速度后跟車行駛。由于有行人突然橫穿馬路,無人駕駛車輛緊急剎車,直至停車,等待行人通過前方道路后重新啟動。之后的駕駛過程為加快行駛?cè)蝿?wù)中進(jìn)行了一次左換道,進(jìn)入左車道后調(diào)整行駛速度直行,人行橫道處減速行駛,通過人行橫道后調(diào)整行駛速度直行。 從不同駕駛場景的實驗結(jié)果看,該方法能夠在城市交通道路行駛時給出安全合理的駕駛行為,驗證了在城市交通道路環(huán)境下無人駕駛車輛基于本體和BN進(jìn)行行為決策的有效性。 本文針對城市交通道路環(huán)境中較高的復(fù)雜性和不確定性給無人駕駛車輛行為決策系統(tǒng)帶來的問題,深入研究了行為決策系統(tǒng)中的駕駛場景理解和駕駛動作生成,提出了將本體語義表達(dá)和BN概率推理相結(jié)合的行為決策方法。本文工作如下: (1) 使用本體作為駕駛場景信息的語義表達(dá)形式,解決了城市交通環(huán)境中多源異構(gòu)信息表達(dá)不充分以及先驗駕駛經(jīng)驗無法有效利用所帶來的駕駛行為決策準(zhǔn)確性偏低的問題; (2) 將帶有概率信息的駕駛場景本體模型轉(zhuǎn)換為BN模型,用概率的方式將駕駛環(huán)境中他車行駛意圖的不確定性考慮到行為決策中,用BN推理的方法得到當(dāng)前駕駛場景下的最佳駕駛行為,提高了無人駕駛車輛行駛的安全性。 本文以城市交通環(huán)境下的3個不同駕駛場景為實驗環(huán)境,通過Prescan/Simulink聯(lián)合仿真實驗驗證了本文所提方法的有效性。但文章還存在不足之處,需要繼續(xù)研究: (1) 本文對BN的參數(shù)的學(xué)習(xí)主要是通過數(shù)學(xué)公式以及Netica實驗工具實現(xiàn)的,接下來可以嘗試通過機(jī)器學(xué)習(xí)的方法對BN進(jìn)行參數(shù)學(xué)習(xí); (2) 本文主要是從車輛駕駛的安全性去評估駕駛行為的,但在真實生活中,還需要考慮更多的因素,如乘客的舒服度等。下一步可以考慮在行為決策方法中引入效用節(jié)點,從更多的方面對駕駛行為作出評估。4 仿真實驗
4.1 Prescan和場景建模
4.2 實驗結(jié)果分析
5 結(jié) 論