文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.166484
中文引用格式: 唐焱,肖蓬勃,,李發(fā)琴,,等. 避障最優(yōu)路徑系統(tǒng)研究[J].電子技術(shù)應(yīng)用,2017,,43(11):128-131,,135.
英文引用格式: Tang Yan,Xiao Pengbo,,Li Faqin,,et al. Research of urban traffic obstacle avoidance and early warning system[J].Application of Electronic Technique,2017,,43(11):128-131,,135.
0 引言
隨著城市繁華區(qū)域車輛行駛密度的增加,行車過程車道上阻礙行車的各類移動,、固定障礙物出現(xiàn)頻數(shù)不斷增多,,嚴重影響行車速度,,這是導(dǎo)致區(qū)域交通擁堵的主要因素之一,。有關(guān)研究表明:駕駛者從觀測,、判斷到駕駛動作的執(zhí)行,,以及車輛控制系統(tǒng)的反應(yīng),,所需總時間在1.87 s以上,,其中人員生理反應(yīng)時間約占60%~70%[1],。因此在一定車速條件下,人工操作避障極易發(fā)生車輛與障礙物之間的碰撞,,導(dǎo)致在車道障礙物較多的交通環(huán)境中難以實現(xiàn)自動駕駛。利用安裝于車輛前方的超聲波等探測系統(tǒng)進行路障信息采集,,由車載電腦作數(shù)字化處理并及時反饋和視頻預(yù)警[2],,將有效保證繁華市區(qū)行車安全和提高行車速度,。
1 避障系統(tǒng)核心算法
1.1 人工勢場法
車輛行駛速度受行駛目的地,、車道障礙物兩方面的因素影響,。在繁華城區(qū)的行駛要求所有車輛能安全,、迅速通過,,從而對交通環(huán)境影響程度達到最小,。人工勢場法原理表明,,動態(tài)物體在設(shè)定的空間按預(yù)期目的地運動時,,存在兩種物理勢場的影響,,即預(yù)期目的地吸引力和運動過程沿途障礙物的排斥力,。運用多目標優(yōu)化處理的方法,合理解決上述吸引和排斥的矛盾,,能獲得安全高效的運動方案[3],。
1.2 A*搜尋算法
A*搜尋算法是一種探測性的算法,其是一種在平面圖形中求出最低成本的算法,。規(guī)劃合理的行車路徑,減少擁堵,,降低運營成本是A*搜尋算法應(yīng)用的重要領(lǐng)域之一。A*算法基本思想是通過劃分網(wǎng)格,,計算起點到當前點的距離G和目標點到當前點的距離H的和,,通過比較大小,,把可能通過的點儲存進open列表,,而不會考慮的點則儲存進closed列表,。
1.3 粒子群算法(ACO)
粒子群算法(PSO)是一種群智能算法,,其基本思想是模擬鳥群覓食的行為,,通過鳥類之間的集體協(xié)作使群體飛行路線最優(yōu)的算法[4],。在粒子群算法中,,用無質(zhì)量無體積的粒子作個體,,并且為每個粒子規(guī)定一定的運動規(guī)則,,從而使整個群體表現(xiàn)出一定的復(fù)雜特性,。PSO概念簡明,無需復(fù)雜的調(diào)整,、收斂速度快,,收斂準確,、設(shè)置參數(shù)少,、實現(xiàn)簡單,且其數(shù)學(xué)基礎(chǔ)相對薄弱,,沒有系統(tǒng)的數(shù)學(xué)基礎(chǔ),。
1.4 矩陣實驗室(MATLAB)
MATLAB是適用于數(shù)值計算,、數(shù)據(jù)分析及可視化,、算法開發(fā)等場合的高級技術(shù)計算語言,具有矩陣運算,、繪制函數(shù)、數(shù)據(jù)圖像等功能,,本研究即在交互式環(huán)境中對算法進行編程,,進行特定算法計算,,實現(xiàn)動態(tài)仿真和數(shù)據(jù)輸出,。
2 路徑規(guī)劃算法原理
2.1 人工勢場法原理
2.1.1 人工勢場法函數(shù)
經(jīng)典勢能函數(shù)將運動物體(汽車)作為一個運動質(zhì)點置于虛擬人工勢場之中:運動終點與汽車相互作用產(chǎn)生的引力場用式(1)表示,,障礙物與汽車相互作用產(chǎn)生的斥力場用式(2)表示[5-10],,即:
輸入初始條件,、汽車信息等參數(shù),,實時采集并更新車道環(huán)境參數(shù),,建立動態(tài)勢場分布,,在虛擬力的作用下完成路徑規(guī)劃,。
2.1.2 人工勢場法程序設(shè)計及仿真結(jié)果
基于人工市場法在MATLAB環(huán)境進行設(shè)計,。
初始條件為:起始點為(10.5,,10.5),終點(1.5,,1.5),。系統(tǒng)參數(shù)為:引力的增益系數(shù)k=20,;斥力增益系數(shù)m=20,;障礙影響距離P=1,;障礙個數(shù)n=8,;步長a=0.5,;l=0.4,;循環(huán)迭代次數(shù)j=200,。
基于人工勢場法設(shè)計的路徑規(guī)劃如圖1,,障礙物為實心圓圈,,空心圓圈代表障礙物的大小是障礙物半徑和障礙物的斥力之和,,因此路徑會進入障礙物范圍;將信息數(shù)據(jù)輸入式(1),、式(2)運算行車終點引力和障礙斥力總和,,獲得安全避障行駛的相關(guān)數(shù)據(jù),。
2.2 A*搜尋算法(a星算法)
路徑優(yōu)化的第一步是把地圖簡化成容易控制的搜索形式,,即通過劃分網(wǎng)格,,把本文的地圖劃分為10×10的小網(wǎng)格,。
2.2.1 A*算法的相關(guān)參數(shù)
(1)Open列表和Closed列表
①一個記錄下所有被考慮來尋找最短路徑方塊的列表,,被稱為OPEN列表,。
②一個記錄下所有不會再考慮來尋找最短路徑方塊的列表,其中包括起點和邊界,,被稱為Closed列表。
(2)路徑增量
G值是從開始點到當前點所在的方塊的移動量,,即規(guī)定從開始點到相鄰方塊的移動量為1,,其值會隨著距離開始點越來越遠而增大,。
H值是從當前點靠目標點的移動量的估計值,在算法中常被稱為探視,,而估計值越接近真實值,最終的路線會更加精確,。如果估計值停止作用,,則規(guī)劃的路徑很大概率不是最短,,通常使用的是“曼哈頓距離方法”,,其僅僅是計算出當前點距離目標點剩下的方塊總數(shù),,除去障礙物的總數(shù),。
2.2.2 A*搜尋算法的規(guī)劃流程
(1)將地圖劃分為n×n的網(wǎng)格,;
(2)計算G+H的和F,;
(3)將方塊提價到open列表中,,本列表中有最小的F值,,將此值稱為S,。
(4)將S從open列表中移除,,添加到closed列表中;
(5)對于與S相鄰的四周方塊T可進行如下運算:
①如果T在closed列表中,,刪除,,不考慮,;
②如果T不在open列表中,,計算其和值并添加進open列表中,;
③如果T在open列表中,,當使用當前生成的路徑到達T時,,檢查F值是否更小,,如果是,,更新和值F并前進[11-12],。
2.2.3 A*星算法程序設(shè)計及仿真結(jié)果
基于A*星搜索算法在MATLAB中進行路徑仿真,結(jié)果如圖2,,其中障礙物的布置同人工勢場法,邊界的限定為[1,,11]。
如圖2,,其中黑色粗線條代表從起點到終點的直線距離,,之后用于比較規(guī)劃路徑距離的長短,,細線條為A*算法的實際路徑。
2.3 粒子群算法(PSO算法)
2.3.1 粒子群算法參數(shù)的選取
粒子群算法主要確定如下各項參數(shù)[13-14]:
(1)粒子數(shù)目:粒子數(shù)越大,,則粒子的搜索的空間范圍越大,,但相應(yīng)的搜索所需時間也越大。一般的粒子數(shù)取20~40,,由于本文的問題比較特殊,,本文的粒子數(shù)目取200,。
(2)粒子長度:大小決定于具體問題。
(3)粒子范圍:大小取決于具體優(yōu)化問題,,且粒子的每一維度可設(shè)置不同的取值范圍,。
(4)粒子最大速率:大小決定了粒子在一次運行中可以移動的最大距離,如果不限定粒子的極限速率,,粒子可能會在一次運行中超出搜索空間,,而粒子最大速率的設(shè)定取決于粒子范圍的最大寬度,。
(5)學(xué)習(xí)因子(加速常數(shù)):固定常數(shù),,一般取2,。當沒有慣性權(quán)重時,,引入收斂因子,,其取值也不一定取2,C1+C2=4.1時,,收斂因子取0.729。部分實驗研究表明兩個因子相等且都等于0.2時效果更好,,部分實驗也表明C1大于C2且其和小于4時效果更好,。
(6)算法終止條件:最大的迭代次數(shù)和在一定的誤差范圍內(nèi)都可作為終止條件,。
(7)適應(yīng)度函數(shù):目標函數(shù)或目標函數(shù)的變換,。
2.3.2 粒子群算法的具體步驟
算法的流程可以描述如下:
(1)初始化一群粒子(種群規(guī)模為M),,其中包括隨機位置X和隨機速度V;通常是在范圍內(nèi)隨機產(chǎn)生,。設(shè)定學(xué)習(xí)因子C1,、C2,,最大迭代次數(shù)Gmax,。
(2)評價每個粒子的適應(yīng)度,;
(3)對每個粒子的適應(yīng)值和其經(jīng)過的歷史最好位置Pbest作對比,,如果較好,,則選擇其作為當前最優(yōu)位置,即更新個體極值,。
(4)對每個粒子的適應(yīng)值和種群經(jīng)過的歷史最好位置Gbest作對比,如果較好,則選擇其作為當前最優(yōu)位置,,即更新全局極值,。
(5)根據(jù)式(1),、式(2)對粒子位置和速度進行更新,,產(chǎn)生新的種群,。
(6)如果迭代次數(shù)達到終止條件,,則停止迭代,,算法終止,;未達到約束條件時轉(zhuǎn)到步驟(2),,且粒子數(shù)加1,。
根據(jù)上述步驟得出如圖3所示流程圖[15-16],。
2.3.3 仿真結(jié)果
基于PSO算法在MATLAB中進行路徑仿真,結(jié)果如圖4,,其中障礙物的布置同人工勢場法,邊界的限定為[1,,11]。
3 3種算法的特性對比
通過tic和t=toc得出算法運行時間,,通過對坐標進行統(tǒng)計運算計算出距離的大小,,結(jié)果如表1,。
從表中可得出如下結(jié)論:
(1)地圖相同的前提下,,粒子群算法由于需要進行多次迭代,,因此所用的時間相對于其他兩種算法很大,,而由其得到的路徑非最短路徑,。
(2)地圖相同的前提下,,A*搜索算法僅進行其局部范圍的最優(yōu)規(guī)劃,,因此得出的路徑不是最短,,而其時間相對于粒子群算法也小很多,。
(3)人工勢場法在路徑長短和時間上最優(yōu),。
4 粒子群算法的改進
由于粒子群算法是群智能算法的一種,相對于其他兩種算法雖然存在一定缺陷,,但也是未來智能行業(yè)的一大支點,因此作為一種智能算法,,提升空間很大,。本文通過一種改進方法來提升粒子群算法的仿真時間,,同時優(yōu)化其路徑,。
通過對其各個程序的調(diào)用發(fā)現(xiàn),,仿真時間與粒子群算法自身處理程序有關(guān),,仿真時間占所有時間的15%,,仿真時間主要是在調(diào)用算法的過程中,,因此需要對算法參數(shù)進行改進,。
采用中期隨機的慣性權(quán)重,,把w分為分段函數(shù)的判斷形式進行粒子全局尋優(yōu),,彌補了傳統(tǒng)的后期隨機的慣性權(quán)重的缺陷,。提出在搜索中期采用(0.2,,0.8)均勻分布的隨機慣性權(quán)重,,使用中期隨機的慣性權(quán)重,。
當it<0.2·MaxIt時,,慣性權(quán)重取值:
式中,,MaxIt為最大迭代次數(shù),It為當前迭代次數(shù),,wmax=0.9為最大慣性權(quán)重,wmin=0.4為最小慣性權(quán)重,。
中期隨機的慣性權(quán)重具有一定優(yōu)勢,,當前期搜索不到最優(yōu)解時,,在搜索中期時不至于陷入局部最優(yōu),,因此減弱粒子群算法對迭代次數(shù)的依賴,,弱化了最大迭代次數(shù)對算法的過度依賴,。當最大迭代次數(shù)過大或過小時,,對算法的早熟收斂和最優(yōu)解的準確度的影響減弱。改善粒子群慣性權(quán)重的選擇方式,,減少搜索中期出現(xiàn)的過早收斂或者陷入早熟的陷阱中,。因此中期隨機即保證了隨機搜索的能力,,又保證了收斂速度,。
決定粒子群算法的參數(shù)還有學(xué)習(xí)因子C1,、C2,,粒子群在搜索過程中,,需要前段速度大,,防止其過早成熟而陷入局部收斂,因此C1取大值,,C2取小值。在搜索后期,,由于其逐漸向全局最優(yōu)靠近,,因此需要弱化其全局搜索的能力,,增強局部搜索的能力,從而減少仿真時間,,因此C1取小值,,C2取大值,。
其分段公式如下:
其中,,x=Itπ/MaxIt,。當1≤It≤0.47MaxIt時,,C1>C2;當0.47MaxIt≤It≤MaxIt時,,C1<C2,。
通過對慣性權(quán)重和學(xué)習(xí)因子參數(shù)進行改進,,仿真時間為119.62 s,,規(guī)劃路徑長度為12.55 m,,在提升仿真時間和路徑上有一定的效果,。通過雙重參數(shù)的調(diào)節(jié),,保證局部搜索和全局搜索能力的均衡,,也保證自身認知和社會認知的均衡化,。相比于傳統(tǒng)固定參數(shù)和僅僅改變一種參數(shù)的結(jié)果,,本仿真效果有很大的改善,。
本文通過求Shubert函數(shù)的最小值對以上理論進行驗證對比,選擇Shubert函數(shù)的原因是由于其具有很多局部最優(yōu)解,,這里把多元多峰函數(shù)變成單元多峰函數(shù)進行其最小值的求解,,通過此函數(shù)得出最小值的驗證更能證明改進后的粒子群算法的效果,,其具體數(shù)據(jù)如表2所示,。從表中可看出,,經(jīng)過兩種參數(shù)改進后的粒子群算法在收斂到極小值時的收斂速度更快,、更準確,。
5 結(jié)論
自動規(guī)劃路徑的核心是選取最優(yōu)算法,在復(fù)雜地圖中,,智能算法不一定比普通搜索算法強,而是要通過具體的地圖進行判斷,。當然智能算法是人類科技發(fā)展的方向,,通過對其各項參數(shù)進行改進后得出的路徑長度有了很大的提高,,其路徑通過不斷迭代得出的結(jié)果非常理想,。其他智能算法,,如遺傳算法[17]、蟻群算法[18]等也各具特性,。
參考文獻
[1] 吳初娜.駕駛?cè)藨?yīng)激反應(yīng)能力評估研究[D].西安:長安大學(xué),,2011:30-40.
[2] 胡愛軍,王朝暉.汽車主動安全技術(shù)[J].機械設(shè)計與制造,,2010,48(7):97-99.
[3] 季榮濤,,周獻中,,王慧平,,等.基于Lyapunov法和勢場法的對峙跟蹤研究[J].火力與指揮控制,,2016,,54(4):66-69.
[4] 許源.結(jié)合粒子群算法和改進人工勢場法的移動機器人混合路徑規(guī)劃[D].杭州:浙江大學(xué),,2013.
[5] 錢森,,訾斌.多起重協(xié)作吊裝避障路徑規(guī)劃研究[J].機械設(shè)計與制造,2015(10):260-263.
[6] 祝雪芬,,涂剛毅.基于軌跡安全性評價的免疫遺傳路徑規(guī)劃算法[J].計算機應(yīng)用研究,,2013,30(2):354-356.
[7] 何海洋.工業(yè)機器人無碰軌跡規(guī)劃算法研究[D].廣州:華南理工大學(xué),,2014.
[8] 楊龍祥.基于反應(yīng)式的人工勢場發(fā)機器人路徑規(guī)劃[D].成都:西華大學(xué),,2014.
[9] 張煌輝.基于動態(tài)人工勢場的路徑規(guī)劃研究與應(yīng)用[D].長沙:長沙理工大學(xué),,2010.
[10] 劉秀松.車輛避障駕駛控制方法研究[J].計算機工程與應(yīng)用,,2012,48(2):230-234.
[11] 鄧順平,,張艷軍,劉會平.一種基于威脅勢場的A星路徑規(guī)劃算法[J].科技視界,,2014,,4(3):6,,22.
[12] 郭強.基于改進的A星算法和B樣條函數(shù)的仿生機器魚路徑規(guī)劃研究[D].天津:天津大學(xué),2012.
[13] 張萬緒,,張向蘭,李瑩.基于改進粒子群算法的智能機器人路徑規(guī)劃[J].計算機應(yīng)用,,2014,,34(2):510-513.
[14] 吳斌.車輛路徑問題的粒子群算法研究與應(yīng)用[D].杭州:浙江工業(yè)大學(xué),2008.
[15] 劉關(guān)俊.基于粒子群算法的移動機器人路徑規(guī)劃研究[D].長沙:中南大學(xué),,2007.
[16] 王亞春.移動機器人路徑規(guī)劃算法研究[D].天津:天津理工大學(xué),,2015.
[17] 禹建麗,,成元洋之,Valeri.Kroumov.無人駕駛農(nóng)用運輸車路徑規(guī)劃研究[J].拖拉機與農(nóng)用運輸車,2002,,29(4):22-24.
[18] 卜新蘋,,蘇虎,,鄒偉,,等.基于復(fù)雜環(huán)境非均勻建模的蟻群路徑規(guī)劃[J].機器人,,2016,,38(3):276-284.