有五个 VLA checkpoint,真机每个跑 100 次太贵,能不能先在仿真里淘汰四个?这个问题比“仿真能不能代替真机”窄得多,也更有实际价值。SIMPLER 做的就是 real-to-sim evaluation:把原本面向真实机器人的策略放进匹配过的仿真环境,检查仿真能否恢复真机中的策略排序和失效模式。
它不是用仿真训练策略再迁移到真机。方向反过来以后,建模目标也变了:不必复制现场的每一颗螺丝,要优先匹配那些会改变策略判断与控制响应的视觉和动力学因素。
控制差异会把好策略测坏
策略输出相同的末端增量,仿真和真机不一定走出相同轨迹。真实控制器可能包含插值、滤波、速度限制和通信延迟;仿真里的 PD 参数若照搬一个猜测值,机械臂会更快、更慢或更容易过冲。抓取任务里,几厘米跟踪误差就足以让夹爪错过物体。
SIMPLER 通过系统辨识让仿真控制响应接近真实机器人。这个思路比“把 PID 调得看起来顺”更严格:给真实和仿真系统相同动作序列,比较末端轨迹,再调仿真控制器参数。匹配对象是策略实际看到的闭环响应,不是单独追求一个漂亮的阶跃曲线。
自己做时至少保存:
1 | controller_match: |
同一套辨识轨迹不要又拿来报告最终匹配质量。留一组未参与调参的动作序列,才能看出控制参数是否只拟合了几条轨迹。
视觉匹配不是越真实越好
论文中的视觉匹配包含把仿真交互物体叠到真实背景上,以及用真实物体纹理和机械臂视频调整外观。目标是减少策略输入里的关键差异。一个 VLA 可能对机械臂颜色不敏感,却对腕部相机外参极其敏感;另一个模型可能受桌面纹理影响很大。
因此“照片级渲染”不是验收指标。更直接的方法是做受控消融:固定控制匹配,只换背景;固定背景,只改相机外参;固定几何,只换物体纹理。看策略排序在哪一项变化后崩掉,再决定建模预算放在哪里。
若仿真环境只在一种完美光照下运行,它也许能恢复常规任务排序,却看不见 rolling shutter、过曝和运动模糊导致的退化。相机侧的变量可以从《Rolling Shutter、曝光与运动模糊》挑选,逐项做压力测试。
相关性和排序回答不同问题
假设三个策略的真机成功率是 [0.75, 0.60, 0.35],仿真得到 [0.92, 0.70, 0.50]。绝对值明显偏高,但排序一致,仿真仍能帮助选 checkpoint。另一组仿真结果 [0.55, 0.58, 0.54] 数值范围看似接近,却把前两个策略排反了。
SIMPLER 论文同时讨论 Pearson 相关和策略排序,提出 Mean Maximum Rank Violation(MMRV)来补足 Pearson 的局限。Pearson 关注近似线性关系,对接近的策略和非线性缩放较敏感;排序指标更直接回答“会不会选错模型”。
下面的脚本可以快速查看相关性与名次,不实现论文 MMRV:
1 | from math import sqrt |
只有三个策略时,相关系数很不稳定。正式比较还要报告每个策略的试验次数、置信区间和不同随机初始条件,不能只给一位小数的成功率。
SIMPLER 适合进入持续集成
真机回归测试慢、占设备,还会磨损夹爪。仿真评测可以在每次模型或预处理改动后自动运行,检查常规任务、视角偏移、背景变化和物体位置变化。它更像机器人策略的 CI,而不是最终验收台。
一条实用流水线可以这样分层:
- 离线数据检查输入输出形状、动作越界和数据泄漏。
- SIMPLER 或自建 real-to-sim 环境运行任务矩阵,淘汰明显回归。
- 少量台架真机确认排序是否仍成立,并校准新版本仿真。
- 现场试验检查热稳定、网络、人员干扰与安全停机。
每层都记录自己的证据类型。仿真成功 90 次只能写“仿真 90/100”,不能在发布说明里简写成“机器人成功率 90%”。
复现前先锁住环境版本
SIMPLER 开放了环境和常见策略评测代码。依赖包含仿真器和模型,安装可能随版本变化;先固定提交,再按该提交的 README 建环境:
1 | git clone --depth 1 https://github.com/simpler-env/SimplerEnv |
第一次运行不要急着复现论文整表。选一个策略、一个任务和四五个固定初始条件,确认相机图像、动作频率、终止条件和成功判定与文档一致。视频看起来完成任务,但 success detector 没触发,也属于评测接口错误。
数据集的动作语义会直接影响 real-to-sim 控制匹配,前一篇《Open X-Embodiment 与 DROID》可以作为 schema 检查表。更一般的仿真迁移流程见《Isaac Sim 与 Sim-to-Real》。
参考资料
证据边界
SIMPLER 的控制匹配、视觉匹配、策略相关性和分布偏移结论来自原论文。本站没有运行 SIMPLER,也没有复现论文中的真机配对试验。示例数值、配置和 Python 脚本只用于解释相关性与排序。仿真能否筛选自己的模型,需要用同一批策略的仿真和真机结果重新校准。