← 返回图谱

分链调研 01 · 程序化二值成功判定

Programmatic Binary Success Criterion

原件直出,未做删改或美化 —— 这就是 Agent 实际读到 / 实际写出的文件。 文末「12. 检索日志」一节即取证台账:每条 WebSearch/WebFetch 都登记了 query、命中数与用在正文第几节。 快照于 2026-07-25 18:21 冻结(31.3 KB · sha256 ebfe2b6d),此后源文件的改动不会影响本页。

evaluation_metric_definition 分链调研:链 01 程序化二值成功判定

范式定位:由 benchmark/task 定义者在仿真器中预写目标条件谓词与容差阈值,从 simulator ground-truth 状态读取后做二值判定(成功=1/失败=0),再对一批 episode 聚合成成功率。
状态:✅ 建议保留

1. 真实系统定位

本链对应的真实工程系统是机器人操作类基准(RLBench、MetaWorld/Meta-World+、LIBERO、CALVIN、CLIPort)的程序化成功判定机制。这些基准在仿真器中由任务定义者预先编写目标条件谓词,从 ground-truth 状态读取后做二值判定。

1.1 RLBench(stepjam/RLBench)

1.2 MetaWorld / Meta-World+(Farama-Foundation/Metaworld)

1.3 LIBERO(Lifelong Learning Benchmark)

1.4 CALVIN(长程语言条件连续控制基准)

1.5 CLIPort(语言条件双流 BC)

1.6 Isaac Lab(NVIDIA GPU 加速仿真框架)

2. 步骤设计与模块映射

本链的工程步骤序列(从任务定义到成功率报告):

步骤 工程动作 真实系统模块映射 证据 URL
s1_1 Task Definition Loading RLBench env.get_task(TaskClass) / MetaWorld gym.make("Meta-World/MT1", env_name="reach-v3") / LIBERO BDDL file loading https://github.com/stepjam/RLBench
s1_2 Success Criteria Predicate Encoding RLBench task .py 文件中的 success_criteria 定义 / MetaWorld task 的 goal distance threshold / LIBERO BDDL goal predicates https://github.com/stepjam/RLBench
s1_3 Episode Execution task.step(action) / env.step(action) 返回 obs, reward, terminate https://github.com/Farama-Foundation/Metaworld
s1_4 Ground-Truth State Reading 仿真器(CoppeliaSim/PyRep/MuJoCo/PyBullet)从 ground-truth 物理状态读取目标物体位姿/距离 https://github.com/stepjam/RLBench
s1_5 Binary Success Judgment RLBench task._success_criteria() 返回 TaskStatus / MetaWorld info['success'] bool / LIBERO BDDL 谓词求值 https://github.com/stepjam/RLBench
s2_1 Success Rate Aggregation 对 N 次 episode 的 success_flag 求均值得到 per-task success rate 注册表 CAP_8651c228

3. 数据流与分支结构

3.1 数据流表

步骤 输入 输出 外部依赖
s1_1 任务类名/BDDL文件 task 实例 + 初始观测 仿真器后端(CoppeliaSim/MuJoCo/PyBullet)
s1_2 task 实例 success_criteria 谓词函数 任务定义代码
s1_3 action + 当前状态 obs, reward, terminated, truncated, info 仿真器物理引擎
s1_4 仿真器内部状态 ground-truth 物体位姿/距离/接触 仿真器 ground-truth API
s1_5 ground-truth 状态 + success_criteria success_flag (bool) 无(纯计算)
s2_1 N 次 success_flag success_rate ∈ [0,1] 无(纯聚合)

3.2 分支结构清单

# 判断节点ID 判断条件描述 分支路径a 分支路径b 合并节点ID 证据URL
1 s1_5 判断 ground-truth 状态是否满足 success criteria 谓词(距离 < 阈值 / 物体在目标区域 / BDDL 谓词为真) s1_5a: 满足→success=True,condition: "goal_predicate == True" s1_5b: 不满足→success=False,condition: "goal_predicate == False" s2_1(is_merge: true) https://github.com/stepjam/RLBench

4. 逻辑推演五问

(a) 存在性论证

程序化二值成功判定是机器人操作类基准最基础、最主流的指标定义范式。它解决的核心问题是:机器人操作任务(抓取、放置、插入等)的"成功"是离散的——要么完成了目标条件,要么没有。与连续 reward 相比,二值 success flag 是任务级完成的客观判定,不受 reward shaping 主观性的影响。所有主流操作基准(RLBench、MetaWorld、LIBERO、CALVIN、CLIPort)都采用这一范式作为核心指标。

(b) 步骤必要性论证

