路径规划-人工势场法(Artificial Potential Field)
人工勢場法是局部路徑規劃的一種比較常用的方法。這種方法假設機器人在一種虛擬力場下運動。
1. 簡介
如圖所示,機器人在一個二維環境下運動,圖中指出了機器人,障礙和目標之間的相對位置。?
這個圖比較清晰的說明了人工勢場法的作用,物體的初始點在一個較高的“山頭”上,要到達的目標點在“山腳”下,這就形成了一種勢場,物體在這種勢的引導下,避開障礙物,到達目標點。
人工勢場包括引力場合斥力場,其中目標點對物體產生引力,引導物體朝向其運動(這一點有點類似于A*算法中的啟發函數h)。障礙物對物體產生斥力,避免物體與之發生碰撞。物體在路徑上每一點所受的合力等于這一點所有斥力和引力的和。這里的關鍵是如何構建引力場和斥力場。下面我們分別討論一下:
1.1. 引力場
常用的引力函數:
這里的ε是尺度因子,表示物體當前狀態與目標的距離。引力場有了,那么引力就是引力場對距離的導數(類比物理里面W=FX):
引力場模型1.2. 斥力場
公式(3)是傳統的斥力場公式。公式中η是斥力尺度因子,代表物體和障礙物之間的距離。代表每個障礙物的影響半徑。換言之,離開一定的距離,障礙物就對物體沒有斥力影響。
斥力就是斥力場的梯度
斥力場模型總的場就是斥力場合引力場的疊加,也就是U=U_att+U_rep,總的力也是對對應的分力的疊加,如下圖所示:
2. 存在的問題
- 當物體離目標點比較遠時,引力將變的特別大,相對較小的斥力在甚至可以忽略的情況下,物體路徑上可能會碰到障礙物
- 當目標點附近有障礙物時,斥力將非常大,引力相對較小,物體很難到達目標點
- 在某個點,引力和斥力剛好大小相等,方向想反,則物體容易陷入局部最優解或震蕩
3. 各種改進版本的人工勢場法
- 對于可能會碰到障礙物的問題,可以通過修正引力函數來解決,避免由于離目標點太遠導致引力過大
和(1)式相比,(5)式增加了范圍限定。d*_goal 給定了一個閾值限定了目標和物體之間的距離。對應的梯度也就是引力相應變成:
- 目標點附近有障礙物導致目標不可達的問題,引入一種新的斥力函數
這里在原有斥力場的基礎上,加上了目標和物體距離的影響,(n是正數,我看到有篇文獻上n=2)。直觀上來說,物體靠近目標時,雖然斥力場要增大,但是距離在減少,所以在一定程度上可以起到對斥力場的拖拽作用
相應斥力變成:
所以可以看到這里引力分為兩個部分,編程時要格外注意
- 局部最優問題是一個人工勢場法的一個大問題,這里可以通過加一個隨機擾動,讓物體跳出局部最優值。類似于梯度下降法局部最優值的解決方案。
參考文獻
路徑規劃算法初探_森林寶貝的博客-CSDN博客_局部路徑規劃算法
Artificial Potential Field Approach and its Problems - General Discussions - RobotShop Community
解決人工勢場法局部極小問題的一種新方法 - 道客巴巴
matlab改進人工勢場法模擬機器人路徑規劃,避障_人工勢場法改進領航跟隨法的控制算法實現-Matlab文檔類資源-CSDN下載
http://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf
幫忙分析一下人工勢場法的局部路徑規劃程序 – MATLAB中文論壇
總結
以上是生活随笔為你收集整理的路径规划-人工势场法(Artificial Potential Field)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: access ea 可以联网吗_如何看待
- 下一篇: USB 格式化,提示The volume