✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
⛄ 内容介绍
多机器人路径规划问题(Multi-robot Path Planning)不仅是机器人导航领域的核心内容,还是机器人研究领域的重点,难点问题.复杂环境下的多移动机器人路径规划问题是指,在同时存在静态和动态障碍物的工作空间中,为每台机器人都规划出一条从起点到目标点的系统要求的最优路径,同时还要保证机器人与障碍物之间,机器人与机器人之间不发生碰撞.
⛄ 部分代码
function [d,path,position]= verify(bestpath,threat,R,startX,startY,endX,endY,gridCount)
(j,1))^2+(y_2-threat(j,2))^2);
if (d<R(j)&&(X<=x_max&&X>=x_min)&&(Y<=y_max&&Y>=y_min))||d_1<=R(j)||d_2<=R(j)
cost(Allowed(i,1),Allowed(i,2))=Inf;
end
end
end
u=1;
%计算次优航程,这里的原理主要是从蝙蝠个体的坐标中选取合适的点,然后在之后的流程由点成线
dist=cost(1,:);
s=zeros(size(dist));
s(1)=1;
dist(1)=0;
path=zeros(size(dist));
path(1,:)=1;
for num=2:n
mindist=Inf;
for i=1:length(dist)
if s(i)==0
if dist(i)<mindist
mindist=dist(i);
u=i;
end
end
end
s(u)=1;
for w=1:length(dist)
if s(i)==0
if dist(u)+cost(u,w)<dist(w)
dist(w)=dist(u)+cost(u,w);
path(w)=u;
end
end
end
end
i=n;
d=0;
count=0;
while i>1
j=path(i);
%plot([position(i,1),position(j,1)],[position(i,2),position(j,2)],'Linewidth',2)
%axis([0,700,0,700]);
d=d+sqrt((position(i,1)-position(j,1))^2+(position(i,2)-position(j,2))^2);
i=j;
count=count+1;
end
%这里这么做主要是避免无人机航线中只存在两个点
if count==1
d=Inf;
end
d;path;position;
⛄ 运行结果
⛄ 参考文献
[1]王松杰. 复杂环境下移动机器人路径规划方法的研究[D]. 河北工程大学, 2018.