paper-notes/ humanoid learning/Zhou et al. 2026

KODA:把人类第一视角示范转换成“运动、视觉、控制接口都对齐”的人形机器人数据

Kinematics–Observation Data Alignment for Humanoid Learning from Human Egocentric Demonstrations · arXiv:2610.21152v1 · 2026-10-16 · 33 页

Human → Humanoid Unitree G1 真机 两套控制器 GR00T N1.7
一句话核心洞见

不要把人类视频直接翻译成某个控制器的标签;先生成一个与目标机器人本体对齐、但与具体控制接口解耦的 canonical record,再为 SONIC、HEFT 等控制器分别生成状态—动作标签。

仿真 benchmark
未提供标准仿真任务成功率;仿真只用于运动优化与 rollout 跟踪误差诊断。
Robot-ID → Robot-OOD
100 条人类示范时:SONIC 72.5% → 48.75%;HEFT 76.25% → 51.25%。OOD 物体在人类数据里出现过。
真机证据
G1 + BrainCo hands,4 任务 × 20 次 × 2 条件 × 2 控制器;每配置只训练一次。
证据能支持到哪里
支持“同一 G1 本体上跨控制器重标注”;不支持跨机器人本体、跨相机布局的通用转换。

§1 两张都像 overview,但回答的是不同问题

先给你的截图一个定位

Figure 1 是 thesis / system overview:解释 KODA 为什么存在、生成的数据处在什么位置、如何进入 VLA 训练。Figure 2 是 method / implementation overview:把三大模块拆成可执行的工程步骤。读图顺序应当是先 Figure 1 建立数据语义,再用 Figure 2 追踪信号。

Figure 1 · Why / What

输入是什么?人类胸前 RGB、深度、头/相机位姿、3D 手信号与语言指令。

中间产物是什么?目标机器人运动 + 与运动一致的机器人第一视角。

关键 claim 是什么?canonical record 可复用,但控制器标签要按接口重新实例化。

Figure 2 · How

手如何 retarget?接触如何修正?全身运动如何在仿真中变得可执行?

人臂如何移除、场景如何重投影、机器人如何渲染并合成?

运动如何进一步转换成 SONIC / HEFT 的状态与动作标签?

Figure 1:KODA 系统与训练数据流总览
Fig. 1 · p.2KODA 总览:从人类 egocentric demonstration 到 controller-specific 的人形 VLA 数据。点图中圆点查看每个语义层;注意“可复用”修饰 canonical record,不等于一个 action label 可被所有控制器直接消费。
背景人类第一视角视频比人形机器人遥操作数据更容易规模化,但人手、机器人运动、相机视角和控制接口并不天然一致。
站在哪些工作上HAWOR 手姿估计、AnyTeleop 风格 retargeting、ScaleBFM、MJX/MuJoCo、Mink IK、DiffuEraser,以及 GR00T N1.7 VLA。
前人具体卡点HALOMI / EgoHumanoid 也做 ego-to-robot,但监督标签与专用 policy/controller 接口绑定,难以并入另一套既有 whole-body 数据。
核心 insight先对齐机器人运动与机器人观测,再把 controller-specific label generation 放到最后一层。
效果与代价在 robot-OOD 上,相比 robot-only,SONIC +45 pp,HEFT +46.25 pp;代价是多级估计、仿真优化、渲染与 inpainting。
数据谱系每任务 50 条真机示范/控制器 + 100 条人类示范,共 4 任务;人类数据通过 KODA 转成每套控制器的数据。
展开释义 · 核心 claim(非逐字引文)

KODA 先把人类示范整理成可重复使用、不绑定最终部署控制器的 canonical record,再生成控制器专属标签。

— 对 Introduction 与方法部分的中文释义

§2.1 证据先行:Sim、OOD、真机分别证明了什么?

没有任务级 sim benchmark;只有运动与控制 rollout 的 tracking diagnostics
阶段方法手腕位置误差手腕旋转误差相机/躯干位置误差证据
全身运动Direct15.02 cm0.2046 rad16.27 cmTable 4
全身运动SCO3.03 cm0.1106 rad5.39 cmTable 4
全身运动SCO + arm IK0.33 cm0.0296 rad5.39 cmTable 4
SONIC rolloutSCO2.88 cm0.1292 rad3.20 cmTable 4
HEFT rolloutSCO2.94 cm0.0552 rad2.84 cmTable 4
100 条人类示范预算下的 macro-average 真机成功率
控制器配置IDRobot-OOD绝对下降保留率证据
SONIC50 robot + 100 KODA / task72.5%48.75%——Table 1
HEFT50 robot + 100 KODA / task76.25%51.25%——Table 1
SONICrobot-only62.5%3.75%——Table 1
HEFTrobot-only68.75%5.0%——Table 1

