本文提供无人机领域内的一种基于粒子群和PRM的无人机航迹规划方法,在无人机飞行空间中进行随机采点,并根据环境中禁飞区,雷达区等障碍物信息利用PRM方法构建概率地图,把连续空间的规划问题转化为拓扑空间的规划问题,之后,根据无人机的位置以及分配到的任务位置确定源点位置和目标点位置,并把无人机从源点到达目标点的路程作为优化目标函数,针对无人机航迹规划模型的特点对分配方案进行编码,利用粒子群算法对问题进行求解,在概率地图中得到一条最短的飞行路径,通过在采样的过程中增加在障碍物附近的采点量,从而强化算法在窄通道中的路径搜索,使其更适用于复杂地形.
clc
clear all
close all
xs=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;
end
plot(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))])
[1]张迎周, 高扬, 孙仪,等. 基于粒子群和PRM算法的无人机航迹规划方法:, CN109683630A[P]. 2019.
部分理论引用网络文献,若有侵权联系博主删除。