PAPER DEEP DIVE
RPL:面向复杂地形的鲁棒人形感知行走
RPL 提出两阶段训练框架,先用特权高度图训练多地形专家,再通过高效多深度渲染蒸馏为统一 Transformer 视觉策略,使 Unitree G1 在斜坡、楼梯、踏脚石上双向行走并携带负载。
一句话总结
RPL 先用带高度图特权观测的地形专家学会斜坡、楼梯和踏脚石的解耦移动与操作,再用高效多深度相机仿真、DAgger 蒸馏、DFSV 与 RSM 统一成一个能前后双向行走且可携带 2 kg 负载的深度视觉策略。
一、研究背景与动机
人形机器人近年已经能在运动跟踪、全身控制和精细操作上逼近甚至超过人类动作表现,但真正区别于轮式机器人的核心能力,是它能否在复杂地形上依靠腿足移动,并在移动过程中承担搬运、蹲取等任务。RPL 关注的不是某一段固定路径上的前行,而是前后双向、多种地形、上下楼梯和稀疏踏脚石共同构成的长周期移动问题。
现有感知行走工作大致分成两类。一类依赖 LiDAR 或重建高程图,把环境转成紧凑的地图表示,再交给规划器或策略;另一类直接把深度图映射到动作。第一类的好处是几何信息稳定,但高度依赖标定、状态估计和在线建图,任何延迟或噪声都会直接影响落地一致性。第二类省去了显式建图,却大多只装一个前向相机,只在向前行走的任务里验证,难以处理机器人转身、后退或左右移动时感知视角变化的场景。
当机器人需要双向乃至全向行走时,感知问题会从“前方有没有障碍”变成“哪个相机当前对运动方向最有用”。前后两个相机在同一时刻看到的很可能是完全不同的地形,例如前相机看到楼梯,后相机仍看到踏脚石。若策略把所有视觉特征无差别融合,就会被与当前运动方向无关的视角干扰。RPL 把这种不对称视觉输入当作核心问题,而不是回避它。
除了视角,另一个被低估的问题是地形宽度。训练环境里往往是宽斜坡、宽楼梯和充足空间,真实环境却可能只有 1.2 m 宽的楼梯,或更窄的踏脚石。宽度超出训练分布后,策略很容易依赖图片边缘的横向上下文,而不是中央的局部几何。RPL 用随机侧向遮挡让策略学会在没有宽阔侧向信息时仍然决策。
最后,人形机器人的上身动作会带来动态自遮挡。弯腰搬负载时,手臂、躯干和头部会进入相机视野,单靠静态地形网格渲染出的深度图并不真实。RPL 因此把“动态机器人网格 + 静态地形网格”同时纳入深度渲染,让蒸馏阶段的视觉分布更接近真实机载相机看到的图像。
二、预备知识
RPL 建立在 FALCON 的双智能体控制框架上。FALCON 把全身控制拆成下身移动策略和上身操作策略,二者共享一段最近几步的历史观测。这样上身动作可以主要根据任务目标生成,不必被地形感知直接拖累;下身策略则负责落脚、姿态和速度跟踪。RPL 保留了这个拆分,并只在移动策略中加入地形观测。
训练过程分为两个阶段。第一阶段用 PPO 训练地形专家,专家能看到特权高度图;第二阶段用 DAgger 让学生策略在专家策略产生的交互轨迹上回归专家动作。这种“先教师、后蒸馏”的方式可以把复杂的多地形技能压缩到一个可部署的视觉策略里,同时避免从零学习深度感知的样本低效。
理解 RPL 还需要知道深度相机仿真中的两个难点:一是机器人自身部件遮挡,二是大规模并行训练时的渲染开销。传统物理仿真器每帧重建网格或逐环境串行渲染,多相机下成本很高。RPL 的方案是把机器人各部件网格固定在局部坐标系,只把光线变换进局部帧,再统一做射线查询,从而避免昂贵的世界系网格重构建。
三、方法详解
3.1 两阶段整体设计
RPL 的第一阶段为四种地形分别训练专家:斜坡、上楼梯、下楼梯和踏脚石。专家共享同一套双智能体结构,但奖励函数按地形调整。第二阶段把多个专家蒸馏成一个统一策略,部署时只保留学生移动策略和原本的盲操作策略,组合成完整动作。图 1 给出这个两阶段流程。
图1:RPL 两阶段框架。第一阶段用高度图专家学习多地形移动,第二阶段蒸馏为多深度相机视觉策略。
在时刻 $t$,两个智能体共享同一段原始运动学历史,包括关节位置、关节速度、机身角速度、重力方向与历史动作。论文将其写作:
$$ \mathbf{s}_{t}^{p}=\big[\mathbf{q}_{t-4:t},\dot{\mathbf{q}}_{t-4:t},\boldsymbol{\omega}^{\text{root}}_{t-4:t},\mathbf{g}_{t-4:t},\mathbf{a}_{t-5:t-1}\big]. $$这里 $\mathbf{q}$ 是关节位置,$\dot{\mathbf{q}}$ 是关节速度,$\boldsymbol{\omega}^{\text{root}}$ 是机身角速度,$\mathbf{g}$ 是估计重力方向,$\mathbf{a}$ 是过去动作。历史窗口让策略能从短时动态中推断脚掌接触和身体状态,不需要显式估计接触力。
下身策略的输入还包括移动目标 $\mathbf{G}_{t}^{l}$,其中包含线速度、偏航角速度、站姿模式、根高度和躯干姿态目标;上身策略则只接收上身关节目标 $\mathbf{G}_{t}^{u}$。感知观测只进入下身策略,因为地形主要决定腿脚运动。完整映射可以写成:
$$ \boldsymbol{\pi}_{l}:(\mathbf{s}_{t}^{p},\mathbf{G}_{t}^{l},\mathbf{H}_{t}\;\mathrm{or}\;\mathbf{D}_{t})\rightarrow\mathbf{a}_{t}^{l},~\boldsymbol{\pi}_{u}:(\mathbf{s}_{t}^{p},\mathbf{G}_{t}^{u})\rightarrow\mathbf{a}_{t}^{u}, $$最终动作 $\mathbf{a}_{t}=[\mathbf{a}_{t}^{l};\mathbf{a}_{t}^{u}]$ 交给底层 PD 控制器。这个解耦使上身策略无需处理深度图,也降低了蒸馏过程中上身动作对视觉特征的干扰。
3.2 地形专家与奖励设计
第一阶段的高度图是机器人局部 $1.6\,\mathrm{m}\times 1.0\,\mathrm{m}$ 网格,分辨率 $0.1\,\mathrm{m}$。斜坡坡度最高 $37^{\circ}$;楼梯台阶深 $0.25$–$0.30\,\mathrm{m}$、高 $0.05$–$0.27\,\mathrm{m}$;踏脚石直径 $0.25$–$0.40\,\mathrm{m}$,间距最大 $0.70\,\mathrm{m}$。由于 Unitree G1 的脚长约 $0.21\,\mathrm{m}$,最窄台阶和最小踏脚石只比脚掌多出少量余量,落脚必须非常准确。
奖励设计针对两类失败模式。脚边惩罚预计算二值膨胀边缘掩码,若脚底采样点落在边缘上则扣分;落脚惩罚则在脚掌上采样网格,惩罚只有部分支撑或悬空接触。连续地形上的边缘惩罚过于保守,因为窄楼梯的可踩区域可能接近消失,所以楼梯用落脚惩罚,踏脚石用脚边惩罚。图 2 和图 3 分别展示这两类约束的效果。
图2:踏脚石上的脚边惩罚。右侧带惩罚时脚掌更集中于支撑面中心。
图3:楼梯上的落脚惩罚。右侧带惩罚时避免脚掌部分悬空。
除落脚外,RPL 还追踪躯干姿态。躯干方向奖励定义为投影重力向量与参考重力向量之间的指数误差:
$$ r_{\text{torso}}=\exp\left(-\frac{\|\mathbf{g}_{\text{proj}}-\mathbf{g}_{\text{ref}}\|^{2}}{\sigma}\right). $$这个奖励鼓励腰部和髋关节协同,让机器人在站立模式下保持大范围躯干姿态跟踪,为弯腰取物等上身动作提供稳定基础。
3.3 深度蒸馏目标
第二阶段的学生移动策略 $\boldsymbol{\pi}_{l}^{\text{vis}}$ 接收带噪声的原始运动学历史和多个深度相机图像,地形专家则使用无噪声历史与高度图。论文采用 DAgger 式的在线交互蒸馏,学生动作直接回归专家动作:
$$ \mathcal{L}_{\text{distill}}=\mathbb{E}_{k,t}\!\left[\left\|\boldsymbol{\pi}_{l}^{\text{vis}}(\mathbf{s}_{t}^{p},\mathbf{G}_{t}^{l},\mathbf{D}_{t})-\boldsymbol{\pi}_{l,k}^{\text{exp}}(\mathbf{s}_{t}^{p},\mathbf{G}_{t}^{l},\mathbf{H}_{t})\right\|_{2}^{2}\right]. $$下标 $k$ 表示不同地形专家,$\mathbf{D}_{t}$ 是多视角深度集合,$\mathbf{H}_{t}$ 是特权高度图。这个损失不要求学生重建完整几何,只要求它在同一任务目标下产生与专家接近的动作。相比先重建高度图再规划的做法,动作回归避免把感知误差和规划误差叠加。
3.4 高效多深度仿真
为了让蒸馏阶段能够大规模使用多相机深度,RPL 实现了基于 NVIDIA Warp 的 GPU 射线投射系统。对每个环境、相机和像素,先从相机内参生成相机系光线:
$$ \mathbf{r}_{c}=\mathbf{K}_{e}^{-1}[x,y,1]^{\top}, $$再旋转到世界系,从相机原点 $\mathbf{o}=\mathbf{p}_{c}^{e,c}$ 沿方向 $\mathbf{d}$ 投射。深度定义为相机原点到最近网格交点的欧氏距离,并在远平面 $d_{\max}$ 处截断。
动态网格处理是效率关键。RPL 不把每个机器人部件重新拟合到世界系,而是把世界系光线变换进部件局部系:
$$ \mathbf{o}_{b}=\mathbf{R}_{b}^{\top}(\mathbf{o}-\mathbf{t}_{b}),\quad\mathbf{d}_{b}=\mathbf{R}_{b}^{\top}\mathbf{d}. $$这里 $(\mathbf{t}_{b},\mathbf{R}_{b})$ 是部件在世界系中的位姿。先查询所有动态机器人网格并维护最近命中距离 $z^{\star}$,再用这个距离作为静态地形查询的上界,实现提前终止。最终深度写入 $\mathbf{D}[e,c,y,x]$,所有查询在单个融合 Warp kernel 中按环境、相机和像素并行。
这套系统还支持逐环境相机内参随机化,并把完整流程封装成 CUDA graph,避免每次仿真步长都重新启动渲染管线。图 4 是 DFSV 在四个方向相机特征上的示意,表 I 则在第 4 节展示了它与现有渲染方案的性能对比。
图4:DFSV 根据速度命令调整各相机特征的重要程度。
3.5 DFSV:按速度命令缩放深度特征
多方向相机各自朝向不同,策略不能把它们的特征同等对待。RPL 的 DFSV 用速度命令为每个相机计算一个注意力尺度。设 $\boldsymbol{\hat{n}}_{i}$ 是相机 $i$ 在机器人局部系中的归一化朝向,$\mathbf{v}_{t}^{\text{lin}}=[v_{x},v_{y}]^{\top}$ 是平面速度命令,则:
$$ \delta_{i}=1-\sigma\left(-k\left(\langle\mathbf{v}_{t}^{\mathrm{lin}},\boldsymbol{\hat{n}}_{i}\rangle-v_{\mathrm{th}}\right)\right),\quad i=1,\ldots,N_{\text{cam}}. $$$k$ 控制过渡锐度,$v_{\mathrm{th}}$ 是小速度阈值,$\langle\cdot,\cdot\rangle$ 是内积。与速度方向一致的相机获得接近 1 的权重,背向运动的相机接近 0。特征在拼接前按权重缩放:
$$ \mathbf{f}_{\text{fused}}=\bigoplus_{i=1}^{N_{\text{cam}}}\delta_{i}\cdot\mathbf{f}_{i}. $$这个设计没有引入额外可学习注意力参数,只根据命令改变特征融合。它尤其重要于前相机看到楼梯、后相机仍看到踏脚石的不对称场景,因为后退时后相机必须主导,前进时前相机必须主导。
3.6 RSM:随机侧向遮挡
RSM 针对真实地形宽度不可预知的问题。训练中每个环境按地形类型采样遮挡模式 $\mathrm{mode}\in\{\mathrm{none},\mathrm{small},\mathrm{large}\}$,模式来自分类分布:
$$ \mathrm{mode}\sim\mathrm{Categorical}(\mathbf{p}_{k}),\quad \mathbf{p}_{k}=\big[p_{k}^{\text{none}},p_{k}^{\text{small}},p_{k}^{\text{large}}\big]. $$被遮挡的像素用 $[d_{\text{near}},d_{\text{far}}]$ 内的随机深度填充,避免策略从固定边界伪影中寻找捷径。连续地形如楼梯和斜坡更多使用大遮挡,因为通行性主要依赖正前方局部几何;离散地形如踏脚石则更多保留侧向视野,因为有效落脚点可能只出现在图像边缘。图 5 展示不同遮挡模式。
图5:RSM 的三种遮挡模式。随机遮住侧向区域后,策略必须依赖中央可见几何。
flowchart TB
subgraph S1["Stage 1: Terrain Experts"]
H["Privileged Height Map"] --> PPO["PPO + Force Curriculum"]
PPO --> E1["Slope Expert"]
PPO --> E2["Stairs Up/Down Expert"]
PPO --> E3["Stepping Stone Expert"]
end
subgraph S2["Stage 2: Unified Depth Policy"]
D["Front/Back Depth Cameras"] --> CNN["CNN Encoders"]
CNN --> F["DFSV + RSM"]
F --> TF["Transformer Fusion"]
TF --> S["Visual Locomotion Policy"]
end
E1 --> L1["Action Regression Loss"]
E2 --> L1
E3 --> L1
L1 --> S
S --> W["Deploy Unitree G1 at 50 Hz"]
四、实验结果
实验回答四个问题:多深度渲染是否高效、网络架构与蒸馏损失是否更优、DFSV 与 RSM 是否能改善分布外泛化、真实机器人能否完成长周期双向行走并带负载。训练配置上,阶段 1 使用 4 张 NVIDIA L40S 和 4096×4 并行环境训练 24 小时;阶段 2 使用 8 张 L40S 和 1024×8 并行环境训练 12 小时。
感知设置在蒸馏中使用 $10\,\mathrm{Hz}$ 深度采集,视场 $101^{\circ}\times 69^{\circ}$,原始分辨率 $240\times 135$,下采样到 $48\times 27$。仿真可支持 $N_{\text{cam}}=4$ 的前后左右四相机,但真实 Unitree G1 躯干外壳只提供前后安装孔,因此真实部署使用前后两路 ZED 2i 相机,分辨率为 $1280\times 720$,深度模式为 neural_light。
| 渲染方法 | 动态网格 | 1相机 VRAM/迭代 | 2相机 VRAM/迭代 | 4相机 VRAM/迭代 |
|---|---|---|---|---|
| IsaacGym PhysX | 支持 | 16.8 GB / 35.6 s | 22.5 GB / 70.1 s | 33.9 GB / 146.5 s |
| IsaacSim RTX | 支持 | 17.5 GB / 5.3 s | 23.2 GB / 7.6 s | 34.4 GB / 12.6 s |
| IsaacSim Warp | 不支持 | 12.8 GB / 3.5 s | 15.1 GB / 5.9 s | 20.7 GB / 9.1 s |
| RPL(Algorithm 1) | 支持 | 13.3 GB / 1.3 s | 14.6 GB / 1.5 s | 17.3 GB / 1.9 s |
表 I 显示,RPL 的多深度渲染在 1、2、4 相机配置下都比最快的现有方案 IsaacSim Warp 快约 5 倍,同时显存更低。更重要的是,RPL 在支持动态机器人网格的情况下仍保持速度优势,而 IsaacSim Warp 不支持动态网格。这意味着蒸馏阶段可以真实模拟弯腰、手臂遮挡等上身动作造成的视觉变化,而不牺牲训练吞吐。
表 II 比较不同相机数量下的地形关卡得分。双向移动中,单一下视相机在踏脚石上只能达到 5.1,而前后双相机和四相机都达到 6.0;全向移动中,下视单相机在踏脚石上只有 3.0,前后双相机提高到 4.5,四相机为 4.6。这说明相机数量对稀疏落脚点的感知覆盖有直接作用。
| 任务 | 策略 | 斜坡 | 上楼梯 | 下楼梯 | 踏脚石 |
|---|---|---|---|---|---|
| 双向 | 专家 | 6.0 | 6.0 | 6.0 | 6.0 |
| 双向 | 1 下视 | 6.0 | 6.0 | 5.9 | 5.1 |
| 双向 | 2 前后 | 6.0 | 6.0 | 6.0 | 6.0 |
| 双向 | 4 前后左右 | 6.0 | 6.0 | 6.0 | 6.0 |
| 全向 | 专家 | 6.0 | 6.0 | 6.0 | 5.6 |
| 全向 | 1 下视 | 6.0 | 6.0 | 5.9 | 3.0 |
| 全向 | 2 前后 | 6.0 | 6.0 | 5.9 | 4.5 |
| 全向 | 4 前后左右 | 6.0 | 6.0 | 6.0 | 4.6 |
网络架构对比中,论文比较 CNN+MLP、CNN+RNN、CNN+Transformer 和 U-Net+Transformer。CNN+Transformer 取得最低蒸馏损失。U-Net 重建基线需要从多视角深度重建高度图,再执行动作回归,中间表示与 RSM 的随机遮挡并不兼容,因此论文最终选择直接融合多视角特征的 Transformer。
图 6 展示真实地形课程,包括 20° 斜坡、不同台阶长度和踏脚石。真实部署中,深度采集进程与策略推理进程通过共享内存异步通信,Transformer 策略在 NVIDIA Jetson Orin NX 16GB 上以 50 Hz 运行。机器人完成约 50 m 地形课程,并在一路背负重物、弯腰拾取 2 kg 负载后继续双向通过斜坡、楼梯和踏脚石。
图6:真实地形课程。白色标注标出斜坡、楼梯和踏脚石的关键尺寸。
五、讨论
RPL 的价值不只是多了一个能走地形的策略,而是把“训练时如何获得足够真实的多视角深度”和“部署时如何处理视角不对称”作为同一问题解决。没有高效多深度仿真,四相机甚至前后双相机的蒸馏都会因为渲染开销而难以规模化;没有 DFSV,多相机反而会引入与运动方向冲突的信息。
从方法边界看,RPL 的实验重点在斜坡、楼梯和踏脚石,属于结构化但变化明显的硬地形。对于更松软、更湿滑、动态移动或包含人形机器人的场景,当前深度渲染和策略仍需重新验证。论文也在局限中承认没有在真实世界演示侧向行走。
从复现角度看,项目页公开了视频和论文,但代码仍标注 Coming Soon。可复现性将取决于后续是否发布训练配置、渲染 kernel、奖励权重和真实部署代码;尤其是多深度渲染的 Warp kernel 与真实相机噪声模型,是复现效果最敏感的部分。
六、局限分析
作者明确指出两个主要局限。第一,论文没有在真实机器人上展示侧向行走,尽管仿真中训练了全向任务;要在所有地形上把专家级全向表现蒸馏到视觉策略仍不平凡。第二,RPL 主要依赖固定视角,没有显式学习主动探索或视角选择,因此高度遮挡或含义模糊的移动操作场景仍可能缺少关键视觉信息。
从独立判断看,RPL 的地形宽度泛化主要靠 RSM 的随机遮挡,但遮挡只模拟“更窄”,不能模拟“更宽”或“完全未见过的几何组合”。此外,前后双相机真实配置只验证双向移动,四相机在真实硬件上的安装、功耗、延迟和可靠性尚未充分证明,这会限制论文中“可扩展多深度系统”在真实产品上的直接推广。
另一个值得关注的点是蒸馏损失与部署鲁棒性并不完全相关。论文观察到有无 RSM、DFSV 的最终蒸馏损失接近,但分布外表现差异很大。这说明仅用蒸馏损失监控模型质量可能掩盖泛化风险,工程上还需要专门设计 OOD 评估赛道,例如窄楼梯加踏脚石的组合场景。
七、总结与展望
RPL 的核心贡献是一条从特权高度图专家到统一深度视觉策略的完整链路。它用双智能体结构支持负载搬运,用 Warp 多深度渲染解决动态自遮挡和大规模训练成本,用 DFSV 与 RSM 解决多方向视角和地形宽度变化。真实实验证明,这套设计能让 Unitree G1 在约 50 m 的长周期课程上稳定双向行走,并携带 2 kg 负载完成弯腰取物。
未来方向可能包括主动相机控制、侧向与全向真实世界扩展、更丰富的地形几何随机化,以及代码发布后的复现与横向比较。若后续把多深度渲染集成到通用 humanoid 训练框架中,RPL 的模块化设计会成为一条低门槛的基线。



