【路径规划】基于matlab任意架次植保无人机作业路径规划【含Matlab源码 322期】
一、简介
1 程序说明
实现任意数目多边形的地图绘制和网格划分,并在此基础上实现任意架次植保无人机作业路径的规划。 路径规划采用牛耕往复式,并考虑电池约束和药液约束,并考虑了多台无人机作业时的距离(避碰)。主要变量含义如下: MAXliquid 药箱最大容量 MAXbattery 电池最大容量 liquidState 药箱状态 batteryState 电池状态 idleSpeed 非作业时飞行速度 operationSpeed 作业时飞行速度 liquidPerOD 单位距离的药液消耗量 batteryPerOD 单位距离的电池消耗量
2 绘制地图,划分网格
实现任意多边形的绘制;
将每个多边形进行网格划分,每个元胞(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)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]巫茜,罗金彪,顾晓群,曾青.基于改进PSO的无人机三维航迹规划优化算法[J].兵器装备工程学报. 2021,42(08)
[4]邓叶,姜香菊.基于改进人工势场法的四旋翼无人机航迹规划算法[J].传感器与微系统. 2021,40(07)
[5]马云红,张恒,齐乐融,贺建良.基于改进A*算法的三维无人机路径规划[J].电光与控制. 2019,26(10)
[6]焦阳.基于改进蚁群算法的无人机三维路径规划研究[J].舰船电子工程. 2019,39(03)
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/113838616
- 点赞
- 收藏
- 关注作者
评论(0)