Robotics: Computational Motion Planning(路径规划)笔记(完):人工势场法(Artificial Potential Fields)
在上一個章節中,我們討論了基于采樣的方法-PRM和RRT算法,在本章節中,我們將討論人工勢場法(Artificial Potential Fields),這是另一種路徑規劃方法,主要思想就是在配置空間內構造一個平滑函數,機器人會根據函數的梯度方向向目標點移動,同時躲避障礙物。
人工勢場法(Artificial Potential Fields)
人工勢場法的主要內容就是構造一個函數,當機器人靠近障礙物時,其值會變高,當機器人靠近目標點時,其值會變低。同時,我們還希望此函數在所需的目標位置具有最低值。如果我們可以構造這樣一個函數,我們可以使用它的梯度來引導機器人到達目標點。
構造引力場(Constructing an Attractive Potential Field)
構建引力場其實很簡單,只需要考慮當前時刻機器人與目標點的位置,那么我們可以用一個度量距離的方法,比如歐氏距離,這樣就會在目標處的值為零,并且其值會隨著機器人遠離它而增加:
其中,?為配置空間中的某一個位置,?為目標點的位置,??只是一個縮放因子(常數值),這個函數我們就稱之為引力函數,能將機器人吸引到目標點。
這樣子我們就得到一個引力場,它的樣子是這樣的:
?引力場的樣子就像一個坡,越遠離目標點的地方越高,目標點的地勢最低。
構造斥力場(Constructing a Repulsive Potential Field)?
除了到達目標點,我們還希望機器人避開環境中的障礙物。為此我們也會構建一個斥力函數,讓機器人遠離障礙物:
其中??表示機器人在當前位置距離最近障礙物的值,?也只是一個縮放因子(常數值),?控制斥力函數的影響范圍,當機器人與障礙物的距離大于?,這個函數的值就為0。
這樣子我們就可以根據地圖的障礙物信息得到一個斥力場,它的樣子是這樣的:
通過將引力場和斥力場相加,就可以得到:
那么我們可以把機器人的位置當作一個小球,那么小球就可以根據梯度移動到目的點,就好像由于重力從高處向低處滾落。?
局限性
通過人工勢場法進行路徑規劃有時候會出現局部最小值的問題,例如我們考慮下面這種情況,地圖是這樣的,機器人在左上方,目標點在右下方(紅點處):?
下圖就是小球通過人工勢場法移動的結果,可以看到,小球卡在了中間的障礙物里,這表明小球現在處于吸引力和排斥力相加的局部最小值的位置。這意味著, 簡單的基于梯度的控制策略可能會也可能不會收斂于目標點,這取決于機器人起點的位置。
所以現在主流的路徑規劃算法都不會單純地只使用這種基于梯度的算法,但是這種算法可以當作路徑規劃算法中的一部分,比如用在局部規劃器或者重規劃中,用來保證機器人快速向目標點靠近。
?
?
總結
以上是生活随笔為你收集整理的Robotics: Computational Motion Planning(路径规划)笔记(完):人工势场法(Artificial Potential Fields)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab画图设置指数坐标
- 下一篇: qq音乐主页 思路解析(及代码)