十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于多智能体强化学习的异构无人机集群自主避障技术实践

基于多智能体强化学习的异构无人机集群自主避障技术实践 1. 从“空中堵车”到“自主避让”异构无人机集群协同的挑战与机遇最近几年无人机送货、空中巡检、城市空中交通这些概念越来越火你走在街上可能都见过那种小型无人机嗡嗡地飞过。但你想过没有如果未来天空里同时有几百上千架无人机在飞它们来自不同公司、执行不同任务、性能参数各异怎么保证它们不会撞在一起这可不是科幻电影里的场景而是我们正在快速接近的现实。我最近就在一个涉及多架异构无人机协同作业的项目里被这个“空中交通管制”问题折腾得够呛。传统的基于规则或集中式调度的方案在面对动态、高密度、异构的飞行器集群时显得力不从心。于是我们把目光投向了多智能体强化学习特别是结合了Actor-Attention-Critic这类前沿架构的方法试图让每一架无人机都学会在复杂环境中“聪明地”与其他无人机协作自主保障飞行安全。简单来说我们要解决的问题就是异构小型无人机系统集群间的分离保障。这里的“异构”是关键意味着集群里的无人机可能速度不同、机动能力不同、传感器精度不同、甚至任务优先级也不同。你不能指望用一个统一的、死板的规则去约束所有个体。而“分离保障”就是确保任何两架无人机之间都能保持一个安全的物理距离避免碰撞。这听起来像是空中版的“多车协同自动驾驶”但挑战更大因为空域是三维的且通信和感知可能受限。为什么MARL是解决这个问题的利器因为它的核心思想是让每个智能体在这里就是每架无人机通过与环境的持续交互来学习最优策略。每个无人机都是一个独立的决策者但它又能通过观察其他无人机的状态和行为来调整自己的飞行路径。像PPO、A2C这类算法为单智能体提供了稳定高效的学习基础而Multi-Agent PPO/A2C以及更先进的Actor-Attention-Critic框架则专门设计来处理智能体之间的复杂相互关系。Attention机制注意力机制尤其有用它能让每架无人机学会“关注”那些对自己当前决策最重要的邻居而不是对环境中所有信息一视同仁这大大提升了决策的效率和可扩展性。这篇文章我就结合自己的实践和近期的一些研究热点深入聊聊如何利用MARL特别是带有注意力机制的架构来实现异构无人机集群的自主分离保障。我会从问题建模开始讲到算法选型与核心原理再拆解训练框架的关键设计最后分享一些在仿真和实际部署中遇到的“坑”和解决思路。无论你是刚开始接触强化学习与机器人学的学生还是正在寻找解决实际集群协同问题的工程师希望这些内容都能给你带来一些直接的启发。2. 问题定义与马尔可夫博弈建模把天空变成博弈场要把强化学习用起来第一步也是最关键的一步就是把你面对的实际问题精准地转化成一个数学模型。对于异构无人机集群的分离保障我们把它建模为一个部分可观测的马尔可夫博弈。这个名词听起来有点唬人我们一步步拆开看。首先为什么是“博弈”因为这不是一架无人机独自在空旷天空飞行而是多架无人机同时在决策。每一架无人机的动作比如加速、转向都会改变环境状态从而影响其他无人机的观测和决策。这就形成了一个动态的、相互影响的博弈局面。每一架无人机都是一个智能体。其次为什么是“部分可观测”在现实世界中一架无人机不可能知道整个空域所有其他无人机的精确位置、速度和意图。它通常只能通过自身的机载传感器如视觉、雷达感知到周围一定范围内的邻居信息或者通过有限的通信链路获取部分共享数据。因此每个智能体对全局环境的了解是不完整的它只能基于自己的局部观测来做决策。最后“马尔可夫”性意味着下一步的状态只取决于当前状态和当前所有智能体的动作与历史无关。这为我们使用强化学习提供了理论基础。现在我们来形式化地定义这个博弈的各个要素智能体集合假设我们有N架无人机构成智能体集合i ∈ {1, 2, ..., N}。这些无人机是异构的意味着它们的动力学模型参数如最大速度v_max_i、最大加速度a_max_i、转弯半径、观测范围d_obs_i、通信能力可能各不相同。状态空间 S全局状态s_t ∈ S包含了所有无人机在时刻t的信息。对于第i架无人机其个体状态s_t^i通常包括自身三维位置p_t^i (x_t^i, y_t^i, z_t^i)自身三维速度向量v_t^i (vx_t^i, vy_t^i, vz_t^i)自身目标点或航点g^i自身的能量或任务进度等其他内部状态。 全局状态则是所有个体状态的并集s_t {s_t^1, s_t^2, ..., s_t^N}。观测空间 O^i这是部分可观测性的体现。第i架无人机在时刻t的观测o_t^i通常是全局状态s_t的一个子集。一个常见的设计是o_t^i包含自身的完整状态s_t^i。包含所有落在其感知/通信范围内的邻居无人机j的相对状态。例如邻居j相对于i的相对位置p_t^j - p_t^i相对速度v_t^j - v_t^i以及可能邻居的类型标识用于区分异构性。如果邻居数量可变观测通常会被处理成固定维度的向量比如只保留最近的K个邻居信息或使用注意力机制来动态处理。动作空间 A^i每架无人机可以执行的动作。为了控制复杂度我们通常将其设计为连续动作空间。例如动作a_t^i可以是一个三维向量分别代表在机体坐标系下向前、向左、向上的加速度指令。或者也可以是目标航向角和速度指令由底层的飞控系统去跟踪。动作空间的范围受到无人机物理约束a_max_i的限制。奖励函数 R^i这是引导智能体学习的“指挥棒”设计好坏直接决定最终学到的策略质量。我们的核心目标是分离保障所以奖励函数必须围绕这个目标来设计。一个有效的奖励函数通常是多个子奖励项的加权和碰撞惩罚这是最严厉的惩罚。如果无人机i与任何其他无人机或障碍物的距离小于安全半径d_safe则给予一个极大的负奖励如 -10并且通常这一回合episode会立即终止。# 伪代码示例 for j in all_other_agents: distance norm(p_i - p_j) if distance d_safe: reward - 10.0 done True接近惩罚/分离奖励为了鼓励无人机主动保持距离可以设置一个“舒适区”。例如当与其他无人机的距离小于一个阈值d_comfortd_safe但大于d_safe时给予一个与距离成反比的较小惩罚激励它们飞远点。反之也可以对成功保持距离给予微小正奖励。目标奖励无人机也有自己的任务比如飞到某个目标点。给予到达目标的正奖励或者在每一步给予一个与到目标点距离缩短成比例的奖励可以避免无人机为了绝对安全而停滞不前。# 每一步根据距离缩短给予奖励 prev_distance norm(prev_p_i - goal_i) curr_distance norm(curr_p_i - goal_i) reward alpha * (prev_distance - curr_distance) # alpha是缩放系数生存奖励/步数惩罚每一步给予一个极小的负奖励如 -0.01鼓励智能体高效完成任务而不是无限期拖延。控制代价惩罚对大的加速度或急转弯给予微小惩罚鼓励平滑、节能的飞行。reward - beta * norm(acceleration_i)**2 # beta是权重系数状态转移函数 T描述了环境如何根据当前状态和所有智能体的动作更新到下一个状态。这通常由物理仿真器来定义集成了每架无人机的动力学模型。对于异构集群每个智能体的状态转移函数T^i可能不同。设计奖励函数的经验之谈奖励函数的设计是一门艺术也是实践中调试最多的部分。我的经验是稀疏奖励只有最终成功或失败才有奖励很难学初期应该以密集奖励每一步都有反馈为主。但密集奖励的权重需要仔细调校。例如如果目标奖励权重过高无人机可能会为了快速到达目标而冒险发生碰撞如果分离惩罚权重过高无人机可能会在远离所有障碍物的地方“躺平”不敢向目标移动。通常需要多次实验来平衡。一个技巧是使用课程学习先在一个简单场景如无人机数量少、空间大中用较强的目标奖励训练让智能体学会基本导航再逐步增加难度更多无人机、更狭窄通道并微调奖励权重让智能体学会在复杂环境中优先保障安全。3. 算法核心从PPO/A2C到Actor-Attention-Critic的演进有了问题模型接下来就要选择和学习算法。我们提到的PPO和A2C是深度强化学习领域两个非常著名的策略梯度算法它们是解决单智能体问题的强大工具。但在多智能体环境中直接应用会面临巨大挑战。3.1 PPO与A2C单智能体的基石让我们快速回顾一下它们理解其核心思想因为多智能体版本是在此基础上扩展的。A2C是优势演员-评论家算法。它包含两个核心网络演员网络输入状态s输出动作的概率分布π(a|s)离散动作或动作的均值与方差连续动作。它负责“决策”。评论家网络输入状态s输出一个标量值V(s)代表当前状态的长期价值预期。它负责“评价”。 “优势”指的是A(s, a) Q(s, a) - V(s)即某个动作相对于平均水平的优势。A2C通过让演员朝着优势更大的方向更新策略来学习。它的更新是同步的多个环境并行运行收集数据后统一更新网络比较稳定。PPO是近端策略优化算法。它可以看作是A2C的一个更强大、更稳定的变体。PPO的核心贡献是提出了一个带裁剪的目标函数用于限制每次策略更新的幅度防止一次更新太大导致策略性能崩溃。其目标函数大致如下L(θ) E[ min( ratio * A, clip(ratio, 1-ε, 1ε) * A ) ]其中ratio π_θ(a|s) / π_θ_old(a|s)是新旧策略的概率比。这个裁剪操作保证了更新是“近端”的大大提升了训练稳定性。PPO在实践中通常比A2C更鲁棒调参也相对友好因此成为了许多复杂RL任务的首选。注意在单智能体设定下我们通常用PPO或A2C就能训练出很好的导航策略。但一旦扩展到多智能体环境就变成了非平稳的。3.2 多智能体的挑战与中心化训练分散式执行在多智能体环境中如果每个智能体都独立运行一个PPO/A2C算法完全分散式那么从单个智能体的视角看环境是非平稳的。因为其他智能体也在学习它们的策略在不断变化这就破坏了单智能体RL所依赖的“环境平稳”的马尔可夫假设导致训练极其不稳定难以收敛。为了解决这个问题中心化训练分散式执行成为了MARL的主流范式。这个范式听起来复杂其实理念很直观中心化训练在训练阶段我们有一个“上帝视角”的教练。这个教练可以获取所有智能体的观测、动作和全局状态信息。它利用这些全局信息来训练一个强大的“评论家”网络或者为每个智能体的“演员”网络提供更优质的指导。智能体之间可以充分通信和共享信息。分散式执行在部署阶段每个智能体只依靠自身的局部观测来做出决策其策略网络是独立运行的。它们不再需要访问其他智能体的信息或中心化的评论家。CTDE完美地解决了非平稳性问题因为在训练时中心化的评论家看到了全局信息能够准确地评估联合动作的价值。同时它保证了执行时的分布式和可扩展性。3.3 Multi-Agent PPO/A2CCTDE的经典实现基于CTDE我们可以构建多智能体版本的PPO和A2C。一种常见且有效的架构是MAPPO。在MAPPO中每个智能体有自己的演员网络网络结构相对简单输入是该智能体的局部观测o_t^i输出是其动作a_t^i。这个网络用于分散式执行。共享一个中心化的评论家网络这个网络的输入是所有智能体的观测拼接o_t (o_t^1, o_t^2, ..., o_t^N)甚至是全局状态s_t如果仿真中可获得。它输出一个联合状态的价值估计V(s_t)或联合观测的价值V(o_t)。训练流程所有智能体在环境中并行交互收集轨迹数据。对于每一步记录每个智能体的局部观测o_t^i、动作a_t^i、奖励r_t^i以及中心的全局信息用于评论家。使用PPO的裁剪目标函数进行更新。优势函数A_t的计算依赖于中心化评论家输出的价值估计。演员网络的梯度更新依赖于其自身动作的优势值但这个优势值是由能看见全局信息的中心化评论家提供的因此更准确。这种架构大大提升了多智能体学习的稳定性。然而它还有一个明显的缺陷输入维度固定。评论家网络的输入是所有智能体观测的拼接这意味着智能体数量N必须是固定的。但在实际应用中无人机数量可能动态变化有无人机加入或退出任务邻居数量更是时刻在变。将可变数量的邻居信息强行拼接成固定维度的向量要么会丢失信息邻居太多时要么会引入大量无用零填充邻居太少时效率低下。3.4 Actor-Attention-Critic用注意力机制应对动态关系这正是Actor-Attention-Critic架构要解决的核心问题。它利用注意力机制让网络能够自适应地、动态地处理可变数量的智能体信息。其核心思想是智能体之间的影响不是均等的。一架无人机在决策时应该更“关注”那些离它近的、相对速度大的、可能发生冲突的邻居而忽略那些距离很远、没有交集的邻居。注意力机制通过学习到的权重自动实现了这种“关注度”的分配。在一个典型的Actor-Attention-Critic框架中演员网络可以保持不变仍以局部观测为输入。更高级的架构会让演员网络也集成一个“自注意力”模块使其在编码自身观测时能考虑到与其他智能体的关系从而提取更丰富的特征。评论家网络这是注意力机制大显身手的地方。它不再简单拼接所有观测而是将每个智能体的观测经过一个编码器网络转换为一个查询向量、一个键向量和一个值向量。查询代表当前智能体“想知道什么”。键代表其他智能体“能提供什么信息”。值是其他智能体信息的实际内容。 然后通过计算查询向量与所有键向量的相似度点积后softmax得到一组注意力权重。最后用这组权重对所有的值向量进行加权求和得到一个上下文向量。这个上下文向量融合了所有其他智能体信息中对当前智能体决策最重要的部分。 最终评论家网络将这个上下文向量与当前智能体自身的编码信息融合来估计状态价值。这样做的好处是巨大的排列不变性无论邻居的顺序如何加权求和的结果是相同的这符合物理事实。可变输入可以处理任意数量的邻居信息无需固定维度输入。关系感知网络能学会关注重要的交互忽略不重要的这使得学到的策略更具解释性——我们甚至可以通过可视化注意力权重看出一架无人机在决策时最“在意”哪几个邻居。更好的泛化性学会的是“如何根据关系做决策”而不是死记硬背特定数量智能体的模式因此更容易推广到与训练时数量不同的集群中。在实际项目中当我们从传统的MAPPO切换到基于Attention的架构后最直观的感受是训练收敛更快了并且在测试时面对训练中从未见过的无人机数量例如训练用5架测试用8架策略仍然能表现出良好的避障和协同能力这是固定维度输入模型很难做到的。4. 训练框架搭建与仿真环境构建理论很美好但要把MARL算法真正用起来需要一个能够高效迭代的训练框架和一个能准确反映物理现实的仿真环境。这部分的工作量往往不亚于算法设计本身。4.1 仿真环境选择与搭建对于无人机集群仿真我们有几个选择机器人专用仿真器如Gazebo配合ROS。优点是物理引擎ODE Bullet精度高能模拟复杂的动力学和传感器噪声与真实机器人栈衔接好。缺点是计算开销大不利于需要大量采样百万级步数的RL训练。游戏引擎如Unity的ML-Agents或Unreal Engine。优点是可视化效果极佳能构建非常复杂逼真的环境也支持物理仿真。缺点是环境搭建和与RL框架的集成有一定复杂度且对计算资源要求高。轻量级自定义仿真对于聚焦于高层决策逻辑如路径规划、协同而非底层精确动力学控制的研究我们通常自己用Python搭建一个轻量级仿真环境。这是最灵活、最高效的选择。在我们的项目中由于核心是验证分离保障算法我们选择了自建轻量级仿真环境使用PyGame或Matplotlib进行简单可视化。每个无人机的动力学模型简化为一个双积分器模型并加上速度和加速度的限制来体现异构性class SimpleUAV: def __init__(self, uav_id, max_speed, max_accel, obs_range): self.id uav_id self.max_speed max_speed # 异构参数最大速度 self.max_accel max_accel # 异构参数最大加速度 self.obs_range obs_range # 异构参数观测范围 self.position np.array([0., 0., 0.]) self.velocity np.array([0., 0., 0.]) self.goal np.array([10., 10., 5.]) # 目标点 def step(self, action): # action是加速度指令例如是一个三维向量 # 1. 限制加速度指令不超过物理极限 clipped_action np.clip(action, -self.max_accel, self.max_accel) # 2. 更新速度 (假设时间步长dt0.1) self.velocity clipped_action * 0.1 # 3. 限制速度不超过最大速度 speed np.linalg.norm(self.velocity) if speed self.max_speed: self.velocity self.velocity / speed * self.max_speed # 4. 更新位置 self.position self.velocity * 0.1 # 5. 获取局部观测 (简化版只包含相对位置和速度) # 这部分需要在多智能体环境中统一计算环境的主要职责是管理所有无人机对象在每个时间步接收所有无人机的动作更新它们的状态计算碰撞和奖励并返回新的观测。同时环境还需要处理一些边界情况比如无人机飞出边界、到达目标等。4.2 多智能体训练框架集成我们选择了PyTorch作为深度学习框架并使用了Ray RLlib这个优秀的分布式RL库来管理我们的训练流程。RLlib对MARL有很好的支持它抽象了环境交互、样本收集、网络更新等复杂过程。即使使用RLlib我们仍需要做不少定制化工作自定义环境类我们需要按照RLlib的gym.Env接口规范封装我们自建的仿真环境。关键方法是reset()和step(action_dict)。在MARL中step方法接收一个字典其键是智能体ID值是对应的动作。返回的观测、奖励、完成标志等信息也应该是字典形式。自定义模型我们需要实现Actor-Attention-Critic网络架构。在RLlib中可以通过继承TorchModelV2类来构建自定义模型。在这个模型类里我们需要定义观测编码器将原始观测映射为特征向量。注意力层实现上文描述的查询-键-值注意力机制处理可变数量的邻居信息。演员网络头输出动作分布对于连续动作输出均值和方差。评论家网络头输出价值估计。配置训练参数这是调参的重头戏。以PPO为例关键参数包括lr学习率通常从3e-4开始尝试。gamma折扣因子取值0.95-0.99决定未来奖励的重要性。lambdaGAE参数用于估计优势函数通常0.95-0.98。clip_paramPPO裁剪参数ε通常0.1-0.3。train_batch_size每次更新使用的样本数量。sgd_minibatch_size每次梯度更新时从train_batch_size中抽取的小批量大小。num_sgd_iter每次更新时在小批量数据上执行梯度下降的迭代次数。num_workers并行收集数据的环境进程数用于加速采样。异构性的处理在我们的环境中无人机参数不同。一种方法是将这些异构参数如max_speed,max_accel作为观测的一部分输入给网络。这样网络就能学会根据自身能力做出不同的决策。例如速度慢的无人机可能会更早开始避让。一个重要的实操技巧课程学习。不要一开始就在最复杂的场景例如10架无人机在狭窄通道中对飞中训练。训练很可能无法收敛。应该设计一个课程阶段一1架无人机学习从A点飞到B点避开静态障碍物。奖励函数侧重目标导航。阶段二2架无人机对飞学习基本的相互避让。奖励函数加入分离惩罚。阶段三逐渐增加无人机数量到3架、5架并让它们从随机位置飞向随机目标。阶段四引入更复杂的场景如存在“瓶颈”区域的空域或者部分无人机有优先通行权通过设置不同的奖励权重实现。每完成一个阶段就用学到的策略权重初始化下一个阶段的训练。这能显著提高学习效率和最终性能。5. 实战中的挑战、调优与部署考量算法跑起来看到训练曲线上升只是第一步。在实际项目中从仿真到现实有无数细节需要打磨。这里分享几个我们踩过的“坑”和对应的解决方案。5.1 奖励函数设计稀疏性与欺骗性奖励问题一稀疏奖励导致的探索困难。最初我们只设置了碰撞惩罚-10和到达目标奖励10。结果智能体几乎永远探索不到成功到达目标的轨迹因为随机策略下碰撞概率太高它很快学到“不动最安全”奖励恒为0陷入了局部最优。解决方案引入密集的塑形奖励。除了之前提到的基于距离缩短的目标奖励和基于距离过近的分离惩罚我们还增加了朝向奖励鼓励无人机机头指向目标方向。reward gamma * (1 - angle_to_goal / pi)这能引导无人机在很远的地方就朝向目标而不是原地打转。进度奖励将到达目标的总路径分解为多个航点每到达一个虚拟航点就给一个小奖励。这就像给狗狗扔零食引导它一步步走向终点。问题二欺骗性奖励。有一次我们发现无人机学会了快速绕圈飞行奖励很高。我们很困惑检查后发现我们的“目标奖励”是基于每一步与目标点距离的减少值。无人机发现如果它快速绕着一个离目标点很近但不重合的圆圈飞行每一步的径向距离变化由于圆周运动都能产生一个小的正奖励积少成多反而比直接飞向目标点奖励更高。解决方案重新审视奖励函数。我们将“基于距离变化”的奖励改为“基于到达虚拟航点”的奖励并大幅提高了最终到达目标的终局奖励。同时加入了对角速度的微小惩罚抑制无意义的绕圈行为。教训是必须仔细分析奖励函数的潜在漏洞智能体会以你意想不到的方式最大化奖励。5.2 注意力机制的陷阱与调试引入注意力机制后训练初期不稳定有时甚至比简单的MAPPO还差。问题注意力权重在训练初期是随机的导致上下文向量是噪声反而干扰了评论家的学习价值估计不准进而带偏了演员。解决方案热身期在训练的前几千步不使用注意力机制而是用一个简单的聚合方法如取所有邻居特征的均值作为上下文向量。等策略稍微稳定后再开启注意力机制的学习。多头注意力使用多头注意力而不是单头。这允许模型在不同的表示子空间里共同关注信息增加了模型的容量和稳定性。可视化注意力定期保存并可视化注意力权重热力图。这不仅是强大的调试工具也能增加我们对模型决策过程的理解。例如我们能看到在即将发生交叉冲突时无人机确实把最高的注意力权重分配给了冲突对象。5.3 从仿真到现实的鸿沟领域随机化仿真环境再精细也和真实世界有差距。动力学模型简化、传感器噪声缺失、通信延迟和丢包这些都是现实因素。如果只在“干净”的仿真中训练策略在现实中很可能失效。领域随机化是弥合这一鸿沟的关键技术。在训练时我们主动在仿真环境中引入各种随机扰动动力学参数随机化每轮训练或每个环境副本中无人机的质量、惯量、最大推力等参数在一个范围内随机采样。观测噪声随机化在提供给智能体的观测上添加高斯噪声模拟传感器误差。通信干扰随机化以一定概率丢弃或延迟某个智能体的观测信息模拟不可靠通信。环境随机化风扰、目标点位置、障碍物形状等在一定范围内变化。这样训练出来的策略不再依赖于某个精确的仿真模型而是学会了一个更鲁棒的策略能够应对一定范围内的不确定性。这极大地提升了策略向真实系统迁移的成功率。5.4 部署时的计算与通信考量最终训练好的策略需要部署到真实的无人机上。这时面临两个核心约束计算约束无人机上的机载计算机如Jetson Nano, TX2算力有限。复杂的注意力网络可能推理速度较慢无法满足高频控制如10Hz的需求。优化使用网络剪枝、量化等技术压缩模型。或者设计更轻量级的网络架构例如使用更小的特征维度、更少的注意力头。分层决策MARL策略不直接输出底层电机指令而是输出高层航点或速度指令由机载飞控如PX4负责跟踪。这样MARL策略可以运行在较低的频率如2-5Hz。通信约束CTDE范式在训练时需要中心化信息但执行时是分散式的。然而分散式执行时如果策略网络需要其他无人机的信息例如某些架构中演员网络也用了注意力那么无人机之间仍需交换状态信息。最小化通信精心设计观测内容只共享必要信息如位置、速度而不是原始传感器数据。通信拓扑不一定需要全连接通信。可以基于距离建立动态通信网络只与邻近无人机通信这更符合实际。处理通信故障策略必须在训练时就学会处理通信中断的情况。这可以通过在仿真中随机屏蔽通信链路来实现让策略学会在仅凭自身感知的情况下也能做出安全决策。实现异构无人机集群的自主分离保障是一个充满挑战但回报丰厚的前沿领域。多智能体强化学习特别是结合了注意力机制的先进架构为我们提供了强大的工具。从精确的问题建模到选择合适的算法如MAPPO, Actor-Attention-Critic再到搭建训练框架、设计奖励函数、应对仿真到现实的差距每一步都需要细致的工程实践和深刻的算法理解。我个人的体会是这个领域没有“银弹”。一个成功的系统是算法理论、仿真工程、现实约束三者反复碰撞、妥协、迭代的结果。最大的乐趣莫过于看到那些最初只会乱撞的“智能体”最终学会在复杂的空中舞池中优雅地穿梭彼此避让各自奔向目标。这不仅仅是代码和算法的胜利更是对未来智能协同系统的一瞥。希望我的这些经验分享能帮你少走一些我们曾经走过的弯路。
返回列表