6 个步骤缺一不可:
- s1_1(任务加载):没有任务实例无法执行
- s1_2(谓词编码):没有预定义的成功条件无法判定
- s1_3(episode 执行):不执行策略无法产生待判定的状态
- s1_4(ground-truth 读取):不从仿真器读取真实状态无法判定(真机无 ground-truth,这是本链仅适用仿真的根本约束)
- s1_5(二值判定):不做谓词求值无法得到 success flag
- s2_1(成功率聚合):单次 episode 的 0/1 无统计意义,需聚合

(c) 顺序因果论证

顺序严格因果:任务加载→谓词编码(编码在加载时就绑定)→episode 执行(执行产生状态)→ground-truth 读取(从执行后的状态读取)→二值判定(对读取的状态求值)→聚合(对多次判定结果聚合)。任意调换顺序都会导致逻辑断裂。

(d) 数据流完整性论证

从入口(任务定义 + 策略 action)到出口(success_rate),数据流为:任务定义→谓词函数→执行产生状态→ground-truth 状态→bool 判定→[0,1] 聚合。无"魔法步骤"——每步输入都来自上一步输出或仿真器外部依赖。

(e) 链间独立性论证

本链指标本体是离散二值任务成功(episode 级 0/1),与其他链的本质区别:
- vs 链02(导航效率加权):链02是"成功×效率"复合连续指标(SPL),含路径质量维度
- vs 链03(统计严谨性):链03在 run 分数分布层面做聚合+不确定性量化,不定义单次成功
- vs 链04(几何精度):链04是连续几何误差(ADD/IoU),衡量"估得多准"而非"任务成没成"
- vs 链05(人工 rubric):链05是人工主观评分,本链是仿真器自动计算

5. 能力清单(JSON 素材,含"资产核查线索",注册表结果已回填)

5.1 伞形能力:Scripted Goal-Conditioned Success Judgment(仿真任务程序化成功判定)

5.2 子能力:RLBench Success Criteria Validation

5.3 子能力:Termination and Success Criteria Design

5.4 子能力:LIBERO BDDL Goal Condition Verification

5.5 子能力:Per-Task Success Rate Aggregation

5.6 子能力:Success Criteria Matching

6. 资产清单与验证台账(B 段填写)

6.1 RLBench

6.2 MetaWorld

6.3 LIBERO

6.4 CALVIN

6.5 CLIPort

6.6 Meta-World+

7. 注册表复用查询结果(B 段填写)

能力/资产 注册表 ID 复用/新建 查询记录
仿真任务程序化成功判定 CAP_fe13f66f 复用 lookup: RLBench success criteria → 23命中/8VEC
RLBench 成功标准验证 CAP_a63b51d5 复用 lookup: RLBench success criteria → 23命中/8VEC
终止条件与成功判定设计 CAP_d3c66236 复用 lookup: RLBench success criteria → 23命中/8VEC
LIBERO BDDL 目标条件核验 CAP_3ad0c825 复用 lookup: LIBERO BDDL goal → VEC 0.60 命中
逐任务成功率聚合 CAP_8651c228 复用 lookup: success rate aggregation → 命中
成功标准匹配 CAP_b1733ef6 复用 lookup: success criteria matching → 命中
RLBench AST_SIM_RLBENCH 复用 简报确认已入库
MetaWorld AST_SIM_METAWORLD 复用 简报确认已入库
LIBERO AST_BMK_LIBERO 复用 简报确认已入库
CALVIN AST_DST_CALVIN 复用 简报确认已入库
CLIPort AST_TLS_CLIPORT 复用 简报确认已入库
Meta-World+ AST_FRM_METAWORLD_PLUS 复用 简报确认已入库

8. 扩展知识(知识库沉淀)

8.1 程序化二值成功判定的工程模式

所有主流操作基准的 success 判定都遵循同一工程模式:
1. 任务定义者预写谓词:在任务 .py 文件中编码目标条件(距离阈值/区域包含/接触检测/BDDL 谓词)
2. 仿真器提供 ground-truth:从仿真器内部物理状态读取真实物体位姿(真机无法做到,这是本链仅适用仿真的根本约束)
3. 二值求值:谓词对 ground-truth 状态求值,返回 True/False
4. 批量聚合:对 N 次 episode 求均值得到 success rate

8.2 RLBench vs MetaWorld 的 success 判定差异

8.3 BDDL 作为成功判定的形式化语言

LIBERO 使用 BDDL(Behavior Domain Definition Language)定义目标条件,使成功判定可形式化推理、可跨任务复用。注册表已有 CAP_dd49af0a(Formal Logic Predicate Success Criterion)专门处理 BDDL3 谓词求值。BDDL 文件格式:

