目录

MARVEL 多智能体协同探索:目标冲突消解策略改进与可视化

课程大作业 · 基于 MARVEL (ICRA 2025) 框架的多智能体协同探索改进

项目简介

本项目以 MARVEL(Multi-Agent Reinforcement Learning for Constrained Field-of-View Multi-Robot Exploration)为基线框架,针对多机器人在未知环境中的协同探索任务,提出并实现了三种目标冲突消解策略,通过信息增益优化、通信受限竞价、动态空间分区等不同协同范式,显著降低了多智能体间的感知重叠率,并在真实模型 checkpoint 上完成了系统性对比实验与 Web 可视化部署。

核心工作

模块 说明
创新点 1 协同冗余感知的边际信息增益分配(info_gain
创新点 2 通信受限的分布式竞价共识(comm_limited
创新点 3 动态 Voronoi 任务分区协同(voronoi
基线 原论文精确坐标冲突 + 最近邻重定向(original
实验框架 5 张地图 × 2 种智能体数量 × 4 种模式 = 40 组对比实验
可视化平台 FastAPI 后端 + Web 前端,支持实时推理与回放

背景:MARVEL 基线框架

MARVEL 是一个基于图注意力网络(GAT)的神经框架,利用前沿节点与朝向特征融合技术,通过多智能体强化学习(MARL)为受限视场角(FoV)机器人学习一种协作式去中心化策略。

原论文冲突消解方式: 当多个智能体选择相同目标节点时,按到达距离排序,贪心地将冲突智能体重定向到最近邻的未占用节点。该方式仅检测精确坐标冲突,无法避免感知范围重叠导致的冗余探索。


三种创新协同策略

创新点 1:协同冗余感知的边际信息增益分配(info_gain

核心思想: 多智能体协同不应仅看个体信息增益,而应最大化团队整体的净信息采集量。

实现机制:

  • 基于感知范围(sensor_range)重叠检测冲突,而非仅精确坐标匹配
  • 计算边际信息增益(Marginal Information Gain):扣除与队友预期感知重叠后的净增益
  • 冲突消解时,被重定向的智能体选择团队边际增益最大的替代节点
  • 全局通信假设:所有智能体可见队友目标

关键代码: utils/test_worker.py 中的 _compute_marginal_gain()_find_best_alternative() 方法。

创新点 2:通信受限的分布式竞价共识(comm_limited

核心思想: 模拟真实分布式系统中通信带宽受限的场景,智能体仅能感知通信半径内的邻居意图。

实现机制:

  • 引入通信半径(comm_radius,默认为 sensor_range × 3.0)
  • 智能体仅与通信半径内的可见邻居进行竞价消解
  • 竞价函数:bid = info_gain / (travel_cost + 1),兼顾信息价值与到达代价
  • 统计通信过滤次数(comm_filtered),量化通信受限对协同的影响

关键代码: utils/test_worker.py 中的 _get_comm_neighbors() 方法及竞价消解逻辑。

创新点 3:动态 Voronoi 任务分区协同(voronoi

核心思想: 基于智能体当前位置动态划分探索空间,实现隐式空间分工与负载均衡。

实现机制:

  • 每个决策步根据所有智能体当前位置计算 Voronoi 分区
  • 每个智能体仅在自己所属的 Voronoi 单元内选择目标节点
  • Voronoi 判定:候选节点离哪个智能体最近,就属于谁的分区
  • 无需显式通信即可实现空间分工,是隐式协同范式

关键代码: utils/test_worker.py 中的 _find_best_in_voronoi() 方法。


实验结果

实验配置

参数
测试地图 Map 1, 5, 10, 20, 30
智能体数量 4, 6
协同模式 original, info_gain, comm_limited, voronoi
视场角 (FoV) 120°
传感器范围 10 m
最大步数 128
Checkpoint episode 43872
实验总数 40 组

总体对比

协同模式 平均覆盖率 平均重叠率 平均轨迹/m 成功率 平均冲突检测 平均冲突消解
original(基线) 99.45% 0.2467 332.9 100% 0 0
info_gain(创新点1) 94.58% 0.0449 631.2 90% 101.1 101.1
comm_limited(创新点2) 99.46% 0.0459 464.1 100% 80.3 80.3
voronoi(创新点3) 99.48% 0.0586 441.8 100% 52.5 52.5

重叠率改进幅度

创新点 基线重叠率 改进后重叠率 改进幅度
创新点1 info_gain 0.2467 0.0449 -81.8%
创新点2 comm_limited 0.2467 0.0459 -81.4%
创新点3 voronoi 0.2467 0.0586 -76.3%

关键发现

  • 三种策略均显著降低了感知重叠率(76%–82% 降幅),证明协同冲突消解的有效性
  • comm_limited 和 voronoi 在保持 100% 成功率的同时将重叠率降低 76%–81%,兼顾了探索效率与协同质量
  • info_gain 获得最低重叠率(0.0449),但在 Map 20(4 agents)场景中因过度重定向导致覆盖不全,成功率略降
  • 原论文基线完全不检测冲突(conflicts_detected = 0),仅依赖精确坐标去重,感知重叠严重
  • 通信受限模式平均每局过滤 40+ 次无效邻居通信,验证了通信半径约束对分布式协同的影响

系统架构

MARVEL/
├── utils/
│   ├── test_worker.py          # 核心协同算法(4种模式)
│   ├── env_test.py             # 环境与传感器模型
│   ├── agent.py                # 智能体观测与决策
│   ├── model.py                # PolicyNet (GAT) 网络定义
│   ├── node_manager.py         # 前沿节点管理
│   └── motion_model.py         # 运动学约束
├── UI/
│   ├── backend/
│   │   └── server.py           # FastAPI 后端服务
│   └── public/
│       ├── index.html          # 前端页面
│       ├── app.js              # 前端逻辑
│       ├── styles.css          # 样式
│       └── coordination_results.json  # 批量实验结果
├── run_coordination_experiment.py  # 批量实验脚本
├── test_driver.py              # 单次测试驱动
├── test_parameter.py           # 测试参数配置
├── driver.py                   # 训练驱动
├── parameter.py                # 训练参数配置
├── load_model/MARVEL/          # 预训练 checkpoint
└── maps_test/                  # 测试地图

后端服务(UI/backend/server.py

  • 框架:FastAPI,运行于 localhost:8080
  • 功能:加载 MARVEL checkpoint,执行单次推理 episode,返回逐帧遥测数据
  • API 端点:
    • GET /api/health — 健康检查与模型状态
    • POST /api/runs — 提交推理任务(支持 4 种协同模式参数)
    • GET /api/runs/{job_id} — 轮询任务状态与结果
  • 异步推理:通过线程池 + 任务队列实现单任务串行推理

前端可视化(UI/public/

  • 实时推理:选择地图、智能体数量、FoV、传感器范围、协同模式后一键运行
  • 地图可视化:Canvas 渲染认知地图、运动轨迹、感知视场、前沿节点
  • 实时指标:覆盖率、重叠率、最大轨迹、冲突消解统计
  • 回放控制:播放/暂停、单步前进、时间轴拖拽、倍速调节
  • 实验对比:展示 40 组批量实验的四种模式横向对比表

快速开始

环境配置

conda env create -f marvel.yml
conda activate marvel

运行批量对比实验

python run_coordination_experiment.py

输出 JSON 结果至 UI/public/coordination_results.json,同时在终端打印汇总统计。

启动可视化平台

# 后端(WSL 环境)
cd /mnt/e/LLM/MARVEL
python -m uvicorn UI.backend.server:app --host 0.0.0.0 --port 8080

浏览器访问 http://localhost:8080 即可使用可视化平台。

单次测试评估

test_parameter.py 中设置参数后运行:

python test_driver.py

模型训练

parameter.py 中设置参数后运行:

python driver.py

可调参数

参数 位置 说明
coordination_mode test_worker.py 协同模式:original / info_gain / comm_limited / voronoi
comm_radius test_worker.py 通信半径(仅 comm_limited 模式生效),默认 sensor_range × 3.0
FOV run_coordination_experiment.py 视场角,实验中使用 120°
SENSOR_RANGE run_coordination_experiment.py 传感器范围,实验中使用 10 m
MAX_EPISODE_STEP test_parameter.py 单次探索最大步数,默认 128
NUM_ANGLES_BIN test_parameter.py 朝向离散化数量,默认 36

致谢

本项目基于 MARVEL 框架进行改进,原论文发表于 ICRA 2025:

@INPROCEEDINGS{chiun2025marvel,
  author={Chiun, Jimmy and Zhang, Shizhe and Wang, Yizhuo and Cao, Yuhong and Sartoretti, Guillaume},
  booktitle={2025 IEEE International Conference on Robotics and Automation (ICRA)},
  title={MARVEL: Multi-Agent Reinforcement Learning for Constrained Field-of-View Multi-Robot Exploration in Large-Scale Environments},
  year={2025},
  pages={11392-11398},
  doi={10.1109/ICRA55743.2025.11127700}}

License: MIT

关于

MARVEL multi-agent collaborative exploration with three coordination innovations: marginal information gain, distributed bidding consensus, and dynamic Voronoi partitioning

26.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号