精读笔记
Problem Setting
论文标题:Bridging the Sim-to-Real Gap in Humanoid Dynamics via Learned Nonlinear Operators(Awesome World Models / 2025)。
这篇论文实际处理的是 humanoid 上肢带载动作中的 sim-to-real gap,而不是广义 humanoid control。问题被压到 actuator / joint dynamics 层:同一个目标动作在 simulator 和 real H1-2 上执行后,关节位置、速度、力矩等出现系统性偏差;payload 增加后,这个偏差明显放大,并且不同关节表现不同。
真正困难点是 gap 不是一个全局可调参数,也不是简单 mass/friction mismatch。它混合了电机动力学、重力补偿不足、惯性变化、控制频率、延迟、温度、饱和和结构误差,而且以 joint-specific nonlinear residual 的形式出现。对于 humanoid upper-body lifting,这类误差会直接体现在末端高度和轨迹跟踪上。
以前方法卡在两个方向:system ID / domain randomization 依赖人工定义扰动空间,难覆盖真实 actuator behavior;learned dynamics / residual MLP 又通常是 pointwise regression,容易在训练动作和 payload 内插值有效,但对 unseen action / heavier payload / robot instance 的外推弱。关键矛盾是:真实误差高度依赖具体执行上下文,但部署时又希望模型能在未见动作和负载下快速给出补偿。
Motivation
作者的核心动机可以概括为:当前缺的不是又一个更鲁棒的 policy,而是一个能把 simulator execution 映射到 real execution 的 actuator-level gap model,以及支撑这种模型训练的 paired dataset。
已有路线不够的原因在于它们对 gap 的组织方式太粗。domain randomization 把 gap 当作参数分布;system identification 把 gap 当作少数物理参数;普通 learned dynamics 把 gap 当作局部状态转移误差。这些建模都没有显式表达“同一个仿真函数在不同 payload/action 查询下对应不同真实响应”这一结构。
作者观察到带载 humanoid 的 sim-to-real gap 更像一个非线性算子:输入不是单个状态,而是一段传感/执行上下文;输出也不是固定轨迹,而是在给定 payload 和 action query 下的 residual action。这个观察解释了为什么他们会选择 DeepONet:它天然把 context function 和 query 分离,适合把 residual 建成可查询的函数映射。
关键缺口还有数据。没有 paired sim-real 数据,所谓 operator learning 很容易变成概念包装。SimLifter 的意义在于提供多 payload、多频率、多机器人、分层动作粒度的同步数据,使这个问题能从 anecdotal calibration 变成 supervised / RL-compatible residual learning。
Core Idea
核心思想是把 sim-to-real compensation 从“学习一个状态-动作到误差的函数”提升为“学习一个从仿真执行函数到真实执行函数的非线性算子”。这个建模改变很关键:如果 gap 随 payload、动作历史和关节上下文连续变化,那么普通 MLP 需要在一个混杂输入空间里记住所有组合;operator model 则把执行上下文编码成 latent function representation,再用 query 去索引特定负载/动作条件下的补偿。
这个 inductive bias 的直觉是合理的。payload 和 action 并不是普通附加特征,而是决定残差场如何被查询的条件;history/sensor trace 也不是普通 observation,而是描述当前 actuator regime 的函数样本。Branch-trunk 分解相当于把“当前系统处于什么动力学状态”和“现在要问哪个动作/负载下的补偿”拆开,减少条件组合爆炸。
和 prior 的本质差异不在于预测 delta action——ASAP 类 residual alignment 已经在做类似事情;差异在于 residual 的表示方式从 finite-dimensional pointwise approximator 变成 function-query factorization。这给了它声称 extrapolative generalization 的基础,虽然文中证据还不足以证明强外推。
Method
方法可以只看三个机制。
第一,数据机制:SimLifter 用标准 payload、分层动作、同步 sim-real execution 来构造 residual supervision。它解决的是 residual 不可观测/不可比较的问题。没有这种 paired 数据,模型只能通过 deployment reward 间接学,样本效率和安全性都会很差。这里的核心变化是把 sim-to-real gap 显式数据化。
第二,表示机制:GAPONet 用 Sensor Predictor 将当前 state-action change 编成传感分布,再由 Branch Net 表示上下文函数;Trunk Net 编码 payload 和 current action query。它解决的是固定 sensor points 与 RL 并行训练不匹配的问题,也让模型可以在不同 query 上共享同一个上下文 embedding。这里真正重要的是 context-query separation,而不是具体网络层数。
第三,控制机制:模型输出每个 joint 的 delta action,并加到 simulator nominal command 上。这个选择很实际:直接预测真实下一状态会把误差归因扩大到全身动力学、接触和策略层;预测 delta action 把模型约束在 actuator compensation 上,更容易泛化,也更容易低延迟部署。
文中提到 PPO integration,但从给出的内容看,RL 更像训练/闭环优化框架,而不是主要创新。核心仍是 residual operator + paired dataset。
Key Insight / Why It Works
最可能有效的原因有三层。
第一,问题本身被选得很对。上肢带载的 sim-to-real gap 主要由 actuator-level residual 和 payload-induced dynamics mismatch 主导,且可通过 delta action 部分补偿。这类问题比全身 locomotion 接触稳定性更适合 residual learning。换句话说,GAPONet 成立的前提是误差可以被局部、短时、joint-level correction 吸收。
第二,DeepONet 的 branch-trunk factorization 是一个有用的 inductive bias。相比把 payload/action/history 全拼进 MLP,operator 形式强制模型学习“上下文表征”和“查询条件”的乘性/内积交互。这可能改善对未见动作组合的插值,也可能对 payload 变化更平滑。这里的贡献更像 representation alignment,而不是新的控制理论。
第三,SimLifter 的覆盖可能是增益的主要来源之一。多机器人、多频率、多 payload、per-joint 到 upper-body 的分层采样,让模型见到了大量 actuator regimes。论文把部分提升归因于 nonlinear operator,但没有充分排除 data coverage / scaling 的影响。尤其 ablation 中 payload 输入的结果还略显反直觉:w/o payload 在表中反而更好,这削弱了“显式 payload conditioning 是核心”的说服力。文中未充分说明这个现象。
Sensor Predictor 可能是工程上重要的辅助:它让传统 DeepONet 中固定 sensor locations 的假设适配 RL rollout 和机器人传感数据。但它是否是核心贡献还不清楚。没有看到足够强的 ablation 来区分:是 learnable sensor distribution 有效,还是仅仅提供了更大的 temporal history / 更好的 normalization。
我会把这篇的技术本质判断为:data-covered residual operator learning,而不是 world model 意义上的长期 dynamics model。它不是真的学了完整现实物理,也没有形成 planning-level model;它学的是在特定 humanoid family 和 payload regime 下,把 simulator command 修成 real actuator command 的补偿场。
Relation To Prior Work
最接近的路线是 residual dynamics learning / sim-real alignment,例如 ASAP 这类直接学习 action/state residual 的方法;再往前是 system identification、domain randomization、robust RL。GAPONet 并没有推翻这些路线,而是把 learned residual 的函数类换成 operator learning,并用更结构化的数据支撑。
和 domain randomization 的本质差异:domain randomization 把不确定性塞进训练分布,让 policy 自己鲁棒;GAPONet 显式学习 simulator-to-real correction,把 gap 外置成 compensator。这更适合已有 policy/trajectory transfer,但也更依赖真实数据。
和 system ID 的本质差异:system ID 寻找少数物理参数,GAPONet 不试图解释参数,只学习 residual mapping。优点是能覆盖 actuator 非理想性;缺点是可解释性和外推边界弱。
和普通 MLP residual 的差异:不是预测目标不同,而是条件化结构不同。MLP 是在有限维输入空间拟合 residual;DeepONet 是把 sim trace / sensor history 当函数样本,把 payload/action 当 query。实质创新在这个 representation bias,以及把它落到 humanoid payload sim-to-real 数据集上。
和 neural operator literature 的关系:这篇属于把 operator learning 从 PDE / continuum dynamics 迁移到 embodied actuator residual 的应用型工作。DeepONet 的理论 universal approximation 在这里更多是合理性背书,不应过度解读为泛化保证。
Dataset / Evaluation
SimLifter 是这篇比较实在的资产。它不是泛机器人 dataset,而是针对 Unitree H1-2 上肢十个关节、标准端载、两种频率、三台机器人采集 paired sim-real execution。覆盖粒度从 per-joint 到 upper-body coordination,这对分离 joint-level residual 和协同动作误差有价值。
Evaluation 支持的 claim 是有限但明确的:在同型号未见机器人、未见 motion sequences、标准 payload 下,GAPONet 比 raw simulator / MLP residual 更能减小轨迹偏差和末端位置误差。这个验证确实触及了论文主张的 actuator-level sim-to-real bridging,尤其 heavy payload 下的改善更有说服力。
但 evaluation 没有真正证明广义 extrapolative generalization。所谓 unseen robot 仍是同一型号;所谓 zero-shot actions 是同一数据分布下的未见序列;payload 是离散标准重量;任务也集中在上肢带载和位置保持。没有跨 morphology、跨物体形状、跨接触模式、跨长期热漂移,也没有真实全身 loco-manipulation deployment。
另外,benchmark 可能偏向 residual compensation:如果训练数据和测试任务共享同类 hierarchical retargeted motions,模型可能主要做 distributional interpolation。不能排除 implicit memorization / data coverage 是主要增益来源。
Limitation
第一,方法成立依赖 paired sim-real 数据。它不是免标定 sim-to-real,而是把标定从物理参数层转移到数据层。数据采集成本、同步精度、动作覆盖决定上限。核心能力可能主要来自数据覆盖。
第二,泛化边界窄。文中声称 heterogeneous robots / cross-morphology 的动机,但实验只在同型号 H1-2 的不同个体上验证。不同 actuator、gearbox、joint layout、mass distribution 下是否还能用同一 operator,文中未充分说明。
第三,payload conditioning 的证据不干净。Ablation 表里 w/o payload 结果不差甚至更好,这与“explicit payload conditioning enables extrapolation”的叙事冲突。可能是 payload 信息已被历史状态/误差隐式编码,也可能是当前 payload range 太小,显式输入反而增加噪声。这个问题需要更强实验解释。
第四,DeepONet 的必要性没有被严格证明。MLP baseline 太弱,缺少 conditional transformer、RNN/TCN residual model、hypernetwork、FiLM-conditioned MLP、latent dynamics model 等强基线。增益来源不清:可能是 operator bias,也可能是模型容量、history encoding、训练细节或数据规模。
第五,它不是完整 world model。模型预测 delta action,而不是长期真实状态演化;没有显式不确定性、接触模式、失败恢复、长期 thermal drift。用于 closed-loop compensation 是合理的,但不能直接外推为具备 planning/reasoning 的 embodied world model。
第六,安全和部署细节不足。真实机器人上 residual action 的幅度限制、稳定性保证、异常 payload、传感延迟、actuator saturation 下的行为都没有充分展开。
Takeaway
- 1. 值得记住的不是“DeepONet 用在机器人上”,而是把 sim-to-real gap 重新表述为可查询的 residual operator:context 描述当前执行 regime,query 指定 action/payload,输出局部补偿。
- 2. 对 humanoid sim-to-real,paired actuator-level dataset 可能比更复杂的 policy architecture 更关键。
- SimLifter 暗示未来高质量 sim-real 对齐数据集会成为 residual world model 的基础设施。
- 3. Operator learning 在 embodied AI 中更适合做中短时、局部、可条件化的 dynamics correction,而不是直接承担全局长期 world model。
一句话总结
这篇论文把 humanoid 带载 sim-to-real 从手工随机化/点式 residual 拟合推进到数据驱动的 actuator-level residual operator learning,真正贡献是 SimLifter + context-query 分解式补偿建模,但其泛化和 DeepONet 必要性仍未被充分证明。
