尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

多无人机多目标任务分配全解析:建模、算法与仿真评估实践指南

多无人机多目标任务分配全解析:建模、算法与仿真评估实践指南 做多无人机方向的课题或者项目我猜你大概率绕不开一个词任务分配。不管是做集群物流、编队巡检还是空地协同搜索多无人机系统的价值不在于“多几架飞机”而在于“多架飞机能一起干一件单架干不了或者干得慢的事”。而“一起干”最核心的技术底座就是多目标任务分配。这篇综述笔记我打算站在工程和研究视角把多无人机多目标任务分配从建模、算法到仿真评估这条线彻底捋一遍重点讲清楚为什么选某种方法、实际落地时有哪些坑、以及怎么复现出第一版可用的分配方案。这里先给读者交个底这篇笔记适合研究生入门、刚接触集群算法开发的工程师也适合想从零搭建无人机任务分配仿真验证环境的同学。内容不会停留在概念名词堆砌而是偏向“推演思路策略对比可落地的算例参考”。如果你想要的是那种直接把代码跑起来就能用的Github仓库这篇不会给你现成答案但会告诉你什么样的代码值得信任、以及评估一套分配算法时容易忽略的关键点。1. 先把问题想清楚多无人机多目标任务分配到底在分配什么很多初学者看到“多目标任务分配”几个字第一反应是“派哪架飞机去哪个目标点”。说实话这个理解对了一半。任务分配不止是空间上的简单指派它还涉及时间上的时序约束、资源上的载荷约束以及整体系统层面的协同目标。你只有先把“分配的对象”定义清楚后续的建模和求解才有方向。1.1 一个数学模型的解剖决策变量、目标函数与约束从形式化角度看多无人机多目标任务分配通常可以被建模成一个整数规划或者混合整数规划问题。考虑一个简化但足够通用的情景有 m 架无人机 U {u₁, u₂, …, uₘ}有 n 个目标任务 T {t₁, t₂, …, tₙ}。分配的目标是找到一个从无人机集合到任务序列集合的映射关系使整个系统在若干目标维度上达到最优。假设我们定义决策变量 xᵢⱼ 表示无人机 uᵢ 是否执行目标任务 tⱼ在更复杂的模型中可能还要加入顺序决策变量 yᵢⱼₖ表示 uᵢ 在完成任务 tⱼ 之后接着执行任务 tₖ。那么目标函数最简单的形式就是min J Σᵢ Σⱼ cᵢⱼ ⋅ xᵢⱼ这里的 cᵢⱼ 可以是航程代价、时间代价、能量消耗或者是你关心的任何单机-单任务关联成本。不过现实中几乎不会只用单目标更常见的是带有权重的多目标组合比如最小化总任务完成时间的同时最大化任务完成数量同时兼顾集群能耗均衡。加权求和确实最简单但权重怎么标定就成了一门玄学这一点我会在后面的“常见坑”部分专门展开。约束条件大致可以分成以下几类第一个是任务覆盖约束例如每个任务必须被分配且只能分配给一架无人机第二个是能力匹配约束比如只有搭载了光学相机或者特定传感器的无人机才能执行某个侦察任务第三个是时序约束比如任务 A 需要先于任务 B 执行或者两个任务之间的执行时间必须满足一定的窗口条件第四个是物理约束比如无人机续航限定了单机最多能访问的任务数量或者航点间切换需要满足转弯半径约束。当你把这些变量和约束一摆任务分配问题的复杂度直接上升为组合爆炸级别的NP难问题。你以为你在写路径规划其实你在求解一个带约束的大规模组合优化问题。这也是为什么后面所有算法的出发点本质上都是在“最优性”和“计算可行性”之间做妥协。1.2 动态分配与静态分配一次性算完和滚动更新是两码事除了在数学结构上区别任务分配的类型还必须区分问题的“时间属性”。静态任务分配是指在一段相对稳定的时间窗口内所有任务信息提前已知系统一次性求出整个分配方案。这种场景适合任务集合固定、无人机出航后不再有大规模突发新任务的巡检或者测绘任务。但是真实场景往往是动态变化的。无人机正在飞往任务点的路上突然收到一个新任务或者某架无人机在飞行途中因电量告急需要返航又或者目标点发生了位置偏移。这时候如果你还是按照最初的方案继续执行整体效率很容易迅速恶化。动态任务分配通常不指望一次求解全局最优而是采用“滚动时域分配局部重规划”的思路每隔一个周期重新求解一次剩余的未完成任务分配并在约束中固定当前已飞行段和已分配任务。这一步的思考还要更深入一点动态分配并不只是“重新跑一遍算法”那么简单。它牵涉到通信延迟、机间信息同步、以及已执行任务对未执行任务的约束影响。很多新手在算法仿真里表现不错但一到实际跑动就崩溃往往是因为忽略了“动态重分配”与“底层飞控状态”之间的绑定关系。仿真阶段的任务分配频率可以自由设定但是实机环境下分配决策的频率受限于任务管理器的计算负载和通信带宽。1.3 分类维度集中式、分布式与去中心化的选择逻辑任务分配算法还有一个绕不开的分类维度就是系统的决策架构。集中式架构里地面站或者集群中的某架无人机作为中心节点收集全局状态信息统一求解分配方案再把指令下发到每架无人机。这种方案的优势是全局最优性容易保证便于实现和调试缺陷也很明显就是单点故障风险和通信压力集中。相对地分布式架构下每架无人机各自维护一份任务分配状态通过与邻居节点交换信息来不断修正自己的局部决策。这类算法以CBBA共识-拍卖算法为代表优点是可扩展性好、鲁棒性高不依赖中心节点缺点在于难以保证全局最优而且对通信拓扑的连通性很敏感。还有一个中间形态叫去中心化架构它既没有明显的指挥中心又区分于完全分布式的peer-to-peer模式常用于子群分组的场景一个集群被分成若干组组内采用集中式决策组间使用一致协商。做方案选型时我的个人建议是如果你做的是8架以下的小规模集群或者主要在地面站集中控制平台做演示集中式一定是性价比最高的选择如果你做几十甚至上百架的仿真集群或者要应对强对抗环境下通信受限的问题分布式是唯一可行的路线。这个选择没有好坏只有匹配不匹配。2. 算法版图从精确求解到智能优化的全景图谱任务分配算法的发展脉络总结下来就是一条“从精确到近似、从单点决策到群智能协同”的路线。理解这条脉络特别重要因为很多初学者上来就在调参跑代码却不知道自己用的算法在这个版图中处于什么位置适合解决哪一类问题。2.1 精确算法不是不能用是规模限制了你精确算法中最经典的就是匈牙利算法它解决的是单分配问题m个任务分配给m个工人总代价最小。在多无人机任务分配的背景下可以把无人机看成工人将任务点看成工作如果无人机和任务数量相等且一一对应匈牙利算法能够在多项式时间内求出最优解。这个算法实现简单、速度快尤其适合少量无人机执行等量任务的场景。但是一旦任务数量大于无人机数量需要多趟访问或者有多架无人机协同执行一个任务的需求标准匈牙利算法的匹配模型就不够用了。这时候需要引入分支定界法Branch and Bound或动态规划DP来处理更复杂的约束组合。分支定界的核心思路是通过枚举可行解空间并利用上下界剪枝在有限规模内找到全局最优解。缺点很明显就是计算量随规模增大呈指数级增长在任务数量超过几十个之后实时求解基本没有希望。我这里给出一个量化参考常见的分支定界实现在 CPU 单核计算环境下当任务数量在 10~15 个之间求解时间通常在几百毫秒到几秒的区间当任务数量上升到 20 个以上求解时间可能直接跳到分钟级。这也是为什么在绝大多数无人机集群任务分配的实际应用中精确算法只作为离线规划基准用来评估其他近似算法的质量上限很少直接用于在线实时决策。2.2 启发式与元启发式遗传算法、粒子群、蚁群怎么选工程实践中应用最广的是元启发式类智能优化算法。遗传算法GA是其中曝光率最高的一个核心思想是把一个分配方案编码成染色体通过选择、交叉、变异不断迭代搜索更优解。GA在处理带有复杂约束的分配问题时很灵活约束可以直接通过罚函数写进适应度函数里不需要大改算法框架。但这种灵活性是把双刃剑因为罚函数系数如果设置不当解的质量波动会非常大。粒子群算法PSO的优势在于实现简单、收敛速度快适合连续优化问题用在离散任务分配上需要做一些编码转换比如将粒子位置映射到任务排列序列。蚁群算法ACO则在路径协同类任务分配上有天然优势因为它的信息素机制天然地考虑了“路径累积代价”适合任务序列需要规划的场景。就我个人的项目经验来说如果你要给自己实验室的项目选一个“最容易出论文图”的基线算法遗传算法是最稳妥的选择因为它的可视化效果好迭代曲线和收敛动画都比较直观。但如果你要的是“快速得到一个工程上可用的方案”粒子群在多数场景下反而更省时间原因在于它的参数敏感性相对低而且代码实现只有五十行上下。而蚁群算法除非你的任务本身就带有显著的拓扑路径特征否则不太建议作为首选因为参数调节空间大尤其信息素挥发系数和信息素强度这一组参数能让不同水平的人跑出截然两种效果。2.3 分布式算法的标杆CBBA 共识-拍卖机制的拆解CBBAConsensus-Based Bundle Algorithm是当前分布式任务分配里公认的标杆算法我见过很多团队做集群任务分配的底子都是从复现CBBA开始的。它的核心机制分为两个阶段捆绑构建阶段和共识协商阶段。在捆绑构建阶段每架无人机基于自己的局部信息用贪心策略依次向自己的任务包中加入“边际收益最大且未被抢占”的任务形成一个有序的任务包。在共识协商阶段无人机与邻接无人机交换任务包的竞标信息通过冲突消解规则确定每个任务归属。CBBA最迷人之处在于它把复杂的分布式组合优化问题拆解成了“局部贪心冲突消解”两个步骤每一架无人机只需要和通信范围内邻居交换消息就能够在全局层面收敛到无冲突的任务分配结果。在通信条件较好的情况下CBBA的分配效果能够接近集中式方法而计算复杂度和通信开销都维持在很低的水平。复现CBBA时有几个关键细节需要特别注意。首先是通信拓扑的连通性如果图不连通信息无法全网共享任务分配可能出现一致性问题。其次是“更新时间戳”的设计它用于判断两条冲突信息哪一条是新的这一块如果实现不严谨会出现任务被两个节点同时认领不消退的死活局面。最后是任务包的边际收益计算一定是在无人机的剩余可用路径上按顺序评估新加入任务的增益而不是独立计算单点收益。2.4 学习范式的崛起深度强化学习解决任务分配的思路近几年深度强化学习DRL在组合优化领域非常火热GNN与指针网络结构用于任务分配的研究层出不穷。DRL的核心是训练一个神经网络策略以无人机状态、任务状态和环境约束为输入直接输出分配动作。相比传统算法DRL的最大优势是“离线训练、在线推断”训练完成后单次分配决策的速度非常快非常适合强实时性要求。但我想提醒读者一个容易被论文摘要掩盖的问题训练阶段成本极高。一个中等规模的任务分配DRL模型在参数网格搜索的情况下训练时长可能高达几百万环境步。而且训练环境和实际部署环境之间的分布偏移domain gap是一个非常大的考验。你在仿真器里跑得风生水起的策略放到不同地图、不同数量的任务集上性能可能出现断崖式下跌。所以如果项目有时间节点我不太建议在没有仿真验证体系雏形之前就直接上DRL路线。3. 从算法到代码需要理解的关键实现细节与参数计算聊完算法大面进入实操环节。这一节我会重点拆解基于“合同网/拍卖”思想的分布式任务分配的最简可运行实现思路以及集中式场景下基于匈牙利算法的快速方案。这两部分代码量都很小却是理解复杂算法的良好起点。3.1 一个最简集中式指派用匈牙利算法处理等量分配假设无人机数量和目标任务数量相等我们需要计算每一架无人机到每一个任务点的飞行代价这个代价矩阵是算法的唯一输入。代价可以用欧氏距离、时间预估或者能耗模型来定义。初始化代价矩阵 C ∈ R^(m×n)其中各元素 cᵢⱼ 代表第 i 架无人机到第 j 个任务的代价值。匈牙利算法的输入就是这样一个方阵输出是一组一一对应的指派。如果使用 Pythonscipy.optimize 里的 linear_sum_assignment 接口可以直接调用非常方便。一个完整的计算片段大致是这样import numpy as np from scipy.optimize import linear_sum_assignment # 生成代价矩阵这里用距离代表 num_uav 6 num_task 6 cost_matrix np.random.rand(num_uav, num_task) * 100 # 求解指派 row_ind, col_ind linear_sum_assignment(cost_matrix) # row_ind是无人机索引col_ind是对应分配的任务索引 optimal_cost cost_matrix[row_ind, col_ind].sum() print(最优分配结果, list(zip(row_ind, col_ind))) print(总代价, optimal_cost)这个接口内部实现的就是 Jonker-Volgenant 算法复杂度约为 O(n³)。我自己测试过当任务数量在 200 以内时求解耗时几乎可以忽略不计。所以如果你的任务规模不大又恰好满足等量保证不要犹豫直接用这个方法作为离线评估的黄金基准。3.2 构建实时可用的分布式分配逻辑从拍卖思想到一致性规则拍卖类算法是多无人机分布式任务分配中最实用的思想框架。它的运行机制概括起来非常像现实中的拍卖会每个任务就像一件拍品每架无人机像一个竞标者根据自己的能力和代价出价出价最高或者代价最小的竞标者获得任务执行权。但重要区别是无人机之间没有集中式的拍卖师所以每家自带一个“任务归属表”通过交换消息达成一致。一个可直接参考的实现流程可以分成四步。第一步每架无人机计算自己对所有任务的出价出价可以设置为当前飞行状态下的边际代价第二步无人机之间交互出价与冲突信息典型的交互方式是比较自己与邻居的任务归属表第三步根据冲突消解规则更新局部任务归属表规则通常是比较出价高低或者任务标号第四步重复迭代直到归属表稳定或达到最大迭代轮数。这里有一个很关键的参数需要计算出价值的更新一般建议用任务执行代价与惩罚项的加和。比如无人机 uᵢ 在当前任务包中已经有任务序列 Sᵢ此时评估是否把任务 tⱼ 插入到序列末尾增量代价 Δc dist(pos_after_Sᵢ, tⱼ) penalty_if_needed。这个增量代价的计算复杂度是 O(1)对于每个无人机来说一轮完整的出价评估复杂度为 O(n)n 是任务总数。在广播环节通信数据量的计算也需要心中有数。每一轮协商每架无人机需要广播自己的任务包和归属信息假设每个任务的编码信息占用 K 字节那么 m 架无人机的总通信量为 O(m * n * K)。以 20 架无人机和 50 个任务为例每轮通信量大约在 10KB 量级这在大多数自组网无线链路下是完全可以承受的。如果任务的编码信息中包含浮点型坐标和类型枚举数据量会大一些但整体依然可控。3.3 代价模型设计为什么不能只用直线距离在任务分配中代价模型直接决定了分配方案的“物理合理性”。最简单的做法是直接用无人机当前位置到任务点的欧氏距离这在理想平面环境下足够用了但一旦引入障碍物、禁飞区、或者无人机动力学约束直线距离就失真了。更合理的做法是采用带威胁/障碍惩罚的路径长度作为代价例如使用 A* 或者 RRT 快速估算两点间的可飞行路径长度然后以这个路径长度作为代价矩阵元素。路径预计算在离线阶段可以一次性完成。对 m 架无人机与 n 个任务需要计算 m × n 条路径。如果每条路径的规划耗时约为 5 毫秒那么总耗时约 5 × m × n 毫秒。以 10 架无人机和 20 个任务为例总耗时约 1 秒在任务分配之前预留几秒做预计算完全可行。这里强烈建议在预计算阶段就把每条路径的长度缓存下来避免在每轮重计算中浪费宝贵的实时处理时间。3.4 任务时序约束如何在分配中确保“先后顺序”很多真实任务天然带有顺序约束比如集群协同侦察中某架无人机必须先飞到目标区域确认位置另一架无人机随后执行干扰或投放任务在火灾救援中侦察无人机确认火点后灭火无人机才能进入安全航线。忽略时序约束而只做简单指派最终执行时必然出现大量死锁或等待。处理时序约束最直接的手段是在代价矩阵中引入“时间惩罚项”。如果任务 B 的起始时间窗口早于任务 A 的结束时间那么将无人机在任务 A 后转到任务 B 的序列代价设置为一个大数 M这种大 M 罚值在数学上等效于禁止这种安排。另一种更精细的处理方式是在目标函数中加入等待时间的平方项这样会促使优化器把等待时间均匀分摊到整个集群而不是堆在一架无人机身上。这一做法的出发点是等待时间分布直接影响任务完成时间均衡性这是集群任务中的隐性指标。4. 仿真与评估如何验证你的分配算法真的可用仿真验证是任务分配开发中不可跳过的一环。我见过不少同学直接把算法放到实机上结果在测试中发现各种逻辑缺陷最后又灰头土脸地回到仿真环境。这其实完全可以避免。好的仿真验证流程能够把绝大部分问题扼杀在起飞前。4.1 仿真工具链选择从纯数学仿真到物理级仿真仿真工具的选择应当与你的开发阶段匹配。在算法开发早期纯数学仿真已经足够用 Python 的 numpy 随机生成无人机位置和任务点离线计算分配方案然后评估结果统计数据。这套流程速度最快逻辑迭代也最方便。到了集成测试阶段推荐采用 Gazebo PX4/ArduPilot 的组合这一组合不仅支持多机仿真还可以通过MAVSDK或者MAVROS注入外部的任务分配指令。常见的还有AirSim它的图形渲染能力更强适合做视觉任务和感知层面的仿真验证。更抽象的轻量级仿真平台如基于Python的自研离散事件模拟器也值得尝试尤其在需要大量随机场景批量测试算法鲁棒性的时候。4.2 数据集设计随机场景生成的“分层抽样”思路评估任务分配算法时一个“好”的测试场景集比单个复杂场景更重要。随机场景生成是常见做法但不是完全的纯随机否则评估结果容易受极端场景干扰。我的做法是分层设计分别在任务数量维度上取 5/10/20/50/100 这几档在无人机数量上取 3/5/8/10 档在任务空间分布上设计聚集型、均匀型、走廊型三类各生成 50 个随机场景。这样既能覆盖小规模精确求解区间也能评估大规模近似算法的表现。另外要时刻记住生成场景时需要固定随机种子使得所有算法在完全相同的场景配置下进行对比。不要小看这个细节我在实际工作中不止一次遇到因为忘记固定种子导致不同算法在不同随机场景下对比结果不具有可重复性的尴尬情况。4.3 核心评估指标不只有“总代价最小”这一条传统研究论文里最常用的评估指标是总走行距离或者总完成时间。但从工程实用角度看以下几个指标同样关键。任务完成率是指被成功执行的任务占总任务数的比例在资源受限如无人机数量不足或电量有限场景中非常关键。负载均衡度描述的是多架无人机之间任务量的差异常用各无人机总航程的方差或标准差来衡量方差过大说明某些无人机成为瓶颈。计算时间衡量的是从输入状态到输出分配方案的时间差在实时性要求高的动态场景中这个指标往往比最优性更敏感。通信开销描述的是分布式算法中各单位交换的数据量直接影响通信带宽受限场景中的可行性。用表格来对比这些评估维度比较方便指标说明适用场景总完成时间最后一架无人机完成所有任务的时间时间敏感型任务如搜救任务完成率完成/全部任务比例任务数远大于无人机数负载均衡度各机航程或任务数量的方差需要延长集群整体续航计算时间从输入到输出分配解的时间实时在线分配通信开销分布式算法中消息交换总量通信受限或链路不稳定我特别强调一点在做算法对比时把多个指标一起报告比只报告“算法A比算法B总代价低3%”要严谨得多。低总代价的方案可能伴随负载极不均衡或者计算时间陡增的情况只看单指标很容易得出偏颇结论。4.4 实机验证的过渡硬件在环仿真到底测什么跳过硬件在环直接上真机是很多人血泪教训的来源。硬件在环仿真HITL的基本思路是将任务分配算法运行在机载计算机或地面站的真实硬件上但把飞行器模型用仿真环境替代。这样测出来的分配决策延迟和通信模块行为与实际部署时非常接近。HITL阶段重点观察的不再是算法输出的分配结果好不好而是分配的信号链路通不通、决策频率与飞控指令周期的匹配性高不高、单次重分配决策会不会导致链路超时等等。这些系统级问题只有在HITL阶段才能暴露而它们的严重程度往往远超算法本身的次优性。5. 常见问题与排查技巧实录这一节是实战避坑。我不打算做理论层面的长篇大论就是把我和身边人在任务分配项目里踩过的最典型的问题列出来给后来者提个醒。5.1 问题一仿真结果很好实机跑起来分配指令下不去这个问题的多发原因不在算法而在“分配算法与飞控之间的协议适配”。仿真中输出的是任务点坐标而实机中机载处理器还需要把任务点转换为航点文件或者MAVLink指令中间任何一层解析出错都会导致分配结果无法执行。排查这种问题时最有效的手段是在HITL阶段记录下任务分配模块输出的原始指令报文与飞控收到的实际指令逐一比对。我遇到过的具体情况是地面站下发任务点时使用了Gazebo地理坐标系但飞控期望的是ENU局部坐标系导致分配的坐标偏移了几百米飞机自然按错误目标飞。5.2 问题二分布式算法在拓扑变化时经常出现任务重复分配这是CBBA类算法的典型痛症。当通信拓扑变化、某个节点掉线又重新上线时它的任务包信息可能滞后导致同一个任务短时间内被两个节点认为归自己所有。排查思路分三步第一步检查更新时间戳的实现逻辑确认在消息丢失情况下时间戳依然能够正确推进第二步检查冲突消解规则中的比较算子特别是在激活态和待命态转换时期是否保持一致性第三步检查邻居表的超时剔除机制长时间未收到心跳消息的邻居应当立即从表中删除而不是继续向它发送一致性协商消息。5.3 问题三多目标权重怎么调都不出“理想结果”这个问题几乎每个人都有体会。原因通常是权重设置和量纲没有归一化。比如目标之一是总飞行距离单位是米可能上千另一目标是任务完成率单位是0到1的小数如果不经过归一化就把两个目标加权飞行距离项会完全主导优化方向。解决方法是先对各个目标做归一化或者采用Pareto前沿分析而不是机械地调权重。归一化后的做法不一定能让你找到“最优权重”但至少能保证权重调整的可解释性。我以前在做多目标分配时有一个习惯把目标函数中的每一项单独跑一遍画出每项目标的极值范围看完量纲差异后再决定归一化参数和权重初值。这个习惯帮我避开了不少调参地狱。5.4 问题四相同的分配算法换了任务地图效果差别巨大任务点分布的空间特征会影响分配算法的效果这是天然且正常的。走廊型分布场景下任务点的聚类特征不明显贪心分配往往已经接近最优而聚集型分布场景中任务点分组效应强烈此时更依赖全局搜索型算法。评估算法的最稳妥做法是多样本、多分布类型的平均结果而不是在单一场景里反复调参过度适配。你需要关注的是“算法在任务分布不确定时的鲁棒性”而不是“算法在一个特定地图上的极限性能”。5.5 问题五动态重分配频率设太高导致系统震荡动态场景中重新分配的频率是个重要超参数。如果每次都立即重新分配所有剩余任务算法可能会因为频繁的局部扰动导致系统决策震荡比如无人机A在某一轮被分配到任务X因为执行条件的微小变化下一轮又被重新分配为任务Y从而产生大量无谓的航向切换和能耗消耗。一个简单有效的做法是引入“最小重分配间隔”和“任务锁定窗口”已经被无人机执行的任务在锁定窗口期内不允许被重新分配除非出现紧急事件。锁定期设为多少可以用“任务完成平均时间”与“新任务到达平均间隔”来衡量这个比值才是有物理意义的。6. 个人阶段总结与后续关注方向这篇综述笔记写到这里已经覆盖了从问题建模、算法谱系、核心代码实现到仿真评估和常见坑位的完整路径。对我自己来说整理这篇笔记也是一个重新梳理知识体系的过程。说实话多无人机多目标任务分配发展到现在纯从算法角度已经非常成熟真正拉开差距的地方在于“如何把算法嵌入真实集群系统并稳定运行”。稳定运行是一个系统工程问题涉及通信、控制、云边端协同的多个层面远不止一个分配模型可以解决。我后续计划关注的两个方向第一个是动态场景下任务分配与在线路径规划的统一优化框架。当前大多数研究是将分配和路径规划解耦成两个阶段这种解耦带来的次优性在复杂动态环境中会被放大。第二个是引入分布式机器学习做端到端分配决策同时解决异构无人机系统的任务匹配问题。这个方向无论是发论文还是解决工程问题潜力都还很大。说一个我始终保留的习惯每次跑完一批新实验我都会把分配结果用图表形式输出将无人机轨迹、任务序列和负载均衡状态叠加在一张图上。这样做的原因很简单——算法指标再好不如一张可视化图能直观暴露问题。时间的积累会让你发现绝大多数算法缺陷的第一信号都不是数值指标而是那些在图上看起来“别扭”的轨迹线。这个习惯我建议所有做任务分配的人都可以试试。
返回列表