深度⏱ ~3 min
枢纽
⭐ 为何重要

用 LLM 自动生成 sim-to-real 所需的 reward function 与 domain randomization 配置,是『LLM-driven sim-to-real』的代表作。它把 Eureka(LLM reward design)扩展到 sim-to-real 全流程,启发了 LLM-as-robotics-engine 谱系。

机器人quadruped, dexterous hand
上真机
物理感知
实时
输入模态language

论文:Ma, Liang, Wang, Wang, Zhu, Fan, Bastani(UPenn / NVIDIA / UTS). DrEureka: Language Model Guided Sim-To-Real Transfer. RSS 2024. arXiv:2406.01967. 🌐 · 真机平台:Unitree Go1 四足 + LEAP hand 灵巧手

一句话直觉

让大模型不只写奖励,还自动写真机部署的容差范围。

第一次让大模型生成的奖励撑住真机。

DrEureka 之于机器人工程,像自动开药方。

不只开主药,还配护胃药,让病人真扛得住。

是什么·为什么

要解决的问题:Eureka 让 LLM 写 reward 写得很好。

但只在仿真里验证,没碰真机。📎

真机部署还要精心设计的 domain randomization(简称 DR)。

DR 是仿真里随机变物理参数(摩擦、质量、电机延迟)的技巧。

DR 太窄,策略对真机参数不鲁棒;DR 太宽,策略学不出来。

这个范围目前靠人工反复试错,是 sim-to-real 最痛苦的环节。📎

老办法:Eureka 只生成 reward,不生成 DR。

DR 参数范围靠人工调。📎

DrEureka 的转身:让大模型同时自动生成两样东西。

一是 reward,二是 DR 参数范围。

第一次让大模型生成的 reward 支撑真机部署。📎

DrEureka 之于 sim-to-real,就像 AI 全自动开药方。

不只开主药(reward),还配护胃药(DR 范围)。

让病人(机器人)真扛得住,不只是化验单好看。

方法核心(大白话):在 Eureka 上加三件事。

第一件·安全叮嘱。

给 LLM 的提示里加一句"安全要求"。

要它写 reward 时考虑稳定性、平滑性,别让仿真高分来自危险动作。

仿真高分常来自抽搐式猛用电机——这种 policy 上真机会炸。📎

第二件·扫可行范围。

对每个物理参数(摩擦、质量、电机延迟)单独扫一遍。

用 Eureka 出来的初始策略当探针去试。

看哪个范围内策略还能跑得动。

这个范围就是"可行范围"。📎

仿真器默认范围太宽,直接拿来做 DR 策略学不出来。

所以要先扫一遍缩窄。

第三件·LLM 出 DR 配置。

把参数 + 可行范围喂给 LLM。

让它一次生成多个 DR 配置。

每个配置配上 reward 训一个策略,挑最好的。📎

为什么这么搭配:reward 决定策略想做什么;DR 决定策略对参数变化有多鲁棒。

两者必须协同——分开调效果差。📎

你会看到:Unitree Go1 四足前进速度 1.83 m/s。

人类专家手写只有 1.32 m/s。

LEAP 灵巧手转魔方 9.39 rad,人类只有 3.24 rad。

全部真机验证。📎

怎么做

核心机制·四组件闭环📎

Reward Design + Safety Instruction + RAPP + LLM DR Generation。

组件 1:Reward Design(继承 Eureka)

基本是原版 Eureka:GPT-4 backbone,K=16 候选/iteration,N=5 iteration。📎

每个 reward candidate 训一个 RL policy。

用 task fitness F 评估。

reflection 反馈 LLM 迭代 mutation。

(详见 P-Eureka-2023.md。)

组件 2:Safety Instruction(DrEureka 新增)

直接在 LLM prompt 里加显式 safety instruction l_safety

显式要求把 stability、smoothness、task-specific desirability 作为 reward 语言规范的一部分。📎

为什么不用 post-hoc 加 safety term

手动加 safety term 与其他 component 的 scale 交互难调。

scale 过大导致 over-conservative degenerate behavior。

直接 prompt instruction-tuned LLM 让它自然平衡所有 component 的权重。

这是利用 instruction-following 能力的简洁设计。

组件 3:RAPP(Reward-Aware Physics Prior,DrEureka 新增)

重要:RAPP 不动 reward,而是为 LLM 限定 DR 参数的采样范围

要解决的问题:仿真器物理参数(摩擦、质量、电机延迟)都有内置 max/min。

作者验证这些范围"too wide and may significantly hamper policy learning"。📎

