精读笔记
Problem Setting
这篇论文不是在做 end-to-end perceptive locomotion,而是在补 humanoid locomotion pipeline 中一个长期被低估的接口层:给定高层产生的下一步或双脚目标,低层能否准确、稳定、可真机部署地把脚放过去。
真正困难点在于 foothold tracking 同时夹在三个不匹配之间:高层 planner 输出离散落脚点,低层关节控制是连续动力学,真实机器人观测又缺 base pose / contact / terrain state 的可靠估计。velocity policy 在普通移动中可以靠鲁棒性掩盖这个问题,但在 sparse foothold、窄桥、楼梯边缘、避障、人机共处和操作前定位中,落脚误差本身就是 failure mode。
以前方法卡住的地方不是“不会走”,而是控制接口不对:velocity command 把 foot placement 当成 emergent behavior;已有 foothold tracker 又经常把可部署性建立在不现实观测上,例如 root-frame target 需要高质量 localization,contact flag 需要可靠触地估计,或者整个 tracker 只服务于某个特定 pipeline。本文的关键矛盾是:要有显式落脚控制,但不能把低层控制器绑定到难估计状态或特定地形。
Motivation
作者的核心观察很直接:如果未来 humanoid 要做安全导航和 loco-manipulation,高层最终需要控制的是接触位置,而不是 base velocity。velocity policy 的鲁棒性已经足够强,但它的 command space 和 downstream task 的约束空间错位;越到精确任务,这种错位越明显。
现有 foothold-conditioned 方法已经说明“命令脚”比“命令速度”更自然,但缺口在于 general-purpose 和 deployable。很多工作在模拟中成立,是因为有 root pose、contact state、terrain truth 或预定义 motion/terrain;到了真机,这些量要么噪声大,要么延迟大,要么不可直接获得。本文想填的不是一个更强 planner,而是一个可以被任意 planner 调用的低层足端跟踪 primitive。
因此动机可以概括为:把足端跟踪从 monolithic perceptive locomotion pipeline 里拆出来,做成一个只依赖 proprioception、gait phase 和局部相对 foothold command 的独立 controller。
Core Idea
论文真正的核心不是“用 PPO 学 foothold tracking”,而是重新定义 foothold command 的坐标系和训练分布。目标被表示为相对于当前 stance foot 的下一步 3D 位姿,并在一个 swing phase 内保持不变。这样 policy 看到的是一个局部、接触锚定、相位稳定的目标,而不是随 base state estimation 噪声持续漂移的 root-frame target。
这个建模改变引入了很强的 inductive bias:双足行走的下一步本质上是从支撑脚到摆动脚的相对接触变换。只要支撑脚被视作局部参考,planner 的全局误差、base localization 噪声和视觉延迟就不会在 swing 中持续污染目标。相比 velocity policy,它把高层约束直接投到 contact space;相比 root-frame foothold tracker,它把控制问题局部化到一个更接近机器人真实可观测性的 frame。
另一个核心点是训练时不用固定地形,而用 goal sampler + 动态支撑面生成可行的相对足端目标。直觉上,这把 sparse foothold 的 combinatorial planning 问题从低层训练中剥离掉:低层只学“给我一个局部可行落脚点,我如何落准”,而不是同时学“哪里能踩”和“怎么踩”。这使 controller 更容易成为可复用模块。
Method
1. Stance-foot frame target:解决 root-frame / base-frame target 对 localization noise 敏感的问题。目标在 swing phase 内恒定,policy 不需要每个控制周期根据 noisy base pose 重新解释落点。核心变化是把 tracking reference 从移动的 body frame 改为接触锚定 frame。
2. 不使用 contact flags 作为 actor 输入:解决真机接触估计不可靠的问题。训练 reward 可以用 simulator contact,但部署 policy 不依赖该量。这一点对 sim-to-real 很关键,因为 binary contact 在真实硬件上往往比 IMU/joint sensing 更脆弱。
3. 3D foothold + yaw command:解决只会平面前走或只约束部分自由度的问题。它让同一个低层 policy 可以接 stairs、ramps、lateral walking、backward walking、spiral stairs 等不同 planner 输出。但这里的“general”主要是 command-space general,而不是自动 terrain understanding。
4. Goal sampler + moving pillars:解决 sparse foothold RL 的训练稀疏性和早期失败。sampler 在局部可行域内采样 step length、方向、yaw 和高度,动态支撑面保证 sampled target 有接触可落。这是训练可行性的关键 engineering,同时也定义了 policy 的能力边界。
5. Tracking reward 的设计:解决“脚最终落准”和“行走过程自然稳定”之间的冲突。swing tracking 直接优化目标误差,stance reward 保留 touchdown accuracy,feet swing/knee clearance 让相位和 3D 高度跟踪可学。这里没有特别新的理论,但 reward 与表示方式对齐,减少了 policy 学错代理目标的机会。
Key Insight / Why It Works
最可能的核心贡献是 representation alignment,而不是 RL 算法。把 foothold target 放在 stance-foot frame,本质上把任务变量对齐到双足接触动力学的自然局部坐标:下一步是否可达、是否交叉、是否需要抬脚,主要由支撑脚到摆动脚的相对变换决定,而不是由全局 base pose 决定。这也是为什么 root-frame policy 在无噪声时甚至更准,但一加 localization noise 就掉得快;stance-foot 表示牺牲了一点理想状态下的信息精度,换来真实部署下的稳健性。
第二个有效原因是问题分解得比较干净。高层负责选择 foothold,低层负责 tracking;训练 sampler 只覆盖局部可行落脚分布,不试图让低层从视觉中推断可踩区域。这个分解降低了 RL 的信用分配难度,也避免了 sparse foothold 场景中“踩不到就摔、摔了就没学习信号”的问题。换句话说,论文的 generality 不是来自 policy 会规划,而是来自它把规划接口标准化为局部足端目标。
第三个原因是 curriculum/data coverage。flat-to-3D fine-tuning、moving pillars、domain randomization 和大规模并行采样共同撑起了能力边界。stairs/ramps 的表现更像是在训练分布内对 z-offset tracking 和 step geometry 的组合泛化,而不是强语义泛化。ramp 上能走斜面值得注意,因为训练支撑面主要是 pillar/flat contact,但这仍可能来自足端高度目标和动力学随机化形成的鲁棒策略,而非理解坡面几何。
哪些可能只是辅助:PPO、MLP 结构、PD target action、常规 smoothness/no-slip/body-height reward 都是 locomotion RL 标配;不是论文的本质创新。delay compensation 在真机中很实用,但更像 deployment patch,说明固定 open-loop gait clock 到真实系统时仍有相位-接触错配。
需要警惕的归因:与 velocity baseline 的优势在精确落脚任务中几乎是 command-interface advantage,不一定说明低层 policy 本身更强。narrow bridge 和 goal reaching 本来就偏向 foothold command;这验证了任务接口正确,但不能泛化为“整体 locomotion 更鲁棒”。stairs/ramp 实验没有和强 model-based 或 hybrid foothold tracker 做直接比较,增益来源不清。真实实验是 marker-based relative tracking,避开了完整 localization 和 autonomous foothold selection,因此只验证了低层可被视觉相对目标驱动,不验证完整自主导航。
Relation To Prior Work
这篇属于 DeepLoco / AllSteps / footstep-constrained RL 这一条 foothold-conditioned low-level controller 谱系,而不是 velocity-based perceptive locomotion 或 model-based MPC 谱系。它与这些工作的共同点是:用 gait phase 给定时序,用 RL 学 joint-level policy,用 foothold target 作为 goal-conditioned input。
真正不同点在于 deployability-oriented representation。DeepLoco/AllSteps 一类方法常用 root/body frame target 和 contact state,训练或评估假设偏 simulation;本文把目标改为 stance-foot frame,并移除 actor 对 contact flag 的依赖。这是实质创新,因为它直接针对真机 state estimation 的痛点,而不是换一个 planner 或 reward。
和 Duan et al. 这类 sim-to-real footstep constrained walking 相比,本文扩展到了更通用的 3D/yaw command 和多上游 planner,而不是主要展示平地前进。和 Huang et al. narrow path 这类系统相比,本文不是为单一窄路 pipeline 设计 tracker,而是把 tracker 作为可替换低层模块。
但也要承认,很多看似新的部分是已有思想重组:goal-conditioned RL、asymmetric PPO、domain randomization、phase clock、PD target action、reward shaping、procedural target sampling 都不是新东西。本文的新信息主要在于:stance-foot-frame command + terrain-agnostic local goal sampler 这一组合把 foothold tracker 从“pipeline component”推向“可复用 locomotion primitive”。
Dataset / Evaluation
评估覆盖面比一般 foothold tracker 更宽:有平地 goal reaching、窄桥、cluttered footstep planning、直楼梯、旋转楼梯、坡道和真机 marker tracking。它确实验证了一个关键 claim:同一个低层 FT policy 可以接不同类型的上游 planner,并在多个接触精度敏感任务中工作。
与 velocity policy 的比较支持“显式 foothold command 在精确落脚场景更合适”这个结论,但不应被解读为全面优于 velocity locomotion。benchmark 设计天然偏向足端精度,velocity baseline 通过 P controller 间接实现离散落脚,本来就处于接口劣势。这个比较的价值在于暴露 command mismatch,而不是公平比较所有 locomotion 能力。
frame ablation 是论文里最有说服力的实验之一:root-frame 在无噪声下可以更准,但加 realistic pose noise 后明显退化,说明 stance-foot representation 的鲁棒性不是口头 claim。它直接支撑了本文最核心的设计选择。
真机实验有价值但范围有限。它证明了零样本 sim-to-real 和视觉相对目标接入可行,但场景是人工 marker、短 corridor、手动 reset,并且引入了 phase freeze/delay compensation。它没有验证复杂真实地形上的自主 foothold generation,也没有证明系统能在 perception failure 或 planner failure 下恢复。
Limitation
最大限制是问题被清晰地转移给了高层 planner:低层 tracker 只保证在局部可行 command distribution 内尽量落准,不负责判断 foothold 是否长期可达、是否动态安全、是否全局最优。只要 planner 给出超出训练可行域的目标,或者连续目标导致不稳定姿态,policy 没有显式可行性证书。
第二,固定 gait phase 是双刃剑。它让训练稳定、接口简单,但限制了 adaptive timing。真实部署中作者已经需要 freeze phase 等 touchdown,这说明严格 open-loop cadence 和真实接触事件并不总对齐。未来如果面对强扰动、滑移、可变步频、急停转身,这可能成为主要瓶颈。
第三,所谓 terrain-agnostic 有边界。训练不绑定具体楼梯或坡道,但仍绑定于 sampler 的 step length、height、yaw、friction、contact geometry 分布。泛化更像是对局部相对足端目标空间的覆盖,而不是对任意地形的结构泛化。核心能力可能主要来自数据覆盖 + curriculum + domain randomization。
第四,moving pillars 是有效 engineering,但也可能引入隐含假设:目标点总有足够支撑面、支撑面局部平整、接触高度准确。真实世界中 foothold 可能倾斜、软、碎、边缘不完整或摩擦未知;本文对这些接触不确定性的处理有限。
第五,增益归因仍不完全清晰。stance-foot frame、3D sampler、reward terms、large-scale PPO、domain randomization、planner tuning 都同时存在。除了 frame ablation 外,其他组件缺少系统拆解;因此哪些性能来自核心表示,哪些只是 scaling / data / reward engineering,文中未充分说明。
Takeaway
- 1. 对 humanoid sparse foothold / loco-manipulation 来说,低层 policy 的 command space 比网络结构更关键;把目标表达在 contact-relative frame 是一个很值得迁移的 inductive bias。
- 2. “通用低层 controller”不一定要端到端看地形。
- 把 foothold selection 和 foothold tracking 分离,反而更容易扩展到多 planner、多任务和真机部署。
- 3. 未来真正值得做的是 planner-policy co-design:高层不仅输出 foothold,还要知道低层 tracker 的可行域、误差分布和相位约束;否则 modularity 会在困难场景下变成接口断裂。
一句话总结
这篇论文把 humanoid RL locomotion 中的低层接口从速度跟踪推进到可部署的 stance-relative 3D foothold tracking,核心贡献是一个更符合接触动力学和真机观测约束的 representation,而非新的 RL 算法。
