1. 人工势场法路径规划核心原理
人工势场法(Artificial Potential Field, APF)是机器人路径规划中一种经典的局部规划算法。它的核心思想是将机器人在环境中的运动模拟为在虚拟势场中的受力运动。目标点产生引力势场吸引机器人靠近,障碍物产生斥力势场排斥机器人远离,通过这两种力的合力来引导机器人运动。
1.1 引力势场建模
引力势场函数通常采用二次函数形式:
$$
U_{att}(q) = \frac{1}{2}\eta \cdot \rho^2(q,q_{goal})
$$
其中:
- $\eta$ 为引力增益系数
- $\rho(q,q_{goal})$ 表示当前位置 $q$ 到目标点 $q_{goal}$ 的欧式距离
对应的引力为势场的负梯度:
$$
F_{att}(q) = -\nabla U_{att}(q) = \eta \cdot (q_{goal} - q)
$$
在Matlab中实现如下:
matlab复制function [U, F] = attractive_potential(q, q_goal, eta)
% 计算引力势场和引力
r = norm(q - q_goal);
U = 0.5 * eta * r^2; % 势能
F = eta * (q_goal - q); % 力
end
提示:引力系数η的选择很关键,过大会导致震荡,过小则收敛缓慢。建议初始值设为1,根据实际效果调整。
1.2 斥力势场建模
斥力势场函数通常表示为:
$$
U_{rep}(q) =
\begin{cases}
\frac{1}{2}\xi(\frac{1}{\rho(q,q_{obs})} - \frac{1}{\rho_0})^2, & \text{if } \rho(q,q_{obs}) \leq \rho_0 \
0, & \text{if } \rho(q,q_{obs}) > \rho_0
\end{cases}
$$
其中:
- $\xi$ 为斥力增益系数
- $\rho_0$ 为障碍物影响半径
- $\rho(q,q_{obs})$ 为当前位置到障碍物的距离
对应的斥力为:
$$
F_{rep}(q) = \xi(\frac{1}{\rho(q,q_{obs})} - \frac{1}{\rho_0})\frac{1}{\rho^2(q,q_{obs})}\nabla\rho(q,q_{obs})
$$
Matlab实现代码:
matlab复制function [U, F] = repulsive_potential(q, q_obs, xi, rho0)
% 计算斥力势场和斥力
r = norm(q - q_obs);
if r <= rho0
U = 0.5 * xi * (1/r - 1/rho0)^2;
F = xi * (1/r - 1/rho0) * (1/r^3) * (q - q_obs);
else
U = 0;
F = [0; 0];
end
end
1.3 合力计算与运动控制
机器人受到的合力为所有引力和斥力的矢量和:
$$
F_{total} = F_{att} + \sum F_{rep}
$$
运动控制采用梯度下降法,每次迭代按合力方向移动一步:
$$
q_{new} = q_{current} + \alpha \frac{F_{total}}{||F_{total}||}
$$
其中$\alpha$为步长系数,控制移动速度。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动态路径规划实现细节
2.1 主算法流程
完整的动态路径规划算法流程如下:
- 初始化起
