運動與路徑規劃

人工勢場法

人工勢場法是一種引導機器人運動的方法,它把整個世界想像成一片有山有谷的地形,然後讓機器人順著坡往下滾。你想到達的目標點被當成山谷的最低處,會輕輕地把機器人往那裡拉,就像小球會滾到碗的底部一樣。與此同時,每個障礙物都被當成一座山頂,會把機器人推開,就像同極的兩塊磁鐵會互相排斥一樣。在任何位置,機器人只需把來自目標的拉力和來自附近障礙物的各個推力加在一起,得到一個合成的箭頭,告訴它哪個方向是「下坡」,然後朝那個方向邁出一小步。

這種方法吸引人的地方在於它快速而又有即時反應:機器人不必事先規劃一整條路線,只要感受此刻周圍的各種力並隨之移動,這讓它能躲開突然冒出來的東西。它最大的弱點是會困在「局部極小點」——地形裡一個並不是目標的小凹坑,就像半山腰上一個小坑,小球落進去就停住不動了。一個經典的陷阱是 U 形的牆:目標把機器人直直地往裡拉,兩側的牆又均勻地把它往回推,機器人就被卡在凹口裡動彈不得,始終到不了牆另一邊的目標。正因為如此,最基礎的勢場法常常要和更聰明的規劃器或額外的小技巧配合,才能逃出這類陷阱。

一台穿過大堂的送貨機器人,會感到一股穩定的拉力把它拉向出口門,同時每根柱子和每個人都把它往外推;這些推拉力的合力讓它的路徑在它們之間平滑地拐彎,而它從頭到尾都不必算出一整條完整的路線。

目標在拉、障礙在推——機器人順著合力前進。

朝向目標的拉力叫做「引力場」,來自障礙物的推力叫做「斥力場」;機器人跟隨的是二者合成的力,也就是總勢場的坡度(梯度)。

又稱
potential field methodAPF势场法