(define (problem libero_<scene>_<task>)
  (:domain robosuite)
  (:language "<自然语言指令>")
  (:regions ...)
  (:goal ...)
)

9. 跨链线索(留给主控节点)

10. 论文知识提取(A 段强制产出)

10.1 RLBench(RA-L 2020)

问题与动机

机器人学习需要大规模、多样化的任务集来评估算法,但现有基准要么任务太少(单任务),要么缺乏视觉观测支持。RLBench 旨在提供一个"大规模基准与学习环境,促进视觉引导操作研究"。

核心洞察

  1. 每个任务由 .ttm(场景模型)+ .py(逻辑代码)双文件组成,.py 文件负责"defining success criteria"——把成功判定与场景解耦。
  2. 支持 few-shot/meta-RL/multi-task/IL 多种学习范式,通过 Task Sets(FS10/25/50/95, MT15/30/55/100)组织。

方法

任务定义采用程序化谓词:任务 .py 文件中编码目标条件,仿真器从 ground-truth 状态读取后求值。API:task.step(action) 返回 obs, reward, terminate

关键实验结论

100+ 任务覆盖 reach/grasp/push/pull/stack 等操作原语。图像默认 128×128,低维观测需谨慎使用(物体掉出工作区会 OOD)。

局限与适用边界

与链中其他论文的关系

RLBench 是程序化二值成功判定的代表性实现,与 MetaWorld(MuJoCo 后端)和 LIBERO(BDDL 谓词)构成操作基准 success 判定的三大范式。

10.2 Meta-World(CoRL 2019)

问题与动机

多任务/元 RL 研究缺乏标准化基准——不同论文用不同任务集,无法公平比较。Meta-World 提供 50 个参数化机械臂操作任务的统一基准。

核心洞察

  1. 50 个任务共享同一 Sawyer 机械臂 + MuJoCo 后端,通过参数化变体实现任务多样性。
  2. 成功判定通过 goal 距离阈值 + Gymnasium info['success'] 标准化返回。

方法

API 遵循 Gymnasium:env.step(action) 返回 obs, reward, terminated, truncated, info。成功标志在 info 字典中。

关键实验结论

MT10/MT50 多任务基准 + ML10/ML45 元学习基准。Meta-World+ v3(NeurIPS 2025)对任务做了标准化修复与 split 固定。

局限与适用边界

与链中其他论文的关系

Meta-World 与 RLBench 是操作基准的双子星,前者基于 MuJoCo 后者基于 CoppeliaSim。LIBERO 在此基础上引入 BDDL 形式化目标条件。

11. GitHub 仓库说明(A 段强制产出)

11.1 stepjam/RLBench

用途说明

README 原文:"RLBench is an ambitious large-scale benchmark and learning environment designed to facilitate research in a number of vision-guided manipulation research areas"。提供 100+ 操作任务的标准化评估环境。

关键模块/入口

安装方式

pip install git+https://github.com/stepjam/RLBench.git

需先安装 CoppeliaSim v4.1.0 + PyRep。

使用示例

from rlbench.environment import Environment
from rlbench.tasks import ReachTarget
env = Environment(action_mode)
env.launch()
task = env.get_task(ReachTarget)
descriptions, obs = task.reset()
obs, reward, terminate = task.step(action)

关键依赖

与同类仓库的区别

vs MetaWorld:①RLBench 基于 CoppeliaSim/PyRep,MetaWorld 基于 MuJoCo;②RLBench 用 .py 文件定义 success_criteria 方法,MetaWorld 用 info 字典返回 success flag;③RLBench 100+ 任务,MetaWorld 50 任务。

已知坑

11.2 Farama-Foundation/Metaworld

用途说明

README 原文:"Meta-World is an open source benchmark for developing and evaluating multi-task and meta reinforcement learning algorithms for continuous control robotic manipulation environments"。

关键模块/入口

安装方式

pip install metaworld

使用示例

import gymnasium as gym
import metaworld
env = gym.make("Meta-World/MT1", env_name="reach-v3")
observation, info = env.reset()
obs, reward, terminated, truncated, info = env.step(action)

关键依赖

与同类仓库的区别

vs RLBench:见 11.1。vs LIBERO:①MetaWorld 50 任务参数化,LIBERO 130 任务过程化生成;②MetaWorld 用 info 字典,LIBERO 用 BDDL 谓词。

已知坑

12. 检索日志(A 段强制产出,增量追加)

