郝齊虹 韓 斌
(江蘇科技大學 鎮江 212003)
車身預判和控制是無人駕駛中的關鍵技術,對自身進行位置預測并進行行駛控制,首先需獲取自身和周圍障礙物的狀態,然后再結合相關算法對自身進行預測,得到運動軌跡或者修改運動方向[1]。
現在對于車輛預判主要分為兩種:一種是目標跟蹤預判,另一種是感應障礙物預判[2]。目標跟蹤預判是使用定點攝像頭實時獲取的車輛視頻進行目標跟蹤,預測車輛的運行軌跡。感應障礙物預判是通過車輛上的傳感器,判斷四周的障礙物距離,并根據距離變化預判是否有障礙物在當前的運行軌跡上,從而對車輛發送避讓或等待的信號。目前谷歌和百度無人車使用的都是感應障礙物預判,其中百度無人車1 輛車1 天需要處理超過10T 的數據[3]。
本文提出了一種利用車輛自身的傳感器進行車輛預判和控制的方法,使用輪胎旋轉角、轉速、當前位置得到車輛狀態,保存車輛的運動信息到數據庫,再通過神經網絡與PID 控制結合的算法對車輛進行預判,計算使車輛通過目標路徑需要修改的參數,并對車輛進行控制。
目標車輛的信息提取是車輛預測和控制的前提[4],本文使用的是直接從車輛上的傳感器獲取車輛信息,其中包括行駛速度、輪胎旋轉角度、車身旋轉角度以及單位時間車輛的位移,對車輛進行控制是對行駛速度和輪胎旋轉角度進行修改。
與從視頻流進行目標提取相比,使用車輛上的傳感器信息直接避免了多目標跟蹤問題,利用慣性位置傳感器可以得到需要的所有數據,荷蘭Xsens公司的MTi-G-700 系列返回的數據不僅包括了速度、位移,還包括了加速度、經緯度、海拔。
將所得的數據進行歸一化處理時,將三方向的速度、位移、加速度僅使用橫向和深向數據,計算出大小和方向,保留縱向數據作為參考車輛是否處于有坡度的路面。將速度的方向記為輪胎的方向,位移的方向記為車身的方向,車身及輪胎的夾角記為輪胎的旋轉角度。LSTM 的輸入輸出均為0~1 之間的實數向量,表1顯示了各數據的統一單位。

表1 歸一化后各數據單位
本文使用的算法實際上是將LSTM 與PID 結合,基本思想是利用LSTM 實現車身方向及移動距離預測,而PID 控制可以利用比例、積分、微分元減少誤差[5],從而在長距離的預測上,累積的誤差不會影響對車輛的控制。為了實現對無人車的實時控制,也是不斷地從行駛中的無人車獲取數據,并將真實數據輸入模型重新計算對無人車的控制[6]。
為了預測車輛的運行軌跡建立的模型實際分為預測位移和預測下一時刻的車輛狀態兩個部分。預測位移部分的輸入層r(t)包括速度大小vt、加速度大小at、速度方向rt、上一時刻位移方向rst-1,輸出層為車輛移動距離dt和當前時刻位移方向rst。預測車輛狀態的部分輸入層與預測位移部分的輸入相同,輸出層為vt+1、at+1、rt+1、rst。
圖1 為本文使用的兩種神經網絡結合的方法,在模型訓練時期,首先輸入無人車的狀態,使用LSTM 神經網絡得到初步的預測結果,將初步的預測結果和輸入層的數據傳輸到PID 神經元網絡,利用PID 控制中的積分、微分神經元對預測結果進行精細的調整[7~8],將預測結果發送到無人車上作為控制的依據,將無人車狀態反饋給原始輸入,實現監督學習。

