

SIM1 论文精读:让变形物理模拟成为零样本数据扩展器
精读 SIM1:通过真实场景数字化、变形稳定求解器和扩散轨迹生成,把少量衣物示教扩展为可直接迁移到真实机器人的合成监督。
SIM1 用真实场景数字化、变形稳定 AVBD 求解器和扩散轨迹生成构造 R2S2R 数据引擎,使纯仿真训练策略在衣物折叠上实现零样本 sim-to-real。
1. 论文概述#
【Paper】 《SIM1: Physics-Aligned Simulator as Zero-Shot Data Scaler in Deformable Worlds》研究一个很具体、但对具身学习很关键的问题:衣物的形状、接触和拓扑不断变化,真实示教昂贵,而传统刚体模拟生成的数据很难直接迁移。作者的判断是,模拟失败的根因不是“合成”,而是没有被真实世界约束。

一句话总结#
【Analysis】 SIM1 把数据扩展问题改写成对齐问题:先把真实场景做成有公制尺度的数字孪生,再用稳定的软体动力学和人类式运动生成,让仿真样本不仅“看起来像”,而且在机器人控制下“反应得像”。
核心贡献#
【Paper】
- 提出面向变形物体的 real-to-sim-to-real(R2S2R)数据引擎,统一处理几何、动力学和运动三类 sim-real gap。
- 用高精度扫描与网格后处理得到带纹理、亚毫米级几何精度的衣物资产;用 ARX ACONE 的 URDF 对齐双臂机器人。
- 在 Newton/VBD 基础上加入 Augmented Vertex Block Descent(AVBD)式应变约束,减少实时抓取、拉伸时的过度变形与接触不稳定。
- 将示教轨迹拆成 interaction 与 moving 区段,用 diffusion-based trajectory generation 补全运动,并以规则和视频判别器过滤失败样本。
- 在真实 T-shirt folding 上,纯合成数据训练的策略达到 90%()零样本成功率,并报告约 1:15 的合成/真实样本等价关系。
2. 背景与相关工作#
【Paper】 刚体操作可以依赖成熟的资产库、抓取点和 pick-and-place primitive;衣物操作则同时受到连续形变、摩擦、遮挡和接触拓扑变化影响。少量真实示教覆盖不了这些状态,导致 VLA 或 imitation policy 在训练分布外快速失效。
传统 S2R 往往从随机化开始,但随机化只能扩大“错误模拟”的覆盖范围。SIM1 强调先做 R2S:几何尺寸要对应,机器人运动要对应,软体响应也要对应;只有在这个基础上,合成数据的规模才有价值。与只做资产重建的方案相比,本文还把在线软体求解和运动生成纳入同一个闭环。
3. 问题定义#
【Paper】 给定少量真实或仿真遥操作轨迹 、真实工作空间的机器人和衣物,SIM1 需要生成一批带 RGB、机器人状态和动作的合成轨迹 ,使只用 训练的 policy 能在真实机器人上执行。
| 维度 | SIM1 的设定 |
|---|---|
| Observation | 仿真中渲染的头部相机 RGB、双臂状态与衣物粒子/网格状态 |
| Action Representation | 双臂关节/末端位姿轨迹与夹爪开合;扩散模块使用 16 维 EE 向量(左右各 3D position、四元数和 openness) |
| Policy | 论文评估 与 ,合成数据以 LeRobot 格式导出供 imitation learning |
| Robot / Embodiment | ARX ACONE 双臂;仿真遥操作使用 ARX X5 映射到模拟机器人 |
| Dataset | 1,000 条真实轨迹、200 条仿真源轨迹;生成数据最多扩展到 10k 条 |
| Task | T-shirt folding 为主,另展示 towel flipping、shorts/long-sleeve folding、crumpled garment flattening |
【Analysis】 这里的目标不是学习一个“更强的模拟器评分”,而是让模拟器生成的监督在真实控制闭环中保持有效;因此最终指标必须是 real-robot success,而非仅仅是渲染逼真度。
4. 方法#
4.1 Overall Architecture#

【Paper】 数据流是:真实场景扫描与资产导入 → 通过行为匹配校准的软体模拟 → 轨迹分解、扩散补全、质量筛选和外观随机化 → 输出可用于策略训练的合成 episode。
4.2 核心模块#
SIM1-Scene:真实场景数字化#
【Paper】 衣物安装在 mannequin 上,用 EinScan Rigil Pro 获取多视角 RGB 与 LiDAR,融合成点云后移除 mannequin 点,再进行 Poisson reconstruction、补洞、平滑和 remeshing,最终得到带纹理的 OBJ。文中称几何精度可达亚毫米级。机器人则直接导入厂商 CAD 生成的 URDF,并校正根坐标与双臂相对标定;桌面等环境资产按真实测量尺寸放置。
【Analysis】 这个模块的关键不是把照片变成漂亮 mesh,而是保留接触点、桌面高度和双臂工作空间的公制关系。衣物尺寸偏差会同时改变碰撞、摩擦和可达性,后续求解器再准确也无法补偿这种系统误差。
SIM1-Sim:变形稳定的刚柔耦合#