直接拿 simulator 默认范围做 DR,policy 学不出来。

核心洞察:DR 范围应该依赖任务 reward、为 policy 量身定制。

高层目标:寻找"π_initial 仍能 perform 的最大多样参数范围"。

Algorithm 2 流程:对每个参数 p,用 π_initial(Eureka 出来的、未做 DR 训练的 policy)当探针。

扫描候选值 r,每次只改这一个参数(其他 default),rollout π_initial,看 task fitness 是否命中成功准则。

命中则 r 可行,更新 (l, h) 下上界。📎

三个关键设计

  • (a) 探针是 π_initial——便宜快,不用重训。
  • (b) one-at-a-time 扫描——避免联合扫描的组合爆炸;代价是忽略参数交互(局限)。
  • (c) 只产出 (l, h) 给 LLM 当 guide,不直接当 DR 范围用——LLM 还要再决定 randomize 哪些参数、最终区间。

组件 4:LLM DR Generation

把参数 + RAPP 范围塞进 LLM 上下文。

LLM zero-shot 生成 m 个独立 DR 配置 T_1, ..., T_m

每个 (R_DrEureka, T_i) 跑 RL 训出 π_final,i

真机评估挑最佳 π_final📎

三阶段闭环📎


Stage A · Safety Instruction → R_DrEureka, π_initial
Stage B · RAPP 扫参数 → 每个参数的可行 (l, h)
Stage C · LLM DR Generation → m 个 DR 配置 → 训 policy → 挑 best

注意:reward design 是迭代的(Eureka 风格进化搜索),但 DR 生成不迭代——LLM 一次出 m 个候选,靠下游 RL 评估挑最好。

常见误区(先抛一个,完整版见末尾):"RAPP 是改 reward 的吧?"

错。RAPP 真名是 Reward-Aware Physics Prior,它不动 reward

它为 LLM 限定 DR 参数的采样范围。📎

深度

形式化:Sim-to-Real 设计问题(论文 Sec. III)📎

给定仿真环境 M=(S,A,T) + 真实环境 M + task objective F,sim-to-real 算法 Algo 的目标是设计 (R, T)(reward + DR),让 RL 训出的 policy 在 MF 得分最高:

$$\max_{R, T}\;F\big(\mathcal{A}(M, T, R)\big)\;\text{在}\;M^*\;\text{上评估}$$

其中 T = domain randomization 配置(参数集 + 每个参数的采样区间)。

DrEureka 用 LLM 自动产出 (R, T)

关键消融(论文 Table I)📎

Go1 forward locomotion 基线对比:

  • DrEureka Best 1.83 m/s / Average 1.66 m/s > Human-Designed 1.32 m/s
  • Eureka(无 safety + 无 DR)= 0.0 m/s(完全失败)——证明 safety + DR 缺一不可。
  • Without DR:1.21 m/s(掉到 human 水平以下,证明 DR 必须有)。
  • Without Prior / Uninformative Prior:15/16 policy 触发电机 power protection fault(jerky 危险行为),≈0 m/s——直接证明 RAPP 的必要性
  • CEM Random vs CEM RAPP:CEM 用宽范围采样失败,用 RAPP 范围成功——证明 RAPP 的价值在"缩窄范围"而非"搜算法"本身。
  • BayRn RAPP:1.28 m/s,work——证明 RAPP 与下游 search 算法解耦。

LEAP cube rotation:DrEureka Best 9.39 rad vs Human-Designed 3.24 rad。

真机验证平台(重要纠正)📎

  • Unitree Go1 四足(12 DoF):forward locomotion(平地 2 m/s)+ yoga ball balancing(四足踩瑜伽球)+ walking globe(踩滚动的球)+ soccer(玩球)。

其中 walking globe 和 yoga ball 是论文新任务,showcase DrEureka 在 deformable / complex dynamics 上的能力。

  • LEAP hand 灵巧手(16 DoF,3 指 + 1 thumb,<10K USD 低成本手):in-hand cube rotation(20 秒内转魔方越多越好)。

observation 仅 16 关节角 + GRU-encoded proprio history,无视觉,无 cube pose

LLM 超参(论文 Sec. V)📎

  • GPT-4 backbone。
  • Reward search:K=16 候选/iteration,N=5 iteration(沿用 Eureka)。
  • DR 配置:m=16 个 zero-shot 候选;reward 迭代,DR 不迭代。

reward + DR 协同效应

之前 reward 和 DR 分开调(先 reward 再 DR),DrEureka 让 LLM 在统一上下文里联合设计。

