MATLAB无人机任务分配及路径规划
一、完成区域目标评估(已完成)
二、完成选址,具体要求:1.13个区域以价值高低分成4类,数量分别为2.4.5.2,第一类半径3km,第二类5km,第三类7km,第四类9km2.以成都市各个派出所为基础点布置点位画圆3.根据重点目标给出的等级优化方案,1类重点目标需要3个点到他的距离<2km,二类需要2个点距离小于3km,三类需要1个点<3KM
目标点:天府广场1、金牛宾馆1、西部博览城2、各区政府2、四川省政府1、环球中心3、双子塔3、双流机场2、天府机场2、成都南站2、双流西站3、新津南站3(后面数字为等级,这块可以只做青羊区的)
三、无人机任务分配及路径规划
根据任务实际可分为三个阶段,常态部署,加强部署,特殊部署,无人机数量分别为1、3、5。
1、 多无人机的任务分配,算法参考论文,不需要研究,只需要把算法扒下来跑出结果
2、 路径优化,主要运用两种算法,粒子群,蚁群,对单个无人机路径做出优化,其中粒子群结果应该是全局价值比较高,就是绕路比较多,爬升越过房顶比较少,采集的有效画面比较多,蚁群的速度比较快,但是利用率比较低
3、根据不同的情况可以采用不同的算法,比如在一类常态部署,采用蚁群算法,节省时间,在多无人机情况下采用粒子群,收集更多信息
第三部分不做三维,不做多无人机,就第一建模,第二任务分配,第三单无人机路径规划
无人机行动也只分两种情况,一种是沿道路一种是越过建筑但是要加惩罚值
首先,我们需要定义区域目标的信息和评估结果,以及各个基础点的位置。然后,根据重点目标的等级,进行选址并画圆。接下来,使用算法对无人机任务进行分配和路径规划。
% 区域目标的信息和评估结果 targetPoints = [ struct('name', '天府广场', 'level', 1), struct('name', '金牛宾馆', 'level', 1), struct('name', '西部博览城', 'level', 2), struct('name', '各区政府', 'level', 2), struct('name', '四川省政府', 'level', 1), struct('name', '环球中心', 'level', 3), struct('name', '双子塔', 'level', 3), struct('name', '双流机场', 'level', 2), struct('name', '天府机场', 'level', 2), struct('name', '成都南站', 'level', 2), struct('name', '双流西站', 'level', 3), struct('name', '新津南站', 'level', 3) ]; % 基础点的位置 basePoints = [ struct('name', '青羊区派出所', 'longitude', 104.0628, 'latitude', 30.6686), % 其他基础点的位置 % ... ]; % 根据重点目标等级进行选址和画圆 for i = 1:length(targetPoints) target = targetPoints(i); basePoint = basePoints(i); radius = 0; if target.level == 1 radius = 3; % 半径3km elseif target.level == 2 radius = 5; % 半径5km elseif target.level == 3 radius = 7; % 半径7km elseif target.level == 4 radius = 9; % 半径9km end % 在基础点处画圆 drawCircle(basePoint.longitude, basePoint.latitude, radius); end % 无人机任务分配和路径规划算法 % ... % 定义画圆函数 function drawCircle(longitude, latitude, radius) % 绘制圆形区域 % ... end
上述代码是一个简化的示例,其中包含了区域目标的信息、基础点的位置以及选址和画圆的过程。您可以根据具体的需求和算法来完善无人机任务分配和路径规划部分的代码。
请注意,路径优化的算法(如粒子群和蚁群算法)需要额外的实现和调用,并根据具体情况进行参数调整。
此外,根据您的要求,无人机的行动分为沿道路和越过建筑两种情况。您可以根据具体情况为路径规划算法添加相应的约束和惩罚值。
鄂ICP备2023011697号-1 | Powered By 91代做