一、程序说明 实现任意数目多边形的地图绘制和网格划分,并在此基础上实现任意架次植保无人机作业路径的规划。 路径规划采用牛耕往复式,并考虑电池约束和药液约束,并考虑了多台无人机作业时的距离(避碰)。主要变量含义如下: MAXliquid 药箱最大容量 MAXbattery 电池最大容量 liquidState 药箱状态 batteryState 电池状态 idleSpeed 非作业时飞行速度 operationSpeed 作业时飞行速度 liquidPerOD 单位距离的药液消耗量 batteryPerOD 单位距离的电池消耗量
- 绘制地图,划分网格
- 实现任意多边形的绘制;
- 将每个多边形进行网格划分,每个元胞(cell)的大小为OW*OD;
- 网格划分的结果存在gridPoints中。
- 路径规划
- 无人机从操作台出发;
- 从左到右依次遍历网格中的各个元胞,直到电池耗尽或药业耗尽;
- 返回工作台,从而形成一条路径,所有路径存储在rawRoutes中;
- 若地图未遍历,则返回1),否则进行5);
- 计算每台无人机的起降次数,并考虑每轮起降是无人机间的距离,进行路径分配。
- 结果显示
- 以事件驱动的方式进行显示;
- 线条表示理想路径,阴影表示实际喷淋效果;
- 红色线条表示出发路径,黄色线条表示返航路径;
- 红色圆圈表示某次作业的起始作业点,黄色圆圈表示终止作业点; 二、有待改进
- 约束条件
- 地形地势约束(GIS)
- 障碍物阻挡
- 能耗随药液量递减;
- 作业能耗和非作业能耗不同;
- 目标函数
- 路径长度(起航返航)
- 费用(成本)
- 时间(效率)
- 转弯次数
- 负载均衡