趙光明,馬明月,曾祥凱
(公安部道路交通安全研究中心,北京100068)
路徑規(guī)劃技術(shù)在機(jī)器人領(lǐng)域中是一項(xiàng)尤為重要的技術(shù),多自由度機(jī)械臂的避障路徑規(guī)劃技術(shù)更是其中的難點(diǎn)。人工勢(shì)場(chǎng)法由美國(guó)科學(xué)家Khatib于二十世紀(jì)八十年代所提出來(lái)的一種虛擬力法[1-2]。相比于其他算法,人工勢(shì)場(chǎng)法算法優(yōu)點(diǎn)在于算法實(shí)現(xiàn)簡(jiǎn)單,算法的計(jì)算量較小,所規(guī)劃處的路徑相對(duì)較為平坦,但是也存在障礙物附近目標(biāo)不可達(dá)以及在復(fù)雜障礙物環(huán)境中易陷入局部最小值無(wú)法運(yùn)動(dòng)等缺陷。
為了解決這些問(wèn)題,國(guó)內(nèi)外學(xué)者對(duì)其進(jìn)行了改進(jìn):文獻(xiàn)[3]通過(guò)對(duì)斥力場(chǎng)模型進(jìn)行改進(jìn)優(yōu)化,通過(guò)設(shè)置虛擬目標(biāo)點(diǎn)解決移動(dòng)機(jī)器人在搜索路徑研究過(guò)程中可能出現(xiàn)的局部最小值問(wèn)題;文獻(xiàn)[4]提出了一種機(jī)械臂逆運(yùn)動(dòng)學(xué)數(shù)值解求解方法,并結(jié)合改進(jìn)勢(shì)場(chǎng)人工勢(shì)場(chǎng)法實(shí)現(xiàn)機(jī)械臂的避障路徑規(guī)劃;文獻(xiàn)[5]通過(guò)對(duì)勢(shì)場(chǎng)函數(shù)進(jìn)行改進(jìn),同時(shí)增加虛擬障礙物以避免機(jī)械臂進(jìn)入局部最小值處;文獻(xiàn)[6]提出一種改進(jìn)勢(shì)場(chǎng)的人工勢(shì)場(chǎng)法,當(dāng)路徑搜索陷入局部最小值時(shí),引入虛擬排斥力對(duì)局部最小值位置進(jìn)行逃逸。
文獻(xiàn)[7]提出采用遺傳算法與人工勢(shì)場(chǎng)算法融合以此來(lái)對(duì)人工勢(shì)場(chǎng)法進(jìn)行改進(jìn),搜索出一條無(wú)碰撞的路徑;文獻(xiàn)[8]通過(guò)改進(jìn)斥力場(chǎng)的人工勢(shì)場(chǎng)與模糊算法相結(jié)合,利用模糊決策系統(tǒng)調(diào)整機(jī)器人運(yùn)動(dòng),使得規(guī)劃出的路徑平滑;文獻(xiàn)[9]通過(guò)改進(jìn)人工勢(shì)場(chǎng)法中的勢(shì)場(chǎng)模型,去除斥力場(chǎng),設(shè)置動(dòng)態(tài)引力場(chǎng),在機(jī)器人運(yùn)動(dòng)過(guò)程中不斷對(duì)引力場(chǎng)進(jìn)行修正,最后對(duì)生成的路徑進(jìn)行平滑;文獻(xiàn)[10]通過(guò)改進(jìn)人工勢(shì)場(chǎng)法中的勢(shì)力場(chǎng)模型,引入指數(shù)因子,采用量子遺傳算法對(duì)規(guī)劃出的路徑進(jìn)行優(yōu)化平滑。文獻(xiàn)[11]提出在排斥勢(shì)場(chǎng)函數(shù)中加入距離修正因子,解決了目標(biāo)不可達(dá)的問(wèn)題,同時(shí)采用正則六邊形導(dǎo)向法來(lái)改進(jìn)局部最小值問(wèn)題,并且提出動(dòng)態(tài)環(huán)境下運(yùn)動(dòng)目標(biāo)的相對(duì)速度檢測(cè)與躲避方法,結(jié)果表明該算法能夠及時(shí)地避開(kāi)動(dòng)態(tài)障礙物。文獻(xiàn)[12]對(duì)人工勢(shì)場(chǎng)法的函數(shù)模型進(jìn)行修整,通過(guò)在機(jī)器人路徑搜索的過(guò)程中引入對(duì)周圍環(huán)境的辨識(shí),引入虛擬目標(biāo)點(diǎn)對(duì)局部最小值點(diǎn)進(jìn)行逃逸。文獻(xiàn)[13]將人工勢(shì)場(chǎng)法與A*算法結(jié)合,利用人工勢(shì)場(chǎng)法在A*算法生成的初始節(jié)點(diǎn)之間進(jìn)行路徑搜索,對(duì)降低路徑的振蕩性起到了一定的作用。文獻(xiàn)[14-16]通過(guò)使用RRT算法自動(dòng)生成虛擬目標(biāo)點(diǎn)解決了局部最小值問(wèn)題。文獻(xiàn)[17]提出一種結(jié)合機(jī)器人自身狀態(tài)以及環(huán)境信息的“預(yù)測(cè)”人工勢(shì)場(chǎng)法,解決“凹型”障礙物的局部極小值問(wèn)題,提高算法對(duì)環(huán)境適應(yīng)性的同時(shí)降低了路徑長(zhǎng)度。文獻(xiàn)[17]等提出一種振蕩性較小的人工勢(shì)場(chǎng)函數(shù)模型,在相應(yīng)的關(guān)鍵節(jié)點(diǎn)通過(guò)路徑擬合的方法來(lái)進(jìn)行路徑搜索。文獻(xiàn)[18]提出將人工勢(shì)場(chǎng)與模擬退火算法結(jié)合,克服了人工勢(shì)場(chǎng)法在路徑搜索時(shí)易陷入局部最小值無(wú)法繼續(xù)路徑搜索的缺陷。文獻(xiàn)[19]在改進(jìn)的勢(shì)函數(shù)基礎(chǔ)上,提出通過(guò)扇區(qū)劃分的方法,在移動(dòng)機(jī)器人陷入局部極小點(diǎn)周圍適當(dāng)范圍內(nèi)增加虛擬障礙物,使其和原障礙物及目標(biāo)點(diǎn)共同作用下對(duì)移動(dòng)機(jī)器人產(chǎn)生作用力,以能夠解決傳統(tǒng)人工勢(shì)場(chǎng)法中出現(xiàn)的局部極小點(diǎn)情況。文獻(xiàn)[20]采用螢火蟲(chóng)算法并引入NUBRS 曲線來(lái)光滑處理局部路徑,縮短總路徑長(zhǎng)度。
在現(xiàn)有研究基礎(chǔ)上,針對(duì)人工勢(shì)場(chǎng)法應(yīng)用在機(jī)械臂路徑規(guī)劃領(lǐng)域存在的問(wèn)題,提出一種改進(jìn)的人工勢(shì)場(chǎng)法。通過(guò)改進(jìn)勢(shì)場(chǎng)模型,提出一種自適應(yīng)大步長(zhǎng)模擬退火-人工勢(shì)場(chǎng)算法,結(jié)合冗余節(jié)點(diǎn)刪除策略與拐點(diǎn)消除算法對(duì)生成路徑進(jìn)行平滑處理,得到平滑無(wú)碰撞的軌跡。
傳統(tǒng)人工勢(shì)場(chǎng)法中的目標(biāo)點(diǎn)引力場(chǎng)函數(shù)模型如下:
式中:Uatt—機(jī)器人當(dāng)前點(diǎn)處的引力勢(shì)場(chǎng);q=[x y z]—機(jī)器人當(dāng)前位置坐標(biāo);qg=[xg yg zg]—空間中機(jī)器人的目的坐標(biāo)位置;Katt—所述引力勢(shì)場(chǎng)的增益系數(shù);‖q-qg‖—機(jī)器人當(dāng)前位置與機(jī)器人目的坐標(biāo)的距離。
對(duì)應(yīng)的引力為:
障礙物點(diǎn)處斥力場(chǎng)函數(shù)模型如下:
式中:Ureq—障礙物在機(jī)器人點(diǎn)出的斥力勢(shì)場(chǎng);Kreq—所述斥力勢(shì)場(chǎng)的增益系數(shù);ρ—機(jī)器人當(dāng)前點(diǎn)q與障礙物點(diǎn)qo的兩者之間的直線距離;qo=[xo yo zo]—障礙物在空間中的坐標(biāo)位置;ρ0—障礙物點(diǎn)的影響距離。
對(duì)應(yīng)的斥力為:
機(jī)器人所受的合勢(shì)場(chǎng)為:
機(jī)器人所受的合力為:
式中:N—障礙物的數(shù)目。
典型障礙物環(huán)境中算法仿真示意圖,如圖1所示。
圖1 典型障礙物算法仿真示意圖Fig.1 Simulation Diagram of Typical Obstacle Algorithm
改進(jìn)引力場(chǎng)函數(shù)模型為:
式中:ds—引力勢(shì)場(chǎng)距離閾值。
對(duì)應(yīng)的引力為:
改進(jìn)后的斥力場(chǎng)函數(shù)模型如下:
式中:n—大于0的實(shí)數(shù)。
與之對(duì)應(yīng)的斥力為:
其中,
定義Freq1的方向由障礙物指向機(jī)器人,F(xiàn)req2的方向由機(jī)器人指向目標(biāo)點(diǎn)位置。此時(shí)機(jī)器人受到的合外力為:
這里采用的局部最小值的判定準(zhǔn)則如下,若滿足以下兩個(gè)條件之一,均斷定機(jī)器人路徑搜索均陷入局部最小值:
條件1:若機(jī)器人在路徑搜索的節(jié)點(diǎn)處按照式中計(jì)算出來(lái)該節(jié)點(diǎn)出的合外力F(q)為0時(shí),此時(shí)機(jī)器人處于局部最小值狀態(tài),即:
條件2:記錄搜索步為第t步與第t,步時(shí)機(jī)器人在路徑搜索的節(jié)點(diǎn)處的位置坐標(biāo),即qt=[xt yt zt]、qt,=[xt,yt,zt,]。若在第t,步處節(jié)點(diǎn)的位置坐標(biāo)qt,與第t步節(jié)點(diǎn)的位置坐標(biāo)qt的距離小于給定的路徑搜索步長(zhǎng)αλ0,α∈( 0,1 )時(shí)(這里中α取值為0.9),此時(shí)判定機(jī)器人處于局部最小值狀態(tài),即:
由于多自由度機(jī)械臂在笛卡爾空間中的路徑規(guī)劃不僅需要考慮機(jī)械臂末端在三維空間中的路徑規(guī)劃,還需要考慮機(jī)械臂奇異解以及目標(biāo)構(gòu)型是否適用的問(wèn)題。通過(guò)設(shè)定搜索半徑對(duì)周圍的環(huán)境進(jìn)行探測(cè),計(jì)算當(dāng)前位置、目標(biāo)位置與障礙物環(huán)境的位置關(guān)系,判斷是否能夠從當(dāng)前位置與目標(biāo)點(diǎn)之間構(gòu)建一條“跨越”障礙物的路徑,若可以,則跳出局部最小值;反之,采用模擬退火算法進(jìn)行路徑搜索。為能夠盡快逃離局部最小值,一方面通過(guò)對(duì)局部最小值處的空間進(jìn)行劃分,使模擬退火算法能夠向障礙物空間較少的方向進(jìn)行搜索;另一方面,使用大步長(zhǎng)進(jìn)行路徑搜索,使其能夠盡快逃離局部最小值位置。為避免在路徑搜索過(guò)程中出現(xiàn)機(jī)械臂奇異解問(wèn)題,結(jié)合機(jī)械臂的工作空間分析,在機(jī)械臂的奇異空間處添加虛擬障礙物,以此避免路徑搜索取該點(diǎn)為路徑節(jié)點(diǎn)。局部最小值逃逸算法的具體步驟如下:
(1)記錄當(dāng)前局部最小的位置,初始化算法中如下設(shè)計(jì)參數(shù):初始工作溫度為T(mén)0、退火速率為α、機(jī)器人探測(cè)半徑R、截止溫度為T(mén)s=0.05T0;
(2)判斷局部最小值位置處與目標(biāo)中間是否存在障礙物,若不存在,將目標(biāo)點(diǎn)作為路徑搜索的下一節(jié)點(diǎn),結(jié)束局部最小值逃逸;反之,進(jìn)入(3);
(3)以局部最小值為原點(diǎn)建立笛卡爾坐標(biāo)系,Z坐標(biāo)軸的正方向由原點(diǎn)指向目標(biāo)點(diǎn),X坐標(biāo)軸方向與基座標(biāo)系相同,Y坐標(biāo)軸由右手定則確定。將空間四等分,計(jì)算機(jī)器人探測(cè)半徑中各個(gè)象限中障礙物的數(shù)目分別為n1、n2、n3和n4,如圖2所示。
圖2 機(jī)器人搜索空間劃分示意圖Fig.2 Robot Search Space Division
(4)隨機(jī)產(chǎn)生新解:根據(jù)(3)在計(jì)算障礙物最少的象限中,在XOY平面中隨機(jī)角度范圍內(nèi)給移動(dòng)機(jī)器人隨機(jī)角度θx、θz,機(jī)器人以式計(jì)算隨機(jī)點(diǎn)的坐標(biāo)位置qrand=[xrand yrand zrand],并在陷入局部最小值的位置處放置虛擬障礙物。
式中:λ′—局部最小值逃逸步長(zhǎng),取λ′=3λ。
(5)根據(jù)式(5)計(jì)算隨機(jī)點(diǎn)的合勢(shì)能Urand、前一個(gè)點(diǎn)的合勢(shì)能Ubef以及勢(shì)能變化量ΔU=Urand-Ubef;
(6)采用Metropolis準(zhǔn)則,判斷是否接受當(dāng)前隨機(jī)解,若ΔU<0,則接受當(dāng)前隨機(jī)解,否則產(chǎn)生一個(gè)隨機(jī)數(shù)r,且當(dāng)滿足式(15)時(shí),則接受當(dāng)前隨機(jī)解,進(jìn)行下一步;否則,重復(fù)(4);
(7)按照退火策略T=αT更新參數(shù),判斷是否跳出局部最小值,若已逃逸,退出局部最小值逃逸算法。否則,重復(fù)(2)至(6),若T<Ts,仍未逃逸局部最小值,將角度搜索范圍擴(kuò)大到整個(gè)坐標(biāo)系進(jìn)行搜索,重復(fù)(1)到(6)直至逃逸出局部最小值點(diǎn),若T <Ts且無(wú)法逃離局部最小值,輸出路徑搜索無(wú)解。
算法流程圖。如圖3所示。
圖3 局部最小值逃逸算法流程圖Fig.3 Flow Chart of Local Minimum Escape Algorithm
相同仿真參數(shù),如表1所示。利用提出的局部最小值逃逸策略重新進(jìn)行仿真,仿真示意圖,如圖4所示。
圖4 典型局部障礙物仿真結(jié)果圖Fig.4 Simulation Results of Typical Local Obstacles
表1 算法參數(shù)表Tab.1 Algorithm Parameters Table
從圖4中可以看出,改進(jìn)后的人工勢(shì)場(chǎng)法能夠解決傳統(tǒng)人工勢(shì)場(chǎng)法的缺陷,在四種典型障礙物環(huán)境中均能完成路徑搜索任務(wù)。但是存在鋸齒形的震蕩點(diǎn),在實(shí)際工程應(yīng)用中無(wú)法適用,因此需要對(duì)生成的軌跡進(jìn)行平滑處理。
由上文可知,雖然改進(jìn)人工勢(shì)場(chǎng)法能夠解決傳統(tǒng)人工勢(shì)場(chǎng)法的缺陷,但是生成的路徑并不平滑,存在“鋸齒”狀的冗余節(jié)點(diǎn),導(dǎo)致生成的路徑無(wú)法應(yīng)用于實(shí)際。因此,為了提高生成路徑的質(zhì)量,這里提出一種路徑優(yōu)化平滑算法,消除改進(jìn)后算法生成的路徑節(jié)點(diǎn)出現(xiàn)的震蕩現(xiàn)象。算法的具體步驟如下:
(1)將路徑搜索到的路徑節(jié)點(diǎn)放入數(shù)組,Qi(xi,yi,zi),i∈[ 1,j],新建篩選后的路徑節(jié)點(diǎn)數(shù)組為L(zhǎng)Q;其中:J—路徑搜索得到的路徑節(jié)點(diǎn)的數(shù)目;
(2)初始化障礙物位置坐標(biāo)數(shù)組為Ci,i∈[0,N],其中,N為障物的數(shù)目。設(shè)置路徑平滑算法的起始點(diǎn)為Qm,其中:m=1。設(shè)置下一判斷路徑節(jié)點(diǎn)為Qn,其中:n=m+2。判斷線段QmQn與各個(gè)障礙物Ci是否存在碰撞,若無(wú)碰撞現(xiàn)象,n=n+1;否則,將Qm放入篩選后的路徑節(jié)點(diǎn)數(shù)組LQ中,并且m=m+1;
(3)重復(fù)上述(2),直至m=J;經(jīng)過(guò)路徑冗余刪除策略處理后的路徑節(jié)點(diǎn)示意圖,如圖5所示。其中黑色的路徑節(jié)點(diǎn)為改進(jìn)人工勢(shì)場(chǎng)法規(guī)劃出的路徑,綠色軌跡為經(jīng)過(guò)路徑冗余刪除策略處理后的軌跡。
圖5 路徑冗余節(jié)點(diǎn)刪除策略示意圖Fig.5 Schematic Diagram of Path Redundant Node Deletion Strategy
從圖5可以看出,通過(guò)設(shè)置相應(yīng)的安全距離參數(shù),經(jīng)過(guò)冗余節(jié)點(diǎn)刪除策略處理后,路徑雖然得到了優(yōu)化,但是其中仍然存在拐點(diǎn),因此,需要通過(guò)步驟四對(duì)經(jīng)步驟三得到的路徑進(jìn)行拐角平滑處理,處理后的示意圖,如圖6所示。其中,一種顏色軌跡為經(jīng)過(guò)路徑平滑策略處理后的軌跡。
圖6 路徑平滑算法示意圖Fig.6 Schematic Diagram of Path Smoothing Algorithm
(4)將獲得折線路徑的拐角左右兩條折線上取得中點(diǎn)以及靠近拐點(diǎn)的四等分點(diǎn),采用四次貝塞爾樣條插值原理進(jìn)行平滑處理,當(dāng)對(duì)n個(gè)頂點(diǎn)進(jìn)行p次B樣條插值時(shí),其曲線方程式為:
式中:P(i)(i=0,1,2...n)—控制點(diǎn)的坐標(biāo);Ni,p(t)(i=0,1,2...n)—p次B樣條基函數(shù);i—序號(hào);t=[t0,t1,...,tn+p+1]—樣條函數(shù)的節(jié)點(diǎn)矢量。其中,
算法流程圖,如圖7所示。
圖7 路徑優(yōu)化算法流程圖Fig.7 Flow Chart of Path Optimization Algorithm
為對(duì)提出的路徑冗余節(jié)點(diǎn)刪除策略以及平滑算法進(jìn)行驗(yàn)證,同樣選擇人工勢(shì)場(chǎng)法的典型障礙情況下,在改進(jìn)后算法生成路徑節(jié)點(diǎn)的基礎(chǔ)上利用冗余節(jié)點(diǎn)刪除策略以及路徑平滑算法進(jìn)行優(yōu)化,與傳統(tǒng)算法相比,路徑平滑后的仿真結(jié)果示意圖,如圖8所示。
圖8 路徑平滑效果圖Fig.8 Path Smoothing Rendering
分別采用文獻(xiàn)[18-19]中所提出的算法以及本文提出的算法在復(fù)雜障礙物環(huán)境中進(jìn)行仿真分析,在得到機(jī)器人的路徑軌跡,并采用本文提出的路徑優(yōu)化策略將得到的路徑節(jié)點(diǎn)分別進(jìn)行路徑優(yōu)化處理,所得到的優(yōu)化前后的路徑仿真示意圖,如圖9(b)、圖9(c)所示,這里提出的算法所得到的優(yōu)化前后的路徑仿真示意圖,如圖9(d)所示。從圖8(a)可以看出,機(jī)器人在當(dāng)前障礙物環(huán)境中無(wú)法完成路徑軌跡規(guī)劃。相同參數(shù)下、同樣的環(huán)境中利用文獻(xiàn)以及本文的算法進(jìn)行仿真,從圖9(b)、圖9(c)、圖9(d)中可以看出,三種算法均能使得機(jī)器人克服傳統(tǒng)人工勢(shì)場(chǎng)法的缺點(diǎn),均能在障礙空間環(huán)境內(nèi)從設(shè)置的起點(diǎn)S與終點(diǎn)G之間搜索出一條無(wú)碰撞的路徑。
圖9 復(fù)雜環(huán)境中算法對(duì)比圖Fig.9 Comparison of Algorithms in Complex Environment
為了避免算法的隨機(jī)性,同樣的環(huán)境中進(jìn)行30次仿真,得到四種算法的路徑平滑前后的平均路徑長(zhǎng)度,如表2所示。
表2 算法仿真對(duì)比路徑優(yōu)化前后長(zhǎng)度Tab.2 Algorithm Simulation Comparing the Length Before and After Path Optimization
結(jié)合圖與表可以看出,相比之下,這里提出的改進(jìn)算法生成的路徑更短,能夠更快地逃出局部最小值點(diǎn),但是在經(jīng)過(guò)路徑優(yōu)化策略處理前,三種算法所得到的路徑并不平滑且均存在振蕩點(diǎn)。
在經(jīng)過(guò)這里提出的路徑優(yōu)化策略進(jìn)行處理后,三種算法均能消除無(wú)碰撞搜索路徑的振蕩特性,都能得到一條平滑無(wú)碰撞的軌跡,表明了算法的有效性。
以AUBO-I5機(jī)械臂為研究對(duì)象,利用這里提出的機(jī)械臂避障策略進(jìn)行避障實(shí)驗(yàn)驗(yàn)證,設(shè)置機(jī)械臂初始末端關(guān)節(jié)坐標(biāo)為(-0.058,0.085,0.046),設(shè)置機(jī)械臂目標(biāo)位置為(-0.817,0.101,0.107,保持算法各項(xiàng)參數(shù)與單障礙物環(huán)境機(jī)械臂避障仿真一致,將障礙物信息輸入到上位機(jī)完成環(huán)境信息構(gòu)建,點(diǎn)擊“路徑規(guī)劃啟動(dòng)按鈕”,只針對(duì)機(jī)械臂末端TCP點(diǎn)在笛卡爾空間坐標(biāo)系中的位置進(jìn)行路徑規(guī)劃,機(jī)械臂在路徑搜索過(guò)程中與障礙物的示意圖,如圖10所示。
圖10 機(jī)械臂避障路徑規(guī)劃圖Fig.10 Obstacle Avoidance Path Planning Diagram of Manipulator
從圖10中可以看出,機(jī)械臂能夠避開(kāi)障礙物安全地到達(dá)指定的終點(diǎn)。為進(jìn)一步分析,利用機(jī)械臂提供的接口函數(shù)獲取機(jī)械臂在運(yùn)動(dòng)過(guò)程中各個(gè)關(guān)節(jié)的角度,如圖11所示。
圖11 實(shí)驗(yàn)環(huán)境機(jī)械臂關(guān)節(jié)角的變化Fig.11 Variation of Joint Angle of Manipulator in Experimental Environment
從圖11中可以看出,機(jī)械臂各個(gè)關(guān)節(jié)均在電機(jī)的角度約束范圍以內(nèi),并且生成的角度平滑,結(jié)合前文的基于Matlab的避障仿真實(shí)驗(yàn),進(jìn)一步驗(yàn)證了本文提出的機(jī)械臂避障路徑規(guī)劃策略的有效性。
在分析傳統(tǒng)人工勢(shì)法固有缺陷基礎(chǔ)上,通過(guò)在引力場(chǎng)中添加引力安全閾值,在斥力場(chǎng)中添加路徑搜索當(dāng)前點(diǎn)與目標(biāo)點(diǎn)的歐式距離,引入自適應(yīng)大步長(zhǎng)的模擬退火算法對(duì)局部最小值進(jìn)行逃逸。為消除搜索出的路徑出現(xiàn)的震蕩點(diǎn)以及冗余節(jié)點(diǎn),提出一種冗余節(jié)點(diǎn)刪除策略與拐點(diǎn)消除算法。并在典型障礙物環(huán)境、隨機(jī)障礙物環(huán)境以及復(fù)雜障礙物環(huán)境對(duì)算法進(jìn)行了仿真驗(yàn)證,仿真結(jié)果表明路徑搜索算法的有效性。