这里的 OOD 是 robot-data OOD,不是 all-training-data OOD。测试中的棕瓶、白色包裹、倾斜篮把不在真机示范里,却出现在人类训练池中;每任务 100 条人类示范由 80 条 shifted + 20 条 matched 组成。

因此最准确的结论是:KODA 能把人类域已经覆盖的新外观/几何变化转移到机器人策略,而不是凭空 zero-shot 泛化到从未见过的对象。

四任务合并后的真实机器人计数与 95% Wilson 区间
控制器配置条件成功数/总数成功率95% Wilson证据
SONIC完整 KODAID58/8072.5%计算中Table 1
SONIC完整 KODARobot-OOD39/8048.75%计算中Table 1
HEFT完整 KODAID61/8076.25%计算中Table 1
HEFT完整 KODARobot-OOD41/8051.25%计算中Table 1
4语言引导任务
2控制器
20每任务/条件试验
1×每配置训练运行

四个任务:杯子入篮、包裹上架、篮子上架、杯子入抽屉。成功标准是完成放置,且没有摔倒或无法恢复的操作失败。

§2.2 证据强度:最强结论与不能外推的部分

闭环性真机是闭环 VLA 执行;tracking table 是仿真 rollout 诊断。
试验量每任务/条件 20 次,四任务合并 n=80;但每训练配置只跑一次,没有跨 seed 方差。
基线公平性主要基线是同一 backbone 的 robot-only 与内部模块消融;没有与 HALOMI/EgoHumanoid 做端到端成功率对齐。
OOD 真实性相对 robot demos 未见,但人类训练数据覆盖;不属于完全未见类别或新任务组合。
跨本体未做。实验始终是 Unitree G1 + BrainCo hands;变化的是 controller,不是 morphology。

可支持:在同一目标本体和相机约定下,KODA 生成的对齐数据可以分别补充两种 whole-body controller 的数据集,并显著改善 human-covered 的 robot-OOD。

暂不能支持:任意人形本体通用转换、完全未见对象 zero-shot 泛化、或 KODA 必然优于 HALOMI/EgoHumanoid 的端到端结论。

§3.1 为什么 HALOMI / EgoHumanoid 不能直接 enter other controller datasets?

它们当然也是 ego-to-robot:都从人类第一视角示范得到机器人学习信号。区别不在输入,而在最终监督标签停在哪一层。

人类 ego 数据
视觉、头/手运动、任务语言
→
HALOMI / EgoHumanoid 路径
直接进入特定 policy/controller 所需的 action representation;数据标签与接口绑定。
↛
另一 controller 的现有数据
动作维度、状态定义、参考系和闭环动力学不同,不能只靠拼接数据解决。
“不能直接进入”的具体含义
不兼容层为什么会冲突KODA 怎么处理
动作空间SONIC 是 64 维 body label + 12 维 hand;HEFT 是 29 关节 + 9 pelvis + 12 hand,共 50 维。从同一 canonical motion 分别 rollout,重新生成各自 action。
状态分布同一个参考运动,被不同 low-level controller 跟踪后,实际关节与姿态会有残差。用该 controller 的 rollout 记录实际 state,而非复制理想轨迹。
观测—动作配对人类画面中的手臂外观、相机运动与机器人执行不一致。把图像重建成 motion-aligned 的 robot onboard view。
数据 schema已有 robot demos 已按某个 VLA/controller 预处理;接口不一致时无法直接 co-train。最后一步做 controller-specific instantiation,匹配目标数据集 schema。

§3.2 Canonical record:controller-agnostic,但不是 embodiment-agnostic

一条人类示范可写成:

$$e^h = (\{I_t^h, D_t^h, C_t^h, J_t^h\}_{t=1}^{T},\; \ell)$$

经过运动与视角对齐,KODA 得到目标机器人 (R) 的 canonical record:

$$e_R^{\mathrm{can}} = (\{I_t^R, q_t^R\}_{t=1}^{T},\; \ell)$$

再用控制器 κ 的生成器 (G_\kappa) 实例化:

$$e_R^\kappa = G_\kappa(e_R^{\mathrm{can}}) = (\{I_t^R,s_t^\kappa,a_t^\kappa\}_{t=1}^{T},\;\ell)$$
(I_t^R)按目标机器人相机姿态合成的 onboard image。
(q_t^R)目标机器人本体的可执行 whole-body configuration;这里已经固定为 G1 + BrainCo。
(s_t^\kappa,a_t^\kappa)由指定 controller rollout 得到的状态和控制标签。

同一 record → SONIC

输出 76 维动作标签:64 body + 12 hand;状态也来自 SONIC rollout。

同一 record → HEFT

输出 50 维动作标签:29 joint + 9 pelvis + 12 hand;状态来自 HEFT rollout。