【Paper】 cloth mesh 的顶点是粒子、边是连接关系。每次外力作用后,先运行 Newton-VBD 更新,再检查每条边的伸长;超过阈值时激活虚拟弹性约束,把额外的拉力加入下一轮顶点优化,从而快速传播接触引起的应变。
【Paper】 模拟参数 分别表示密度、Young’s modulus、Poisson’s ratio、摩擦、恢复和 relaxation。作者不声称恢复真实材料参数,而是把真实双臂关节流送入模拟器,再比较布料下垂、折叠和接触行为,人工迭代参数直到达到操作层面的行为一致。
SIM1-DataGen:结构化变形操作合成#
【Paper】 轨迹被拆成 interaction segments 与 moving segments。稳定抓取与接触片段直接从示教池中重用并随机重排;片段之间的运动由 conditional diffusion 根据历史和边界 pose 补全。这样做避免了在变形物体上自动寻找可靠 grasp point,也避免把接触片段粗暴切断。
【Code】 官方 components/datagen/splitter.py 的 SplitterFine 通过双夹爪位置变化阈值(默认 stable_thresh=0.01)检测 stable/moving 区间,合并相邻状态并把过短 stable 段并入 moving。components/datagen/datagen_core.py 中 DataGenerator 将稳定段组织成带 history/src/tgt/traj/mask/lengths 的 batch,送入 diffusion flow;扩散输出再经过 EE 轨迹平滑和 IK 转换回关节序列。
质量筛选与外观随机化#
【Paper】 首先用衣物粒子状态的规则快速剔除明显失败样本,再训练 ResNet-18 + Transformer 的二分类视频判别器 。只有 的轨迹进入 Blender 渲染;材质、灯光和相机参数被随机化,最后连同机器人状态与动作写成 LeRobot 数据。
【Code】 video_filtter.py 将正负视频按较小类平衡采样,抽取固定采样率的最多 8 秒片段,ResNet-18 提取每帧特征后由 Transformer 聚合,输出有效性分数。filter_cloth_quality.py 读取 replay USD 的最后一帧衣物顶点,用 与 阈值过滤;位置随机化时先用 Kabsch 对齐到参考 USD。代码中的过滤器是可解释的后处理,并非论文中所称的端到端可微物理判定。
4.3 关键公式#
应变约束#
对连接顶点 的边 ,静止长度为 ,最大允许伸长比例为 :
当 时约束激活。 是当前顶点位置, 控制允许的局部拉伸量。它把“布料不能被瞬间拉长太多”写成可检测的局部条件。
约束能量与增广更新#
其中 是第 次 Newton 迭代的 penalty stiffness, 累积约束力。参数更新为:
【Analysis】 逐步增加刚度比一次性设置很大 stiffness 更适合实时交互:先允许求解器找到可行方向,再逐渐把过度伸长压回阈值,降低局部发散风险。
扩散轨迹目标#
给定干净轨迹 、噪声/掩码等级 、历史 以及起止 pose ,论文训练 transformer 预测噪声残差:
是把轨迹扰动到等级 的 corruption function, 是真实噪声, 是条件模型输出。推理时它补全 interaction 片段之间的 moving 区间,而不是重新生成已经验证过的抓取接触。
4.4 Training#
【Paper】 流程从 200 条仿真遥操作源轨迹出发。轨迹先按稳定/移动状态分段,再随机重用接触片段并用 diffusion 生成中间运动;规则过滤和视频判别器移除无效 episode,Blender 进行材质、灯光、相机随机化,最终生成 RGB、状态和 action 对齐的数据。
【Code】 run_pipeline.sh 把 apps/datagen_app.py --use_dp --mode fine、Kalman 平滑、apps/replay_app.py、关节可达性过滤和衣物质量过滤串起来。DataGenerator.__init__ 当前实现会将 use_dp 固定为 True 并加载 flow_ckpt_three.pth;因此 README 中的“可选 DP”在该入口上实际是强制启用的。生成后 ee16_to_joint() 为每个 16 维末端向量调用 Newton IK,并附加夹爪开合限制。
-
扫描并后处理衣物 mesh,导入机器人 URDF 与环境资产,建立 metric-consistent scene。
-
将示教分为 stable interaction 与 moving 区段,随机采样可复用的接触片段。
-
以历史、起止 pose 和扰动轨迹为条件运行 diffusion,补全片段间的运动。
- 在 AVBD/Newton 中 replay,执行关节/末端可达性与衣物粒子质量检查。
-
用视频 discriminator 保留高质量 episode,并在 Blender 中做材质、灯光和相机随机化。
- return
导出同步 observation、robot state 与 action,供 imitation policy 训练。
4.5 Inference#
【Paper】 训练好的 policy 只接收真实机器人 RGB 与状态,不需要额外 real-data fine-tuning。真实控制器执行一段 action 后获得下一帧观测,整个过程是闭环的;论文把这种从纯仿真训练到真实部署称为 zero-shot sim-to-real。
【Code】 官方仓库主要开源数据生成、replay、过滤、渲染和 LeRobot 转换,并提供 replay_batch.sh 等脚本。真实 VLA policy 的训练/部署控制器不在该仓库中,因此动作执行频率、低层控制器和 checkpoint 细节应以论文实验系统为准,不能从代码仓库推断。
- 将真实场景观测与训练时同构的相机/状态输入 policy。
- 预测当前控制周期的一段双臂动作或末端目标,并交给低层控制器。
- 执行动作、读取衣物和机器人新状态,保持闭环反馈。
- 重复至衣物达到目标折叠构型;无需真实示教再训练。
4.6 代码实现对照#
| 论文概念 | 官方代码位置 | 实际行为 |
|---|---|---|
| 场景与资产路径 | scripts/sim1_asset_paths.py, download_assets.sh | 从 Hugging Face bundle 查找 acone、cloth、model 与参考 NPZ |
| 轨迹分段 | components/datagen/splitter.py | 按夹爪变化阈值检测 stable/moving,并合并短片段 |
| Diffusion DataGen | components/datagen/datagen_core.py, components/datagen/traj_df/ | 对 16 维 EE 特征做归一化、flow inference、平滑,再 IK 到关节空间 |
| 物理 replay | apps/replay_app.py, newton/ | 重放轨迹并写出 NPZ/USD;求解器实现基于 Newton/Warp |
| 质量过滤 | scripts/filter_joint_unreachable.py, scripts/filter_cloth_quality.py | 关节跳变/EE 可达性检查,加 USD 顶点阈值与 Kabsch 对齐 |
| 渲染和导出 | components/render/, components/lmdb2lerobot/ | Blender 随机化渲染,转换为 LeRobot 风格数据 |
| 论文中的 policy | 未在仓库完整提供 | 论文报告 / 结果,但官方仓库重点是模拟与数据栈 |
5. 实验#
5.1 Experimental Setup#

