【路径规划】基于matlab任意架次植保无人机作业路径规划【含Matlab源码 322期】

一、简介

一、程序说明 实现任意数目多边形的地图绘制和网格划分,并在此基础上实现任意架次植保无人机作业路径的规划。 路径规划采用牛耕往复式,并考虑电池约束和药液约束,并考虑了多台无人机作业时的距离(避碰)。主要变量含义如下: MAXliquid 药箱最大容量 MAXbattery 电池最大容量 liquidState 药箱状态 batteryState 电池状态 idleSpeed 非作业时飞行速度 operationSpeed 作业时飞行速度 liquidPerOD 单位距离的药液消耗量 batteryPerOD 单位距离的电池消耗量

绘制地图,划分网格
实现任意多边形的绘制;
将每个多边形进行网格划分,每个元胞(cell)的大小为OW*OD;
网格划分的结果存在gridPoints中。
路径规划
无人机从操作台出发;
从左到右依次遍历网格中的各个元胞,直到电池耗尽或药业耗尽;
返回工作台,从而形成一条路径,所有路径存储在rawRoutes中;
若地图未遍历,则返回1),否则进行5);
计算每台无人机的起降次数,并考虑每轮起降是无人机间的距离,进行路径分配。
结果显示
以事件驱动的方式进行显示;
线条表示理想路径,阴影表示实际喷淋效果;
红色线条表示出发路径,黄色线条表示返航路径;
红色圆圈表示某次作业的起始作业点,黄色圆圈表示终止作业点; 二、有待改进
约束条件
地形地势约束(GIS)
障碍物阻挡
能耗随药液量递减;
作业能耗和非作业能耗不同;
目标函数
路径长度(起航返航)
费用(成本)
时间(效率)
转弯次数
负载均衡

二、源代码

clc;
clear all;
close all;
% %%
% 一、程序说明 实现任意数目多边形的地图绘制和网格划分,并在此基础上实现任意架次植保无人机作业路径的规划。 路径规划采用牛耕往复式,并考虑电池约束和药液约束,并考虑了多台无人机作业时的距离(避碰)。主要变量含义如下: MAXliquid 药箱最大容量 MAXbattery 电池最大容量 liquidState 药箱状态 batteryState 电池状态 idleSpeed 非作业时飞行速度 operationSpeed 作业时飞行速度 liquidPerOD 单位距离的药液消耗量 batteryPerOD 单位距离的电池消耗量
% 
% 绘制地图,划分网格
% 实现任意多边形的绘制;
% 将每个多边形进行网格划分,每个元胞(cell)的大小为OW*OD;
% 网格划分的结果存在gridPoints中。
% 路径规划
% 无人机从操作台出发;
% 从左到右依次遍历网格中的各个元胞,直到电池耗尽或药业耗尽;
% 返回工作台,从而形成一条路径,所有路径存储在rawRoutes中;
% 若地图未遍历,则返回1),否则进行5)% 计算每台无人机的起降次数,并考虑每轮起降是无人机间的距离,进行路径分配。
% 结果显示
% 以事件驱动的方式进行显示;
% 线条表示理想路径,阴影表示实际喷淋效果;
% 红色线条表示出发路径,黄色线条表示返航路径;
% 红色圆圈表示某次作业的起始作业点,黄色圆圈表示终止作业点; 二、有待改进
% 约束条件
% 地形地势约束(GIS)
% 障碍物阻挡
% 能耗随药液量递减;
% 作业能耗和非作业能耗不同;
% 目标函数
% 路径长度(起航返航)
% 费用(成本)
% 时间(效率)
% 转弯次数
% 负载均衡
global OW OD LineNum MAXliquid MAXbattery 
global idleSpeed operationSpeed liquidPerOD batteryPerOD;
OW=0.02;
OD=0.02;
MAXliquid = 5;
MAXbattery =5;
idleSpeed = 0.3;
operationSpeed = 0.2;
liquidPerOD =1;
batteryPerOD =1;
LineNum=1;
%%
% xv1=[0.2 0.5 0.6 0.1];
% yv1=[0.7 0.8 0.3 0.4];
% boundary1=[xv1;yv1];
% 
% xv2=[-0.9 -0.7 -0.4 -0.5 -0.8];
% yv2=[0.9 0.95 0.7 0.5 0.6];
% boundary2=[xv2;yv2];
%ght
xv1=[0.2 0.6 0.6 0.1];
yv1=[0.7 0.75 0.3 0.4];
boundary1=[xv1;yv1];
xv2=[-0.9 -0.7 -0.3 -0.4 -0.8];
yv2=[0.9 0.9 0.7 0.5 0.6];
boundary2=[xv2;yv2];
barrier={
     };
aBarrier=[0.4 0.5 0.5 0.4;0.5 0.5 0.4 0.4];
barrier=[barrier;aBarrier];
aBarrier=[0.2 0.3 0.35 0.2; 0.6 0.6 0.5 0.5];
barrier=[barrier;aBarrier];
aBarrier=[-0.6 -0.4 -0.4 -0.6; 0.3 0.3 0.1 0.1];
barrier=[barrier;aBarrier];
aBarrier=[-0.7 -0.6 -0.6 -0.7;0.8 0.8 0.6 0.6];
barrier=[barrier;aBarrier];
Lines=[];
%Lines = addPatch2Line(boundary,barrier,Lines);
Angle1=pi/6;
Lines1 = addPatch2LineWithAngle(boundary1,barrier,Angle1);
Lines=[Lines;Lines1];
Angle2=pi/4;
Lines2 = addPatch2LineWithAngle(boundary2,barrier,Angle2);
Lines=[Lines;Lines2];
 
disp('请按任意键开始运行...')
pause;
Routes=routesPlanning2(Lines,barrier,3)

三、运行结果

【路径规划】基于matlab任意架次植保无人机作业路径规划【含Matlab源码 322期】_第1张图片

四、备注

完整代码或者代写添加QQ2449341593。
往期回顾>>>>>>
【预测模型】基于matlab粒子群的lssvm预测【含Matlab源码 103期】
【lSSVM预测】基于matlab鲸鱼优化算法之lSSVM数据预测【含Matlab源码 104期】
【lstm预测】基于matlab鲸鱼优化算法之改进的lstm预测【含Matlab源码 105期】
【SVM预测】基于matlab蝙蝠算法改进的SVM预测(一)【含Matlab源码 106期】
【SVM预测】基于matlab灰狼算法优化svm支持向量机预测【含Matlab源码 107期】
【预测模型】基于matlab BP神经网络的预测【含Matlab源码 108期】
【lssvm预测模型】基于蝙蝠算法改进的最小二乘支持向量机lssvm预测【Matlab 109期】
【lssvm预测】基于飞蛾扑火算法改进的最小二乘支持向量机lssvm预测【Matlab 110期】
【SVM预测】基于matlab蝙蝠算法之改进的SVM预测(二)【含Matlab源码 141期】
【lssvm预测】基于matlab飞蛾扑火算法之改进的最小二乘支持向量机lssvm预测【含Matlab源码 142期】
【ANN预测模型】基于matlab差分算法改进ANN网络预测【含Matlab源码 151期】
【预测模型】基于matlab RBF神经网络预测模型【含Matlab源码 177期】
【预测模型】基于matlab SVM回归预测算法来预测股票趋势【含Matlab源码 180期】
【预测模型】基于matlab BP神经网络之模型优化预测【含Matlab源码 221期】
【预测模型】基于matlab RLS算法的数据预测【含Matlab源码 222期】
【预测模型】基于matlab碳排放约束下的煤炭消费量优化预测【含Matlab源码 223期】
【路径规划】基于matlab A星和改进A星的路径规划【含Matlab源码 225期】
【TSP】基于matlab 改进的禁忌搜索算法之求解旅行商问题【含Matlab源码 241期】
【TSP】基于matlab 改进的蚁群算法之求解旅行商问题【含Matlab源码 242期】
【路径规划】基于matlab模拟退火算法之求解火灾巡逻最短路径【含Matlab源码 252期】
【三维路径规划】基于matlab 无人机三维空间的航迹规划【含Matlab源码 270期】
【路径规划】基于matlab分布式目标检测和跟踪的多无人机【含Matlab源码 289期】
【路径规划】基于matlab粒子群算法求解无人机最短路径【含Matlab源码 300期】
【无人机】多无人协同任务分配程序平台【含Matlab源码 301期】

你可能感兴趣的:(matlab,路径规划)