回答你的第三个问题:KODA 目前能从同一份 canonical G1 数据生成不同控制器所需的数据,不能直接把它当成“为不同机器人本体生成数据”的已验证方案。换本体要重新做 URDF/关节映射、手部 retarget、相机外参、碰撞与动力学约束、rendering,并重新验证;论文没有做这个实验。
检查理解:KODA 的 controller-agnostic 等于 embodiment-agnostic 吗?

§4.1 Figure 2:实现流水线,跟着信号走一遍

Figure 2:KODA 完整工程流水线
Fig. 2 · p.3KODA pipeline:上方是全身运动生成,中央是主数据流,下方是 onboard view synthesis。这张图比 Figure 1 更接近“模块设计图”,不承担 controller silo 的动机论证。
跟着一条人类示范走完整条数据链
1 / 6

第 1 步:读入人类 episode

RGB/深度、相机位姿、双手 3D 信号和语言被同步成 50 Hz 序列。

第 2 步:先把手与接触关系弄对

估计 MANO 手姿,位置 retarget 到机器人手,并借助物体表面接触修正抓取几何。

第 3 步:从稀疏头—手变成全身轨迹

在物理仿真中优化 torso、legs、arms,使 G1 能站稳并跟踪手腕。

第 4 步:让图像看起来像机器人真的在那里

相机跟随生成的机器人运动;场景点云和 robot render 通过深度遮挡关系合成。

第 5 步:按 controller 重新 rollout

SONIC 与 HEFT 分别接收优化过的参考命令,产生实际状态与动作标签。

第 6 步:与对应真机数据共同训练

同一语言任务下的图像、状态、动作打包为与目标 robot dataset 兼容的样本。

§4.2 Whole-Body Motion:为什么不是“把手腕轨迹 IK 一下”就结束?

人类胸前相机和双手只给出稀疏约束。直接 IK 容易产生不可平衡、不可接触、控制器跟不上的轨迹。KODA 先构造手部目标,再用全身优化把它变成动力学上可执行的 G1 motion。

  1. HAWOR:估计世界坐标下的 MANO 双手姿态。
  2. Position retargeting:映射到 BrainCo 手腕与手指参考。
  3. Contact-aware refinement:由 EfficientSAM3 物体 mask 与深度形成交互几何;没有可靠接触时保留初始化。
  4. ScaleBFM + SCO:将 torso 和双腕作为关键跟踪点,在 MJX 中滚动优化全身命令。
  5. Mink temporal IK:固定 SCO 的躯干/下肢结果,进一步压低手腕误差。

SCO 的本质可写成“从候选命令分布里反复采样,选择累计 tracking cost 最低的 elite,再更新分布”:

$$u_{t:t+H-1}^{(i)} \sim \mathcal{N}(\mu,\Sigma),\quad J^{(i)}=\sum_{\tau=t}^{t+H-1} c(x_\tau,u_\tau),\quad (\mu,\Sigma)\leftarrow\mathrm{Fit}(\text{elite})$$

论文配置:50 Hz、horizon 40、每轮 80 个候选、8 轮;全身阶段 10 个 elites。这里的公式是对 CEM/SCO 过程的概括,不是论文新推导。

Figure 3:KODA 全身运动与控制命令生成细节
Fig. 3 · p.6运动生成与 controller command optimization 的可视化。同一参考运动进入不同 controller 后必须重新优化,这是 action label 不能直接互换的物理原因。

§4.3 Robot Onboard View:不是“换皮”,而是重建观测—运动一致性

如果只把人臂抹掉或固定偏移相机,机器人看到的桌面、物体与自身手臂仍可能和动作轨迹错位。KODA 让相机位姿来自 canonical robot configuration,再做几何优先的合成:

人臂分割
EfficientSAM3 得到要移除的区域
→
几何重建
metric depth backprojection + z-buffer + MuJoCo robot render
→
深度合成与补洞
冻结有效 scene/robot pixels;DiffuEraser 只补残余孔洞
Observation alignment ablation · SONIC macro-average
观测处理IDRobot-OOD说明
No alignment62.5%18.75%原人类图像与机器人 action 错配
Fixed offset63.75%23.75%固定相机偏移不能表达真实全身运动
Motion-based reprojection66.25%37.5%相机随机器人 motion 重投影
Full alignment72.5%48.75%再加人臂移除、机器人渲染与合成

§4.4 Controller-specific command generation:共享物理目标,不共享标签

KODA 把 canonical G1 轨迹当作共同的物理参考,再让 SONIC 与 HEFT 分别 rollout。两者共享 44 维状态 schema:29 维 body joints 与 3 维 projected gravity 来自各自 controller rollout;12 维 hand angles 来自几何重定向估计,并非执行器测得的手部状态。动作 schema 则直接不同。

