吳兆賢,吳培培
(浙江理工大學 信息學院,浙江 杭州 310018)
隨著智能化的不斷發展,無人車成為國內外研究熱點。無人車不僅具備加速、減進、后退以及轉彎等常規的汽車功能,還可以實現行人車輛避讓、自動變道、自動轉向、紅綠燈識別等功能。其中,變道行為是兩大基本駕駛行為之一,對車輛行駛安全和交通穩定具有重要意義[1]。據資料顯示,車輛變道過程是交通事故的高發時段,對車輛變道行為進行研究有著重要的現實意義。谷歌RX450h無人車曾與一輛公共汽車發生刮擦,當時這輛無人車發生交通意外就是在它的變道過程中。無人車變道的可靠性問題是一個亟需解決的難題。
可靠性是指在特定的時間區間完成規定功能的能力[2];可靠性是軟件的非功能質量屬性,能夠定量地對軟件的失效行為進行評估[3]。基于體系結構的分析方法主要可以分為兩類:基于路徑的方法和基于狀態的方法[4-5]。基于路徑的方法常常運用在軟件所有執行路徑可靠性為已知的條件下;基于狀態的方法根據軟件中的構件及其交互關系,得出系統可靠性。早期的可靠性分析利用軟件測試或運行時期統計的數據對軟件可靠性進行度量和分析,這樣度量出的結果較為精確。但是在該階段才發現度量出的可靠性不滿足要求,再對軟件作出改進將花費大量的人力和物力。因此,在軟件早期設計階段對可靠性進行預測,從而指導軟件開發很有必要。
由于車輛變道是駕駛中高頻且十分重要的一項駕駛行為,本文針對無人駕駛車輛的變道行為進行可靠性預測。無人車可靠性預測結果可以在無人車設計階段反映車輛變道效果,從而為設計人員提供是否需要改良的參考。
統一建模語言(Unified Modeling Language,UML)通常被用作建立系統模型[6-8]。將非功能屬性添加到簡單的UML 模型中,從而為可靠性分析提供條件。對于構件化軟件體系的可靠性分析而言,馬爾可夫鏈和馬爾可夫過程是非常有效的分析模型。文獻[9]中通過構件轉移圖將UML模型轉化為馬爾可夫鏈;文獻[10]中將MARTE(Modeling and Analysis of Real Time and Embedded Systems)模型通過定義的映射規則轉化為馬爾可夫決策過程。
軟件系統組件間的錯誤傳播是反映軟件產品可靠性的量化因素。Malik[11]等提出一個針對基于組件的軟件進行可靠性評估的框架,該框架考慮了系統組件之間的錯誤傳播概率。并且,將方法應用于3 種場景的系統中,證實了該方法的有效性。但是該方法在評估可靠性時需耗費大量的時間和精力。文獻[12]提出一種分析軟件中數據錯誤傳播的方法,引入了錯誤滲透率的概念,即輸入信號中的一個錯誤滲透到一個輸出信號中的概率。此外,還提出了一套參數用以度量錯誤滲透率,這些參數所描述的是模塊間數據流的錯誤傳播行為。文獻[13]提出在計算軟件可靠性時根據構件失效傳播概率矩陣引入構件失效傳播行為,但在實驗時只是假設構件失效傳播矩陣為已知,而并未實際計算。
目前,關于無人車的可靠性研究較少。文獻[14]提出一種基于無人駕駛系統的可靠性建模分析方法,該方法采用架構分析與設計語言和錯誤模型附件建模技術,但是只停留在理論層面,并未通過實驗對無人駕駛系統可靠性進行預測分析。
本文結合文獻[9]和文獻[12],對基于長短期記憶網絡LSTM(Long Short-Term Memory,LSTM)的無人車變道行為可靠性進行預測。首先通過UML 對無人車的變道過程進行建模,對于感知模塊和LSTM 模塊之間的故障傳播概率利用錯誤滲透率進行計算。將UML 模型利用映射規則轉換成DTMC 模型,再基于構件轉移圖將UML 模型轉換成DTMC 模型。分別根據這兩個DTMC 模型運用PRISM[15]工具進行可靠性預測,并進行結果比較。
相比于文獻[13]中計算可靠性時利用假定的失效傳播矩陣,本文通過實驗對LSTM 模塊的錯誤滲透率進行計算,更具有現實意義。相比于文獻[14]對無人駕駛系統的可靠性研究只停留在理論階段,本文通過具體的建模和實驗對無人車變道行為的可靠性進行了預測。
無人車的核心在于“智能”。典型的無人車軟件架構總體分為感知、決策和控制三大部分。決策系統可以劃分為行為決策模塊和軌跡規劃模塊,控制系統可以劃分為軌跡跟蹤模塊和底層控制模塊。
LSTM 網絡在處理時序問題時有很強的信息獲取能力和表征能力。車輛的軌跡序列也是一種時間序列,LSTM可以在預測車輛變道時將車輛的歷史軌跡考慮進去,從而達到更好的變道預測效果。目前,越來越多的研究人員將LSTM 神經網絡應用于無人車的自主變道領域[16-18]。由于LSTM 網絡在無人車變道領域的預測效果顯著,本文將基于LSTM 網絡的變道行為進行建模和可靠性預測。本文基于LSTM 的無人車智能變道系統架構如圖1所示。
Fig.1 System architecture for realizing lane change of unmanned vehicles圖1 無人車變道系統架構
圖2 為無人車變道過程的UML 活動圖,活動圖中添加了泳道信息,用以表示活動的執行對象。
如圖2 所示,在無人車變道過程中涉及到的模塊有感知模塊、行為決策模塊、軌跡規劃模塊、軌跡跟蹤模塊、底層控制模塊。模塊的名稱標注在泳道上方,該模塊負責泳道內的全部活動。無人車先通過感知模塊的傳感器收集自身車輛信息和周圍相鄰車道車輛信息;信息經過融合處理后被輸入到LSTM 模塊中;LSTM 模塊利用輸入的數據進行車輛變道意圖預測,將變道意圖的預測結果作為指令傳給軌跡規劃模塊。LSTM 模塊判斷無人車是否發生變道時,可能會發生變道和繼續跟隨的情況,發生的概率分別為0.31 和0.69,該值來源于傳統經驗。軌跡規劃模塊接收指令后,經過計算后得到車輛的運動目標點和目標速度,然后將要求傳遞給軌跡跟蹤模塊;軌跡跟蹤模塊通過分析、計算后得到關于轉向角、油門和制動的具體指令,再將指令傳給底層控制模塊;底層模塊的轉向控制系統、油門控制系統、制動控制系統再對無人車的車身進行控制。LSTM 模塊作出的決策可能是變道,也可能是繼續跟隨。這兩種條件下的后繼軌跡規劃、軌跡跟蹤和底層控制在難度和復雜程度上都有著顯著區別,當LSTM 模塊作出的決策是不變道即繼續跟隨時,其后續活動明顯更加簡單。因此,在活動圖中對不同情況下的后繼軌跡規劃、軌跡跟蹤和底層控制用不同的活動節點加以區分。
Fig.2 Unmanned vehicle lane change activity圖2 無人車變道活動
在進行可靠性評估時,通常會默認組件或模塊的故障必定會引起系統失效。實際上,當系統中的某個模塊將錯誤輸入到下游模塊時,下游模塊可能會不受該錯誤的影響,即下游模塊內部可能將來自上游模塊輸入的故障“遮蓋”,仍然產生正確的輸出。LSTM 神經網絡的魯棒性決定了感知模塊輸出的故障并不一定會滲透到LSTM 模塊的輸出。錯誤滲透率指模塊輸入的錯誤滲透到輸出的概率,可用于分析故障傳播行為。
由文獻[12]對于錯誤滲透率的定義可知輸入輸出對之間的錯誤滲透率以及模塊的錯誤滲透率。如圖3 所示,模塊M有m個輸入和n個輸出。式(1)為模塊M的輸入i和輸出k之間的錯誤滲透率。為模塊M的輸入i發生錯誤時,模塊M的輸出k發生錯誤的概率。此度量顯示軟件模塊的輸入/輸出對在輸入上發生的錯誤“滲透性”程度。以單個輸入輸出之間的錯誤滲透率為基礎,式(2)為模塊M的錯誤滲透率,用以度量模塊M輸入上的錯誤滲透到輸出的概率。
Fig.3 Software module with m inputs and n outputs圖3 具有m 個輸入和n 個輸出的軟件模塊
如圖4 所示,模塊A 的輸入出現故障的概率為Pf,模塊A 的錯誤滲透率為PA,則模塊A 輸入出現故障且故障滲透到輸出的概率為PfPA,輸入出現故障且故障被遮蓋的概率為Pf(1-PA)。通常在進行可靠性評估時,會假定模塊輸入的故障必定會滲透到模塊輸出,即默認模塊的錯誤滲透率為1。
Fig.4 Fault propagation based on error permeability圖4 基于錯誤滲透率的故障傳播
圖5 反映了考慮LSTM 模塊魯棒性的情況下感知模塊和LSTM 模塊之間的故障傳播情況,如式(3)所示感知模塊輸出的每維信息不將故障傳遞給LSTM 輸出的概率為R(C0)+ (1-R(C0))(1-PC1),其 中PC1為LSTM 神 經 網 絡 的錯誤滲透率,(1-R(C0))(1-PC1)表示由于LSTM 的魯棒性,感知模塊輸出的信息出現故障但沒有滲透到LSTM 輸出的概率。
式(4)表示在考慮LSTM 魯棒性情況下感知模塊收集的n維信息均未將故障傳遞給LSTM 模塊輸出的概率。
Fig.5 Fault propagation considering robustness圖5 考慮魯棒性的故障傳播
UML 模型不能直接作為可靠性預測工具的輸入,而DTMC 模型是有效的可靠性分析模型,可以保障可靠性分析的精確性。本文將基于映射規則將UML 模型轉換為DTMC 模型。
DTMC 可定義為一個五元組D=(S,P,s0,AP,L),其中S表示全部狀態的有限集合;P:S×S→[0,1]是遷移概率函數,?s∈S,∑s′∈SP(s,s′)= 1;s0∈S是初始狀態;AP 是原子命題集合;L:S→2AP是可以將每個狀態映射到原子命題集合AP 里的標號函數[19]。
本文活動圖包含圖2 中所示的元素。活動圖到DTMC模型轉換的思路是將初始節點(Init Node)、分叉節點(Fork Node)和匯合節點(Join Node)的后繼工作流分別轉換為模型Init_DTMC、Fork_DTMC 和Join_DTMC。通過全局變量實現模型之間的通信。具體的映射規則可參考文獻[10]中將MARTE 模型將轉換成馬爾可夫決策過程[20]的方法。
系統中各模塊的可靠性如式(5)所示。
其中,k2、k3、k4分別為軌跡規劃模塊(C2)、軌跡跟蹤模塊(C3)、底層控制模塊(C4)在變道條件下的難度系數。
感知模塊(C0)、行為決策模塊(C1)的可靠性分別用P0、P1表示。可靠性指系統在特定條件下完成規定功能的能力,不同條件下模塊成功完成規定功能的可能性不一樣,即不同條件下模塊的可靠性也會不同。變道條件下的后繼軌跡規劃、軌跡跟蹤和底層控制就難度和復雜程度而言,顯然高于繼續跟隨條件下的相應活動。引入難度系數區分不同條件下C2、C3、C4模塊的可靠性,難度系數越高,模塊的可靠性就越低。模塊C2、C3、C4在繼續跟隨條件下的可靠性值分別為P2、P3、P4,在變道條件下的可靠性值分別為P2(1-k2)、P3(1-k3)、P4(1-k4)。
自主變道的每一步活動都是由無人車系統中的模塊執行,圖2 中通過泳道顯示了活動節點(S0,S1,...,S22)和模塊(C0,C1,...,C4)的對應關系。活動節點的可靠性由負責該活動模塊的可靠性決定。這里活動節點可靠性指該活動節點不會導致后繼活動節點失效的概率。表1 顯示了活動圖中各活動節點的可靠性。
Table 1 Active node reliability表1 活動節點可靠性
活動節點S0表示感知模塊對自身車輛信息進行收集,自身車輛信息中包含4 維信息,即S0可繼續劃分為4 個原子活動節點,由式(4)可知S0的可靠性為[P0+ (1-P0)(1-PC)]4。同理,由式(4)可知S1的可靠性為[P0+ (1-P0)(1-PC)]8。活動節點S3~S5、S6~S9和S10~S12分別為模塊C2、C3、C4在繼續跟隨條件下的活動,其可靠性即為對應模塊在繼續跟隨條件下的可靠性。活動節點S13~S15、S16~S19和S20~S22分別為模塊C2、C3、C4在變道條件下的活動,其可靠性即為對應模塊在變道條件下的可靠性。
圖2中UML 活動圖轉換得到的DTMC 模型如圖6所示。
其中,end1狀態表示LSTM 模塊在針對是否變道作出的決策為不變道的情況下,無人車以車身繼續跟隨作為結束;end2表示當LSTM 模塊作出的決策為變道的情況下,無人車以車身執行變道作為結束。在DTMC 模型中添加了fault 狀態,fault 狀態表示系統在執行中出現了故障。DTMC中某個狀態到fault 狀態的概率由對應活動節點的可靠性決定,當對應活動節點的概率為p 時,該狀態到fault 的概率為1-p。
本文將LSTM 神經網絡[17]作為無人車變道中的行為決策模塊。如圖7 所示,感知模塊將收集到的自身車輛信息和周圍車輛信息輸出到LSTM 模塊,由LSTM 模塊給出變道決策。關于自身車輛的信息有4 個輸入,其中Acc 為車輛加速度,Turning _angle 為車輛相對于道路的轉向角度,Global_x、Global_y 分別為車輛相對于車道的全局橫向和縱向兩個車輛位置。關于周圍信息有8 個輸入,其中Left_lane_exist、Right_lane_exist 分別表示左車道和右車道是否存在,當值為1 時表示車道存在,當值為0 表示車道不存在。Front_dis、Rear_dis 分別表示自身車輛與前方車和后方車的縱向距離,Left_front_dis、Left_rear_dis 分別表示自身車輛與左前方和左后方車輛的縱向距離,Right_front_dis、Right_rear_dis 分別表示自身車輛與右前方和右后方車輛的縱向距離。
Fig.6 DTMC model converted from activity diagram圖6 活動圖轉換的DTMC 模型
Fig.7 Interaction between perception module and LSTM module圖7 感知模塊和LSTM 模塊交互
由式(2)知,要計算LSTM 模塊的錯誤滲透率,需要分別知道12 個輸入中每個輸入發生錯誤時引起的LSTM 模塊輸出偏差的概率。本文LSTM 模塊錯誤滲透率的實驗基于故障注入(Fault Injection,FI),故障注入是一種人為地將故障或錯誤引入系統的可靠性驗證技術。現選取6 000 組數據,分別針對12 維輸入數據中的每一維數據注入故障,將注入故障后的預測結果與本來的預測結果進行對比,即可得12 維輸入中每維輸入發生錯誤時引起的LSTM 模塊輸出偏差的概率。本文中,對于Left_lane_exist、Right_lane_exist采取的故障注入方式是將原值取反。除此之外的10 維輸入是在原值的基礎上通過修改代碼隨機擴大或減小2 到5倍來注入故障。實驗結果如表2 所示,Nerror為輸入錯誤時輸出發生錯誤的次數,Perror為每個輸入與LSTM 模塊輸出之間的錯誤滲透率。由式(2)和實驗結果可計算得出LSTM模塊的錯誤滲透率為
本文無人車變道可靠性研究從無人車收集自身及周圍環境信息開始到無人車繼續跟隨或無人車車身開始執行變道行為過程中無故障發生的概率,即本文中無人車變道可靠性的值為從開始最終能到達end1或end2狀態的概率。
將由DTMC 模型得到的PRISM 代碼及式(6)輸入到模型檢測工具PRISM 中。
Table 2 LSTM neural network input and output error penetration rate表2 LSTM 神經網絡輸入輸出錯誤滲透率
對于圖2 的無人車變道過程,基于當前軟件架構,在P0= 98.2%,P1= 94.9%,P2= 98.1%,P3= 98.9%,P4=99.2%,K2= 0.012,K3= 0.010,K4= 0.001 時,由PRISM 模型檢測工具得到可靠性值,如圖8 所示,無人車變道可靠性值約為76.47%。
上文可靠性預測是基于UML 活動圖根據映射所得的DTMC 模型。目前,對于UML 活動圖到馬爾可夫鏈的轉換,研究者參考較多的還有文獻[9]中基于構件轉移圖將UML 活動圖轉換為馬爾可夫鏈模型的方法。本文基于構件轉移圖將圖2 的無人車變道活動圖轉換為DTMC 模型,利用該模型對無人車變道行為的可靠性進行預測。圖9 為圖2 所對應的構件轉移圖。其中,CTGStart 為起始節點,CTGend1和CTGend2為終止節點。在DTMC 模型中增加了終止狀態C 和失效狀態F。狀態C 表示系統功能成功完成,狀態F 表示系統發生失效。圖10 為圖9 對應的DTMC 模型。將構件轉移圖轉換為對應的DTMC 模型時,還要在每條轉移邊上乘以源端模塊的可靠性。這里需要指出的是,本文中對感知模塊和LSTM 模塊的故障傳播概率基于錯誤滲透率進行了計算,故圖10 中以感知模塊為源端的轉移邊將不是直接乘以感知模塊的可靠性P0,而是乘以P0+ (1-P0)(1-PC1)。
Fig.8 Reliability prediction value圖8 可靠性預測值
將由圖10 中DTMC 模型得到的PRISM 代碼及式(7)輸入到模型檢測工具PRISM 中。由PRISM 模型檢測工具得無人車變道可靠性的值約為90.19%。
通過圖6 和圖10 中的DTMC 模型進行可靠性預測時,得到的值分別為76.47%和90.19%。基于構件轉移圖思想構建DTMC 模型時,只能對使用到的模塊進行概述,并沒有描述實際運行時模塊的使用情況,粒度細化能力較差。根據預測結果對比可知,基于構件轉移圖思想所得的可靠性預測值明顯更高,該方法沒有考慮到在無人車變道時對各模塊的具體使用情況。根據映射規則所得的DTMC 模型在粒度細化方面的能力更強,更適用于無人車變道可靠性預測。
Fig.9 Component transfer圖9 構件轉移
Fig.10 DTMC corresponding to component transfer diagram圖10 構件轉移圖對應的DTMC
無人車的可靠性對于道路安全至關重要。本文對無人車變道過程進行建模,對無人車變道功能的可靠性進行預測。考慮到LSTM 神經網絡具有魯棒性,感知模塊輸出故障不一定會滲透到LSTM 模塊的輸出,通過錯誤滲透率可以對模塊間的故障傳播概率進行計算,使得可靠性信息更加準確。本文分別對利用UML 活動圖映射所得的DTMC 和基于構件轉移圖所得的DTMC 進行可靠性預測,實驗結果表明基于映射規則所得的DTMC 模型在粒度細化方面的能力更強。無人車可靠性預測結果可以體現無人車變道性能好壞,從而為設計人員提供了是否需要改良的參考。實際的無人車變道過程可能面臨著十分復雜的情況,本文的UML 建模粒度較粗,這也是未來需進一步改進之處。