袁 娜,史 昕,趙祥模
(長安大學 信息工程學院,西安 710064)(*通信作者電子郵箱1782709730@qq.com)
近年來,車聯(lián)網的研究熱潮推動了交通行業(yè)的推陳革新,現代交通逐漸向高效、安全、環(huán)保方向發(fā)展。文獻[1]中提出軌跡規(guī)劃作為車聯(lián)網環(huán)境中的一項重要技術,被廣泛地應用到智能車的軌跡選擇、智能機器人等領域。文獻[2]中提出一種對于交通路網中車輛軌跡規(guī)劃算法是建立在非線性預測算法的基礎上的觀點。文獻[3]中應用模糊邏輯控制方法來提高“智能繩”系統(tǒng),實現區(qū)分小的非自愿力量和預定的航行運動,利用智能手機攝像頭作為機器人視覺,完成導盲犬機器人的跟蹤、導航和避障。文獻[4]中提出了一種基于向前預測的局部路徑規(guī)劃算法,在不依賴全局定位的情況下實現規(guī)劃時間的一致性,同時用通行區(qū)域取代原有不具有寬度的路徑規(guī)劃進行避障分析。文獻[5]中提出了一種利用時間狀態(tài)控制形式的車輛的新軌跡控制方法,并進行了旋轉和擴張坐標變換,進而實現任意期望的曲線軌跡的控制方法。文獻[6]中利用時間尺度變換和精確的線性化設計一個鉸接式車輛的軌跡跟蹤控制器,該控制器沿著任意軌跡運動,實現車輛的軌跡跟蹤。文獻[7]中根據車輛換道時的期望橫擺角、橫擺角速度和橫擺角加速度,利用車輛側向動力學模型,提出了一種彎道上車輛換道軌跡的規(guī)劃方法。文獻[8]中提出一種根據泊車終點環(huán)境障礙約束、泊車終點位置約束等,以泊車終點車輛與車位夾角最小為目標建立多約束的車輛泊車軌跡函數。文獻[9]中基于彈性帶理論的軌跡規(guī)劃方法,提出了一種自主車輛緊急機動的軌跡規(guī)劃方法。文獻[10]中提出了一種最大最小螢光素值人工螢火蟲算法,通過對熒光素的變化范圍加以限定,給出最大最小螢光素值范圍,從而避免算法陷入局部最優(yōu)。文獻[11]中在人工魚群算法的尋優(yōu)策略上提出了適時調整自身視野和步長的優(yōu)化改進,對魚群的收斂速度和局部極值方面均有所提高。關于車輛軌跡規(guī)劃的文獻研究在車輛軌跡規(guī)劃中對周圍車輛的信息利用較少,導致為車輛規(guī)劃的軌跡并不適用于道路車輛數目較多的場景。在多車軌跡融合的場景,車輛很容易陷入自身軌跡最優(yōu),而個體之間軌跡最優(yōu)值差異較大的情況,導致車輛的安全性以及道路整體通行效率降低。
車聯(lián)網環(huán)境下道路車輛數目較多,車輛在行駛過程中受到來自周圍車輛以及行駛環(huán)境中其他因素的影響較大,為提高道路交通的高效性和安全性,本文提出一種以專用短程通信(Delicated Short Range Communications, DSRC)技術通信的車聯(lián)網應用場景為基礎,引入萬有引力模型與避障模式控制,利用改進人工魚群算法實現車輛軌跡規(guī)劃的方法。對車聯(lián)網環(huán)境下的車輛探測區(qū)域進行重新規(guī)劃,設計車輛在不同探測區(qū)域對目標車輛的作用力,對車輛行駛環(huán)境進行受力分析,利用改進的人工魚群算法找到車輛的全局最優(yōu)軌跡,結合避障模式控制,計算車輛的局部軌跡中可安全駕駛最優(yōu)速度,并通過仿真實驗驗證算法的可行性和優(yōu)越性。
人工魚群算法是根據魚群在水中的運動規(guī)律所提出的一種用于解決軌跡規(guī)劃的算法。在一片水域中,單只魚找到食物的能力較低,但是當魚以群體出現時,往往更加容易找到營養(yǎng)物質較多的地方,因此魚生存數目較多的地方一般也是水域中營養(yǎng)較為豐富的地方。人工魚群算法根據這一特點,通過構造人工魚來模仿魚群的覓食。人工魚群算法的核心思想是人工魚在群體活動時,人工魚的下一刻行為取決于上一刻自身和周圍魚的狀態(tài)和環(huán)境的影響。人工魚群有四類行為:隨機行為、覓食行為、聚群行為和追尾行為[11]。
隨機行為是指單獨的人工魚Fishi在水中是隨機移動一步,到達一個新的狀態(tài),公式如下:
(1)
覓食行為是指人工魚循著食物多的方向游動的一種行為。人工魚Fishi在視線范圍內隨機尋找一個人工魚Fishj作為目標,若目標人工魚Fishj周圍的食物密度更大,人工魚Fishi就會游向目標人工魚Fishj;否則,人工魚會放棄該目標,尋找新的目標。公式如下:
(2)
聚群行為是指人工魚Fishi搜索視線范圍內的周圍魚群并找到中心位置Fishc,當中心位置Fishc的周圍擁堵情況優(yōu)于Fishi當前位置的周圍擁堵情況時,人工魚Fishi就會向中心位置Fishc移動,否則就執(zhí)行覓食行為。人工魚在聚群時會遵守三個規(guī)則,包括分割規(guī)則、對準規(guī)則和內聚規(guī)則,公式如下:
(3)
追尾行為是指當人工魚Fishi視線范圍內的人工魚Fishj周圍的食物密度Yj大于人工魚Fishi的食物密度Yi時,人工魚Fishi會尾隨Fishj快速找到食物,公式如下:
(4)
其中:Fishi和Fishj為人工魚的個體狀態(tài);Yi和Yj為人工魚Fishi和Fishj周圍的食物密度;Visual為視野;Step為步長;Rand為隨機數。
在車聯(lián)網環(huán)境下,車車和車路間通過無線通信來實現信息之間的實時通信及傳遞,車車之間可以通過位置共享,結合先進的傳感器技術,互相感知對方。在車聯(lián)網中基于魚群算法的車輛軌跡規(guī)劃,主要包括四種控制方法:車輛自組織行為控制、車輛速度控制、障礙物避撞控制和道路邊緣避撞控制。
2.1.1 目標車輛感知區(qū)域定義
將目標車輛的探測區(qū)域與人工魚群個體的感知區(qū)域類比,標記目標車輛為V0, 以V0幾何中心為圓心、R為半徑的范圍Scom為V0的有效通信區(qū)域,R為車載設備的通信半徑;Rentity為半徑的范圍Scol為V0的碰撞檢測區(qū)域,L為V0的長度,Rentity=L/2,且Rentity Sattr=Scom-Scol (5) 車輛正前方左右兩邊各45°的扇形范圍作為V0的前方探測區(qū)域Sfrnt;車輛正后方左右兩邊各45°的扇形范圍作為V0的后方探測區(qū)域Srear。Sleft為V0的左探測區(qū)域,Srigh為V0的右探測區(qū)域,其中 Sleft+Srigh+Sfrnt+Srear=Sattr+Seol=Scom (6) 定義d(i, j)為車輛Vi到車輛Vj之間的距離,計算公式如下: d(i, j)=‖Vi-Vj‖ (7) 定義車輛Vi探測區(qū)域內的車輛Vj為車輛Vi的鄰居,滿足在Area區(qū)域內的車輛Vj為Vi的正常鄰居,Area計算公式如下: Area={Vj|r (8) 將車輛V0與人工魚進行類比分析,V0在下一時刻的最佳行駛狀態(tài)應具有以下特征: 1)速度大小和方向盡可能與鄰居保持基本一致;2)與鄰居保持安全距離。 為滿足條件(1),設定V0會受到的作用力,為保證V0在下一時刻的速度與周圍鄰居在速度的大小和方向上保持一致,較為合理的設定是,V0在下一時刻的速度在大小和方向上都趨于所有鄰居的平均值,計算公式如下: (9) 其中:vj為Vj當前時刻的速度;N為V0在Scom內的鄰居的數目。此時V0所產生的加速度計算公式如下: a=vave-v0 (10) 其中:v0為V0當前時刻的速度。根據式(9)~(10)整理得到所產生的加速度計算公式如下: (11) 由于周圍車輛所在探測區(qū)域以及與V0之間距離的不同,進而對車輛的影響權重也不同。因此對式(6)進行改造,對不同的速度取不同的權重,權重的大小代表了它在該區(qū)域中對V0產生的影響大小。通過對萬有引力F引的分析,任何兩個物體之間的引力都是兩者之間距離r的平方的倒數成正比,根據這個啟示,對式(11)中的平均值進行修正。萬有引力公式為公式(12),平均值修正結果為公式(13): F引=GM1M2/r2 (12) (13) 將式(13)代入式(9)中,就得到V0受到周圍所有鄰居的合力作出合理的假設,公式如下: (14) 其中:C2是計算V0受到作用產生加速度時1/(Nm)所產生的數量級的彌補;m為V0的質量;k為Vj對V0所產生作用力的系數因子。 此時,V0在F0的作用下軌跡坐標變化為: F(t)=ma (15) (16) 其中:Δt為系統(tǒng)更新速度頻率的倒數;X(t)為t時刻V0位置的橫坐標;Y(t)為t時刻V0位置的縱坐標;vx(t)為t時刻V0速度的橫向分量;vy(t)為t時刻V0速度的縱向分量;ax為t時刻V0在作用力F(t)下產等的加速度的橫向分量;ay為t時刻V0在作用力F(t)下產等的加速度的縱向分量。在式(10)和式(11)中k的值是動態(tài)的,計算公式如下: k=k1×ω (17) 其中:ω是探測區(qū)域影響因子,根據Sfrnt、Srear、Sleft、Srigh的不同,ω會對應取ω1、ω2、ω3、ω4進行計算;k1會根據Sexcl、Sattr的不同,對應取-1和1進行計算。 根據式(9)可以得到,由于速度為矢量,車輛在每一時刻所得到的車速都具有一定的大小和方向,故可以得到車輛在眾多車輛中的每一時刻與其他車輛保持協(xié)同的最佳軌跡。 2.1.2 探測區(qū)域影響因子 根據Scom中Vj的位置及行駛信息的不同,確定對V0的影響程度,將Vj對V0的影響因子記為ω。對ω進行分類:ω1為Sfrnt區(qū)域中Vj對V0的影響因子;ω2為Srear區(qū)域中Vj對V0的影響因子;ω3為Sleft區(qū)域中Vj對V0的影響因子;ω4為Srigh區(qū)域中Vj對V0的影響因子,其中比重大小為ω1>ω2>ω3=ω4。根據城市道路設計規(guī)范、車輛的尺寸以及車輛之間安全距離的計算規(guī)則,設定取值范圍如下: ω1∈[0.875 0,1.043 4) (18) ω2∈[0.437 5,0.521 7) (19) ω3=ω4∈[0.182 3,0.198 0) (20) 當Scom中Vj發(fā)生了不同程度的緊急制動時,相應的ω會有所變動,公式如下: Δω=0.1×ω (21) 根據加速度變化前后大小及方向的不同可以分為以下六種情況: 情形一:ah與at方向一致與車輛行駛方向相同,且|ah|≥|at|; 情形二:ah與at方向一致與車輛行駛方向相同,且|ah|<|at|; 情形三:ah方向與車輛行駛方向相同,at方向與車輛行駛方向相反; 情形四:ah與at方向一致與車輛行駛方向相反,且|ah|≥|at|; 情形五:ah與at方向一致與車輛行駛方向相反,且|ah|<|at|; 情形六:ah方向與車輛行駛方向相反,at方向與車輛行駛方向相同。 其中:ah代表變化前的加速度;at代表變化后的加速度。根據對ah和at的分析,當ah和at方向一致的情況為正常駕駛行為的概率較高,當ah和at的方向不一致的情況為車輛的異常駕駛行為的概率較高。 根據采集到的所有車輛行駛數據,對所有車輛的加速度a做分解,以道路的延伸方向為縱向,垂直于道路方向為橫向,分別計算車輛的橫向加速度ax和縱向加速度ay,計算公式如下: a=ax+ay (22) (a)2=(ax)2+(ay)2 (23) 假定在Sfrnt中Vj的縱向加速度為情形三時,則Vj采取急剎車措施,為保證V0和Vj兩車之間的相對安全,此時Vj所對應的ω1會有所提高;在Srear中Vj的縱向加速度為情形六時,則認為Vj采取了急加速措施,為保證V0和Vj兩車之間的相對安全,此時Vj所對應的ω2會有所提高;在Sleft中Vj的橫向加速度為情形三時,認為Vj采取了轉彎制動措施,為保證V0和Vj兩車之間的相對安全,此時Vj所對應的ω3會有所提高;在Srigh中Vj的橫向加速度為情形六時,認為Vj采取了急轉彎措施,為保證V0和Vj兩車之間的相對安全,此時Vj所對應的ω4會有所提高。 在實際場景中,道路一般都對車輛有限速要求,為保證車輛在道路環(huán)境中的安全性,引入車輛速度控制模式。為保證車輛在道路中行駛的速度在道路要求的最小限速和最大限速之間,要求當車輛在沿道路的橫向和縱向上的分量小于最小限速或者大于最大限速時,具有相反方向速度分量的車輛的K系數會相應的提高,這樣就保證了車輛在某一方向上車速低于最小限速或者高于最大限速的情況出現時,車輛在道路行駛中速度安全。 車輛在運動過程中會遇到各種不同的交通環(huán)境,這些環(huán)境中有可能出現行人、摩托車、電動車等一些實體,將這些實體都稱為障礙物[12-14]。當障礙物出現在車輛的通信排斥區(qū)域中,為保證車輛在整個行駛中不與障礙物發(fā)生碰撞并安全通過,假設車輛會受到來自障礙物的排斥力,受力分析如圖1所示。 圖1 車輛和障礙物之間分布示意圖Fig. 1 Schematic diagram of distribution between vehicles and obstacles 障礙物排斥力F的方向為遠離障礙物,F的大小定義為: |F|= (24) 其中:L為車輛質心與障礙物質心之間的距離;r1是車輛的實體半徑;r2是障礙物的實體半徑;P1是車輛的質心位置,P2是障礙物的質心位置,兩者質心與車輛行駛方向所成角度為α;vx為此刻車輛的橫向速度;vy為車輛的縱向速度。 當障礙物進入車輛的通信排斥區(qū)域中時,車輛會計算兩者之間是否會有碰撞的可能性,當L×sin(α)>r1+r2時,車輛以當前速度且保持方向不變繼續(xù)行駛不會發(fā)生碰撞,當L×sin(α)≤r1+r2時,車輛以當前速度且保持方向不變繼續(xù)行駛會與障礙物發(fā)生剮蹭或碰撞,此時車輛與障礙物縱向為可行駛距離s,計算公式如下: s=L×cos(α)-r1-r2 (25) 在以當前速度行駛且不采取任何措施的情況下,可行駛時間為t,計算公式如下: t=s/|vy| (26) 由此可以得出,要保證車輛在t時刻后不與障礙物發(fā)生碰撞,此時所需的加速度a的計算公式如下: |a|= (27) 要產生大小為|a|的加速度,且方向與車輛橫向速度方向相反,此時車輛應該受到障礙物的力F的大小應為: |F|=m×|a| (28) 此時,車輛在受到障礙物的作用力F,Δt時刻后,車輛的軌跡坐標為: (29) 道路邊緣與障礙物對車輛的約束類似,區(qū)別在于,障礙物可以當作質點,而道路邊緣是直線,當在車輛的通信排斥區(qū)中檢測到道路邊緣時,為保證車輛在行駛中不與道路邊緣發(fā)生碰撞并能夠安全通過,假設車輛會受到來自道路邊緣的排斥力,如圖2所示。 圖2 車輛與道路邊緣的分布示意圖Fig. 2 Schematic diagram of the distribution between vehicles and road edges 道路邊緣的排斥力F方向為遠離通信排斥區(qū)檢測到的道路邊緣的方向,F的大小定義為: (30) 其中:車輛的行駛方向與道路邊緣之間的夾角為α;車輛質心與道路邊緣的垂直距離為L;車輛的實體半徑為r;車輛的質心位置為P;道路邊緣位置為l;車輛質心與道路邊緣位置的距離為d(P,l);車輛的車載設備通信半徑為R;車輛的橫向速度為vx;車輛的縱向速度為vy。 當在車輛的通信排斥區(qū)中檢測到道路邊緣時,若車輛在不采取任何措施的情況下,車輛所能保持的最長安全時間為t=(L-r)/|vx|,之后車輛就會與道路邊緣發(fā)生碰撞。要保證車輛與道路邊緣不發(fā)生碰撞,車輛要橫向上采取的最小加速度為a,應滿足式(31)~(32): |vx|t+|a|t2/2=L-r (31) |vx|+|a|t=0 (32) 由式(25)~(26)整理可得加速度a的大小為: (33) 要產生大小為|a|的加速度,且方向與車輛橫向速度方向相反的加速度,此時車輛應該受到道路邊緣的作用力F為: (34) 當車輛在受到道路邊緣的作用力F,Δt時刻后,車輛的軌跡坐標為: (35) 本文應用Matlab對車聯(lián)網環(huán)境下的改進人工魚群算法進行驗證,如圖3~6所示,分別對車輛的自組織行為、速度控制以及障礙物避障控制進行仿真驗證。依據改進的人工魚群算法,隨機選取4輛車和8輛車作仿真驗證,在道路所在平面建立直角坐標系,以道路橫向位移為x坐標,以道路縱向位移為y坐標。 圖3 車輛數目為4時車輛的軌跡Fig. 3 Vehicle trajectory for 4 vehicles 圖4 車輛數目為8時車輛的軌跡Fig. 4 Vehicle trajectory for 8 vehicles 圖5 車輛速度-時間變化圖Fig. 5 Vehicle speed-time change chart 根據圖3~4可以發(fā)現,車輛之間經過一段時間的迭代,車輛軌跡之間趨于一致,這說明了車輛之間的自組織行為。車輛在行駛初期,車輛軌跡之間相互交錯,波動性比較大,這主要受車輛之間的影響較大,也體現出人工魚在群體內的活動。由于初始化時車輛的位置、速度和方向都是隨機設定的,車輛軌跡在從不穩(wěn)定到穩(wěn)定的過程中,會出現不同的軌跡情況,但根據算法中公式的設定,各個車輛之間會在最終趨于穩(wěn)定。 根據城市道路交通中車輛的運行狀況分析可知,車輛在群體中行駛時所能感知的最多車輛數目大約為40。仿真實驗以車輛數目為2、4、8、16、32和40時,分別實驗300次,記錄車輛軌跡趨于一致時的迭代次數,通過計算可以得到在300次實驗中的平均迭代次數、迭代次數方差、最少迭代次數和最多迭代次數,相關數據如表1所示。 表1 車輛數目變化時對應的迭代次數(300次實驗)Tab. 1 Number of iterations when the number of vehicles changes (300 experiments) 根據表1可知,當改變車輛數目時,車輛軌跡趨于一致所經過的迭代次數會有所不同,車輛數目增加時所需要的迭代次數會增加,這是由于車輛的初始狀態(tài)的不同會導致車輛的相互影響變大。 圖5為3輛不同車輛在不同限速要求下車輛速度隨時間的變化情況。在仿真實驗中,首先對三輛車的安全駕駛速度設定為10~30 m/s進行一次實驗,再將三輛車的安全駕駛設定為10~25 m/s進行一次實驗,且車輛的初始速度在該范圍內隨機生成。在行駛初期,車輛會受到道路邊緣、障礙物或者其他車輛的吸引力或斥力作用,所以車輛的速度會處于波動中,經過一段時間的相互作用后,車速基本穩(wěn)定在實驗設定的最高安全駕駛速度處,即在30 m/s和25 m/s處。 圖6為以道路右側45°為橫坐標,以道路左側45°為縱坐標時,車輛在兩次遇到障礙物的情況下,避撞控制下的車輛軌跡圖。當車輛遇到障礙物時,車輛會受到來自障礙物的排斥力,在排斥力的作用下,車輛會根據障礙物的位置,調整車輛的軌跡,避免發(fā)生碰撞。 圖6 避障控制下車輛軌跡Fig. 6 Vehicle trajectory under obstacle avoidance control 表2 軌跡融合中三種算法的迭代次數Tab. 2 Number of iterations of three algorithms in trajectory fusion 在實驗環(huán)境中,車輛的初始位置及初始狀態(tài)隨機生成,設定車輛數目依次為2、4、8、16、32和40,在每種車輛數目情況下,依次采用螢火蟲算法、傳統(tǒng)人工魚群算法以及改進后的人工魚群算法,分別進行300次實驗,記錄不同車輛數目在采用三種算法后實現軌跡融合所經過的最大迭代次數、最少迭代次數以及平均迭代次數。算法比較時參數均取多次實驗得到最佳收斂性的相關值。傳統(tǒng)人工魚群算法中,設定最大迭代次數為300,最大試探次數為100,擁擠度因子為0.8,初始化視野為5;螢火蟲算法中,熒光素更新率為0.004 8,熒光素消失率為0.9,動態(tài)決策域更新率為1,迭代次數為300;改進后的人工魚群算法中,更新頻率為1 Hz,前后左右區(qū)域因子大小分別為ω1=0.9,ω2=0.5,ω3=ω4=0.19。表2為三種算法在車輛軌跡融合中所需要的迭代次數,通過表2可發(fā)現,采用改進后的人工魚群算法,相對于原人工魚群算法和螢火蟲算法,車輛軌跡融合時經過的平均迭代次數最少,測試車輛數為2~40時,平均迭代次數大大減少,迭代效率分別提高3~7、4~8倍,且平均迭代次數受車輛數量的影響較小,驗證了改進后的人工魚群算法在實現車輛軌跡融合時較螢火蟲算法和傳統(tǒng)人工魚群算法有更好的效果。 利用人工魚群算法的收斂性與車聯(lián)網相結合,提出了一種對人工魚群算法的優(yōu)化改進策略,使其適用于車聯(lián)網環(huán)境,引入萬有引力模型與避障模式控制,通過對車輛探測區(qū)域進行細化,并對車輛與障礙物、道路邊緣以及周圍車輛之間的數據進行分析,從而對車輛的行駛速度和軌跡作出合理的規(guī)劃,實現多車軌跡融合時的全局最優(yōu),同時對目標車輛在不同方向上是否有異常行為的出現進行判斷和有效預防,從而保證車輛的安全駕駛。仿真實驗結果表明,本文方法具有一定的可行性和合理性,能為行車安全以及提高道路通行效率起到良好的輔助作用。2.2 車輛速度控制
2.3 障礙物避碰控制
2.4 道路邊緣避碰控制
3 實驗
4 結語