Control command SCO ablation · SONIC macro-average
生成方式IDRobot-OOD解释
Without SCO48.75%7.5%直接标签与真实 controller rollout 分布偏离
With SCO72.5%48.75%在闭环中优化可跟踪命令,并记录相应 state/action
Figure 4:KODA 真机任务的定性执行序列
Fig. 4 · p.7杯子入抽屉任务的定性执行序列。它提供行为形态的定性证据;四任务成功率统计仍应以 Table 1 的 20 trials/task/condition 为准。
2026-10-23 · CONTROLLER INTERFACE AUDIT

补充:换控制器,究竟哪些东西可以复用?

“Controller-agnostic”是对最终部署接口而言,不是说数据生成过程完全不用控制器。Canonical motion 仍借助微调后的 ScaleBFM;canonical RGB、G1 形态、手型和相机也已经固定。将同一目标交给不同 controller,不等于原有观测—动作对无需重编译。

paper · arXiv:2610.21152v1,§3、Appendix A
层可复用内容换接口必须重查
Canonical record绑定本体与相机的 RGB、参考运动、指令换机器人或相机时,需要重新 retarget / render;不是跨形态通用标签。
物理优化空间SCO 第二阶段对未来 pelvis 6 + body 29 = 35 维参考,10 个 knots 共 350 维做优化不是直接在 SONIC 的 64 维 latent token 上搜索。参考仍须通过目标 controller rollout。
SONIC 标签64 body token + 12 hand = 76 维动作encoder、decoder、归一化、时序、checkpoint 必须成套。维数相同不保证 latent 语义相同。
HEFT 标签29 joint + 9 pelvis + 12 hand = 50 维动作pelvis 9 维含旋转编码、相对位移及绝对高度;不能把绝对高度再次累计。
状态与画面44 维统一状态 schema;canonical 画面body/gravity 来自目标 rollout,hand 为几何估计;canonical camera 与新 rollout 只是近似对齐。

为什么不能只追求低腕误差:完整优化使 SONIC rollout 腕位置误差由 61.5 降到 2.88 cm,但相机旋转误差由 0.0784 变为 0.0808 rad,并非所有指标同时改善。优化结果必须分部位、分观测通道核验。

OOD 的关键限定:每任务每控制器 50 条机器人示范;新增 100 条人类示范中有 80 条覆盖 robot-shifted 条件。SONIC 的 OOD 均值 3.75%→48.75%,HEFT 5.0%→51.25%,是人类数据补齐机器人分布的证据,不能写成“所有训练数据都未见的 OOD”。

关联阅读:EgoHumanoid-V2 的 controller-consistent alignment · SONIC 的接口契约 · 六篇链路总览。未审计用户实际部署 wrapper。

§5 审稿式结论:KODA 真正解决了什么,还差什么?

最准确的一句话:KODA 是一个数据编译器:把人类 ego episode 编译成与指定机器人运动和视角一致的中间表示,再面向每个 controller 编译出可 co-train 的状态—动作样本。
真正新且有用把 observation alignment 与 control-interface alignment 放在同一个 ego-to-humanoid 数据生成框架里;canonical record 明确了可复用边界。
最强实验信号两个控制器的 robot-OOD 都随人类示范规模明显上升,且 full view alignment / command SCO 消融幅度大。
跨本体缺口只验证 G1 + BrainCo;没有第二种 morphology、相机安装、手型或自由度。
统计缺口每配置单次训练;预算子集独立采样而非 nested,论文未给采样比例细节、seed 方差或置信区间。
接触缺口细粒度手—物交互仍不能完全复现,也不建模接触力;作者将 real-to-sim/contact modeling 列为未来工作。
比较缺口没有与 HALOMI/EgoHumanoid 在同一 VLA、同一 controller、同一任务下直接比较。
如果要把 KODA 真正扩成 multi-embodiment,最少还要验证什么?

至少需要第二种机器人形态,明确 canonical record 中哪些变量进入 embodiment-neutral task space,重新定义跨本体接触/可达性约束,并分别报告 view synthesis、controller rollout 和真机成功率。否则“可以适配”只是工程可行性推断,不是论文已经证明的结论。

展开释义 · limitation(非逐字引文)

当前方法没有完整建模接触力,也不能保证细粒度手—物交互被准确复现。

— 对 Limitations, p.11 的中文释义

与 VLA / Embodied AI 的联系

对 VLA / WAM,KODA 的产物是可训练的观测—状态—动作样本,不是可以忽略底层接口的万能人类数据。先冻结目标本体、controller checkpoint 和动作时间基准,再生成训练标签;换 controller 后重做标签与 rollout 验证,往往比只改动作头维度更重要。