【Paper】 真实环境用 ARX ACONE 双臂和 kinesthetic teaching 收集 1,000 条轨迹;仿真在 RTX 4090 上运行,操作员通过 ARX X5 做同构遥操作,得到 200 条种子轨迹。每个配置评估 30 次,成功定义为衣物达到目标折叠构型且没有掉落或重新展开。
训练数据包括 200 条真实/仿真源轨迹或扩展后的 10k synthetic samples。泛化测试分别改变空间位置(平移最多 8 cm、旋转 ±15°)、衣物/桌面纹理及摩擦、灯光强度/方向和相机高度(±5°)。

5.2 Main Results#

【Paper】 主要结果如下:

| 评测 | 结果 |
|---|---|
| in-domain | 真实数据 97%,sim-teleoperated 87%,sim-generated 90% |
| from scratch | 真实数据 0%,合成数据 76% |
| zero-shot / 泛化 | 论文摘要报告 zero-shot 76%,泛化提升 +56% |
| 泛化收益() | spatial +50%,texture +13%,lighting +47%,viewpoint +40%(相对真实基线) |
| 跨衣物部署 | 未见过的 polo shirt 上,合成策略 70%,真实数据基线 20% |
【Analysis】 这些数字支持两个层次的结论:在相同数据量下,物理对齐模拟可以接近真实示教;当数据规模扩大时,随机化带来的覆盖度开始超过少量真实数据的覆盖度。from-scratch 对照也说明结果并非完全依赖 或 的已有操作先验。
5.3 Ablation Study#

