引力势能:
$$U_{att}= \tfrac{1}{2}k_{att}\cdot d_{goal}^2$$斥力势能(当 $d_{obs}< d_0$ 时):
$$U_{rep}= \tfrac{1}{2}k_{rep}\left(\frac{1}{d_{obs}}- \frac{1}{d_0}\right)^2$$合力:$\mathbf{F}= -\nabla(U_{att}+ \sum U_{rep})$
在引力·斥力组合势场中对机器人(质点)进行实时路径计算。包含势能彩色图、局部极小点检测及简易RRT对比。
引力势能:
$$U_{att}= \tfrac{1}{2}k_{att}\cdot d_{goal}^2$$斥力势能(当 $d_{obs}< d_0$ 时):
$$U_{rep}= \tfrac{1}{2}k_{rep}\left(\frac{1}{d_{obs}}- \frac{1}{d_0}\right)^2$$合力:$\mathbf{F}= -\nabla(U_{att}+ \sum U_{rep})$
机器人感受到的总势能,是目标点产生的“引力势能”与所有障碍物产生的“斥力势能”之和。机器人总是沿着势能下降最快的方向(即负梯度方向)运动。
$$U_{total}= U_{att}+ \sum U_{rep}$$其中,$U_{total}$是总势能,$U_{att}$是引力势能,$\sum U_{rep}$是所有障碍物产生的斥力势能之和。
引力势能使机器人趋向目标,其大小与到目标点距离的平方成正比;斥力势能则使机器人远离障碍物,只在障碍物影响范围内生效。
$$ \begin{aligned}U_{att}&= \frac{1}{2}k_{att}\cdot d_{goal}^2 \\[6px] U_{rep}&= \begin{cases}\frac{1}{2}k_{rep}\left( \dfrac{1}{d_{obs}}- \dfrac{1}{d_0}\right)^2, & \text{if }d_{obs}< d_0 \\ 0, & \text{if }d_{obs}\ge d_0 \end{cases}\end{aligned}$$$k_{att}$:引力系数,控制吸引力强度。
$k_{rep}$:斥力系数,控制排斥力强度。
$d_{goal}$:机器人到目标点的距离。
$d_{obs}$:机器人到障碍物表面的最近距离。
$d_0$:障碍物的影响半径,在此范围内斥力才生效。
工厂AGV/AMR运输机器人:在自动化仓库中,自主移动机器人使用势场法进行实时局部避障。当激光雷达检测到突然出现的工人或货架时,机器人能迅速计算斥力,平滑地绕行,同时保持向目标货架前进的总体趋势。
无人机集群编队与避障:多架无人机在执行编队飞行时,每架无人机都将队友视为动态障碍物产生斥力场,将目标航点视为引力源。这使得集群能保持队形的同时,灵活规避突发障碍。
汽车辅助驾驶与自动泊车:在自动泊车系统中,车辆将目标车位作为引力点,将周围车辆、柱子和墙壁作为斥力障碍物,规划出一条平滑、安全的入库轨迹,并实时调整。
机械臂关节空间规划:在机械臂控制中,将关节角度空间映射为势场,目标姿态产生引力,可能导致碰撞或超出关节限位的区域产生高斥力势垒,从而规划出安全、高效的运动轨迹。
首先,人们常误以为“只要增大系数就一定能提升性能”,但这种想法是危险的。例如,若将斥力系数$k_{rep}$设置得过大,障碍物周围的斥力“陡坡”会过于陡峭,导致机器人产生振动或无法通过狭窄通道。反之,若引力系数$k_{att}$过强,机器人会强行贴近障碍物边缘通过,增加碰撞风险。关键在于平衡——例如在仓库的宽阔通道中,可从$k_{att}=1.0, k_{rep}=0.5$左右开始调试;而在狭窄通道中,则需要缩小斥力影响半径$d_0$,这种基于场景的调参必不可少。
其次,“计算量轻所以实时更新很容易”也是一种误解。虽然单步计算确实轻量,但当机器人陷入局部极小值时,会持续在原地计算,进入“无限循环”状态。实际实现时必须设置最大步数限制,或为停滞状态添加随机微小扰动等安全机制。
最后,本模拟器的“点质量”模型是高度理想化的。实际机器人具有尺寸与形状。例如规划宽度60cm的运输机器人时,需将障碍物半径加上机器人半径,以“膨胀障碍物”进行考量。在模拟器中尝试放大障碍物设置,可以直观体会这一概念。