圖1 LSTM與PID控制結合的方法
使用LSTM 神經網絡而不是其它類型的神經網絡是為了盡量減少車輛信息獲取時的干擾數據對模型訓練的效果影響。與其他的神經網絡模型相比,LSTM 可以存儲單元狀態用于決定當前的數據是否需要保存。
將LSTM 和PID 結合可以采用無監督學習的方式,利用現有的大量經驗數據,確定網絡權重初值,再根據控制效果進行在線學習和調整,使系統具備較好的性能,也能使控制系統保持初始穩定,從而達到系統的全向穩定[9]。
在數據的預處理過程中,除了要將需要進行訓練的數據提取出來并做歸一化處理,還需要去除數據來源中的干擾數據,否則在訓練模型時輸入的數據是帶有噪聲的,很有可能造成“過擬合”的現象,使在之后的控制中會針對預測出的噪聲進行控制[10~11]。
數據中的沖擊就是突然的極大極小值,由于數據的歸一化處理使得所有的數據都變成0~1 之間的常數,數據間的差變小,而且突然的極大值有可能在經過處理后是大于1 的常數,所以這一類的噪聲需要在進行數據的歸一化處理之前就解決。
進行歸一化處理前的數據包括速度、加速度、輪胎方向、車身方向、位移[12]。判斷沖擊點即判斷該點是否是極值點,并且與左右相鄰點相比陡變。
以速度為例,進行沖擊的判斷及處理。以時間為橫坐標,速度為縱坐標作出速度的變化曲線。圖2(a)顯示的是標注曲線中所有的極大值和極小值點,判定條件是當前時間的速度值vt低于相鄰的速度值vt-1、vt+1即為極小值,用“*”標注。極大值的點用“o”標注。圖2(b)顯示的是去除不是沖擊的極大極小值點,判定標準為該點是否為突變。對極小值而言,若左右兩邊的曲線同為下降曲線或同為上升曲線,則該點必為沖擊;若該點與相鄰點連線的斜率均超過相隔一個點的連線的斜率,則該點為沖擊。圖2(c)顯示的是處理后的速度曲線,處理方法就是修改沖擊的值為相鄰時刻兩個值的均值。
對判定為沖擊點的處理辦法是取均值,處理后的點vm大小介于vm-1和vm+1之間,使得該點不再是極值點。相鄰的兩個點以vm-1為例,即使假設該點為極值點,從該點向后取點,該點與第一、第二個點位于同一條直線上,斜率相同,不滿足判定點陡變的。進行修改的后點不是沖擊,相鄰的兩個點也沒有變成新的沖擊。

圖2 速度的變化曲線
高斯白噪是指噪聲幅度滿足高斯分布,而頻率又是均勻分布的,可以使用多層數據平均去高斯白噪聲的方法[13]。在進行模擬去除高斯白噪時,先載入一部分數據,此處為了顯示效果使用了一部分的速度數據。圖3(a)顯示的是該段數據添加高斯白噪聲后的波形圖,圖3(b)顯示的是原始的數據和去噪后數據的波形圖對比。
去除高斯白噪聲的方法是循環多次向原始數據中加入高斯白噪保存為新的數據,將所有加入噪聲后的數據求和并除以循環次數,這就是平均去高斯白噪聲的方法。因為高斯白噪聲分布均勻,多次加入這樣的噪聲能夠達到均衡的效果,所以可以使用這樣的去噪方法。
從圖3(b)中可以看出原始數據和去噪后的數據相比,所有的數值都更大,這是由于加入的噪聲產生的。如圖所示,數據越小,去噪后數據與原始數據更接近,可以利用這一點找到最接近的點的范圍,在以后的歸一化處理時,可以將數據處理為該范圍內的值進行去噪后再還原成原值進行其他處理。

圖3 添加高斯白噪聲后和原始去噪后數據的波形圖對比
在本文中僅使用了一種神經元網絡,即PID 神經元網絡。PID 神經元網絡使用的PID 控制和LSTM 神經元網絡結合,LSTM 實際上是對RNN 的隱層進行了較為復雜的修改,但是所有的輸入和輸出模式是相同的。

