天天看点

复杂环境下多移动机器人路径规划研究附Matlab代码

✅作者简介:热爱科研的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;

⛄ 运行结果

复杂环境下多移动机器人路径规划研究附Matlab代码

⛄ 参考文献

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除

继续阅读