💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
人工势场路径规划算法(Artificial Potential Field Path Planning Algorithm)是一种常用的机器人路径规划方法,灵感来源于物理学中的势能场概念。它将机器人周围的环境建模为一个势能场,并利用势能场的梯度来引导机器人朝向目标位置移动。该算法的主要思想是,在环境中为机器人和目标位置分配不同的势能值。机器人受到两种力的作用:一种是来自目标位置的引力,另一种是来自障碍物的斥力。这些力会使机器人朝着目标位置移动,并避开障碍物。根据机器人当前位置和目标位置以及环境中的障碍物位置,计算每个点的势能值。通常,目标位置会产生吸引力,而障碍物则会产生斥力。对于机器人当前位置,计算受到的总合力,即引力和斥力的合成。根据合力的方向和大小,更新机器人的位置。通常采用迭代的方式,多次更新机器人的位置,直到达到目标位置或达到最大迭代次数。在更新机器人位置之后,检测是否发生碰撞。如果机器人与障碍物碰撞,则采取相应的避障策略,如调整路径或重新规划路径。人工势场路径规划算法具有简单易用、适用范围广等优点,但也存在一些缺点,如可能陷入局部最优、对环境变化不敏感等。因此,在实际应用中,需要根据具体情况选择合适的路径规划算法。
📚2 运行结果
主函数部分代码:
clear all; close all; clc;
% Initial position and orientation
x = -0.5;
y = 0.5;
theta = 0;
% Goal position
x_goal = 3.5;
y_goal = 2.75;
position_accuracy = 0.05;
% APF parameters
zeta = 1.1547;
eta = 0.0732;
dstar = 0.3;
Qstar = 0.75;
% Parameters related to kinematic model
error_theta_max = deg2rad(45);
v_max = 0.2;
Kp_omega = 1.5;
omega_max = 0.5*pi;
% Generate obstacles
obst1_points = [ linspace(1.5,1.5,100) linspace(1.5,2,100) linspace(2,2,100) linspace(2,1.5,100)
linspace(1.5,2,100) linspace(2,2,100) linspace(2,1.5,100) linspace(1.5,1.5,100) ];
obst1_points(1,:) = obst1_points(1,:) - 1;
obst1_points(2,:) = obst1_points(2,:) - 1;
obst2_points = [ 2+sin(linspace(0,pi/2,100)) linspace(3,3,100) linspace(3,2,100)
2.5+cos(linspace(0,pi/2,100)) linspace(2.5,3.5,100) linspace(3.5,3.5,100) ];
obst2_points(2,:) = obst2_points(2,:) - 1.5;
figure(1);
t = 1;
dT = 0.1;
t_max = 1000;
X = zeros(1,t_max);
Y = zeros(1,t_max);
X(1) = x;
Y(1) = y;
while norm([x_goal y_goal] - [x y]) > position_accuracy || t > t_max
% Calculate Attractive Potential
if norm([x y]-[x_goal y_goal]) <= dstar
nablaU_att = zeta*([x y]-[x_goal y_goal]);
else
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]卢锦澎,梁宏斌.基于深度Q网络的机器人路径规划研究综述[J].传感器与微系统,2024,43(06):1-5.DOI:10.13873/J.1000-9787(2024)06-0001-05.
[2]胡进森,周彩根,于建江,等.基于融合算法的多AGV物流分拣路径规划[J].电子设计工程,2024,32(11):16-21.DOI:10.14022/j.issn1674-6236.2024.11.004.