一、简介

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)

三、运行结果

四、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)

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

  1. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  2. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  3. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  5. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  6. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  7. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  8. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  9. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  10. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

最新文章

  1. POI之excel导入导出
  2. ARM汇编学习之寄存器 之PC
  3. mysql 判断表或字段存不存在
  4. Pytorch的tensor数据类型
  5. BZOJ 1269: [AHOI2006]文本编辑器editor Splay
  6. 使用delegate类型设计自定义事件
  7. 计算机学业测试答案解析,计算机测试题及答案.doc
  8. java基础的第二轮快速学习!day03
  9. Java 算法 矩阵乘法
  10. 《王牌竞速》与HUAWEI Mate40 系列打造全新游戏体验
  11. Pandas set_indexreset_index
  12. Ubuntu 14.04 jdk安装与配置
  13. 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境
  14. 日本专利检索地址和专利号码问题
  15. Python笔记五(写excel,加密模块,字典排序,常用的标准模块,操作mysql,时间模块)...
  16. 学C的第一天(初识C语言、VS创建C语言程序、数据类型简单了解、简单了解变量)
  17. java生僻字解决方案
  18. 刀片服务器型号规格,刀片服务器是什么,刀片服务器规格统一好不好
  19. 经济基础知识(初级)【16】
  20. 2023年CSS面试题集合

热门文章

  1. [CSS揭秘]不规则投影
  2. libubox组件(1)——usock
  3. opencv学习笔记1:图片灰度化
  4. 190726每日一句
  5. Atitit form sbmt 表单提交的几种功能方法与实现目录1.1. Atitit 表单提交 mailto协议 http协议 11.2. form-urlencoded mul
  6. Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据
  7. paip.eclipse忽然启动报错的解决
  8. paip.docfile二进制复合文档
  9. 阿里云linux上安装,卸载mysql与重新安装配置Mysql
  10. 饶刚:做好债券研究 完善团队建设 为投资人打造持续回报的特色固收产品