Real-Time Obstacle Avoidance for Manipulators and Mobile Robots
Oussama Khatib
1. 人工势场 U a r t U_{art} Uart:
表现为目标引力场 U x d U_{x_d} Uxd和障碍物斥力场 U O U_{O} UO的和,其中 x x x为机器人Configuration参数,表示机器人位姿
机器人总势能
U
U
U,在
U
a
r
t
U_{art}
Uart的基础上在加上重力势能
U
g
U_{g}
Ug
在人工势场中,单位质量的受力情况在
F
a
r
t
∗
F_{art}^*
Fart∗表示为在引力和斥力的和
其中,机器人受到的引力和斥力都分别沿着两个场的负梯度方向,即势能减小最快的方向(引力向着目标,斥力背离障碍)
2. 目标引力场 U x d U_{x_d} Uxd:
当目标引力场 U x d U_{x_d} Uxd如下设置时
对应受到的引力
F
x
d
∗
F_{x_d}^*
Fxd∗如下,为
U
x
d
U_{x_d}
Uxd对x的负导数
其中
K
p
K_p
Kp对应位置增益,联系弹簧弹力和弹性势能的对应关系比较好理解。
这里可以理解成一个通过引力来控制位置的控制系统,仅有比例控制时,不具有前瞻性,不稳定,容易产生超调,也就是造成机器人无法停在目标处,而是开过头再倒回来,经过震荡后稳定在目标位置。
为了增加稳定性,引入微分项
x
˙
\dot x
x˙即机器人运动速度,形成PD控制
这样,引力场将与机器人速度产生联系,当速度过大,引力场会减弱,提前避免超调,文章中格外提到需要注意,要限制机器人最大的运动速度,以免过大的运动速度将引力场完全抵消,使机器人失去目标。
3. 障碍物斥力场 U O U_O UO:
方法1:当有障碍物边缘方程f(x)=0时,可以如下设置,x0为斥力场边界
方法2:直接根据离障碍物的距离远近来设置斥力场,这个方法比较简易,ρ0为斥力场边界
对于高维空间,用PSP(Point Subjected to the Potential)来表达各维度上的斥力场
偏导数的含义类似与距离在各维上的投影
斥力场的可加性:同一个障碍物的不同部分(primitives)形成的斥力场、不同障碍物形成的斥力场都具有可加性:
从点受到的斥力作用可以扩展到link受到的斥力作用,问题转化为找到link距离障碍物的最近距离。同样地,也可以扩展到joint运动限制问题上,类比可以把运动范围的上下界看作两个障碍物,生成两个斥力场,让joint在其之间运动。
4. 存在的问题:
1) 局部极小值(local minima)的干扰
人工势场通过将目标点处设置为引力场势能极小点,引导机器人不断向目标点靠近,同时每个障碍物都在生成斥力场以使机器人在行进过程中远离障碍物,实现避障。
能成功生成一条到达目标的路径的重点在于,全局只有一个最小势能点,即目标点,这样机器人不论以何处为起点,都可以沿势场下降梯度找到目标。
然而,复杂环境中,如U形障碍物,会生成具有局部极小值的势场,机器人一旦到达局部极小值,则无法再沿梯度向目标处移动,造成路径规划失败。
作者将该方法的这个特点形容为:local perspective,即局部视野、短视。
2) 欠缺实时性
计算势场、连接一条从起点沿梯度下降到目标点的路径计算量比较大,往往无法达到实时规划,所以这个方法常作为实时规划系统(high level planning system)的其中一个组成部分。作者简述了提高算法实时性的一些方法,这里不叙述。