圖4 訓練集輸入輸出關系
該模型的訓練集包括了輸入和理想輸出,輸入為t時刻的速度vt、加速度at、速度方向rt、t-1時刻的位移方向rst-1,輸出為t 時刻的位移距離dt和位移方向rst,t+1 時刻的速度vt+1、加速度at+1、速度方向rt+1。所有輸入的都是理想輸出,在模型的訓練過程中會不斷產生計算的實際輸出,用兩者的誤差不斷更新模型中的權重,使實際輸出不斷靠近理想輸出。
算法驗證使用了將xsense 公司的MTi-G-700系列放置在悅達起亞K3車輛上在公路上行駛采集到的數據,并將數據分為了起步、直行、轉彎、變道、倒車、停止多種類別。為方便進行數據的訓練,所以選擇讀取頻率為50Hz。對于車輛的預測方面使用Python 編輯神經網絡的部分并加以訓練得到模型,而控制方面是在把計算獲得的控制數據傳輸到模型中后,測試得到每一步的位移,利用Matlab 將車輛的位置記錄下來作為運動軌跡[14]。
在本文中使用該系統分別進行了使用正常數據和分別添加沖擊、高斯白噪聲的數據訓練模型,在用該模型進行車輛預測和給定目標位置進行車輛控制的試驗。以下是使用正常數據進行訓練得到的試驗效果。
圖5 中顯示的為車輛向右變道時預測的行駛軌跡。從圖中可以看出僅在車輛轉向的前期有較明顯的表示,其他時刻的預測軌跡與實際軌跡的誤差可以忽略不計。該系統可以不斷地預測和輸入實時數據,從而更改自己的預測軌跡,這是在工作的同時進行無監督學習,可以使系統計算更準確[15]。

圖5 車輛變道軌跡預測
圖6 中的顯示為給定不同的目標位置后,模擬仿真得到的車輛運動軌跡。從圖中可知每一條軌跡都是可以到達目標位置,并且軌跡平滑,可以通過實際操作實現,對于速度和方向的控制沒有突然的變化。但是從圖中可以看出,當目標位置在車輛速度的反向并且距離較遠時,控制選擇的路徑是倒車,速度與前進速度相同,既不能保障車輛安全,也超過了車輛倒車的速度極限。
本系統中對于干擾的處理是將突變的點都變為符合整個車輛狀態變化趨勢的值,使車輛的控制都是漸變的,并且所有的預測都是與車輛當前的狀態同時進行的[16]。當預測與車輛實際行駛有誤差時,會實時修改參考數據,使預測向實際靠近。
第4 節中介紹了該模型對沖擊或者高斯噪聲型干擾作出的處理,經過處理后的數據可以很好地進行車輛的行駛軌跡預測工作,證明了該系統具有良好的靠干擾能力。

圖6 控制的軌跡顯示結果
所有的系統設計最終目標都是投入到實際應用中,本系統應當可以應用于更多場景,更復雜的道路環境。本文采用的算法在模型訓練中所有的數據都是相對的,是當前時刻與前一時刻汽車狀態的變化值。所以從理論上來說,不同的車型在同一位置、同一狀態出發,經過相同的控制后,應到達相同的位置并且車輛處于相同的狀態。
本文從汽車正常行駛中獲取數據并采用LSTM與PID 控制結合的方法訓練得到模型,該模型可以很好地預測汽車行駛路線,同時可以在知道目的地后計算需要對車輛進行的一系列控制,并根據這些控制仿真運行到達目標位置。
由于本文采用的神經元網絡和PID 控制結合的方法結構復雜、不能避免神經網絡自身缺陷,所以該算法訓練復雜度高,訓練速度慢,若出現了“過擬合”的現象,需要重新訓練。在車輛控制方面還存在著問題,輸入的目標位置為當前行駛路線的反向時,預測的路線沒有包括車輛調轉方向的軌跡,并且在所有預測軌跡中,對方向進行修改都是在沒有控制車輛速度,不符合實際道路行駛要求,在今后的研究中需要先進行行駛軌跡的計算。