> ## Documentation Index
> Fetch the complete documentation index at: https://kensou.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Humble human motion driven behavior learning for e dissection

[//]: # "<!-- ontology-5axis
problem: navigation
representation: n/a
sensor: IMU
paradigm: learned
time: filter-streaming
ref: ../../cheat-sheet/ontology.md §5
\-->"

# HuMBLE 人类动驱动行为学习的具身行走 (HuMBLE: Human Motion-Driven Behavior Learning for Embodied Locomotion)

> **发布时间**：2026-10-07（arXiv v1）
> **论文 / 模型名**：HuMBLE（Human Motion-driven Behavior Learning for Embodied Locomotion）
> **核心定位**：用「教师-学生蒸馏 + 多任务 RL 微调」把人类全身动作先验压进一个 **只吃本体感觉 + SE(2) 命令** 的轻量 MLP 策略 —— 先学"像人"，再学"听命令"；在 Atlas R1 / D1、Unitree G1 上零样本部署，同时保住 biomimetic 步态和全向转向能力。

现有 humanoid 控制器要么为指令跟踪/鲁棒性做了极致优化而步态机械，要么死绑人体动捕数据而离开数据集分布就失稳。**HuMBLE 的答案是分两阶段解耦这两个目标**：先把全身动作代理蒸馏成只观测量本体感 + 速度命令的「自然行走先验」，再用「参考引导模仿 + 目标条件命令跟踪」的 50:50 多任务 RL 把命令空间撑开同时锚住风格。

## X-Ray 开场

一句话：**把人类运动数据当作只在训练时可见的"特权信息"，蒸馏出运行时不需要任何 reference 的紧凑策略，再用显式参考跟踪奖励当风格正则把微调阶段"拉回人形"**。关键贡献不是某个网络结构，而是**将"风格获取"与"命令覆盖扩展"两件事拆成两个训练阶段**——第一阶段保证"像人"，第二阶段保证"听全向命令"，两阶段之间的粘合剂是教师-学生蒸馏和 GC-RSI（Goal-Conditioned Reference-State Initialization）。对 spatial AI 研究者的意义：它示范了一种\*\*"特权动捕数据 → 部署时零 reference"的范式\*\*，与 SLAM/VIO 里"训练时用 GT 轨迹监督、部署时纯 IMU"在信息流上同构。

***

## 📍 研究全景时间线

```
2002 ASIMO              2012 PETMAN            2018 DeepMimic
   │                       │                       │
   ▼                       ▼                       ▼
[手工步态] ──────────── [液压能量步态] ──────── [参考动作 RL 模仿] ──┐
                                                                    │
2021 AMP ──► 2022 ASE ──► 2023 CALM ──► 2023 MotionDiffusion       │
   │           │            │                │                     │
   ▼           ▼            ▼                ▼                     │
[对抗风格奖励][技能潜空间][分层可控]    [生成式动作模型]            │
                                                                    │
2024 MaskedMimic ──► 2024 HumanMimic ──► 2025 DiffuseLoco/BeyondMimic
   │                     │                     │
   ▼                     ▼                     ▼
[掩码扩散蒸馏][Wasserstein 对抗]      [扩散策略直接输出动作]
                                                                    │
2026 ZEST ──► 2026 HuMBLE (本文)                                    │
   │              │                                                 │
   ▼              ▼                                                 │
[动捕→RL 模仿] [蒸馏 + 多任务微调] ◄────────────────────────────────┘
                                                                    │
未来（本文局限）：平地 → 楼梯/攀爬/跳箱；SE(2) → 语义/语言命令；MLP → 容量扩展
```

**HuMBLE 的位置**：站在 ZEST（它的教师训练基础）和 MaskedMimic（仿真角色同类蒸馏思路）之间，把"特权参考蒸馏 + 命令微调"这套 recipe 第一次系统搬到多款真实 humanoid 硬件上，并给出可解释的 50:50 风格-覆盖旋钮。

***

## 1 · 核心架构 / 方法总览

### 1.1 系统/组件对比

| 模块 | 输入 | 输出 | 训练 / 推理差异 |
| - | - | - | - |
| **π\_teacher** | `o_deploy` + `o_ref`（全身参考：躯干高度、线/角速度、投影重力、关节目标位姿） | 关节动作 | 仅训练；用 RL（PPO + Asymmetric Actor-Critic + ZEST 辅助 wrench curriculum）训练，跟踪参考 |
| **π\_prior** | `o_deploy = (o_prop, o_cmd)` | 关节动作 | 训练；**DAgger 蒸馏**（公式 6），标签来自 π\_teacher |
| **π\_deploy** | `o_deploy`（同 π\_prior） | 关节动作 | 推理；**单 MLP**，50 Hz 输出关节位置目标 → 底层 PD 跟踪 |
| **o\_prop** | — | `(v_IT^T, ω_IT^T, g_I^T, q_j, q̇_j, a_{t-1})` | IMU 线/角速度（躯干系）、投影重力、关节位置/速度、上一步动作 |
| **o\_cmd** | — | `(v̂_long, v̂_lat, ω̂_turn)` | SE(2) 转向命令：纵向/横向速度 + 转向率 |
| **底层 PD** | 目标关节位置 | 关节力矩 | 增益按关节 armature 设计（ZEST 流程）；G1 参数见表 S7 |

> ⚠️ 注意：**π\_prior 与 π\_deploy 网络结构完全相同、观测空间完全相同**，区别只在训练目标和被初始化的方式 —— 这是论文刻意保证的，以便 Stage II 可以"从 π\_prior 无缝续训"。

### 1.2 关键机制

**Stage I — 教师-学生蒸馏（Distillation）**：

1. 先在 Isaac Lab 中用 RL（PPO）训练 π\_teacher，它能看到全身参考 `o_ref`，目标是重建人体动捕重定向后的机器人参考动作。
2. 再用 DAgger：让 π\_prior 自己 rollout，由 π\_teacher 在同一状态下打标签，监督学习 `π_prior(o_deploy) → π_teacher(o_teacher)`。
3. **效果**：π\_prior 从"部分可观测（只有本体感 + SE(2)）"出发学会了"从命令反推全身协调" —— 但只在数据集分布内（in-distribution）。

**Stage II — 多任务 RL 微调（Fine-tune）**：

1. 并行环境分两组：`E_ref`（短视界参考引导）和 `E_goal`（长视界目标条件）。
2. `E_ref` 用 `r_ref = r_teacher = r_track + r_reg + r_survival`，**短 episode**（防止长程漂移让参考跟踪奖励失效）。
3. `E_goal` 用 `r_goal = r_cmd + r_reg + r_survival`，**长 episode**，命令随机重采样，并加**GC-RSI**（按目标速度命令查表 → 取相近参考帧 → 加扰动初始状态）。
4. 关键 trick：把 teacher 的 critic 加载过来并**先冻结 policy 暖启动 5000 iterations**，避免 PPO critic 冷启动把风格打坏；用 critic 端的 `o_sup ∈ {0,1}` 区分两个任务域，并对两组 advantage 分别归一化。

> **⚡ Eureka Moment**：**把"像人"和"听命令"解耦 —— 前者靠蒸馏到无 reference 策略，后者靠多任务 RL 中"参考跟踪环境"充当显式、可调比例的风格正则。** 这避免了 AMP/CALM 的对抗训练不稳定，也避免了扩散/flow-matching 的推理开销。

### 1.3 信息流 ASCII 图

```
人类动捕 (Vicon 120 Hz, BVH)
        │
        ▼
两级运动重定向 (spacetime 优化 + 时间按 √空间尺度 缩放)
        │
        ▼
机器人参考轨迹 ────► SE(2) 命令标注 (有限差分 + 低通 + 按加速度回移 + 镜像增强)
        │                   │
        │                   ▼
        │             参考数据集 (N=528,214 帧, ~3 小时)
        │                   │
        ▼                   ▼
┌──────────────────────────────────────────────────────────┐
│ Stage I：教师-学生蒸馏                                     │
│                                                          │
│   π_teacher(o_deploy, o_ref) ──(DAgger 标签)──┐            │
│                    │                          ▼            │
│                    └──────────────────► π_prior(o_deploy) │
│                                                    │      │
└────────────────────────────────────────────────────┼──────┘
                                                     ▼
┌──────────────────────────────────────────────────────────┐
│ Stage II：多任务 RL 微调                                   │
│                                                          │
│   E_ref (50%)  ── r_ref = r_track + r_reg + r_survival   │
│   E_goal (50%) ── r_goal = r_cmd + r_reg + r_survival    │
│                    │  GC-RSI 初始化                      │
│                    ▼                                     │
│              π_deploy (单 MLP)                            │
└──────────────────────────────────────────────────────────┘
                     │
                     ▼ 50 Hz 推理（Atlas 保密；G1 在 Jetson AGX Orin CPU 上用 ONNX Runtime 均 1.1 ms）
         π_deploy(o_deploy) → 关节位置目标 → PD → 机器人
```

***

## 2 · 数学核心

📌 **Napkin Formula**：

> **π\_deploy = MultiTaskPPO( DAgger( π\_teacher , π\_prior ) ; r\_ref ∥ r\_goal )**
> 即：先用 RL 学会"看全身参考做动作"，再把该能力蒸馏到"只看命令 + 本体感"，最后用两套任务并行微调、比例是唯一的显式旋钮。

### 2.1 目标 → 公式 → 变量 → 直觉

**① 观测空间（公式 1–3）**

$\bm&#123;o&#125;_&#123;\text&#123;deploy&#125;&#125; = (\bm&#123;o&#125;_&#123;\text&#123;prop&#125;&#125;, \bm&#123;o&#125;_&#123;\text&#123;cmd&#125;&#125;) \tag&#123;1&#125;$

$\bm&#123;o&#125;_&#123;\text&#123;prop&#125;&#125; = \left(&#123;&#125;_&#123;\mathcal&#123;T&#125;&#125;\bm&#123;v&#125;_&#123;\mathcal&#123;IT&#125;&#125;,\ &#123;&#125;_&#123;\mathcal&#123;T&#125;&#125;\bm&#123;\omega&#125;_&#123;\mathcal&#123;IT&#125;&#125;,\ &#123;&#125;_&#123;\mathcal&#123;T&#125;&#125;\bm&#123;g&#125;_&#123;\mathcal&#123;I&#125;&#125;,\ \bm&#123;q&#125;_j,\ \dot&#123;\bm&#123;q&#125;&#125;_j,\ \bm&#123;a&#125;_&#123;t-1&#125;\right) \tag&#123;2&#125;$

$\bm&#123;o&#125;_&#123;\text&#123;teacher&#125;&#125; = (\bm&#123;o&#125;_&#123;\text&#123;deploy&#125;&#125;,\ \bm&#123;o&#125;_&#123;\text&#123;ref&#125;&#125;),\quad \bm&#123;o&#125;_&#123;\text&#123;ref&#125;&#125; = \left(&#123;&#125;_&#123;\mathcal&#123;I&#125;&#125;\hat&#123;\bm&#123;r&#125;&#125;^z_&#123;\mathcal&#123;IB&#125;&#125;,\ &#123;&#125;_&#123;\mathcal&#123;B&#125;&#125;\hat&#123;\bm&#123;v&#125;&#125;_&#123;\mathcal&#123;IB&#125;&#125;,\ &#123;&#125;_&#123;\mathcal&#123;B&#125;&#125;\hat&#123;\bm&#123;\omega&#125;&#125;_&#123;\mathcal&#123;IB&#125;&#125;,\ &#123;&#125;_&#123;\mathcal&#123;B&#125;&#125;\hat&#123;\bm&#123;g&#125;&#125;_&#123;\mathcal&#123;I&#125;&#125;,\ \hat&#123;\bm&#123;q&#125;&#125;_j\right) \tag&#123;3&#125;$

* `{𝒯}`：IMU 传感器系；`{ℬ}`：躯干系；`{ℐ}`：世界惯性系
* **直觉**：部署策略只能看到"我自己的本体感觉 + 用户给的 SE(2) 速度"，**看不到任何 reference**。这正是 POMDP 的核心设定，也是为什么必须有 teacher 来"给影子"。

**② 教师奖励（公式 4）**

$r_&#123;\text&#123;teacher&#125;&#125; = r_&#123;\text&#123;track&#125;&#125; + r_&#123;\text&#123;reg&#125;&#125; + r_&#123;\text&#123;survival&#125;&#125; \tag&#123;4&#125;$

* `r_track`：让机器人状态逼近参考（躯干高度、躯干线/角速度、投影重力、关节位姿）
* `r_reg`：光滑性与物理可行性正则
* `r_survival`：常数正奖励，抑制过早终止

**③ 非对称 critic（公式 5）**

$\bm&#123;o&#125;_&#123;\text&#123;critic&#125;&#125; = \left(\bm&#123;o&#125;_&#123;\text&#123;deploy&#125;&#125;,\ \bm&#123;o&#125;_&#123;\text&#123;ref&#125;&#125;,\ \bm&#123;o&#125;_&#123;\text&#123;priv&#125;&#125;,\ o_&#123;\text&#123;sup&#125;&#125;\right) \tag&#123;5&#125;$

* `o_priv`：躯干高度、末端相对躯干的位置/速度、辅助 wrench 幅度、广义末端力
* `o_sup ∈ {0,1}`：数据支撑指示器。Stage I 恒为 0；Stage II 中 `E_ref` 为 0、`E_goal` 为 1。**这是让同一个 critic 学会"双价值函数"的关键**。

**④ 蒸馏目标（公式 6）**

$\bm&#123;\pi&#125;_&#123;\text&#123;prior&#125;&#125; = \arg\min_&#123;\bm&#123;\pi&#125;&#125; \mathbb&#123;E&#125;_&#123;\pi&#125;\left\| \bm&#123;\pi&#125;(\bm&#123;o&#125;_&#123;\text&#123;deploy&#125;&#125;) - \bm&#123;\pi&#125;_&#123;\text&#123;teacher&#125;&#125;(\bm&#123;o&#125;_&#123;\text&#123;teacher&#125;&#125;) \right\| \tag&#123;6&#125;$

* **直觉**：DAgger 的在线模仿 —— π\_prior 自己跑出的状态由 π\_teacher 打标签，避免分布偏移。

**⑤ 微调奖励（公式 7–8）**

$r_&#123;\text&#123;fine-tune&#125;&#125; = \begin&#123;cases&#125; r_&#123;\text&#123;ref&#125;&#125; & \text&#123;if env&#125; \in \mathbb&#123;E&#125;_&#123;\text&#123;ref&#125;&#125; \\ r_&#123;\text&#123;goal&#125;&#125; & \text&#123;if env&#125; \in \mathbb&#123;E&#125;_&#123;\text&#123;goal&#125;&#125; \end&#123;cases&#125; \tag&#123;7&#125;$

$r_&#123;\text&#123;goal&#125;&#125; = r_&#123;\text&#123;cmd&#125;&#125; + r_&#123;\text&#123;reg&#125;&#125; + r_&#123;\text&#123;survival&#125;&#125; \tag&#123;8&#125;$

* `E_ref` 用 `r_teacher` 完全一致的形式（含 RSI），但只给 `o_deploy`（无 reference）
* `E_goal` 用 `r_cmd`（匹配 SE(2) 速度）替代 `r_track`
* 环境分配比（默认 50:50）**是唯一显式控制"风格 vs 覆盖"的超参数**

***

## 3 · 带数字走一遍（玩具设定，非论文数据）

**目标**：估算一次 DTW 对齐后的 MAE 如何映射为论文中的"归一化误差"。

设某段 5 个 DTW 对齐时间戳上：

* 参考躯干线速度 `v_ref = [1.00, 1.20, 1.05, 0.95, 1.00] m/s`
* 部署 rollout 速度 `v_dep = [1.08, 1.13, 1.02, 0.98, 1.04] m/s`
* 逐点误差 `|v_ref - v_dep| = [0.08, 0.07, 0.03, 0.03, 0.04] m/s`
* **MAE = 0.05 m/s**

参考轨迹标准差 `σ_v = 0.390 m/s`（论文给出的真实值），所以归一化误差 = 0.05 / 0.390 ≈ **0.128σ**。

论文真实结果是：部署策略 `v` 的 MAE = **0.058 m/s**，对应 **0.149 σ\_v** —— 两者量级一致，验证"MAE → 归一化误差"这条换算链。

**上升时间玩具**：命令阶跃 1.35 m/s，3.0 s 视为稳态；机器人 1.6 s 首次达到 1.215 m/s（= 90% × 1.35），则 `rise_time = 1.6 s`。论文未报告逐命令的上升时间表，仅给出热力图（Figure 4B），故不引用具体秒数。

***

## 4 · 工程视角

| 指标 | 数值 | 来源 |
| - | - | - |
| 策略推理频率 | **50 Hz** | 论文（Deployment Policy 段） |
| 单次推理延迟（Unitree G1） | **1.1 ms**（NVIDIA Jetson AGX Orin **CPU**，ONNX Runtime） | 论文（Application 段） |
| 单次推理延迟（Atlas R1/D1） | **论文未报告**（保密协议） | — |
| 网络结构 | 单个 MLP（论文称"简单/紧凑 MLP"，**层宽/层数/参数量未报告**） | — |
| 内存占用 | **论文未报告** | — |
| 训练算力 / 仿真时长 | **论文未报告**（仅提 Isaac Lab 仿真器与 5000 iter critic 暖启动） | — |
| 控制频率 | 50 Hz 策略 → 底层关节 PD（具体 PD 频率论文未报告） | — |
| 状态估计依赖 | `o_prop` 中 `v_IT^T` 来自平台 onboard 状态估计器；G1 室外漂移场景训练了 **去除线速度观测** 的替代 policy | 论文（Hardware Deployment 段） |

**Trade-off 要点**：

* **50 Hz + 1.1 ms CPU 推理**意味着几乎无实时性压力，可跑在低算力 onboard 计算机上；这是它相对扩散/flow-matching 路线的核心优势。
* **MLP 容量 vs 动作多样性** 未做伸缩分析（论文自认开放问题）。
* 用户 joystick 输入做了**速率限制**（论文承认牺牲了一部分 responsiveness 换平滑驾驶体验）。

***

## 5 · 数据与评测

### 5.1 数据组成（逐字来自论文）

* 采集：**Vicon** 动捕系统（120 Hz），marker set + 角色 rig，BVH 格式导出
* 规模：**N = 528,214 帧**，约 **3 小时**人类走路动作
* 分布：fast / normal / slow walk + sidestep，含 sprint；`v_long`、`v_lat`、`ω_turn` 直方图见 Figure 7（按 1/10 抽样）
* 增强：沿矢状面**镜像**全部轨迹（既扩充覆盖，又强制左右对称）
* 重定向：两级 spacetime 优化（先到类人 proxy 骨架，再到机器人形态），时间按 `√(空间缩放)` 缩放以保持 `g = 9.81 m/s²` 下动态一致
* 命令标注：有限差分求躯干线/角速度 → 低通 → 按躯干加速度**回移时间** → 抽取 `x`、`y`、`yaw` 分量

### 5.2 评测设置

| 维度 | 设置 |
| - | - |
| 仿真器 | **Isaac Lab**（主）+ **MuJoCo**（交叉验证） |
| 机器人平台 | Boston Dynamics **Atlas R1**、**Atlas D1**、Unitree **G1** |
| 数据保真度 | 8 条 canonical motion（slow/normal/fast × forward/backward + turn-in-place + sidestep），**DTW 对齐**后算 MAE（躯干线速、角速、关节位置） |
| 命令覆盖 | SE(2) 网格扫描，稳态误差（**3.0 s** 后）与 **90% 上升时间**；对照组为 Tabula Rasa RL（同观测/动作/Domain Randomization，无人类数据） |
| 鲁棒性 | 连续 **0.2 s** 脉冲推力；摔倒判定 = 躯干 pitch/roll 超 **30°** 或高度低于标称 **40%**（Atlas R1） |
| Sim-to-real | 阶跃命令（前向 0.4/1.2/2.0 m/s、后向 −0.3/−0.9/−1.5、横移 ±0.7、±1.0、原地转向 ±1.0/±2.0/±3.0 rad/s、前向圆弧 1.0 m/s 配 ±1.0/±1.5 rad/s），报告稳态误差与整段 MAE |
| 关键结果数字 | 部署策略 MAE：**0.058 m/s / 0.127 rad/s / 0.055 rad**；教师：**0.048 / 0.055 / 0.033**；相对误差 **20.83% / 130.31% / 67.58%**；DTW 平均时间位移 **68.7 ms**；参考标准差 **0.390 m/s / 0.491 rad/s / 0.300 rad**，归一化 **0.149σ\_v / 0.257σ\_ω / 0.184σ\_j**；Atlas R1 可承受 **1400 N** 推力；sim-real 差距多数命令在 **0.05 m/s / 0.10 rad/s** 内；消融：单阶段基线误差增加 **16.36% / 54.85% / 70.87%**（sidestep 上放大到 **240.87% / 80.54% / 186.34%**） |

> ⚠️ 评测数据集**不是**公共 benchmark，而是作者自采的 in-house human locomotion 数据集；G1 的 reference motion 数据集承诺公开，Atlas 数据因保密无法公开。

***

## 6 · 能力与失败模式

### ✅ 能做什么（具体）

1. **Biomimetic 步态特征**：在 Atlas R1 上肉眼可见同步摆臂、支撑腿伸膝、足跟击地、足跟到脚掌滚动；Atlas D1 即便足部形态非人仍保留 heel-to-toe rolling。
2. **全向 SE(2) 命令**：前/后/侧/原地转/前向圆弧/冲刺（G1 上有走→冲刺的 smooth transition）。
3. **命令跟踪精度接近 Tabula Rasa**：大多数 SE(2) 区域与无人类数据 baseline 同级，近零速度命令甚至更好。
4. **鲁棒性**：Atlas R1 在主要方向可承受 **1400 N** 推力；推力方向依赖性与步态几何一致（前向行走纵稳 > 横稳，横移反）。
5. **Sim-to-real**：三平台零样本部署，多数命令误差 ≤ 0.05 m/s / 0.10 rad/s。
6. **可直接当导航栈底层运动层**：仓库环境导航、box parkour（与 climb-up/climb-down 子策略组合）。

### ❌ 不能做什么 / 失败模式（具体）

1. **高速对角行走**是数据稀疏区，SE(2) 网格扫描中相对误差最高。
2. **高速上升时间**比 Tabula Rasa 慢：论文明确归因于"人类数据的自然加速度剖面"，是**有意保留的 trade-off**。
3. **高速原地转向（3.0 rad/s）sim-real gap 扩大**：仿真与真机都变差，论文称"不是 transfer 差，而是命令本身就难"。
4. **Stage I prior 不加微调就不稳**：高速 lateral + yaw 组合（数据最稀疏区）**必然摔倒**（Figure 5C）。
5. **单阶段基线在 sidestep 上完全失败**：只走几步就退化到近乎站立姿势，无法跟踪命令。
6. **100% 参考引导（0 个 goal 环境）** 也会摔：因为它从没在 OOD 命令上练习过 lateral 转向。
7. **平地限定**：作者在 Discussion 明确列出极限 = 楼梯/攀爬/跳箱，需要地形观测 + 新的动捕数据集。

### 🔒 隐含假设 (Hidden Assumptions)

| # | 假设 | 一旦不成立的后果 |
| - | - | - |
| H1 | 平台上有一个**可信的线速度状态估计器** | G1 在室外漂移场景必须切换到"去线速度"版本，代价是速度跟踪精度下降 |
| H2 | 地形是**平的**，无需外感受 | 楼梯/崎岖/跳箱直接失效 |
| H3 | 人类动捕能**可靠重定向**到机器人形态 | 重定向质量直接决定"像人"上限；Atlas D1 非人足部形态已是压力测试 |
| H4 | SE(2) 命令可作为"运动意图"的代理 | 向语义/语言命令扩展需要人工标注或 captioning 模型 |
| H5 | 50 Hz 策略 + 底层 PD 控制带宽足够 | 论文未做更低频率下的稳定性消融 |
| H6 | MLP 容量足以吸收 \~3 小时数据 | 作者自认开放问题：容量极限/参数-性能映射未做 |
| H7 | 训练时 `o_ref` 可得 | 若目标运动没有干净 reference，Stage I 无法启动 |

***

## 7 · 与相关工作对比

| 方法 | 风格来源 | 命令控制 | 运行时是否需要生成模型/reference | 训练稳定性 | 硬件验证 |
| - | - | - | - | - | - |
| **AMP / ASE / CALM** | 对抗判别器奖励 | 分层 latent 或命令条件 | 否 | min-max 调参敏感 | 多数在仿真/四足 |
| **VAE-based** | 潜空间嵌入 | 高层面驱动 latent | 否（但需 decoder） | 中等 | 少数 |
| **Diffusion / Flow-matching**（DiffuseLoco、PDP、BeyondMimic） | 生成模型 | 条件生成 | **是**（迭代采样/积分） | 训练稳定但推理贵 | 多数仿真/少量真机 |
| **MPC + 足步规划**（Atlas 默认） | 无（解析目标） | 直接 | 否 | 稳 | 强 |
| **Tabula Rasa RL** | 无 | 直接 | 否 | 稳 | 强 |
| **ZEST** | 参考动作 RL 模仿 | 技能条件 | 否 | 稳 | 强 |
| **HuMBLE（本文）** | **蒸馏 + 显式参考跟踪奖励** | **SE(2) 直接命令** | **否（单 MLP）** | **稳（无对抗/生成）** | **3 款真机** |

**差异一句话**：HuMBLE = ZEST 的教师 + DAgger 蒸馏 + "50:50 多任务 RL"这三件事的组合，在风格保真和命令覆盖之间给出一个**连续可调的 Pareto 旋钮**。

**🎤 面试 Tip**：

> 被问"为什么用显式参考跟踪奖励做风格正则，而不是 AMP 的判别器？"—— 答：**显式参考奖励给出直接、可解释的'风格-覆盖'Pareto 前沿，50:50 这个比例就是旋钮；判别器路线会引入 min-max 不稳定和 reward scaling 敏感，且只能间接影响行为。** 代价是训练时必须能拿到全身参考 —— 我们用"教师-学生蒸馏"把这个代价留在训练阶段，部署时零 reference。

***

## 8 · GitHub-validated pitfalls (atlas 联动, 2026-10-17)

**仓库信号核查**：通读 arXiv 正文（v1，2026-10-07），出现的 URL 仅有 ONNX Runtime (`https://onnxruntime.ai/`) 与 Vicon (`https://www.vicon.com/`) 两个第三方引用；**未出现 HuMBLE 官方 repo 的可点击 github.com 链接**。正文 Data & materials availability 仅称"G1 相关数据 + G1 reference motion dataset 将发布"，未给托管地址。因此本节按规则视为**无 repo 信号**，以下 pitfall 全部由 §6 失败模式 + 方法约束推导，**未经 issue 验证**。

### Pitfall 1 — "去线速度" policy 是双刃剑：室外部署必须预判漂移

* **机制链**（§6 H1 → §6 失败模式 1）：`o_prop` 显式包含 `v_IT^T`（IMU 系躯干线速度）→ 该量在 G1 室外场景状态估计漂移时噪声大 → 作者训练了一个**排除线速度观测**的替代 policy。
* **工程后果**：如果直接把 Atlas 版本 policy 移植到"状态估计不可靠"的平台，会出现**命令跟踪精度在户外突然退化**——不是网络不行，是输入特征被污染。
* **落地建议**：部署前先验收状态估计器的室外线速度噪声；不行就切"去线速度"变体，并接受精度损失。

### Pitfall 2 — 50:50 是唯一旋钮，但极端比例两侧都会摔

* **机制链**（§6 失败模式 4–6 + 公式 7）：`r_fine-tune` 是分段奖励，`E_ref` / `E_goal` 的比例是风格-覆盖的唯一显式旋钮 → 0:100 会风格塌陷（torso wiggle、arm swing 异常），100:0 在数据稀疏的 lateral+yaw 上直接摔。
* **工程后果**：如果部署目标偏"怪异但对命令响应极限高"（例如强扰动下的抗扰），50:50 不一定是配置；需要按部署场景重新扫比例。论文只给了四条 canonical 命令的 Pareto 曲线，不是全空间。
* **落地建议**：把 50:50 视为"通用默认"，不是"通用最优"；换场景先在仿真里重扫一遍。

### Pitfall 3 — 命令标注 pipeline 是隐藏成本，且不易泛化

* **机制链**（§5 数据组成 + §6 H4）：SE(2) 标注 = 有限差分 + 低通 + 按躯干加速度**回移时间**（假定"未来速度 ≈ 当前意图"）→ 对 SE(2) 成立，对语义/语言命令不成立。
* **工程后果**：想复用到"给定路径点，输出全向速度"这还算简单；想扩展到"给定指令词/目标，输出全身姿态"就必须引入 captioning 或人工标注，数据集规模定律不成立。
* **落地建议**：把 SE(2) 标注当"低成本"上限；任何非 SE(2) 命令模态都按新问题重估数据工程成本。

> **诚实声明**：以上三条均非来自 HuMBLE 官方 issue 流（论文无 repo 信号），而是从 §6 失败模式 + 公式/观测定义推导；在官方 repo 出现后应重新核对。

***

[← Back to Humanoid Locomotion README](./README.md)

> **Status**：v0.1 · 基于 arXiv 2610.10489v1 全文撰写 · 未在真机复现的数字标 `UNVERIFIED`（如"策略推理 1.1 ms"来自论文实测，但本笔记作者未独立复现）

[//]: # "<!-- source: https://arxiv.org/abs/2610.10489 -->"


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.