Q1:Dactyl 用了什么仿真器?
MuJoCo 做物理,Unity 做渲染。📎 论文明确承认仿真只是 coarse approximation——直接对关节施加力矩而非建模腱驱动,用刚体接触近似真实柔体接触。
论文:Andrychowicz, Baker, Chociej, Józefowicz, McGrew, Pachocki, Petron, Plappert, Powell, Ray, Schneider, Sidor, Tobin, Welinder, Weng, Zaremba (OpenAI). Learning Dexterous In-Hand Manipulation. IJRR 2020, 39(1):3–20 · arXiv 2018-08. arXiv:1808.00177. 🌐
让机器手在仿真里乱练,再零样本搬到真机。秘诀是把仿真世界调得"百变"。尺寸、摩擦、重力都在一个范围内随机变。大规模随机化之于仿真训练,就像疫苗之于免疫系统。不是只针对某一种毒株打一针,而是把一整个变化范围里的弱化版都过一遍。真病毒只要落在这个范围内,免疫系统就扛得住。
要解决的问题:让机器手把掌心的物体转到目标朝向,再零样本迁移到真机。
老办法分两条死胡同:一是仿真派做出来不敢上真机(接触太复杂、差距大)。二是真机派直接在物理手上学(采样又慢又贵,学不出复杂动作)。5 指手 24 维、毫秒级接触变化,传统规划无解。
新办法:在仿真里狂练(用强化学习)。同时把仿真世界的所有参数随机化——物体大小、摩擦、质量、光照、相机角度全变。让仿真覆盖真机可能所在的整个分布。策略就学会了"无论世界怎么变都能扛"。
方法核心(大白话):这套 sim-to-real 靠四条腿站稳。外加一条续作的升级。
好处与代价:好处是不靠精确建模,靠覆盖。真机落在分布内就能迁。加记忆在线识别环境,就更稳。代价也直白。让策略无论世界怎么变都能扛,比只学一种世界难得多。要见更多样本、练更久,具体倍数见下方深度部分。这是用样本换 sim-to-real 鲁棒性的交易。
类比:随机化之于机器人,就像疫苗之于免疫系统。把一整个变化范围里的弱化版都练过,真病毒落在范围内就扛得住。
任务与硬件:Shadow Hand 是 24 自由度、20 对腱驱动的拟人手。任务是把物体(方块或八棱柱)在掌心重定向到目标朝向。📎 论文不用其内置触觉(仿真无法建模),只用关节编码器做 1 kHz 低层控制。策略以约 12 Hz 给出相对关节增量。
核心机制·全方位随机化:用 MuJoCo(物理)+ Unity(渲染)。论文明确承认仿真只是"coarse approximation"。📎 几乎所有方面都随机化:
随机化的分布中心点来自对真机的标定。📎
关键设计·带记忆的策略:策略用 LSTM + 一个 ReLU 隐藏层。因为很多随机化在 episode 内固定,记忆型策略可在线隐式辨识当前环境(系统辨识)。📎
关键设计·非对称 actor-critic:value 网络训练时可看到部署阶段拿不到的特权信息(无噪声观测、物体速度等)。📎 这样简化 value 学习,部署时只用 policy 网络。
关键设计·离散动作:动作空间每维离散成 11 bin。论文发现离散动作显著优于连续高斯。📎 论文推测两个原因:(a) 离散分布比单一高斯更具表达力(可表多模态);(b) 离散动作让 advantage 学习更简单(每 bin 可独立评估)。
奖励与训练:奖励 $r_t=d_t-d_{t+1}$(朝向误差角的减小量)。达成目标 +5,掉落 -20。📎 优化用 PPO,分布式,基于 OpenAI 内部 Rapid 框架(与 OpenAI Five 同栈)。384 台 worker × 16 CPU cores = 6144 CPU cores 跑 rollout,1 台 8 GPU 优化器。每小时约 2 年仿真经验。📎 别被"384 worker"的数字低估了规模——是 6144 个 CPU 核在并行。
常见误区(先抛一个):"随机化就是给数据加噪声"——错。DR 是改仿真世界本身的物理参数,让策略见过整个分布。📎 正确理解:DR 把"逼近真机"换成"覆盖真机所在分布"。
精确随机化范围(Table 1):📎
每个 episode 开头采样一次并固定。分布中心来自真机标定。
为什么大规模 DR 在灵巧手上 work:论文给三份决定性证据。📎
规模近乎线性收益:到 16 GPU / 12288 CPU 仍有近线性加速。📎 说明问题还没饱和,加算力还能换性能——这是后来"狂堆 DR + 算力"路线的方法论依据。
ADR:从固定 DR 到自适应课程(续作 Rubik's Cube):固定 DR 有一个工程顽疾——随机化范围靠手调。2019 年的后续工作 Solving Rubik's Cube with a Robot Hand [Akkaya 2019] 把固定 DR 升级为 ADR。🌐
ADR 用因式分解分布,每个参数 $\lambda_i$ 采样区间记为 $(\phi_i^L, \phi_i^H)$。ADR 熵 $H(P_\phi)=\frac{1}{d}\sum_i\log(\phi_i^H-\phi_i^L)$ 量化分布宽度。核心算法是 boundary sampling + 阈值扩张,闭环三步:Sample(按当前分布采,每次随机选一个维度钉在边界,其余按当前分布采)→ Evaluate(把性能塞进 buffer,攒够后取均值)→ Update(均值与上下阈值比较:高于 $t_H$ → 边界向外扩;低于 $t_L$ → 向内收)→ 回到 Sample。初始集中在标定值,随训练逐步扩张——这是自动课程。
ADR 还带来 emergent meta-learning:在 ADR 分布上训练的 LSTM 在测试时表现出在线学习算法的行为,能适应手指被绑、被戳、被加塑料乌龟等扰动。🌐
局限:
图谱定位:这是灵巧手 sim-to-real 的开山之作。📎 在它之前,"5 指手 RL 操作物体到真机"被认为近乎不可行。它把这件事从科幻变成 demo 视频,并确立了三件套范式:
Rubik's 续作把固定 DR 升级为 ADR,是这条范式的"工业化顶点"。🌐
继承:建立在 Tobin et al. 2017(DR for sim-to-real)、OpenAI Five(同款 Rapid 分布式 PPO)、Mordatch et al.(仿真内灵巧操作)之上。📎
催生:直接催生后续 in-hand 重定向线——General In-Hand Re-Orientation(Chen 2022)、Visual Dexterity(Chen 2023,跨物体泛化)、RotateIt(Qi 2023,补触觉)。[未确认]
与 T01 的共享方法:DR / ADR 是 T01(sim2real locomotion)与 T11(灵巧操作)的共同核心方法。这条工作给"高自由度 + 密集接触"场景的 DR 提供了第一份决定性证据。📎
Open problems:
"Dactyl 用了 Shadow Hand 的触觉" —— 错。5 指手操作物体,最直观的预设就是"肯定靠触觉"。但论文明确不用内置触觉(指尖液囊气压传感受大气压、温度、接触几何多重混淆,仿真里无法准确建模),只用关节编码器。📎
只用关节编码器做 1 kHz 控制。这是后续 RotateIt 等工作把触觉补回的动机。
"DR 就是给数据加噪声" —— 错。DR 改的是仿真世界本身的物理参数(摩擦、质量、阻尼……),让策略见过整个分布。📎
DR 把"逼近真机"换成"覆盖真机所在的分布",再让记忆型策略在线识别当前实例。
"前馈策略也能跑" —— 错。前馈策略真机中位仅 3-3.5,远低于 LSTM 的 13。📎
DR 下策略必须用记忆做隐式系统辨识。前馈策略在 DR 下根本学不动。
"DR 范围越宽越好" —— 错。范围太宽会让任务变得不可能,策略学不出来。📎
固定 DR 要手调到"刚好覆盖真机但又不至于不可学"。这正是 ADR(自适应扩张)要解决的问题。
"动作要连续高斯才对" —— 错。论文实测每维 11 bin 的离散动作显著优于连续高斯。📎
离散分布更具表达力(可表多模态),且让 advantage 学习更简单(每 bin 独立评估)。
老办法里"仿真派不敢上真机"和"真机派学不出复杂动作"分别卡在哪?DR 是怎么同时绕开这两关的?
💡 参考答案
为什么带记忆的策略在 DR 下比"看一眼就出手"的前馈策略稳?带记忆到底多解决了什么问题?
💡 参考答案
DR 让仿真"覆盖一整个分布",而不是"调到最像真机那一个点"。这样做的好处是什么?反过来,代价又是什么?
💡 参考答案
论文刻意不用 Shadow Hand 的触觉传感器,只用关节编码器。这是为什么?
💡 参考答案
把仿真参数全随机化,为什么能帮策略零样本迁到真机?关键是它把 sim-to-real 问题换成了什么形式?
💡 参考答案
MuJoCo 做物理,Unity 做渲染。📎 论文明确承认仿真只是 coarse approximation——直接对关节施加力矩而非建模腱驱动,用刚体接触近似真实柔体接触。
因为指尖液囊气压传感受大气压、温度、接触几何多重混淆,仿真里无法准确建模。📎 论文只用关节编码器做 1 kHz 控制。这是后续 RotateIt 等工作把触觉补回的动机。
没有完整开源。仓库里误标的 openai/baselines 是 RL 算法库,非 Dactyl。📎 复现路径建议:在 IsaacGym/Lab 或 MuJoCo 上用 Shadow Hand URDF 跑 PPO + DR(unitree/legged_gym 同款 RSL-RL 框架即可),先打通方块 reorientation。
固定 DR 从手调的固定分布采样;ADR 让分布随训练进度自适应扩张——把"调随机化范围"这件事自动化了。🌐 ADR 还带来 emergent meta-learning:策略在测试时表现出在线适应能力,对手指被绑、被戳等扰动极度鲁棒。