目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
路径规划是移动机器人领域的热点研究方向,人工势场法已在工业机器人路径规划中得到广泛应用,近年来正逐步应用于农业工程的路径规划问题中。首先对路径规划中人工势场法的原理及传统人工势场法存在的缺陷进行分析,针对人工势场法中的局部极小值和目标不可达问题的多重改进方法进行原理分析和方法总结,并根据人工势场法在工业机器人中的应用对已有的算法融合方法进行分类综述。最后通过对多种改进方法的比较,对农业机器人路径规划所需满足的实时性以及障碍物的多变性进行应用展望,可以利用现有的算法融合研究,结合农业生产的实际情况,对不同农业生产应用场合的融合算法选择机制进行深入研究,以满足现代农业生产中对机器人路径规划的需求。
人工势场法(Artificial Potential Field Method)是由Khatib首先提出将障碍物及目标抽象为虚拟势场,通过建立对应势能场函数解决机械臂避障问题的一种算法。其中,虚拟势场源分为两类:引力场和斥力场。势能场函数将机器人进入区域中的障碍物视为斥力极,目标视为引力极。抽象定义引力极产生引力为参考位置(即移动机器人位置)指向目标位置的距离相关函数;斥力极产生的斥力为障碍物指向参考位置的距离相关函数。通过目标位置引力和环境中障碍物斥力的叠加,即可得移动机器人运行至该点时的合力大小及方向。
📚2 运行结果
🎉3 参考文献
[1]胡杰,张华,傅海涛,卢成锦.改进人工势场法在移动机器人路径规划中的应用[J].机床与液压,2021,49(03):6-10.
[2]石志刚,梅松,邵毅帆,万如,宋志禹,谢铭露,李燕.基于人工势场法的移动机器人路径规划研究现状与展望[J].中国农机化学报,2021,42(12):182-188.DOI:10.13733/j.jcam.issn.2095-5553.2021.12.27.
👨💻4 Matlab代码
部分代码:
%% function
% 人工势场法进行水下机器人路径规划,考虑体积范围
% 计算势函数,画出运动轨迹图像
close all;
% 设置工作区域
xmin = [0; 0];
xmax = [50;50];
% Maximum number
Nsteps = 600;
%设置机器人的参数%
% 选定方向上机器人运动步长参数
lambda = 0.1;
Ns=30;
r = 1;
xs=0*ones(2,Ns);
Jo(:,1)=0*ones(Ns,1);
Jg(:,1)=0*ones(Ns,1);
J(:,1)=0*ones(Ns,1);
theta(:,1)=0*ones(Ns,1);
for m=2:Ns
theta(m,1)=theta(m-1,1)+(pi/180)*(360/Ns);
end
% 设置目标(Goal/Target)位置坐标
P_Goal=[25; 25];
obstacles = [6 20 11 16 18 19 ;6 16 17 14 11.9 19];
Mat = size(obstacles); %障碍物点数
obNum = Mat(1,2);
nt = 20; % Tar运动步数
nr = 20; % Ro的速度,决定能否跟的上
x1 = 1;
y1 = 1;
g = 1;
h = 0;
distrt = 0; % 计算距离,终止条件
distro = 0*ones(2,obNum); % 计算距离,避让临界
t = 0;
na = 0;
% 设置机器人初始位置坐标
P_Ro=[5; 5];
w1 = 1;
w2 = 5;
P_Ro(:,2:Nsteps) = 0*ones(2,Nsteps-1);
% 画出势场
xx=0:35/100:35;
yy=xx;
% 计算障碍物势函数
for jj=1:length(xx)
for ii=1:length(yy)
op(ii,jj)=obstaclefunction([xx(jj);yy(ii)],w1,obstacles);
end
end