摘 要: 針對傳統人工勢場法進行移動機器人路徑規劃過程中常出現目標不可達、局部極小值等問題,提出一種改進人工勢場的移動機器人路徑規劃新方法。將移動機器人和目標點之間的歐氏距離融入到斥力函數中,并將障礙物產生的斥力分解為兩個不同方向的斥力分量,引導移動機器人到達目標點;根據移動機器人的位置、障礙物的最大影響距離以及移動機器人與目標點之間的歐氏距離建立數學關系,尋找虛擬目標點,以解決移動機器人在移動過程中受到的合力為零時出現的局部極小值問題。仿真及實驗結果表明,改進人工勢場算法能夠使移動機器人順利繞過障礙物到達目標點。
關鍵詞: 移動機器人; 路徑規劃; 改進人工勢場算法; 斥力函數; 局部極小值; 虛擬目標點
0 引 言
隨著無人駕駛技術的不斷發展,移動機器人的路徑規劃和自主避障已廣泛應用在危險任務的執行、爆破、巡航等方面,成為國內外學者研究的熱點[1?3]。移動機器人路徑規劃是指通過在移動機器人上安裝多種傳感器探測周圍的環境信息,規劃出一條滿足動力學要求、穩定性以及舒適性等評價標準的優化路線,方便對移動機器人進行跟蹤。目前路徑規劃的主要方法包括神經網絡算法[4]、向量直方圖算法[5]、遺傳算法[6]、人工勢場法(Artificial Potential Field Algorithm,APFA)[7]等。人工勢場法具有計算量小、規劃時間短、便于實現底層控制等特點,在移動機器人的路徑規劃中廣泛應用[8]。然而,當機器人所處環境復雜多變時,傳統的人工勢場法容易出現局部極小值問題,導致移動機器人無法正常移動至目標點。因此,科研人員提出許多改進的人工勢場法。文獻[9]根據障礙物的距離遠近,采用不同的引力和斥力方向計算方法,并縮小障礙物的范圍以解決局部極小值問題。文獻[10]利用概率論建立了一個勢場模型,根據累積分布函數的特征和障礙物的邊界條件推導出勢場模型的解析式,并利用概率密度函數求出勢場的表達式,以解決目標不可達問題。文獻[11]在斥力函數中引入逃逸力,以解決局部極小值問題,并利用遺傳算法得到更加平滑的規劃路徑。文獻[12]將滾動窗口理論和人工勢場相結合,提高機器人躲避障礙物的能力,使機器人能夠精準移動至目標點。本文提出一種新的改進人工勢場的移動機器人路徑規劃方法,以期實現移動機器人靈活地避開障礙物,精準到達目標點。
1 基于虛擬目標點的改進人工勢場路徑規劃算法
1.1 人工勢場法及其問題分析
人工勢場法(APFA)是由Khatib于1986年提出[13],它是解決路徑規劃問題最有效的方法之一。人工勢場法將移動機器人所在的環境模擬成物理學中的“場”,稱為虛擬勢場。該虛擬勢場包含引力場和斥力場,引力場由目標點生成,斥力場由環境中的障礙物生成。移動機器人借助于引力場的作用,逐漸向目標點靠近;與此同時,斥力場作用于移動機器人上,使其巧妙地繞過障礙物。移動機器人的人工勢場受力分析如圖1所示。
在人工勢場法中,用[X]表示移動機器人當前所處的位置,[Xg]表示目標點所處的位置,[Xb]表示障礙物所的處位置。
引力勢函數可表示為:
[Ua=12?ka?d2g] (1)
式中:[ka]表示引力勢場常數;[dg]表示移動機器人當前所處位置[X]和目標點所處位置[Xg]之間的歐氏距離。
引力可以表示為引力勢函數的負梯度:
[Fa=-grad(Ua)=-ka?dg] (2)
斥力勢函數可表示為:
[Ur=12?kr?1db-1dm2, db≤dm0, db>dm] (3)
式中:[kr]表示斥力勢場常數;[db]表示移動機器人當前所處位置[X]和障礙物所處位置[Xb]之間的歐氏距離;[dm]表示障礙物能夠影響的最大距離。當移動機器人和障礙物之間的距離[db<][dm]時,障礙物產生的斥力場才能作用于移動機器人。
斥力可以表示為斥力勢函數的負梯度:
[Fr=kr?1db-1dm?1d2b, db≤dm0, db>dm] (4)
移動機器人受到的合力為:
[F=Fa+Fr] (5)
利用人工勢場法進行移動機器人路徑規劃時通常存在如下問題:
1) 目標點和障礙物之間的距離較近,且目標點處在障礙物的影響距離內,當移動機器人快要移動到目標點時,其所受的斥力可能大于引力,此時移動機器人會不斷在目標點周圍徘徊,陷入局部極小值的陷阱中,無法抵達目標點。
2) 目標點、障礙物和移動機器人處于一條直線上,移動機器人在向目標點移動的過程中所受的引力和斥力也在一條直線上并且方向相反,如果此時引力和斥力的合力為零,那么移動機器人就無法判斷接下來的前進方向,它就會誤認為已經到達目標點,進而停止移動。
1.2 斥力函數的改進
為了解決人工勢場法中的目標不可達問題,將移動機器人當前所處位置[X]和目標點所處位置[Xg]之間的歐氏距離[dg]融入到斥力函數中,如式(6)所示:
[Ur=12?kr?(1db-d0-1dm-d0)2dtg, db≤dm0, db>dm] (6)
式中:[t]表示移動機器人當前所處位置和目標點所處位置之間的歐氏距離對斥力的影響系數;[d0]表示障礙物的安全距離。當移動機器人越靠近目標點時,斥力函數值越接近0。
將由障礙物產生的作用于移動機器人的斥力分解為兩個分量,分別是由障礙物指向移動機器人方向的斥力分量[Fr1],以及由移動機器人指向目標點方向的斥力分量[Fr2]。移動機器人的改進人工勢場受力分析如圖2所示。
引力[Fa]和斥力[Fr]可以分別表示為引力勢函數和斥力勢函數的負梯度:
[Fa=-kadg] (7)
[Fr=Fr1+Fr2, db≤dm0, db>dm] (8)
斥力[Fr]的分量[Fr1]和[Fr2]分別表示如下:
[Fr1=kr?1db-d0-1dm-d0?1(db-d0)2?dtg] (9)
[Fr2=12?t?kr?1db-d0-1dm-d02?dt-1g] (10)
當移動機器人逐漸靠近障礙物并受其斥力影響時,斥力分量[Fr1]會給移動機器人施加一定的阻力,使其向遠離障礙物的方向移動,斥力分量[Fr2]和引力[Fa]則引導移動機器人向目標點的方向移動。
1.3 虛擬目標點設置
如果目標點、障礙物和移動機器人處于一條直線上,則移動機器人所受的引力和斥力也處于一條直線上,當移動機器人在向目標點移動的過程中受到的合力為零時,它就會誤認為此時已經到達目標點,進而停止移動。
1.3.1 局部極小值問題檢測
由于移動機器人的移動環境是未知的,移動機器人在向目標點移動的過程中受到的合力為零時的情況出現的概率很小,最常見的是移動機器人在某一點附近震蕩走動,即移動機器人在以該點為圓心的圓內徘徊,陷入局部極小值陷阱。因此,根據距離檢測的方式來判斷移動機器人是否陷入局部極小值陷阱。在圖3中,假設以局部極小值點為圓心的圓半徑是[R],在[t]時刻,移動機器人所處的位置為[Xt(xt,yt)]。經過[Δt]時間后,移動機器人移動到新的位置[Xt+Δt(xt+Δt,yt+Δt)],則[Xt]與[Xt+Δt]之間的距離為:
[d=(xt-xt+Δt)2+(yt-yt+Δt)2] (11)
如果[d
1.3.2 虛擬目標點的設置
推薦閱讀:電子技術與軟件工程
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >