路径规划任意架次植保无人机作业路径的规划matlab源码
Posted 博主QQ2449341593
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路径规划任意架次植保无人机作业路径的规划matlab源码相关的知识,希望对你有一定的参考价值。
一、程序说明 实现任意数目多边形的地图绘制和网格划分,并在此基础上实现任意架次植保无人机作业路径的规划。 路径规划采用牛耕往复式,并考虑电池约束和药液约束,并考虑了多台无人机作业时的距离(避碰)。主要变量含义如下: 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)
-
完整代码咨询QQ1575304183
以上是关于路径规划任意架次植保无人机作业路径的规划matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
matlab多架次无人机(uva)协同植保路径优化(避障)matlab优化算法十五
路径规划基于matlab多种算法无人机路径规划含Matlab源码 1263期