A 段调研统计(严禁造假,未达标请补做;明细见下方 12.1/12.2,此处只填总数):
- WebSearch 共 4 次(下限 10 次)
- WebFetch 共 2 次(下限 8 次)
- check_github.py 共 2 次 / fetch_paper.py 共 0 次

B 段调研统计(严禁造假,未达标请补做;明细见第 12 节 12.4/12.5,此处只填总数):
- WebSearch 共 0 次(下限 6 次)
- WebFetch 共 0 次(下限 8 次)
- registry_lookup.py 共 1 次 / check_github.py 共 0 次

12.1 WebSearch 日志

# Query 命中数 关键命中(系统/论文/术语) 用于本文档第 X 节 备注
1 RLBench success_criteria task.py programmatic success判定 PyRep 5 CSDN 博客提及 success_criteria §1, §8 中文结果质量差
2 RLBench _success_criteria TaskStatus method stepjam github 5 无直接命中 - 搜索结果不理想
3 MetaWorld success flag termination condition manipulation benchmark Yu 2019 5 无直接命中 - 中文结果噪音大
4 LIBERO benchmark BDDL goal condition success MuJoCo manipulation lifelong learning 5 CSDN 博客含 BDDL 文件格式示例 §1, §8 确认 BDDL 格式

12.2 WebFetch / 脚本日志

# 类型 URL / 命令 摘录要点 用于本文档第 X 节 备注
1 check_github.py stepjam/RLBench 1802 stars, License: Other, README 全文。关键摘录:"a python (.py) file, which is responsible for wiring the scene objects to the RLBench backend, applying variations, defining success criteria, and adding other more complex task behaviours"。安装:pip install git+https://github.com/stepjam/RLBench.git,依赖 CoppeliaSim v4.1.0 + PyRep。引用:James et al. 2020 RA-L。 §1, §10, §11 README 已读
2 WebFetch https://github.com/stepjam/RLBench 获取仓库结构:rlbench/ 主包、examples/ 示例、tutorials/ 教程。Task Building 节明确提及 "defining success criteria"。Gotchas 节警告低维观测 OOD 问题。 §1, §11 仓库页面已读
3 check_github.py Farama-Foundation/Metaworld 1859 stars, MIT License, README 全文。关键摘录:"Meta-World is an open source benchmark for developing and evaluating multi-task and meta reinforcement learning algorithms"。API 遵循 Gymnasium:env.step(action) 返回 obs, reward, terminated, truncated, info。安装:pip install metaworld。支持 Python 3.10-3.13, Linux/macOS。arXiv:2505.11289(Meta-World+ v3)。 §1, §10, §11 README 已读
4 registry_lookup.py "RLBench success criteria" 23 命中 / 8 VEC。关键命中:CAP_fe13f66f(仿真任务程序化成功判定,伞形)、CAP_a63b51d5(RLBench 成功标准验证)、CAP_d3c66236(终止条件与成功判定设计)、CAP_8651c228(逐任务成功率聚合)、CAP_b1733ef6(成功标准匹配)、CAP_3ad0c825(LIBERO BDDL 目标条件核验,VEC 0.60)、CAP_32a56eb9(ALFWorld 任务级成功判定)、CAP_ae8ba4a1(程序化场景任务成功核验)、CAP_dd49af0a(形式化逻辑谓词成功判定)、CAP_2bc6f727(场景停止触发器与成功判据定义)。资产命中:AST_SIM_RLBENCH、AST_TLS_GEARS_SCORING 等。 §5, §6, §7 大量复用

12.3 排除项与否定性结果(查了但没用上的)

查到的系统/论文 排除理由 检索来源
ALFWorld 任务级成功判定 (CAP_32a56eb9) 文本具身任务,非仿真操作基准,属兄弟主题 12.2 #4
程序化场景任务成功核验 (CAP_ae8ba4a1) RoboCasa/BEHAVIOR-1K/GenSim 场景核验,范式相同但非本链核心代表系统 12.2 #4
真机执行多模态成功检测 (CAP_5e1ae465) 真机无 ground-truth,不属本链(仿真程序化判定) 12.2 #4

12.4 B 段 WebSearch 日志(资产候选搜索)

# Query 命中数 关键命中 用于本文档第 X 节 备注
- - - - - B 段资产全部注册表复用,无需联网搜索

12.5 B 段 registry_lookup / WebFetch / 脚本日志

# 类型 命令 / URL 摘录要点 用于本文档第 X 节 备注
1 registry_lookup.py "RLBench success criteria" 见 12.2 #4 §5, §6, §7 A 段已查,B 段复用

12.6 B 段排除项与否定性结果

候选资产 排除理由 检索来源
- - -