两者协同效应远大于分开调——这是 DrEureka 的关键实证发现。📎

局限

  1. 剧烈动作仍难:验证的是相对静态的高难度动作(yoga ball 平衡、转魔方),不是 parkour 那种动态剧烈动作。📎
  2. LLM 物理直觉弱:对接触/摩擦/形变这类需要物理理解的,LLM 仍可能写出看起来对但实际不 work 的代码。
  3. RAPP 是 heuristic:one-at-a-time 扫描忽略参数交互,不是理论最优;论文 Sec. IV-C 承认此简化。
  4. 算力成本:每轮 K=16 个 RL 训练 × N=5 reward iteration + m=16 个 DR policy 训练 + RAPP 扫描,GPT-4 调用也贵。
  5. 真机评估挑 best:因为仿真里没法比较不同 DR 训出的 policy,DrEureka 保留全部 m 个 policy 在真机评估——研究可行,但实际部署不能跑 m 次真机挑最好。

研究者视角

图谱定位:DrEureka 是 T03 reward 设计演化的第四次转折(LLM sim-to-real 联合设计)+ T01 LLM 辅助支线。📎

Eureka 把 reward 自动化;DrEureka 把 sim-to-real 工程的两件事(reward + DR)都自动化。

建立在

  • Eureka(arXiv:2310.12931):reward 自动化的开山,DrEureka 直接继承其搜索骨架。🌐
  • 大规模 RL(IsaacGym
  • Domain Randomization 理论

催生

  • VLM 反馈 reward:用视觉判断动作自然度(DrEureka 的 safety instruction 是文本约束,VLM 可补视觉约束)。
  • RLHF for VLA:reward 微调 vision-language-action 模型。
  • LLM 辅助 sim-to-real 工程栈:把 PhD 反复试错的环节进一步程序化。

副产品:DrEureka 揭示了 sim-to-real 工程的"可程序化"本质——最痛苦的两件事都能被 LLM 自动化。这把机器人 RL 工程的门槛大幅降低。

Open problems

  1. 剧烈动作 sim-to-real:parkour 这种动态剧烈动作 DrEureka 仍难。需要结合 ASAP 式 delta 补偿或在线适应。[未确认]
  2. LLM 物理直觉:接触/摩擦/形变 LLM 写不准。能否引入物理仿真反馈让 LLM 校正,仍开放。[未确认]
  3. 实际部署的 m 次真机评估问题:研究可接受,生产不行。需要在仿真里就能预测真机性能的评估方法。[未确认]

常见误区

"RAPP 是改 reward 的" —— 错。

RAPP 真名是 Reward-Aware Physics Prior,它不动 reward,而是为 LLM 限定 DR 参数的采样范围。

RAPP 扫的是物理参数的可行区间,给 LLM 当 guide;reward 由组件 1+2 负责。📎

"DrEureka = Eureka + DR" —— 部分错。

还有 Safety InstructionRAPP 两个关键新增,三者缺一不可。

消融显示 Eureka(无 safety + 无 DR)= 0.0 m/s,加 DR 仍不够——必须 safety + RAPP + DR 配齐。

DrEureka 是 Eureka + safety + RAPP + LLM DR Generation 的完整栈。📎

"DrEureka 让 LLM 随便写所有 DR 参数" —— 错。

LLM 在 RAPP 给的可行范围里再裁剪:决定 randomize 哪些参数子集、每个参数的最终区间。

RAPP 范围只是"上界",LLM 有进一步裁剪的自由度。

RAPP 缩窄到可行,LLM 在可行内做最后决策。📎

"DrEureka 在 Fox 系列机器人上验证" —— 错。

论文实际验证平台是 Unitree Go1 四足 + LEAP hand 灵巧手,都是 <10K USD 的低成本平台。

DrEureka 选低成本平台是为了展示"LLM sim-to-real 工程可普及"。📎

检查点

Q1

Eureka 已经能让 LLM 写出超过人类的 reward 了,为什么它还不够做 sim-to-real?缺的那块是什么?

💡 参考答案

  • Eureka 只生成 reward,不生成 domain randomization(DR)参数范围。
  • DR 是仿真里随机变物理参数(摩擦、质量、电机延迟)的技巧:太窄策略对真机参数不鲁棒;太宽策略学不出来。
  • 在 Eureka 之前,DR 参数范围靠人工反复试错——是 sim-to-real 最痛苦的环节。DrEureka 缺的就是『让大模型自动生成 DR 范围』这块。
Q2

用"AI 全自动开药方"或你自己举的类比,用自己的话解释:DrEureka 是怎么让 LLM 生成的 reward 在真机上也能用的?

💡 参考答案

  • AI 全自动开药方:之前 AI 只开主药(reward),不管病人胃扛不扛得住(仿真高分但真机崩);DrEureka 让 AI 同时开『主药 + 护胃药(DR 范围)』,主药治病、护胃药保病人耐受,两者协同。
  • 映射:『主药』= reward 决定策略想做什么;『护胃药』= DR 决定策略对参数变化有多鲁棒;DrEureka 让大模型在统一上下文里联合设计两者(不是分开调)。
  • 关键补充(必要):之所以要『同时开』,是因为 reward 和 DR 必须协同——分开调效果差;这是 DrEureka 比『先 reward 再 DR』更厉害的核心。
Q3

DrEureka 有个步骤叫"扫参数可行范围"(RAPP)。它扫的不是 reward,是什么?为什么不直接拿仿真器的默认范围做 DR?

💡 参考答案

  • 扫的是物理参数(摩擦、质量、电机延迟等)的『可行范围』——用初始策略当探针,看哪个范围内策略还能跑得动。它不动 reward。
  • 仿真器默认范围太宽:直接拿来做 DR,会采到『在该 reward 下策略根本学不动』的值,policy 学不出来。
  • 核心洞察:DR 范围应该依赖任务 reward、为 policy 量身定制——不是越宽越好。
Q4

DrEureka 给 LLM 的提示里专门加了"safety instruction"。为什么光让 LLM 写仿真高分 reward 不够,还要叮嘱"安全"?

💡 参考答案

  • 仿真高分常来自危险/不自然行为:抽搐式猛用电机、jerky 动作——仿真里分数高,但真机会触发电机保护或炸机。
  • 如果不叮嘱安全,大模型倾向于不加 safety term(因为 safety penalty 会降仿真分数)——纯靠 fitness 筛选筛不掉这种危险行为。
  • DrEureka 的解法:直接在 prompt 里要求考虑稳定性、平滑性,让大模型在生成 reward 时自然平衡 task 分和安全,而不是事后补一个 safety term。
Q5

DrEureka 在什么机器人平台上做的真机验证?请至少说出一种。

💡 参考答案

  • 平台一:Unitree Go1 四足(12 DoF,4 条腿)——验证 forward locomotion、yoga ball balancing、walking globe、soccer 等任务。
  • 平台二:LEAP hand 灵巧手(16 DoF,3 指 + 1 thumb,<10K USD 低成本手)——验证 in-hand cube rotation(转魔方)。
  • 补充:两个平台都是低成本(<10K USD)易获取平台,是 DrEureka 选来展示『LLM sim-to-real 工程可普及』的故意选择。

FAQ

Q1:DrEureka 比 Eureka 多了什么?

三件:Safety Instruction(prompt 里叮嘱安全)+ RAPP(扫参数可行范围)+ LLM DR Generation(让 LLM 出 DR 配置)。

Eureka 只生成 reward;DrEureka 把 reward 和 DR 一起让 LLM 联合设计,第一次支撑真机部署。📎

Q2:RAPP 扫出来的范围直接当 DR 用吗?

不直接用。

RAPP 只产出每个参数的 (l, h) 可行下上界给 LLM 当 guide。

LLM 还要再决定 randomize 哪些参数子集、每个参数的最终区间。

所以 RAPP 范围是"上界",不是最终 DR 配置。📎

Q3:DrEureka 能做 parkour 这种剧烈动作吗?

当前不行。

DrEureka 验证的是相对静态的高难度动作(yoga ball 平衡、转魔方)。

parkour 那种动态剧烈动作需要 ASAP 式 delta 补偿或在线适应,是开放问题。📎

Q4:为什么 DR 生成不像 reward 那样迭代?

工程权衡。

reward 迭代成本可控(一次 RL 训练评估一个 reward)。

DR 候选评估要训完整 policy 才能比较,每个都贵——LLM 一次出 m=16 个 zero-shot 候选,靠下游 RL 评估挑最好,已是性能/算力的折中点。📎

Q5:为什么真机评估要保留全部 m 个 policy?

因为仿真里没法比较不同 DR 训出的 policy——仿真评估本身就是带 DR 的平均,不能预测真机。

DrEureka 保留 m 个 policy 在真机逐一评估挑最好。

研究可行,但实际部署不能跑 m 次真机——这是 DrEureka 的工程局限。📎