运动与路径规划

人工势场法

人工势场法是一种引导机器人运动的方法,它把整个世界想象成一片有山有谷的地形,然后让机器人顺着坡往下滚。你想到达的目标点被当成山谷的最低处,会轻轻地把机器人往那里拉,就像小球会滚到碗的底部一样。与此同时,每个障碍物都被当成一座山顶,会把机器人推开,就像同极的两块磁铁会互相排斥一样。在任何位置,机器人只需把来自目标的拉力和来自附近障碍物的各个推力加在一起,得到一个合成的箭头,告诉它哪个方向是“下坡”,然后朝那个方向迈出一小步。

这种方法吸引人的地方在于它快速而又有即时反应:机器人不必事先规划一整条路线,只要感受此刻周围的各种力并随之移动,这让它能躲开突然冒出来的东西。它最大的弱点是会困在“局部极小点”——地形里一个并不是目标的小凹坑,就像半山腰上一个小坑,小球落进去就停住不动了。一个经典的陷阱是 U 形的墙:目标把机器人直直地往里拉,两侧的墙又均匀地把它往回推,机器人就被卡在凹口里动弹不得,始终到不了墙另一边的目标。正因为如此,最基础的势场法常常要和更聪明的规划器或额外的小技巧配合,才能逃出这类陷阱。

一台穿过大堂的送货机器人,会感到一股稳定的拉力把它拉向出口门,同时每根柱子和每个人都把它往外推;这些推拉力的合力让它的路径在它们之间平滑地拐弯,而它从头到尾都不必算出一整条完整的路线。

目标在拉、障碍在推——机器人顺着合力前进。

朝向目标的拉力叫做“引力场”,来自障碍物的推力叫做“斥力场”;机器人跟随的是二者合成的力,也就是总势场的坡度(梯度)。

又称
potential field methodAPF势场法