对比基线
和谁比、怎么改造、用什么执行:在 8 个任务(Con-01 到 Con-04、Rea-01 到 Rea-04)上比较"选出最小支撑集"的方法。 ← 返回任务页 · 方法汇报(一页看懂) · 生成于 2026-10-24 00:42
对比基线
2026-10-23 定稿。要实现哪些部分、按什么顺序:docs/ROADMAP.md §3(工作包)。
问题。 一个任务到底需要多大的团队,也就是要回答:
- 需要哪几只臂,哪几只可以闲置;
- 桌上的东西能不能顶替一只臂;
- 或者任务做不到,缺的是什么。
以往的方法回答的是相邻的问题:
- 给定的团队怎么协作:RoCo、HMAS-2;
- 给定团队里谁做哪部分:SMART-LLM、EMOS。
这些方法按原样都说不出"这只臂不需要""做不到""这件东西能顶替那只臂"。所以每个方法只改输入输出,不改推理方式,就像 SQuAD 2.0 给它的基线加了一个"无答案"输出一样。原样版不跑,各自缺什么见文末对照表。
试验机会人人相同
-
跑通了,就证明这个团队够用。 跑失败了,只有当仿真报出某个 job 自己的失败信号时,才能证明更小的团队不行,例如箱子还在门里时门就关上了。没抓住、撞到了都不算:一个程序失败,不代表所有程序都会失败。
-
以下环境条件所有行共享:
- 工具:
briefing、look、read_arm、locate、measure、heft、带余量的can_reach、note、probe(全部列在共用什么); - 整体运行:
try_in_sim; - 运行后的失败报告:含各 job 失败信号的事件,以及 IK 和 clearance 给出的原因;
- 运行失败后改团队的机会。
v5 自己的部分只在于怎么用这些条件,附录里逐项消融。
- 工具:
-
两种设定:
- 一次性:提交团队之前不能试;只报 MSS 各列,不用 Isaac。
- 同等预算:每个 case 最多 2 次
probe、5 次运行;报全部列,外加准确率随运行次数变化的曲线。
主表
共享执行器给只做规划的行用,它就是 v5 的第二阶段:
- 由同一个模型写程序,先经 IK 和 clearance 检查,再由
try_in_sim运行; - 只动用声明的臂;
- 运行失败后,失败报告退回到该行自己的规划步骤,那一步可以改团队。
| 方法 | 测什么(预期在哪儿失分) | 改造 | 执行器 | |
|---|---|---|---|---|
| 参照 | Oracle-脚本 | 每个可行版本都做得到;SR 的上限 | gold 团队 + 手写 reference | Isaac 回放,5 个 seed |
| 参照 | Oracle-团队 | 只在执行上丢掉的 SR | 直接给 gold 团队 | 共享 |
| 参照 | 模式猜测器 | 题目猜不中:开跑任何模型前,任务级必须接近 0 | 规则:3 臂以上,用西、东、南三只;2 臂且有东西,用这 2 臂加最大的那件;否则判做不到 | 不执行(离线评分) |
| 参照 | 盲试 | 只靠试够不够(会把执行失败当成"人不够",于是多派人) | 从最小团队开始逐个试,第一个成功的就是答案;预算用完就判做不到 | 共享 |
| 参照 | LLM + 求解器(v3+) | 只靠推理够不够(会出翻译错误) | 求解器搜索四类执行者:臂、臂 + 工具、搬运件、被动件。无解即判做不到,并列出没被覆盖的 job | 共享 |
| 参照 | Claude Code harness | 不用我们的方法,强通用 agent 能做到什么:v5 的主要对手 | 只统一输出格式和预算;保留它自带的 Bash 和 Python;隔离运行,读不到仓库 | 自己 |
| 文献 | SMART-LLM 式 | 固定流程的集中式方法(预期在少臂、借物上失分) | 组队时不读技能表,改为查询各臂(can_reach、measure);东西作为被动候选;组不成队就判做不到;分配时用最少的机器人 |
共享 |
| 文献 | EMOS 式 | 对所有任务都一样的简历 vs. 在本任务具体点位上查询(预期在厘米级余量、借物上失分) | 每只臂开局写一次简历(工作半径、高度范围、夹爪开口、负载、底座位置),之后不能再逐点查询;输出里加上闲置臂、做不到、用到的东西 | 共享 |
| 文献 | RoCo 式 | 各臂自荐 vs. 集中决策(预期会多派人) | 每臂一个 LLM,能看固定相机,腕部相机、read_arm、can_reach 只能用自己的;可以选择"我不参加";全队可以声明"做不到、缺什么";东西当作资源 |
自己(对话后写程序) |
| 文献 | HMAS-2 式 | 中央提议、各臂否决(预期在少臂、借物上失分) | 提议里要写明团队、闲置臂、用到的东西、能不能做;各臂(所见和 RoCo 式相同)用自己的 can_reach 否决 |
自己(中央写程序) |
| 我们 | v5 | 所有版本都要对,且运行次数最少 | — | 自己(第二阶段,失败后回到第一阶段) |
CaP-X 不单列一行,因为它没有选团队这一步。共享执行器沿用了它的设计,编程 agent 这一类由 Claude Code 代表。
共用什么
包括 v5 在内,每一行用的都是同一个环境服务器(mrbench-env,经 MCP)、同一个控制端、同一个评分器。不同的只有决策层:谁来想、按什么流程想,以及少数几个只属于某个方法的推理工具。任何一行都只能通过 program API 让臂动起来。 状态一栏中,"现有"指 mrbench/agent/ 里已经有;"WPn"指待建(见 docs/ROADMAP.md §3)。
| 层 | 组件 | 作用 | 状态 |
|---|---|---|---|
| 任务 | 场景与版本 | 同一个实例(同 seed;exact、surplus、shortfall、borrow 或放宽孪生),Isaac Sim 4.5 + Isaac Lab 2.1 | 现有(版本待建:WP2–WP4) |
| 指令 | 只给目标,不提臂、分工、步骤、工具 | 现有 | |
| 感知与测量 | briefing |
目标、坐标系、每只臂的型号、安装位置和朝向;每件东西带粗略质量(见下) | 现有 |
look |
一张图:桌边固定相机,或某只臂的腕部相机 | 现有 | |
read_arm |
一只臂的本体感知:关节角和限位、工具点位姿、夹爪开度、关节力矩 | 现有 | |
locate |
物体或部件的包围盒,由相机估计,有几毫米误差 | 现有 | |
can_reach |
臂自身的 IK:工具点能否以某个姿态到达某点;带余量,并报告差多少 | 现有的是 check_reach(只答能不能);余量 WP6 |
|
measure |
物体的部件和尺寸(长度、高度、开口) | WP6 | |
heft |
由一只够得着的臂把东西抬起 2 cm、读关节力矩:质量误差几个百分点以内,或"太重"(按模型计算,不在仿真里执行) | v4 现有;改为共用 WP9 | |
probe |
在仿真里试一个小动作,读回结果(门会不会弹回?);每个 case 2 次 | WP9 | |
note |
记事本:记下已确认的事实和证据 | 现有 | |
| 输出 | submit_team_plan v2 |
能不能做;用哪几只臂;闲置臂及理由;用了哪些东西、做哪个 job;拒绝了哪些东西及证据;缺什么 | v1 现有;v2 WP5 |
| 控制端 | program API | tool_pose、above、shift、back、where、move、grip、push、release、open_fingers、phase;代码只设 PLAN,只能 import math |
现有 |
check_program |
在沙箱里运行程序,每条路径解 IK,走一遍间距检查(臂与臂 3 cm、臂与场景 1 cm、手里的物体 1.5 cm),逐条列出冲突 | 现有 | |
try_in_sim |
在 Isaac 里带物理执行:关节位置目标、特权吸附(2 cm 以内)、布料捏取;返回关键帧、事件日志、是否成功;每个 case 5 次 | 现有(现在每个 case 2 次) | |
| 开口检查 | 比夹爪开口还宽的东西抓不起来 | WP9 | |
| 失败报告 | 各 job 的失败信号,以及 IK 和间距检查给出的原因 | WP1、WP9 | |
submit_program |
提交最终程序 | 现有 | |
| 评分 | 评分器 | 任务自带的成功公式;gold 由声明的 job 算出;团队 = 声明的 ∪ 实际用到的 | 成功公式现有;gold 和团队认定 WP1、WP5 |
| 预算 | 每个 case 2 次 probe、5 次运行;LLM 调用次数和费用上限相同 |
WP9 | |
| 运行条件 | 模型 | 每张表用同一个 backbone(主表 Opus 5.5,附录 Qwen-27B) | — |
| 隔离 | 读不到仓库:v5 用 claude -p --tools "";Claude Code harness 放进容器,只暴露 MCP socket |
v5 现有;Claude Code WP9 |
各行自己的部分:
| 行 | 怎么决策 | 只属于它的东西 | 控制端 |
|---|---|---|---|
| Oracle-脚本 | 不用 LLM | gold 团队 + 手写 reference(script(inst)) |
直接回放(它是参照) |
| Oracle-团队 | 1 个 LLM,只写程序 | 直接拿到 gold 团队 | 共享执行器 |
| 模式猜测器 | 一条规则,不用 LLM | 只看臂数和物体尺寸 | 不执行 |
| 盲试 | 一条规则,不用 LLM | 从最小团队开始逐个试 | 共享执行器 |
| LLM + 求解器 | 1 个 LLM 翻译,求解器决定 | solve_team:在四类执行者上精确搜索 |
共享执行器 |
| Claude Code harness | 1 个通用 agent | 它自带的 Bash 和 Python,只能用来计算(要碰 Isaac 只能经共用工具) | 同一套 API,自己迭代 |
| SMART-LLM 式 | 1 个 LLM,固定流程 | 它的 prompt 和流程 | 共享执行器 |
| EMOS 式 | 每只臂写一份简历,再集中组会 | 简历:开局用共用工具写一次,之后不能再逐点查询 | 共享执行器 |
| RoCo 式 | 每只臂一个 LLM,相互对话 | 消息通道(原型的 mas/);每只臂只看自己(见下) |
汇总者经同一套 API 执行 |
| HMAS-2 式 | 中央提议,各臂否决 | 计划板(mas/plans.py);每只臂只看自己 |
中央经同一套 API 执行 |
| v5 | 1 个 LLM,固定流程 + 回环 | who_can、check_team(四类执行者、带余量)、证据规则、约束监视器;v4 的 scene_graph、check_hold |
同一套 API;运行失败后回到第一阶段 |
三条边界(2026-10-24 确定):
heft是共用的测量工具,和measure一样,每一行都能用,不占probe的额度(它是计算出来的,不在仿真里执行)。但必须指定一只够得着这件东西的臂。- 粗略质量是共用的观察。
briefing给出每件可移动物体的质量乘以 0.75–1.3 之间的一个系数(同一任务的各个版本里相同),固定的物体标为"fixed"。所以道具和干扰物不能只靠质量区分,必须在一个可测量的几何属性上不同。这 8 个任务都满足:门缝宽度、盒子高度、撑杆长度、挂钩形状、转盘大小、槽的长度、木板高度、夹子宽度。 - RoCo 式和 HMAS-2 式里每只臂能看到什么: 固定相机每只臂都能看;腕部相机、
read_arm、can_reach只能用自己的。
评分
-
各版本的 MSS-Acc:
- Exact:选出 gold 团队,原场景和它的放宽孪生都要对(放宽孪生是同一场景只差几厘米、2 臂就够的版本);
- Surplus:从 4 只臂里选出任意一个最少臂组合;
- Shortfall:判做不到,并说出哪个 job 没人做;
- Borrow:2 臂加道具,且没有用干扰物。
任务级:5 个实例全对。对比对:原场景和放宽孪生都对。
-
SR:只在同等预算设定、可行实例上算。MSS-SR:团队选对且执行成功。成本:调用次数、
probe次数、运行次数、费用。 -
团队 = 声明的 ∪ 实际用到的。 碰到任务物体或道具,或者工具点进入某个 job 位置 5 cm 以内,就算用到。如果用比 gold 更小的团队跑通了,且没有利用已知漏洞,就算对,同时重新核查这个任务的 gold。
-
统计:每个 case 重复 3 次,报均值和 95% 置信区间,按实例配对比较。
-
表 2 把错误按类型拆开:
- 多用臂、少用臂;
- 能不能做判反;
- 用了干扰物、漏了道具;
- 失败报告里没有 job 失败信号,却把这次失败当成了证据。
-
固定策略不单列一行:按定义,每种最多只在一个版本上对。包括全臂、全臂 + 全物、永远判做不到、随机。
规则
- 同一个 backbone:主表用 Opus 5.5,附录用 Qwen-27B。
- 同一信息档(
query),同一套工具;EMOS 式按其设计,用简历代替逐点查询。 - 统一输出格式:
submit_team_planv2。 - 同样的试验机会(见上),同样的调用次数和费用上限。
- 同样的调优投入:都只在开发池上调 prompt,绝不在这 8 个任务上调。
- 抓取统一用吸附,但吸附前先检查东西能不能放进两指之间。
- 同样的观察:每一行都拿到粗略质量,
heft是共用的测量工具;道具和干扰物不能只靠质量区分。按臂分开决策的行里,每只臂能看固定相机,腕部相机、read_arm、can_reach只能用自己的(见共用什么)。
开跑前
-
gold:由各任务声明的 job 算出,每个 job 都带失败信号。
-
加臂、少臂、借物三个版本:每个都有参考执行;再加上放宽孪生。
-
吸附前的开口检查:现在一只臂能直接吸起 24 cm 的球。
-
Claude Code 隔离运行。
-
模式猜测器压到接近 0:现在还做不到,因为:
- 多出来的那只臂总是可以闲置的那只;
- 少臂版桌上什么都没有;
- 道具总是更大的那件。
改法还待商定:
- 加放宽孪生;
- 少臂版桌上也留着干扰物;
- 被拿掉的臂不固定;
- 加臂版的第 4 只臂能顶替原来三只中的某一只;
- 有时干扰物反而是更大的那件。
任务。 8 个(2026-10-23 确定):Con-01 到 Con-04(Concurrency-bound:原型 P01、P05、P07 和 HA2),Rea-01 到 Rea-04(Reach-bound:HO1、TR1、TR2、TR3)。开发池是未入选的任务(HA1、HA3、AS1、TR4-TR6、原型 P03);见 README 的"任务"一节。
规模。 8 个任务 × 5 个实例 × 3 次重复 = 每行每种设定 120 个 session。同等预算设定最多约 180 GPU·h(按每次运行约 3 分钟估计)。
附录。
- Qwen-27B。
- v5 消融:
- 去余量;
- 去道具检查和证据规则;
- 先试再说;
- 不做失败归因;
- 去
probe; - 去回环;
- plain;
- v4.1。
given档。- 组织方式实验:v5 分别以集中式、带消息、带计划板、两者都不带的方式运行(ruihe)。
以往方法具备什么
依据各论文的方法部分整理,引用前要逐格核实。✓ 有,~ 部分有,✗ 没有,? 未核实。
| 方法 | 说"不需要" | 说"做不到、缺 X" | 东西顶替臂 | 带余量的几何 | 区分同型号的臂 | 失败后会修改 | 会执行 |
|---|---|---|---|---|---|---|---|
| SMART-LLM | ~ | ✗ | ✗ | ✗(技能表) | ✓ | ✗ | ✓ |
| EMOS | ~ | ✗ | ✗ | ~(与任务无关的简历) | ✓ | ? | ✓ |
| RoCo | ✗(WAIT 只管一步) | ✗ | ✗ | ~(IK 和碰撞反馈) | ✓ | ~(改方案) | ✓ |
| HMAS-2 | ✗ | ✗ | ✗ | ✗ | ✓ | ~(改方案) | ✓ |
| VIKI-R(L1) | ✓ | ? | ✗ | ✗ | ✗(只有类型) | ✗ | ✗ |
| v5 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓(改团队) | ✓ |
RoboFactory(模仿学习策略)和 CaP-X(代码即策略的闭环)都没有选团队这一步。
参考文献。
- RoCo:arXiv 2307.04738
- SMART-LLM:arXiv 2309.10062
- HMAS-2:arXiv 2309.15943
- EMOS:arXiv 2410.22662
- RoboFactory:arXiv 2503.16408
- VIKI-R:arXiv 2506.09049
- REFLEX(在新任务上重跑 RoCo):arXiv 2505.14899
- CaP-X、LLM+P、FLEET:见 docs/AGENT.md
由仓库的 docs/BASELINES-zh.md 生成(英文版 docs/BASELINES.md)。