【Paper】 消融表明模块是逐步累积的:
| 方法 | Pass rate | 平均 success |
|---|---|---|
| Baseline(刚体式轨迹策略) | 0% | - |
| + trajectory decomposition | 65% | 0% |
| + diffusion-based generation | 38% | 33% |
| + deformation-stable solver | 40% | 76% |
仅分段可以产生样本,但片段衔接不连续;加入 diffusion 后动作更像人类、in-domain 成功率达到 47%;加入变形稳定求解器后平均成功率提升到 76%,说明运动生成的外观合理并不等于接触动力学正确。
【Paper】 Figure 8 的拟合曲线给出数据等价关系:代表性的 in-domain 约 15 条 synthetic samples 才能提供 1 条 real demonstration 的训练价值;texture generalization 场景约为 5:1。这里的等价点来自拟合曲线,不应理解为所有任务和数据规模都固定遵循 15:1。
5.4 Generalization#
【Paper】 Figure 6 展示 towel、shorts、长袖衣物和皱衣服等任务,说明数据生成管线并不绑定单一 T-shirt folding。真实部署还测试了训练和模拟中没有出现的 polo shirt,体现对材质、尺寸和纹理变化的迁移。
【Analysis】 泛化提升主要来自两种覆盖的叠加:几何/动力学对齐降低了合成监督的偏差,外观与位姿随机化扩大了视觉分布。若只做后者,模型可能学到大量与真实接触不一致的视觉捷径。
6. 方法分析#
6.1 为什么有效?#
【Analysis】 SIM1 的有效性来自三个误差源同时被约束:metric mesh 让碰撞位置对,AVBD 让接触下的应变传播对,interaction-preserving trajectory synthesis 让动作语义和接触时刻对。三者缺一时,数据会在策略训练中形成互相矛盾的视觉、状态与 action 标签。
6.2 核心创新#
- 【Paper】对齐优先于规模:把 R2S 作为合成扩展的前置条件,而不是训练后再做 domain adaptation。
- 【Paper】面向实时刚柔耦合的稳定求解:应变约束在接触拉伸时自适应激活,而非只追求离线 cloth simulation 的高精度。
- 【Paper】接触片段复用 + 运动扩散补全:保留最难生成的 grasp/contact,生成相对容易的 moving transition。
- 【Analysis】质量筛选成为数据生成的一等公民:宁可丢弃失败样本,也不把物理错误传播给 policy。
6.3 与已有方法的本质区别#
【Analysis】 MimicGen 一类刚体方法可以把轨迹按抓取点切片后重组;SIM1 不假设 deformable object 存在稳定可检测的 grasp primitive,而是从示教中直接复用接触片段。普通 domain randomization 只改变外观或位姿;SIM1 先校准行为,再随机化外观。单纯高保真 soft-body solver 也不够,因为它还需要在线双臂控制映射、轨迹生成与质量过滤才能成为数据引擎。
6.4 关键假设#
- 【Paper】 少量示教中的 interaction segment 足以覆盖任务所需的有效接触模式。
- 【Paper】 通过专家视觉反馈可以把材料参数调到操作层面的行为一致,但不保证物理参数真实可辨识。
- 【Analysis】 训练和部署的机器人、相机布局与动作接口足够同构;若 embodiment 或控制频率变化很大,sim-real gap 仍可能重新出现。
- 【Analysis】 粒子阈值与视频判别器能筛掉主要失败模式;对极端遮挡、粘连或拓扑改变,过滤器可能失去判别力。
7. 局限性#
7.1 作者明确提出的局限#
【Paper】 材料校准仍需要针对每种衣物由专家调参,限制了对任意 cloth type 的全自动扩展。作者也只在有限真实任务上验证了 zero-shot transfer,不能据此断言所有变形物体都能达到相同收益。
7.2 自己分析得到的局限#
- 【Analysis】 几何扫描、mannequin 分割、纹理映射和 URDF 标定本身是昂贵的工程流程;“减少真实示教”不等于消除现实采集成本。
- 【Analysis】 论文中的参数匹配依赖人工视觉判断,可能存在操作者偏差,也缺乏统一的行为距离指标。
- 【Analysis】 视频 discriminator 的正负样本来自模拟失败,若模拟器没有覆盖某种真实失败,过滤器无法发现分布外风险。
- 【Code】 官方仓库开源的是模拟/生成栈,真实 policy 的训练和部署控制器并不完整公开,复现实验成功率仍需要额外系统组件。
- 【Analysis】 1:15 等价关系来自特定任务和拟合区间;在更复杂的衣物拓扑、双手遮挡或高摩擦材料上,合成数据的边际收益可能饱和得更早。
8. 启发与研究思考#
【Analysis】 SIM1 给具身数据扩展一个值得推广的顺序:先问“模拟中的 action 是否会让物体以真实方式变化”,再问“如何随机化更多外观”。对未来工作,我认为有三条路线很自然:
- 用可观测的布料轨迹、接触事件和成功率替代纯人工材料调参,形成自动 system identification。
- 把规则过滤器、视频判别器与真实少量回放组成 active data curation,让失败样本反过来更新模拟器。
- 将 R2S2R 的对齐信号暴露给 VLA policy,例如把应变、接触和不确定性作为辅助监督,减少策略只依赖纹理线索。
【Analysis】 论文最重要的启示并不是“仿真可以取代真实数据”,而是“只有行为对齐的仿真才具有可扩展的监督价值”。在变形操作中,几何、动力学和动作生成必须作为一个系统共同验证。