王漢元
摘 要本文探討了智能小車自主路徑規(guī)劃算法的設(shè)計(jì)與改進(jìn),并對(duì)所提出的算法進(jìn)行了仿真分析。該自主路徑規(guī)劃算法簡(jiǎn)單可行,能夠使智能小車在順利避開障礙物的同時(shí)從起始位置行進(jìn)至目標(biāo)位置,確保智能小車在整個(gè)行駛路徑上的安全。該算法綜合使用動(dòng)態(tài)窗口法,根據(jù)智能小車與障礙物之間的距離,在智能小車通過動(dòng)態(tài)窗口法規(guī)劃得到的速度中引入從障礙物指向智能小車的逃逸速度,補(bǔ)償了動(dòng)態(tài)窗口法的不足,獲得了搜索路徑快、可執(zhí)行性好、有效地防止智能小車與障礙物碰撞的優(yōu)點(diǎn)。
【關(guān)鍵詞】智能小車 路徑規(guī)劃 動(dòng)態(tài)窗口法 逃逸速度
1 引言
智能小車是各種高新技術(shù)綜合集成的載體,其集環(huán)境感知、規(guī)劃決策等功能于一體,融合了機(jī)器人技術(shù)、人工智能技術(shù)、自動(dòng)化控制技術(shù)、機(jī)器視覺技術(shù)等。智能小車在進(jìn)行自主路徑規(guī)劃時(shí),其主要任務(wù)在于,在存在障礙物的環(huán)境中發(fā)現(xiàn)一條從起始位置到目標(biāo)位置的適當(dāng)?shù)男旭偮窂?,使智能小車在行進(jìn)途中順利地繞過障礙物而不與障礙物發(fā)生碰撞。如何提出一種簡(jiǎn)單可行的算法使智能小車在順利避開障礙物的同時(shí)從起始位置行進(jìn)至目標(biāo)位置,是本領(lǐng)域的一個(gè)重要問題。
2 自主路徑規(guī)劃的背景介紹
2.1 自主路徑規(guī)劃的任務(wù)
智能小車的路徑規(guī)劃需要解決如下問題:
(1)智能小車從起始位置行進(jìn)至目標(biāo)位置;
(2) 智能小車在不碰到障礙物的前提下對(duì)智能小車的路徑進(jìn)行優(yōu)化。
2.2 路徑規(guī)劃方法的分類
根據(jù)對(duì)環(huán)境信息的把握程度,路徑規(guī)劃方法分為:基于先驗(yàn)完全信息的全局路徑規(guī)劃,在這種規(guī)劃方法中,智能小車所處的環(huán)境的全部信息已知;以及基于傳感器信息的局部路徑規(guī)劃,在這種規(guī)劃方法中,智能小車所處的環(huán)境的部分信息或者全部信息未知。其中,局部路徑規(guī)劃是指,基于傳感器的信息,在智能小車行進(jìn)過程中動(dòng)態(tài)地確定其當(dāng)前位置以及周圍局部范圍內(nèi)的環(huán)境,規(guī)劃出局部最優(yōu)路徑以到達(dá)目標(biāo)位置。
2.3 局部路徑規(guī)劃方法的分類
目前采用的局部路徑規(guī)劃方法包括柵格法和動(dòng)態(tài)窗口法(Dynamic Window Approach,DWA)。
柵格法將智能小車的運(yùn)行環(huán)境進(jìn)行單元分割,將環(huán)境信息用大小相等的方塊進(jìn)行表示。其中,若柵格較小,則由柵格所示出的環(huán)境信息將較為清晰,但由于存儲(chǔ)的信息較多,路徑規(guī)劃速度會(huì)降低,無(wú)法確保實(shí)時(shí)性;若柵格較大,則存儲(chǔ)的信息較少,但柵格所表示的環(huán)境信息變得模糊,不利于有效的路徑規(guī)劃??傊?,柵格法在智能小車路徑規(guī)劃時(shí)存在計(jì)算量大、實(shí)時(shí)性差的缺點(diǎn)。
相對(duì)于此,動(dòng)態(tài)窗口法具有搜索路徑快、可執(zhí)行性好的優(yōu)點(diǎn),但存在規(guī)劃的路徑可能使智能小車過于靠近障礙物而發(fā)生碰撞之虞。本文的自主路徑規(guī)劃算法是在動(dòng)態(tài)窗口法的基礎(chǔ)上進(jìn)行的改進(jìn),以下將進(jìn)行詳述。
3 動(dòng)態(tài)窗口法
本文的自主路徑規(guī)劃算法是在綜合使用動(dòng)態(tài)窗口法的基礎(chǔ)上提出的。
簡(jiǎn)要來說,動(dòng)態(tài)窗口法是在速度空間中采樣多組速度,并模擬智能小車在這些速度下一定時(shí)間內(nèi)的軌跡,在得到多組軌跡之后,對(duì)該多組軌跡進(jìn)行評(píng)價(jià),選取最優(yōu)軌跡所對(duì)應(yīng)的速度來對(duì)智能小車進(jìn)行驅(qū)動(dòng)。
具體來說,在機(jī)器人直線速度v和旋轉(zhuǎn)速度w組成的速度空間(v,w)中采樣多組速度,由于智能小車在相鄰時(shí)刻內(nèi)的運(yùn)動(dòng)距離非常短,可將該兩個(gè)相鄰點(diǎn)之間的運(yùn)動(dòng)軌跡視作直線,設(shè)智能小車在以其自身為參照系的坐標(biāo)系x軸上移動(dòng)了Vt·△t。將該距離投影至世界坐標(biāo)系的x軸和y軸,得到智能小車t+1時(shí)刻相對(duì)于t時(shí)刻在世界坐標(biāo)系中移動(dòng)的位移:
如圖1所示,建立智能小車的軌跡運(yùn)動(dòng)模型之后,采樣多組速度,模擬智能小車在該多組速度下一定時(shí)間內(nèi)的軌跡,生成多條軌跡,根據(jù)智能小車本身的限制和環(huán)境限制將速度控制在一定范圍內(nèi)。例如:
智能小車本身有其自身最大速度和最小速度的限制:
另外,由于智能小車的電機(jī)驅(qū)動(dòng)模塊存在最大加減速限制,因此在智能小車的行進(jìn)模擬周期(在本文中為0.02秒)內(nèi)存在動(dòng)態(tài)窗口,該窗口內(nèi)的速度是智能小車實(shí)際能夠達(dá)到的速度:
其中,Vc、Wc是智能小車的當(dāng)前速度,、對(duì)應(yīng)最大加速度,、對(duì)應(yīng)最大減速度。
另外,在智能小車碰到障礙物之前,也存在如下約束條件:
其中dist(v,w)為速度(v,w)對(duì)應(yīng)軌跡上距障礙物最近的距離。
最后,設(shè)定評(píng)價(jià)函數(shù),并為每個(gè)約束條件設(shè)定一定的權(quán)重,對(duì)各采樣的速度組進(jìn)行評(píng)價(jià)。其中,約束條件可包括軌跡中距障礙物的距離、搜索路徑的長(zhǎng)短、對(duì)智能小車行駛狀態(tài)的影響等。
4 自主路徑規(guī)劃算法的創(chuàng)新設(shè)計(jì)
上述動(dòng)態(tài)窗口法在考慮智能小車是否會(huì)碰到障礙物時(shí)僅將其簡(jiǎn)單地看做質(zhì)點(diǎn),因此會(huì)存在路徑規(guī)劃過程中使智能小車靠近障礙物而發(fā)生碰撞的危險(xiǎn)。
如圖2所示,本文的自主路徑規(guī)劃算法在動(dòng)態(tài)窗口法的基礎(chǔ)上進(jìn)行了改進(jìn),避免上述摘 要題的發(fā)生。
具體來說包括如下步驟:
步驟1:獲取智能小車與障礙物之間的距離。
基于智能小車上的傳感系統(tǒng),得到智能小車與障礙物之間的距離。在圖1中,智能小車可利用傳感系統(tǒng)直接輸出用于指示智能小車與障礙物之間的距離的信息。
步驟2:限定逃逸速度臨界距離。
該逃逸速度臨界距離是指障礙物會(huì)對(duì)智能小車造成危險(xiǎn)的距離。該臨界距離是提前設(shè)定好的,根據(jù)多次試驗(yàn),本文設(shè)定為智能小車的外形質(zhì)點(diǎn)到其輪廓邊緣的最遠(yuǎn)長(zhǎng)度的6倍。根據(jù)不同的應(yīng)用,也可考慮將該逃逸速度臨界距離設(shè)為其他值。
步驟3:判斷智能小車與障礙物之間的距離相對(duì)于逃逸速度臨界距離之間的關(guān)系。若前者大于后者,則采用動(dòng)態(tài)窗口法進(jìn)行路徑規(guī)劃;若前者小于等于后者,則以在由動(dòng)態(tài)窗口法確定的速度的基礎(chǔ)上疊加智能小車與障礙物之間的逃逸速度后得到的速度驅(qū)動(dòng)智能小車。
詳細(xì)來說,在智能小車與障礙物之間的距離小于等于逃逸速度臨界距離時(shí),計(jì)算動(dòng)態(tài)窗口法所規(guī)劃確定的速度v2與逃逸速度v1的矢量和v3,以該速度v3驅(qū)動(dòng)智能小車。如圖3所示。
如下詳述逃逸速度的求取方法。
逃逸速度的方向定義為由障礙物指向智能小車的外形質(zhì)點(diǎn)的方向。該逃逸速度的矢量的大小隨著距障礙物越近而變得越大。具體來說,其根據(jù)如下公式求得:
其中,v為當(dāng)前智能小車的行駛速度的矢量大小,len為智能小車的外形質(zhì)點(diǎn)到其輪廓邊緣的最遠(yuǎn)長(zhǎng)度,d為智能小車的外形質(zhì)點(diǎn)與障礙物之間的距離,vr為逃逸速度的矢量大小,α為提前設(shè)定的系數(shù),本文中設(shè)定的α為0.8。
根據(jù)上述公式,在智能小車距離障礙物越近時(shí),d值越小,逃逸速度的矢量大小vr越大,利用與逃逸速度疊加后的速度將驅(qū)動(dòng)智能小車遠(yuǎn)離障礙物。
根據(jù)本文的自主路徑規(guī)劃算法,在智能小車距離障礙物較遠(yuǎn)時(shí),采用動(dòng)態(tài)窗口法確定智能小車的規(guī)劃路徑;在智能小車距離障礙物較近的情況下,將動(dòng)態(tài)窗口法確定的速度與逃逸速度疊加,產(chǎn)生遠(yuǎn)離障礙物的速度,且該速度隨著智能小車與障礙物之間的距離越近而越大。該算法有效地避免在以動(dòng)態(tài)窗口法對(duì)路徑進(jìn)行規(guī)劃時(shí)智能小車過度靠近障礙物的問題,補(bǔ)償了動(dòng)態(tài)窗口法的不足。
5 仿真分析
為了驗(yàn)證本算法在引導(dǎo)智能小車進(jìn)行路徑規(guī)劃的可靠性,本文利用MATLAB提供的simulink模塊進(jìn)行了仿真。
在simulink中建立智能小車的運(yùn)動(dòng)學(xué)模型,加入障礙物信息、智能小車起點(diǎn)、終點(diǎn)坐標(biāo),基于經(jīng)過改進(jìn)之后的智能小車自主路徑規(guī)劃算法建立仿真模型,進(jìn)行仿真。
從圖4可以看出,智能小車從起點(diǎn)出發(fā),在向終點(diǎn)行駛的過程中平滑地在位于起點(diǎn)與終點(diǎn)之間的各障礙物之間穿過,順利到達(dá)終點(diǎn)。由此可知,本文提出的算法簡(jiǎn)單可行,使智能小車在順利避開障礙物的同時(shí)從起始位置行進(jìn)至目標(biāo)位置,確保智能小車在整個(gè)行駛路徑上的安全。
6 結(jié)語(yǔ)
本文探討了智能小車自主路徑規(guī)劃算法的設(shè)計(jì)。該算法綜合使用動(dòng)態(tài)窗口法,根據(jù)智能小車與障礙物之間的距離,在智能小車通過動(dòng)態(tài)窗口法規(guī)劃得到的速度中引入從障礙物指向智能小車的逃逸速度,補(bǔ)償了動(dòng)態(tài)窗口法的不足,獲得了搜索路徑快、可執(zhí)行性好、有效地防止智能小車與障礙物碰撞的優(yōu)點(diǎn)。
參考文獻(xiàn)
[1]張廣林,胡小梅,柴劍飛,趙磊,俞濤.路徑規(guī)劃算法及其應(yīng)用綜述[J].現(xiàn)代機(jī)械,2011(05):85-90.
[2]徐保來,管貽生,蘇澤榮等.改進(jìn)動(dòng)態(tài)窗口法的阿克曼移動(dòng)機(jī)器人局部路徑規(guī)劃器 [J].機(jī)電工程技術(shù),2016,45(09):21-26.
[3]The dynamic window approach to collision avoidance.Fox,D.,Burgard, W.,Thrun,S.Robotics & Automation Magazine,IEEE.1997.
作者單位
河南省實(shí)驗(yàn)中學(xué) 河南省鄭州市 450000