【PRM路径规划】基于粒子群算法实现机器人路径规划代码附matlab代码

1 简介

​本文提供无人机领域内的一种基于粒子群和PRM的无人机航迹规划方法,在无人机飞行空间中进行随机采点,并根据环境中禁飞区,雷达区等障碍物信息利用PRM方法构建概率地图,把连续空间的规划问题转化为拓扑空间的规划问题,之后,根据无人机的位置以及分配到的任务位置确定源点位置和目标点位置,并把无人机从源点到达目标点的路程作为优化目标函数,针对无人机航迹规划模型的特点对分配方案进行编码,利用粒子群算法对问题进行求解,在概率地图中得到一条最短的飞行路径,通过在采样的过程中增加在障碍物附近的采点量,从而强化算法在窄通道中的路径搜索,使其更适用于复杂地形.

2 部分代码

clcclear allclose allxs=0;      ys=0;      %起始点xt=1.5;    yt=8.9;    %目标点xobs=[1.5 4.0 1.2];   %障碍物(圆)yobs=[6.5 3.0 1.5];robs=[1.5 1.0 0.8];possize =81;          %种群大小gendai =200;          %演化代数w =0.9;               %权重系数c1= 2; c2 =2;         %学习学习因子dim = 5;              %每个粒子维度vmax = 1;             %速度最大值lim = [0 6 0 10];     %空间范围限制[posx,posy] = initpos(possize,dim,lim,xobs,yobs,robs,xs,ys,xt,yt);%初始化种群[ vx ,vy ] = initv(possize,dim,vmax);                 %初始化速度pbest =zeros(possize,1);  %每个粒子最优适应度pidx =zeros(possize,dim);  %每个粒子对应的位置 x方向pidy =zeros(possize,dim);  %每个粒子对应的位置 y方向maxgbest = zeros(1);    %整个过程中最优适应度maxpgdx = zeros(1,dim); %整个过程全局最优位置 x方向maxpgdy = zeros(1,dim); %整个过程全局最优位置 y方向maxfitvalueall = [];    %各代最优适应度theta=linspace(0,2*pi,100);             %绘图x坐标figure(1)                               %绘图句柄for k=1:numel(xobs)                     %循环绘制障碍物fill(xobs(k)+robs(k)*cos(theta),yobs(k)...    +robs(k)*sin(theta),[0.5 0.7 0.8]);hold on;endplot(xs,ys,'bs','MarkerSize',12,'MarkerFaceColor','y'); %绘制起始点plot(xt,yt,'kp','MarkerSize',16,'MarkerFaceColor','g'); %绘制目标点plot([xs maxpgdx xt],[ys maxpgdy yt])                   %绘制最优路径axis([0 7 0 10])                                        %设置坐标轴title('粒子群算法-路径规划');grid on;                    %设置标题 添加网格figure(2)plot(maxfitvalueall)                           %绘制适应度变化曲线title('适应度变化曲线'); grid on;               %设置标题 添加网格xlabel('代数/n'); ylabel('适应度')              %添加轴名称disp(['最优距离:',num2str(1/(maxgbest*10))])

3 仿真结果

4 参考文献

[1]张迎周, 高扬, 孙仪,等. 基于粒子群和PRM算法的无人机航迹规划方法:, CN109683630A[P]. 2019.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值