摘要
在现代工业生产中,多机器人常协作完成复杂的制造任务。大语言模型(LLM)凭借强大的推理能力,在协调机器人完成简单的家庭和操作任务方面已展现出潜力。然而在工业场景中,更严格的顺序约束和更复杂的任务间依赖关系给 LLM 带来了新的挑战。
本文提出 IMR-LLM,一个新颖的 LLM 驱动的工业多机器人任务规划与程序生成框架。具体而言:
- 利用 LLM 辅助构建析取图(disjunctive graph)
- 采用确定性求解方法获得可行且高效的高层任务计划
- 使用过程树(process tree) 引导 LLM 生成可执行的底层程序
- 创建 IMR-Bench 基准,涵盖三个复杂度级别的多机器人工业任务
实验结果表明,该方法在所有评估指标上均显著优于现有方法。
1. 研究背景与动机
1.1 工业场景的挑战
| 方面 | 挑战 |
|---|---|
| 任务规划 | 需同时解决分解、分配、调度三个子问题 |
| 程序生成 | 需涵盖所有关键步骤并适配生产特定约束 |
| 多机器人协作 | 严格的执行序列和复杂的资源冲突约束 |
1.2 现有方法的局限
任务规划方面:
| 方法类型 | 代表工作 | 局限 |
|---|---|---|
| 分散式 | ROCO, CoELA | 多轮对话后 prompt 过长,性能不稳定 |
| 集中式 | SMART-LLM, LaMMA-P, LiP-LLM | 依赖 LLM 直接生成执行顺序,在工业场景中不可靠 |
工业 vs 家庭场景的关键差异:
| 维度 | 家庭/操作任务 | 工业任务 |
|---|---|---|
| 执行顺序 | 相对灵活(可并行) | 严格顺序约束 |
| 资源依赖 | 较简单 | 机器人和机器互斥访问 |
| 任务复杂度 | 较低 | 高(可达 24 个操作) |
程序生成方面:
| 方法 | 策略 | 问题 |
|---|---|---|
| ProgPrompt | 少量示例引导代码生成 | 过拟合示例,无法对齐实际执行环境 |
| Code-as-Policies | 生成包含 API 的 Python 代码 | 在约束性工业场景中可能失败 |
1.3 核心研究问题
如何结合 LLM 的推理能力与确定性算法,实现工业多机器人任务的高效规划和可执行程序的自动生成?
2. 问题定义
2.1 析取图(Disjunctive Graph)
定义 :G={V,C,DM,DR}G = \{\mathbb{V}, \mathbb{C}, \mathbb{D}{\mathbb{M}}, \mathbb{D}{\mathbb{R}}\}G={V,C,DM,DR}
| 元素 | 说明 |
|---|---|
| 顶点集 V\mathbb{V}V | 每个顶点代表一个操作(运输、抛光、焊接、倒角、装配) |
| 合取弧 C\mathbb{C}C | 有向边,表示同一工件内操作的前后顺序约束 |
| 机器析取弧 DM\mathbb{D}_{\mathbb{M}}DM | 无向边,表示竞争同一台机器的冲突 |
| 机器人析取弧 DR\mathbb{D}_{\mathbb{R}}DR | 无向边,表示竞争同一个机器人的冲突 |
核心问题:确定所有无向边的方向,使图保持无环,同时最小化完工时间(makespan)。
2.2 输入与输出
输入:
| 符号 | 含义 |
|---|---|
| S={R,M,W}S = \{\mathbb{R}, \mathbb{M}, \mathbb{W}\}S={R,M,W} | 工业场景(机器人、机器、工件) |
| III | 用户自然语言指令 |
| E\mathbb{E}E | 程序示例(指令-场景-程序对) |
输出:
| 符号 | 含义 |
|---|---|
| H={O,A,F}H = \{\mathbb{O}, \mathbb{A}, F\}H={O,A,F} | 高层任务计划(操作集、分配、调度图) |
| P={PC,PW,PE}P = \{\mathbb{P}{\mathbb{C}}, \mathbb{P}{\mathbb{W}}, \mathbb{P}_{\mathbb{E}}\}P={PC,PW,PE} | 底层程序(函数调用、包装函数、执行函数) |
3. 方法:IMR-LLM
3.1 任务规划模块
核心思路:LLM 只负责"简单"的部分(操作分解、分配、工件内顺序),复杂调度交给确定性算法。
步骤:
| 步骤 | 负责模块 | 输出 |
|---|---|---|
| 1. 操作分解与分配 | LLM(CoT + 通用规则) | 操作集 O\mathbb{O}O、分配 A\mathbb{A}A、工件内顺序 Q\mathbb{Q}Q |
| 2. 析取图构建 | 程序化转换 | 图 GGG |
| 3. 调度求解 | 启发式算法(FIFO) | 调度图 FFF |
与现有方法的对比:
| 方法 | LLM 承担的工作 | 调度可靠性 |
|---|---|---|
| SMART-LLM | 直接生成完整调度 | ❌ 低 |
| LaMMA-P | 分配后直接生成顺序 | ⚠️ 中等 |
| LiP-LLM | 生成依赖图 | ⚠️ 不完整 |
| IMR-LLM(Ours) | 仅生成工件内顺序 | ✅ 高(确定性算法保证) |
优势:
- LLM 无需处理复杂资源冲突
- 析取图求解保证可行性和效率
- 增强可解释性,便于工程师审查
3.2 程序生成模块
关键观察:
- 同类操作遵循一致且严格的顺序流程
- 不同生产线的配置差异导致实现变化
- 不同操作可能共享通用步骤(如拍照定位)
过程树(Process Tree)设计:
| 特点 | 说明 |
|---|---|
| 结构 | 树形结构,节点代表功能步骤 |
| 节点属性 | 索引、类型、功能描述、代码片段 |
| 分支 | 表示不同场景下的实现变体 |
| 共享 | 不同操作可复用通用节点 |
节点示例:
Index: 2
Type: General
Functional description: Photo using handheld camera.
Snippet:
photo_point_robot = convert_to_robot(robot, machine_1['Points']['Photo_Point'])
photo_path = motion_plan(robot, photo_point_robot)
move_by_path(robot, photo_path)
image = control_device(robot, 'camera', 'on', machine_1)
生成流程:
| 步骤 | 说明 |
|---|---|
| 1. 树合成 | LLM 从程序示例中提取并归纳过程树(一次性构建,人工验证) |
| 2. 路径选择 | 为每个操作在树中找出从根到叶的完整分支 |
| 3. 代码组合 | 将路径上所有节点的代码片段组合成执行函数 |
| 4. 包装生成 | 为每个操作生成调用执行函数的包装函数 |
优势:
- 代码生成 → 路径选择问题,更简单
- 明确表示场景差异,避免歧义
- 高可扩展性,新增操作类型只需添加节点
3.3 执行模块
- 调度图 FFF 决定操作执行顺序
- 操作前置依赖全部完成后才能启动
- 通过函数调用执行相应操作
4. 实验
4.1 IMR-Bench 基准
场景:23 个场景(1-7 个机器人),基于真实工业环境设计
任务:50 个制造任务,分为三个难度级别:
| 级别 | 机器人数 | 操作数 | 任务数 |
|---|---|---|---|
| Single Robot | 1 | ≤5 | ~ |
| Simple Multi-Robot | ≤3 | ≤10 | ~ |
| Complex Multi-Robot | ≤7 | ≤24 | ~ |
评估指标:
| 指标 | 全称 | 计算方式 |
|---|---|---|
| OC | Operation Consistency | 生成分配与 GT 的 IoU |
| SE | Scheduling Efficiency | 基于完工时间比率的调度效率 |
| Exe | Executability | 程序能否实际执行 |
| GCR | Goal Condition Recall | 完成目标状态的比例 |
| SR | Success Rate | SE=1 且 GCR=1 时为 1,否则 0 |
4.2 仿真实验结果
基线方法:
| 方法 | 特点 | 程序来源 |
|---|---|---|
| SMART-LLM | 同时处理所有子问题 | 内置示例 |
| LaMMA-S | 任务规划 + SMART-LLM 程序 | SMART-LLM |
| LaMMA-O | 任务规划 + IMR-LLM 程序 | 过程树 |
| LiP-O | 依赖图 + 线性规划 + 过程树 | 过程树 |
定量结果(Complex Multi-Robot):
| 方法 | OC↑ | SE↑ | Exe↑ | GCR↑ | SR↑ |
|---|---|---|---|---|---|
| SMART-LLM | 0.50 | 0.04 | 0.00 | 0.03 | 0.00 |
| LaMMA-S | 0.56 | 0.26 | 0.20 | 0.33 | 0.16 |
| LaMMA-O | 0.56 | 0.26 | 0.28 | 0.37 | 0.20 |
| LiP-O | 0.63 | 0.28 | 0.36 | 0.42 | 0.24 |
| Ours (GPT-4o) | 0.88 | 0.75 | 0.76 | 0.79 | 0.68 |
| Ours (Qwen3-32B) | 0.85 | 0.71 | 0.76 | 0.79 | 0.68 |
关键发现:
- 复杂任务中,LaMMA 系列 SE 低至 0.26-0.28(LLM 直接调度不可靠)
- LiP-O 依赖图不完整导致 OC 下降
- IMR-LLM 在所有指标上显著领先
- Qwen3-32B 与 GPT-4o 性能相当,验证了方法的模型泛化能力
4.3 消融实验
| 变体 | 说明 | SR (Complex) |
|---|---|---|
| w/order | 直接 LLM 生成执行顺序 | 0.00 |
| w/dependency | LLM 生成依赖图 | 0.36 |
| w/o T | 直接输入程序示例(无过程树) | 0.44 |
| Ours | 析取图 + 过程树 | 0.68 |
结论:
- 无析取图 → SE 严重下降(复杂任务中 LLM 无法直接调度)
- 无过程树 → Exe 和 GCR 显著降低
4.4 真实世界实验
场景:3 个机械臂 + 支架安装相机,协作完成工件传送带放置任务
流程:
- 专家手动构建场景描述(约 15 分钟)
- 输入场景文件和任务描述
- 在仿真中验证安全性和正确性
- 直接部署到真实场景
结果:产生合理、高效的计划和可正确执行的程序
5. 核心创新总结
| 创新点 | 说明 |
|---|---|
| LLM + 确定性算法混合范式 | LLM 负责分解/分配,析取图负责调度,避免 LLM 直接调度 |
| 过程树引导程序生成 | 树结构表示操作流程变体,将代码生成转化为路径选择 |
| IMR-Bench 基准 | 首个工业多机器人任务规划与程序生成基准 |
| Sim2Real 验证 | 仿真规划直接部署真实场景 |
| 模型无关 | GPT-4o 和 Qwen3-32B 性能相当 |
6. 与现有方法的关键区别
| 维度 | 现有方法 | IMR-LLM |
|---|---|---|
| 调度方式 | LLM 直接生成 | 析取图 + 确定性算法 |
| 程序生成 | 少量示例 ICL | 过程树路径选择 |
| 适用场景 | 家庭/操作任务 | 工业场景 |
| 可扩展性 | 示例依赖 | 树结构易扩展 |
| 可解释性 | 低(LLM 黑盒) | 高(析取图可审查) |
7. 局限性与未来方向
| 局限性 | 未来方向 |
|---|---|
| 复杂任务中 LLM 仍可能产生次优分解/分配 | 结合更多约束验证 |
| 程序生成上下文变长导致幻觉 | 更结构化的生成方式 |
| 当前为开环系统 | 集成执行反馈,建立闭环系统 |
| 场景描述需人工构建(约 15 分钟) | 自动化场景理解 |
8. 结论
本文提出的 IMR-LLM 是首个专门针对工业多机器人场景的任务规划与程序生成框架。核心贡献:
- 混合调度范式:LLM 只负责分解和分配,复杂调度由析取图 + 确定性算法完成,避免 LLM 直接调度不可靠的问题
- 过程树程序生成:树结构编码操作流程变体,将代码生成转化为路径选择,提高可执行性
- IMR-Bench 基准:50 个任务 × 3 个难度级别,推动工业机器人 LLM 研究
实验证明该方法在仿真和真实场景中均显著优于现有方法,为工业智能制造中的 LLM 应用提供了新路径。
9. 资源
- 📄 论文标题:IMR-LLM: Industrial Multi-Robot Task Planning and Program Generation using Large Language Models
- 👨🔬 作者:Xiangyu Su, Juzhan Xu, Oliver van Kaick, Kai Xu, Ruizhen Hu
- 🏫 机构:深圳大学 + SpeedBot Robotics + 卡尔顿大学 + 中国科学院