中文 EN
XLeRobot · 仿真 / 训练策略 · 2026-08-28
仿真与 RL 训练策略: 该不该走这条路
sim2real RL vs IL Open Duck Mini LeRobot sim HIL-SERL
学习目标 · 看完这组页面
① 你应该能做到:
判断「抓杯子」该走模仿学习(IL)还是仿真强化学习(sim-RL),并说清为什么。
讲清 locomotion(走路)和 manipulation(抓取)在 sim-to-real 上为什么难度天差地别。
说出四步优先级(修数据 → 深度几何抓取 → HIL-SERL → Isaac 合成增强)各解决什么、为什么这个顺序。
给任一步做粗规划:要多少数据、哪些能远程、怎么跑测。
② 你应该能回答:
为什么 Microduck 那套(MuJoCo→PPO→ONNX)对抓杯是绕路,对腿式移动却是对的?
「最后 3cm 抓不准」最先该查什么(不是数据)?为什么?
深度相机在什么材质上可用、什么上失效?失效因素是「透明」还是「颜色」?
HIL-SERL 靠哪三样东西?「真机 RL」和仿真 RL 差在哪?learner 能不能放远程 4090?
视觉增强属于哪个流程?便宜的(训练时增强)和重的(Cosmos 合成)分别在哪?
③ 可以进一步思考/优化的小 challenge:
给现在的塑料杯设计一个最省的抓取管线:深度质心+PCA vs 先补数据,先做哪个验证成本最低?
为 HIL-SERL 的奖励分类器想一个抗「光照/背景变化」的采样方案(它是头号失败点)。
把深度(几何抓取)和 IL(柔顺闭合)接起来,边界怎么定?谁在什么时刻交棒?
估一估:走完四步里的前两步,大概要多少人工小时 + 多少 GPU 小时?
起因是「Microduck」那条视频:小鸭机器人在 MuJoCo 里用 PPO 训练、导出 ONNX、部署到实体,靠仿真模拟执行器/延迟/摩擦/回差跨过 sim-to-real。问题很自然:我们抓杯子,是不是也该转去「仿真 + 强化学习」?这一页把三块底料查扎实后给结论 —— A 评估 Microduck 那套管线能不能搬,B 看 LeRobot 自带仿真能买到什么,C 就「抓杯」这一个目标做 IL vs sim-RL 的诚实对比。每条都带来源。
抓杯继续走 IL。真正的升级是 HIL-SERL(真机 RL,已在 LeRobot 里),不是仿真。
核心区分:locomotion ≠ manipulation
所有讨论的地基是这一条。Microduck 学的全是本体感知的 locomotion (走路、站立、踢腿)—— 恰好是 sim-to-real 最成熟、最 work 的领域;我们的任务是视觉驱动、富接触的抓取 —— 恰好落在仿真最弱的两个点上。
维度
Locomotion(鸭子)
抓杯(我们)
靠不靠视觉
不靠 —— 观测是 IMU/关节角/步态相位,无需渲染
强依赖 —— 相机像素是策略输入,有巨大视觉 gap
接触
脚-地接触,刚体、良性,仿真友好
指-杯接触:摩擦、打滑、软杯变形 —— 仿真最难精确的部分
监督来源
有参考步态生成器(Placo)可模仿,奖励好写
没有「参考抓取轨迹生成器」,奖励要从零设计
sim2real 成熟度
高 —— 四足/双足早已跨过(ANYmal 等)
低 —— 低成本臂上几乎没有已验证的原生配方
来源:reality-gap 综述 arXiv 2510.20808(接触/力-运动响应是操作 sim2real 的主瓶颈);四足 sim2real 见 ANYmal arXiv 1901.08652。
locomotion
(走路)
仿真
1 个沟:动力学(好跨)
真机 ✓
抓取
(视觉+接触)
仿真
沟1 视觉
沟2 接触(难)
真机
图 · locomotion 从仿真到真机只跨一个好跨的沟(动力学);抓取要同时跨两个 —— 视觉渲染 gap 和更难的接触/摩擦 gap(红)。这就是抓取 sim2real 难得多的原因。
先破一个误会:拦路虎是「任务类型」,不是「便宜」。 鸭子也只约 $400,照样 sim2real 成功 —— 便宜臂做抓取难,难在视觉+接触这类任务,与价格无关。仿真能 在便宜臂上抓取成功(NVIDIA「Sim-to-Real SO-101」用 Isaac Sim 在便宜 SO-101 上做到了):它不是死路,只是重栈、对我们这组条件不是最快路。
那便宜臂为什么反而让仿真更难? 它加重的是接触 gap:Feetech 舵机只有位置控制、有回差、无力矩/力反馈、重复精度低。抓取成败取决于你测不到也控不准的接触力和柔顺 ,MuJoCo 模型又难把这些辨识准 —— 仿真里「抓稳了」,真机上力一偏就滑。这正是主瓶颈所在。
A. Microduck 管线:只有「建模→仿真训练→导出 ONNX→部署」的流程能复用 抓取:大绕路
Open_Duck_Mini · Open_Duck_Playground · reference_motion_generator · Mini_Runtime · MuJoCo Playground
它到底是什么(已核对)
「Microduck」= Open Duck Mini v2 ,约 42cm、约 $400 的开源迷你 BDX droid,作者 Antoine Pirrone(apirrone,Pollen Robotics 圈)。四个真仓库:机器人本体、RL 训练环境、参考步态生成器、机上运行时。
栈: MuJoCo(经 MJX 在 GPU 上并行,JAX 后端)+ MuJoCo Playground + PPO ;方法是参考步态模仿 (复刻 Disney BDX 论文的 imitation reward,步态由 Placo 走路引擎生成);执行器用 BAM 辨识后导出 damping/kp/frictionloss/armature/forcerange 进 MuJoCo;export_onnx.py → ONNX,机上在 树莓派 Zero 2W 上以约 50Hz 跑。
控制问题:纯本体感知的 locomotion,控制环里没有视觉。 观测=重力向量/速度/IMU/关节位速/步态相位;动作=关节目标。相机只在 README 里作为「未来表情功能」,不进策略。整个项目没有任何视觉抓取。
搬到抓杯:能转 vs 不能转
能转(外壳,真能复用): 「建 MuJoCo 模型 → MJX/Playground 训 → 域随机化 → 导 ONNX → 边缘设备跑」这套骨架(Jetson Orin Nano 比 Pi Zero 2W 强得多);BAM 执行器辨识对 Feetech 舵机直接可用;工程卫生(域随机化、动作延迟处理、50Hz ONNX 部署)。
不能转(让鸭子成功的一切): 参考步态模仿、IMU 观测、脚-地接触、无渲染 —— 这些恰恰是它 work 的原因,对抓杯全不适用。没有「参考抓取」可模仿,奖励要从零设计。
新增的重活(占 80%): ① 你这台臂+夹爪的精确 MuJoCo 模型,还要调好抓取的接触/摩擦参数 (最易崩的部分);② 杯子资产 + 抓取奖励设计;③ 仿真里的相机渲染 + 大量视觉域随机化 —— MJX 的 RL 视觉渲染还不成熟且慢,可能得上 Madrona 之类;④ 视觉运动策略网络(CNN 编码器),不是鸭子那个小 MLP。
裁决:抓取用不上,是大绕路。 Microduck 擅长本体感知 locomotion(sim2real 最容易的一类);抓杯是最难的一类(视觉 + 接触)。能复用的只有「建 MuJoCo 模型 → MJX 训练 → 导出 ONNX → 边缘部署」这套流程,加 BAM 执行器辨识和 export_onnx.py 代码 。让它成功的部分(策略网络、奖励、观测、接触与渲染模型)要为抓取从零重写。所以只值得抄这套流程代码,不值得套它的任务。
范围界定:上面「大绕路」只针对抓取。 Microduck 的强项是腿式 locomotion,那对应 bartender 的移动段 —— 值得单独判:
能不能用: 轮式底盘 → 不用;腿式 → 才用。
用在哪: 我们是全向轮式,移动段用经典 SLAM 导航(架构 ④ 层)就够。Microduck 的 locomotion RL 只有腿式移动才是对的模板 —— 所以整条链路里它抓取段绕路、移动段轮式不需要,两头都用不上。
cost: 轮式经典导航是成熟标准,时间/难度低;换 locomotion RL 反而把已解决的问题复杂化。
注意: 移动里真正要「学」的不是 locomotion,而是底盘+手臂紧耦合的全身动作(Mobile ALOHA co-training)—— 那是另一种技术,不是 Microduck 的步态 RL。
B. LeRobot 自带仿真:只能验证训练管线能跑,给不了抓杯用的数据 用途有限
gym-aloha · gym-xarm · gym-pusht · SO-ARM100 sim(MJCF/URDF) · NVIDIA Sim-to-Real SO-101
现有的原生仿真环境
三个独立 gym 包(pip install "lerobot[aloha,pusht,xarm]"),各配一个 Hub 上的示范数据集:gym-aloha (MuJoCo,双臂 14-DoF,传方块/插孔)、gym-xarm (MuJoCo,单臂,把方块举过阈值)、gym-pusht (2D 平面推 T 块)。新版还接了 LIBERO / MetaWorld 做 eval,以及 EnvHub (从 Hub 加载仿真环境)。
标准流程能在仿真数据集上训 + 在对应仿真里 eval :lerobot-train --policy.type=diffusion --dataset.repo_id=lerobot/pusht --env.type=pusht … 然后 lerobot-eval --env.type=pusht … 出成功率。ACT/Diffusion/SmolVLA 都走这套。
关键限制:这些环境都是固定机器人(ALOHA ViperX / xArm / 2D 圆盘),不是 SO-ARM。 你塞不进自己的臂和杯子,也没法用它们 eval 你真机遥操数据训的抓杯策略 —— 动作/观测空间对不上。
要 SO-101 的合成抓取数据?只有重栈
SO-101 的 MJCF/URDF 模型确实存在 (TheRobotStudio/SO-ARM100,onshape-to-robot 生成;但 0–100 夹爪映射「尚未反映」进去)。
最对口 的官方例子是 NVIDIA「Sim-to-Real SO-101」课程 :真机遥操 IL + 平行夹爪抓取,在 Isaac Sim 里加域随机化 + Cosmos 合成增强,再用同一条 LeRobot 部署命令上真机。但它骑的是 Isaac Sim (不是轻量 gym),要 Isaac Sim 5.1/IsaacLab 2.3 + NVIDIA GPU,在 4090 级 GPU 上跑(可租)。
未确立 诚实标注:原生 gym 路径上,没有 找到任何公开的「SO-ARM 抓杯从仿真迁移到真机」的成功案例。
裁决:边角价值。 LeRobot 原生仿真买得到的,是把训练管线做冒烟测试 —— 在 lerobot/pusht 或 xarm_lift 上验证你的数据格式、train/eval CLI、ACT/SmolVLA 管道、GPU 流程能跑,和耳机/真机解耦。真实但有限。它买不到你这一个抓杯任务的合成数据(那要 Isaac,大工程)。它能给训练管线去风险,但不会替你省掉真正让杯子被抓起来的真示范工作。
C. IL vs sim-RL —— 就「抓杯」这一个目标的诚实对比
低成本臂上,真正 work 的是 IL
ACT/ALOHA · Diffusion Policy · SmolVLA · π0 · OpenVLA
低成本 / LeRobot 生态里每一个「今天能在 $200 臂上跑通」的成功故事,都是真示范模仿学习 :ACT/ALOHA(每任务约 50 条遥操)、Diffusion Policy、SmolVLA(只用社区真数据训)、π0(约 1 万小时真机数据)、OpenVLA(约 97 万真机 episode)。sim-RL 在这类成功故事里几乎缺席。
IL 是主流,但不等于容易。 有人在 SO-101 臂上微调 SmolVLA 做单个抓取任务,成功率约 40% (这是网上个人报告、不是严格对照实验,40% 只当大概数看)。这个数字说明两点:一,IL 能 抓起来(不是 0),方法本身没错;二,它还不稳 ,而不稳几乎总是出在示范数据 上,就三点 —— 质量 (遥操录得干不干净、相机/标注对不对)、覆盖 (示范里有没有含测试时杯子会出现的所有位置和光照;只示范 3 个位置,策略就只会那 3 个)、一致 (每次是不是同一种抓法;忽左忽右会让策略看到矛盾例子、学成一团糊)。对我们: 已经在录示范却还没抓起过杯子,矛头就指这三点,不是「该换掉 IL」—— 先修数据,别换方法。
sim-RL 真正 work 过 —— 但代价是什么
OpenAI Rubik's Cube · arXiv 1910.07113 · Irpan 的批评
视觉抓取类 sim-RL 的旗舰是 OpenAI Dactyl 解魔方(手内重定向)。代价:魔方训练用了约 64 张 V100 + 约 920 台 worker(约 2.9 万 CPU 核),连训数月 ,靠 Automatic Domain Randomization。而且诚实看结果:平均打乱全解约 60%、最难约 20%;一旦用视觉做状态估计,掉到约 20%/0% ,很多胜利来自手调仿真器 而非纯 RL。Shadow Hand 本身约 10 万美元级。
共性:sim-RL 反复要求大规模并行算力 + 精确的物理/资产模型 + 大量域随机化 ,而且视觉入环的数字还会明显下滑 —— 要租数十卡、跑数月的规模,贵。
★ 中间地带里最该看的:HIL-SERL(真机 RL,已在 LeRobot)
Science Robotics · 项目页 · LeRobot 教程
直接在真机上做 RL ,用少量示范 + 一个奖励分类器 + 人工干预来引导。论文报告在一批任务(RAM 插装、USB 抓取插入、线夹、装配)上约 1–2.5 小时真机训练达到约 100% 成功 ,而 HG-DAgger 的 IL 基线约 49.7%。
为什么它对你最相关: 复用你正在收的示范,不需要仿真、不需要建物体/接触模型 ,几小时跑在真机上 —— 绕开了 sim-RL 那两个最贵的 gap。这是 BC 见顶后期望值最高的下一步。
待验证 诚实标注: 论文那 100% 主要在插装/装配(有夹具) 类任务上,迁移到「抓杯」合理但没被直接测量;通常也需要一个设计得当的奖励/分类器。
🔎 深入一页(把它讲透 + 训练循环图 + 在你机子上怎么做):HIL-SERL:真机上的强化学习 。
Transporter Networks —— 对象中心取放:方向对,但别照搬整套 思路可借·代码难直接用
arXiv 2010.14406 · Google Ravens · CoRL 2020 · (注意别和 Transformer 混 —— 那是 ACT/SmolVLA 已在用的网络架构)
角色:正对着你「位置泛化」的病根。 它把取/放学成俯视图上的空间等变模板匹配 (全卷积,把抓到的 patch 在场景里互相关找该放哪),结构上就位置/姿态无关 —— 物体一挪,答案跟着挪,约 1–100 条示范就有跨位置泛化。对比你现在的端到端 pixels→joints(要在每个杯位都有示范才会那个位),它用结构换掉了堆数据的负担。作为「原则」,这是抓杯泛化最对症的思路。
可行性:作为原则很高,作为「直接搬来用」中偏低 —— 三个门槛。 ① 原版是俯视 SE(2) :输出「抓像素+放像素+平面旋转」、默认自上而下抓;你抓桌上杯子多半是 侧向/6-DoF 抓 ,原版不直接给,要上 6-DoF / 等变扩展版。② 它要一个标定好的俯视(或重建)视角 ;你的相机是头+腕,不是固定正交俯视,得先把这个空间表示搭出来。③ 它不在 LeRobot 里,是另一套栈 (Ravens 代码),不是 SmolVLA 的即插即用件 —— 采纳 = 一段集成工作。
建议:先要它的「原则」,别急着搬整套。 便宜先行 —— 把 PICK 做成对象中心的「关键点/抓取位姿」模块 (在腕相机里检测杯沿/把手关键点 → 伺服贴近,让学出来的策略只管最后柔顺闭合)。这比立起完整 Transporter 轻得多,还刚好吃你现有的腕相机。完整 Transporter / 6-DoF 等变版留到将来要「大规模学习式取放」再上。
另一条便宜候选是 VLA 预训练 + 少量真机微调 ,也就是你 SmolVLA/π0 本来的路。
★ 深度相机(RGB-D)—— 给抓取算出一个 6-DoF 位姿 不透明杯:可直接用
RealSense D405 · Contact-GraspNet · ClearGrasp · ArUco / AprilTag · easy_handeye
角色:把「杯子在哪、怎么抓」从像素硬学变成几何算出来。 加一颗近距深度相机(桌面抓取用 RealSense D405 ,理想 7–50cm,可腕装)→ 把 RGB-D 交给几何抓取模块 (Contact-GraspNet 类,从点云直接出 6-DoF 抓取位姿)→ 经手眼标定 换到臂坐标 → 预置爪子到该位姿 → 最后柔顺闭合交给 SmolVLA 。深度管「往哪抓/怎么贴近」,IL 只管「最后一段接触」。补充 IL,不取代。
为什么对症: 它同时打你两个病根 —— 位置泛化 (杯子挪到哪都算得出抓取,不用每个位都示范)和最后 3cm 精度 (深度是米制距离,不靠像素外推),而且省示范 。
LeRobot 支持吗(诚实): 数据格式支持深度 (有 DepthEncoderConfig、深度视频编码),你能录 RGB-D;但策略是 RGB —— SmolVLA/ACT 的视觉塔(SigLIP 类)没有标准的「深度入策略」通道。所以深度用在策略之外的几何模块 ,SmolVLA 保持 RGB、不用重训 。
材质→方案(你的物体清单): 不透明塑料杯(现在) =漫反射,深度直接好用 ✓;磨砂高脚杯 =磨砂就是漫反射,深度友好、优于透明玻璃 ✓;彩色但透明 =颜色不是问题、透明 才是,IR 会穿过去、深度出洞 → 上 ClearGrasp 补全或更稳地贴标记 ⚠️;细杯脚 =对深度(点太少)和抓取都不友好 → 抓杯身别抓脚 ;ArUco/AprilTag 标记 =从单张 RGB 出精确 6-DoF 位姿、完全不怕透明 ,是玻璃/高脚杯的稳妥兜底(AprilTag 更稳、ArUco 更快)。
成本/门槛: 一次手眼标定 (easy_handeye / MoveIt,约半天)+ 一套抓取检测 (最重的一块):Contact-GraspNet 要 NVIDIA GPU + TensorRT 才能在 Orin Nano 上跑(约 4FPS 级),或换更轻的 VGN/GIGA ,或对已知杯子直接用点云质心+PCA 的几何启发式 (最省)。
🔎 深入一页: 深度相机抓取 —— 材质决策 · 手眼标定 · 抓取管线 。含材质→方案决策树 (塑料/磨砂→深度,透明→标记,高脚杯抓杯身)、手眼标定 T 怎么接进运行时 的数据流图、抓取检测选型(Contact-GraspNet vs 轻量 vs 质心+PCA),以及「transform 四个意思别搞混」的术语澄清。
整体学习策略架构(纳入深度后)
把上面选中的部件拼起来。深度插在「抓取位姿层」 —— 它把原来要 IL 从像素硬学的「杯子在哪、怎么抓」变成几何算出来,喂给策略一个干净的目标位姿,于是学习策略的负担从「整段抓取」缩到「最后柔顺闭合」 。这是纳入深度后架构最核心的变化。
sim-RL / Microduck
暂缓 · 不在此流程
① 感知 · SENSING
头/腕 RGB · ★深度 RGB-D · ArUco 标记
RGB-D / 标记
② 抓取位姿 · 几何/深度【新】
深度点云 → 6-DoF 抓取位姿
或 标记 → 精确位姿(透明兜底)
6-DoF 目标位姿(位置无关)
③ 学习策略 IL(SmolVLA)
只学:最后贴近 + 柔顺闭合
升级:BC 见顶 → HIL-SERL
一个可靠技能
④ 技能编排(later)
PICK → 导航 → PLACE → POUR
深度:算「往哪抓/怎么抓」
IL:只做「最后一段接触」
图 1 · 纳入深度后的学习策略架构。绿色层是本次新增:深度把「杯子在哪、怎么抓」用几何算出来,给策略一个位置无关的目标位姿,于是 IL 的活从「整段抓取」缩到「最后柔顺闭合」。右侧虚线框 sim-RL/Microduck 不在此流程、暂缓。下面四块是各层详情。
① 感知层 · SENSING
头 RGB(上下文/绝对姿态,录制时锁头)· 腕 RGB(对象中心)· ★ 深度 RGB-D(新,D405 近距) · 难物体贴 ArUco/AprilTag 标记
↓
② 对象中心抓取位姿层 · 几何/深度驱动 【本次新增】
深度点云 → 6-DoF 抓取位姿 (Contact-GraspNet 类 / 轻量 VGN·GIGA / 已知杯用质心+PCA)|或 标记 → 精确位姿 (透明/高脚杯兜底)。材质路由:塑料·磨砂→深度;透明→标记;抓杯身不抓脚 。经手眼标定 →臂坐标,输出位置无关的目标抓取位姿 。
↓
③ 学习策略层 · 模仿学习(IL)
SmolVLA/ACT 条件于抓取位姿 ,只学最后贴近 + 柔顺闭合 + 倒酒 (不再从零学「杯子在哪」)。从遥操示范训练 · 开异步推理。升级:BC 见顶 → HIL-SERL (真机 RL,复用示范,不碰仿真)。
↓
④ 技能编排层 · SEQUENCING(later)
PICK → MOVE(经典 SLAM 导航,不进策略 )→ PLACE → POUR;SayCan 式 LLM 排命名技能,每技能自报可行性。移动是最后一层,不是现在搭。
不在这张图里(暂缓): sim-RL / Microduck 那套 MuJoCo→PPO→ONNX。它是本体感知 locomotion 的配方,对视觉富接触抓取是绕路 —— 仅在「IL 和 HIL-SERL 都见顶 + 有精确接触模型 + 数十 GPU 算力 + 接受视觉掉点」四条件同时成立时才碰。
裁决:我们该怎么排
① 修真示范数据
覆盖·精度·一致 · 最便宜
② 深度几何抓取
确定性 · 省示范
③ HIL-SERL 真机 RL
BC 见顶后顶上去
④ Isaac 合成增强
覆盖倍增 · 重 · 证据弱
成本 / 难度 / 不确定性 增大 →
图 · 四步优先级阶梯:左下最便宜、先做,右上最重、最后。越往右,成本 / 难度 / 不确定性都增大;绿色的 ① 是现在就该做的,虚线的 ④ 排最后。
① 现在 —— 继续 IL,先修数据与精度。 每个廉价臂的成功都建在真示范上;换范式等于扔掉唯一有配方的路。先把示范覆盖(杯位/光照)、一致性、时域/精度补齐 —— 这是最便宜、最高概率的杠杆。见 训练规格 与 现象→原因 。
② BC 见顶后 —— 上 HIL-SERL(真机 RL)。 复用现有示范,不碰仿真,几小时把 ~50% 基线往 100% 顶。这是「强化学习」在我们场景里正确的形态,不是仿真。
③ 可选便宜牌 —— PICK 做成对象中心 (Transporter/关键点),让位置泛化来自结构而非堆数据。
④ sim-RL 仅在四个条件同时成立才碰: (a) IL 和 HIL-SERL 都已见顶;(b) 有杯子+夹爪的精确 3D/物理模型且愿手调接触摩擦(reality-gap 主瓶颈);(c) 能上数十 GPU 级算力(魔方 = 约 64 GPU × 数月,规模大、贵);(d) 接受视觉入环 60%→20% 的掉点。单个抓杯任务,这笔账不划算。
⑤ 若真要碰仿真:借管道不借问题。 LeRobot 原生 gym 当训练管线冒烟测试;要 SO-101 合成数据只有 NVIDIA Isaac Sim SO-101 那条重栈 —— 记在路线图上,别现在建。
一句话收束: 通往「可靠抓起杯子」更快、更可能的路,是更好的真数据 + 真机 RL(HIL-SERL) ,不是仿真转向。Microduck 很酷,但它的酷在 locomotion;把它的酷搬到抓杯,酷会留在原地,难会全带过来。
来源均经检索核对(2026-08)。未逐一坐实、已在文中标注的项:Open Duck 的 randomize.py 具体参数范围、「电池电压/指令延迟/齿轮回差」是否被显式建模、PPO 是否确为 Brax 实现(PPO + MJX-Playground 已确认);SO-101 上 SmolVLA 约 40% 抓取为单份社区报告;HIL-SERL 的约 100% 在插装/装配任务上,抓杯迁移未直接测量;OpenAI 魔方的 GPU/CPU 数量为论文附录检索所得(量级正确)。