PAPER DEEP DIVE
NEXUS:地形自适应全身遥操作
NEXUS 通过接触引导的运动适配生成近千小时配对语料,再用教师—学生学习和机载深度感知,让机器人执行平地全身动作时自动适配未知地形。
一句话总结
NEXUS 先用接触引导的几何修正,把平地动作批量变成逐帧对齐的地形动作;再让看见地形深度的学生策略从特权教师那里学会这种修正,使 Unitree G1 能零样本执行来自平地操作者的全身动作。
研究背景与问题
全身遥操作的目标不是让机器人播放一段固定舞蹈,而是把操作者当前的身体意图变成远处人形机器人的协调动作。操作者想让机器人伸手、下蹲、单脚支撑或翻越台阶时,机器人必须同时保持动作时序、身体姿态和支撑关系。平地环境可以把人体动作重定向后直接跟踪,但真实世界的地面高度、坡度和接触位置会持续变化,逐帧复制平地关节角往往会制造脚底悬空、脚掌穿模或手部支撑失败。
现有感知运动控制主要处理速度指令或导航目标。它擅长回答“往哪里走”,却没有完整回答“手臂抬高多少、身体何时下蹲、哪只手应该在什么时刻接触哪里”。动作跟踪控制器保留了丰富的全身行为,却又大多在平地数据上训练,既没有地形观测,也缺少“同一动作在另一块地形上应该怎样变化”的监督。NEXUS 要连接这两条路线,让动作命令仍然来自人,地形适配由机器人在本地完成。
最直接的监督来源应该是成对动作:同一个踢腿、跪姿或侧手翻,在平地上有一份原始轨迹,在每个目标地形上又有一份经过适配的轨迹。但这样的配对很难采集。真机在地形上重复动作需要额外的动作捕捉和场景几何,平地与地形的两次独立录制又不会天然在时间上对齐;若针对每种动作和每种地形手工调参,数据规模一大就会失去可维护性。
论文因此把瓶颈定义为可扩展的配对监督生成。它不要求操作者在地形上表演,而是从已有的平地动作出发,检测手腕和脚踝的接触阶段,按地形高度与法向修正接触姿态,再把修正平滑传播到整段轨迹。生成的平地版和地形版共享同一时间轴,可直接用于教师-学生学习。
这个设计的核心判断是:地形适配不应重写全部动作,而应优先修改支撑肢体和骨盆高度。非接触肢体、躯干节奏和整体行为要尽量保留,否则控制器虽然满足了接触几何,却可能把一个舒展的踢腿改成缩腿动作,读者看到的就是另一项技能。NEXUS 用非接触姿态偏差和接触保持率同时约束生成质量,正是针对这一风险。
预备知识
一段机器人动作由每帧的浮动基座位姿、骨盆高度和关节角组成。论文把平地动作记为 $\mathcal{M}^{\mathrm{flat}}$,把地形适配后的动作记为 $\mathcal{M}^{\mathrm{adapt}}$。两者帧号一一对应,差别主要是接触肢体修正、骨盆高度变化和由此带出的身体位姿变化。部署时操作者只提供平地命令,适配版在训练阶段充当监督,不会作为部署输入。
接触检测只在脚踝和手腕上做二值判断。来源动作中的链路高度、水平速度和竖直速度低于进入阈值时,接触被激活;激活后要等任一量超过更宽的退出阈值才解除。两套阈值形成迟滞,避免接触状态在临界高度附近反复跳变。没有手部或足部接触的片段不会进入接触关键帧集合,因此也不能提供 NEXUS 所需的支撑修正锚点。
教师-学生结构解决的是部署信息差。教师能看到地形高度图、参考接触、关节状态和其他特权反馈,可以先学会高质量跟踪;学生看不到这些模拟器内部量,只能使用平地动作窗口、机器人本体历史和一帧机载深度。DAgger 式蒸馏把学生访问到的状态交回教师标注,减少普通行为克隆在误差累积后遇到的分布偏移。
方法详解
NEXUS 的完整链路可以分成离线数据生成与在线策略执行。离线阶段负责把一个平地动作扩展成多个地形上的配对参考,在线阶段则根据操作者命令和当前深度选择动作。下面的流程图只描述这篇论文的实际处理顺序:接触检测、地形查询、骨盆调整、关键帧逆运动学、穿模修正、PCHIP 重建、特权教师训练、学生蒸馏和真机推理。
flowchart TB
A[Flat retargeted motion] --> B[Ankle and wrist contact detection]
B --> C[Contact keyframes K]
C --> D[Raycast terrain height and normal]
D --> E[Pelvis height adjustment]
E --> F[Bounded limb IK at keyframes]
F --> G[Penetration and clearance correction]
G --> H[PCHIP source-relative corrections]
H --> I[Paired flat and adapted corpus]
I --> J[PPO privileged teacher]
J --> K[DAgger student with depth]
K --> L[Unitree G1 onboard inference]
策略本身写成平地命令、本体历史和外感知的映射:
$$\mathbf{a}_{t}=\pi\left(\mathbf{m}_{t}^{\mathrm{flat}},\mathbf{o}_{t}^{\mathrm{prop}},\mathbf{o}_{t}^{\mathrm{ext}}\right).$$其中 $\mathbf{a}_{t}$ 是相对名义关节位置的缩放偏移,交给 PD 控制;$\mathbf{m}_{t}^{\mathrm{flat}}$ 编码当前动作窗口,$\mathbf{o}_{t}^{\mathrm{prop}}$ 是本体历史,$\mathbf{o}_{t}^{\mathrm{ext}}$ 是局部地形感知。这个定义把“操作者要做什么”和“机器人脚下是什么”分开输入,同时要求网络在动作执行中融合两者。
从接触关键帧生成地形目标
对每个处于接触状态的末端,系统把它的水平坐标放到目标地形上,向下做射线查询,得到地表高度 $h(x,y)$。若源动作中脚踝或手腕相对地面已有高度,则保留该高度,只叠加地形抬升:
$$\mathbf{p}_{t,i}^{\mathrm{des}}=\left[x_{t,i},\ y_{t,i},\ z_{t,i}+h(x_{t,i},y_{t,i})\right]^{\top}.$$这一步并没有直接把所有关节拉向新坐标。末端目标先确定,后续还要通过有限关节范围、肢体长度、接触法向和碰撞几何检查。射线未命中或法向向上分量不足的面会被忽略,避免把噪声深度当成可支撑区域。
骨盆高度决定机器人是否有足够腿长接触目标。NEXUS 在有效接触末端中寻找地形偏移绝对值最大的一个,让骨盆按该偏移整体升降:
$$i_{t}^{\star}=\operatorname*{argmax}_{i\in\mathcal{C}_{t}}\left|d_{t,i}\right|,\qquad \Delta z_{t}=d_{t,i_{t}^{\star}}.$$这里 $d_{t,i}$ 是末端所处地形相对平地的高度。选择绝对值最大的偏移,表示系统优先保证最难达到的接触不会因骨盆高度不足而悬空。若当前帧没有有效地形查询,骨盆修正设为零。这个规则简单但偏保守,因为它没有显式求解不同接触之间的最小二乘平衡。
有界逆运动学与穿模修正
每个接触肢体先在解析二骨模型上构造膝或肘的中间目标,再限制末端到可达范围。随后只优化该肢体的四个关节角,目标包含中间点、末端点与源姿态正则:
$$\min_{\mathbf{q}_{\ell}^{\min}\le\mathbf{q}_{\ell}\le\mathbf{q}_{\ell}^{\max}}\left\|\mathbf{f}_{m}(\mathbf{q}_{\ell})-\widehat{\mathbf{p}}_{m}\right\|_{2}^{2}+\left\|\mathbf{f}_{e}(\mathbf{q}_{\ell})-\widehat{\mathbf{p}}_{e}\right\|_{2}^{2}+\lambda^{2}\left\|\mathbf{q}_{\ell}-\mathbf{q}_{\ell}^{\mathrm{flat}}\right\|_{2}^{2}.$$$\mathbf{f}_{m}$ 和 $\mathbf{f}_{e}$ 是正向运动学函数,$\widehat{\mathbf{p}}_{m}$ 与 $\widehat{\mathbf{p}}_{e}$ 是中间点和末端的可达目标,$\lambda$ 控制偏离源关节角的代价。接触足还会单独调整踝关节,使脚底朝向局部地形法向;手部被建模为胶囊体,没有平面脚底,所以只做位置与碰撞修正。
位置解完后,系统采样脚掌或手部的碰撞几何,找到最大穿透量并把目标整体抬高,再重复求解。若小腿或前臂穿模,则在有限范围内旋转肢体弯曲平面并重新检查。只有满足间隙、末端漂移和穿透不增加等条件时才接受候选,否则恢复前一姿态。它能在关键帧上降低明显穿模,但论文明确承认这套局部搜索不保证整段轨迹无碰撞。
只传播接触处需要的修正
每个关键帧修正后,系统记录源动作与逆运动学结果之间的差:
$$\boldsymbol{\delta}_{k}=\left[\mathbf{q}_{k}^{\mathrm{IK}}-\mathbf{q}_{k}^{\mathrm{flat}};\ p_{k,z}^{\mathrm{IK}}-p_{k,z}^{\mathrm{flat}}\right].$$然后在关键帧之间对每个分量做形状保持分段三次 Hermite 插值:
$$\left[\Delta\mathbf{q}_{t};\ \Delta z_{t}\right]=\operatorname{PCHIP}\left(\{(k,\boldsymbol{\delta}_{k})\}_{k\in\mathcal{K}}\right)(t).$$PCHIP 比普通三次样条更不容易产生超出相邻关键帧范围的过冲,这对接触任务很重要:关节角在脚落地时突然被插值到过深位置,会造成新的穿模。关键帧范围之外保持最近一侧的修正常值。最终地形动作由平地动作加上修正得到:
$$\mathbf{q}_{t}^{\mathrm{adapt}}=\mathbf{q}_{t}^{\mathrm{flat}}+\Delta\mathbf{q}_{t},\qquad p_{t,z}^{\mathrm{adapt}}=p_{t,z}^{\mathrm{flat}}+\Delta z_{t}.$$源轨迹在水平面的坐标和骨盆朝向保持不变,身体的其余位姿与速度通过正向运动学和有限差分恢复。这样平地版和地形版仍然是同一动作的两条时间对齐轨迹,而不是两段需要重新匹配的动作。
特权教师与感知学生
教师看到适配动作特征、完整本体反馈和 $11\times17$ 的根相对地形高度图:
$$\mathbf{o}_{t}^{\mathrm{tea}}=\left[\mathbf{m}_{t}^{\mathrm{adapt}},\mathbf{o}_{t}^{\mathrm{priv}},\mathbf{H}_{t}\right].$$学生不能使用这份高度图,它的观测是:
$$\mathbf{o}_{t}^{\mathrm{stu}}=\left[\mathbf{m}_{t}^{\mathrm{flat}},\mathbf{o}_{t}^{\mathrm{prop}},\mathbf{D}_{t}\right].$$$\mathbf{D}_{t}$ 是单帧深度图。学生必须根据动作上下文和脚下几何,自行推断教师曾经见过的接触修正。深度编码器是三层卷积网络,动作头是多层感知机。这个结构刻意保持轻量,因为真机需要在 Jetson Orin NX 上以 50 Hz 闭环运行。
教师用 PPO 训练,奖励可概括为运动跟踪、接触、正则和存活项之和:
$$r_{t}=r_{t}^{\mathrm{track}}+r_{t}^{\mathrm{contact}}+r_{t}^{\mathrm{reg}}+r_{t}^{\mathrm{alive}}.$$跟踪项包括根位姿、根速度、根相对身体位姿、全局身体速度和关节状态;接触项同时检查手脚接触时序、离地间隙和脚底支撑;正则项约束动作变化、关节速度、关节与力矩限幅以及自碰撞。训练还使用左右镜像对称损失,让学生和教师对左右交换后的观测与动作保持一致。
蒸馏目标不是简单的动作标签回归,而是 DAgger 式配对增强:
$$\mathcal{L}_{\mathrm{aug}}^{\mathrm{stu}}=\mathbb{E}_{\tilde{\mathbf{o}}}\left[\operatorname{MSE}\left(\pi^{\mathrm{stu}}(\tilde{\mathbf{o}}^{\mathrm{stu}}),\pi^{\mathrm{tea}}(\tilde{\mathbf{o}}^{\mathrm{tea}})\right)\right].$$$\tilde{\mathbf{o}}$ 表示学生实际访问到的状态,并包含原始与镜像样本。教师在冻结后重新标注这些状态,学生因此学到如何从自己的错误状态恢复到正确动作。没有这一步,学生只见过高质量教师的轨迹,部署时一旦产生小偏差,后续输入就离开了训练分布。
终止条件采用根离地高度和根相对末端高度误差:
$$e_{t}^{\mathrm{clear}}=\left|\left(p_{t,z}-h_{t}\right)-\left(p_{t,z}^{\mathrm{adapt}}-h_{t}^{\mathrm{adapt}}\right)\right|,\qquad e_{t,b}^{\mathrm{rel}}=\left|\left(p_{t,b,z}-p_{t,z}\right)-\left(p_{t,b,z}^{\mathrm{adapt}}-p_{t,z}^{\mathrm{adapt}}\right)\right|.$$任一误差超过 0.25 米、机器人根坐标系与参考根坐标系的重力投影竖直分量差超过 0.8,或到达时间上限,回合结束。把水平漂移从终止判据中分离,可以让控制器专注于支撑高度和身体相对结构,而不是因为小范围位置误差过早重置。
实验设计与结果
运动适配实验使用 55 段完整的 G1 动作,总长 2.49 小时,来源包括 LaFAN1 与 OmniXtreme;测试地形覆盖 16 种上、下楼梯和上、下坡设置。NEXUS 生成全部 880 个动作-地形对,共 39.87 小时,无手部接触和有手部接触的动作都使用同一套配置。对照组是保留关节角的 Root-only,以及只做足部轨迹、根高和腿 IK 的 TCRS。
Table I 的价值不只在于一个平均分。有效时间比检查每一帧的全身穿透和接触间隙,接触保持率只统计预期接触是否落在容许区间,姿态偏差则只看非接触肢体和腰部关节。四项一起看,才能区分“把脚踩进地面以消除悬空”和“既保持接触又没有破坏动作”。
| 方法 | 有效时间比 | 穿透 | 悬空 | 接触保持率 | 非接触姿态偏差 | 生成 RTF |
|---|---|---|---|---|---|---|
| 无手部接触:NEXUS | 92.08% | 0.814 cm | 0.880 cm | 79.12% | 0.00984 rad | 1.646 |
| 无手部接触:TCRS | 89.69% | 0.606 cm | 2.965 cm | 29.63% | 0.08884 rad | 8.038 |
| 无手部接触:Root-only | 63.37% | 2.865 cm | 0.817 cm | 54.25% | 0.00000 rad | 0.260 |
| 有手部接触:NEXUS | 80.53% | 1.630 cm | 0.946 cm | 71.21% | 0.01473 rad | 1.864 |
| 有手部接触:TCRS | 67.95% | 4.432 cm | 4.835 cm | 20.61% | 0.12213 rad | 7.887 |
| 有手部接触:Root-only | 55.69% | 3.839 cm | 1.230 cm | 48.94% | 0.00000 rad | 0.109 |
NEXUS 在两组中的接触保持率和有效时间比都最高。无手接触时,它的穿透为 0.814 厘米,略高于 TCRS 的 0.606 厘米,但 TCRS 的悬空达到 2.965 厘米、接触保持率只有 29.63%。这说明 TCRS 的部分几何质量来自压低或拉近接触目标,而不是稳定维持所有预期接触。NEXUS 的取舍是接受很小的穿透,换取悬空和接触时序同时改善。
有手部接触后,所有方法都变难,NEXUS 的有效时间比从 92.08% 降到 80.53%。它在这个更难的分组中仍把穿透控制在 1.630 厘米、悬空控制在 0.946 厘米,而 TCRS 分别为 4.432 和 4.835 厘米。手部支撑会把腕关节、肘部弯曲平面和躯干高度耦合起来,单靠脚部轨迹与根高无法处理,因此这也解释了为什么论文要把手腕接触纳入同一适配器。
生成效率采用 8 段平衡子集在 16 种地形上的配对计时。每个进程使用一个 CPU 核和单线程,在 Intel Xeon Gold 6530 上并行 32 个进程。NEXUS 相对 TCRS 的平均生成 RTF 分别降低 4.88 倍和 4.23 倍;TCRS 还出现 6 次进程错误,最终分别只有 63/64 和 59/64 个有效计时样本,而 NEXUS 与 Root-only 均为 128/128。Root-only 的 RTF 更低,但它保留了全部平地关节角,几何错误直接证明速度不是适配质量的替代指标。
图 2:NEXUS 总览。左侧为接触引导的离线动作适配,中间为特权教师向深度学生蒸馏,右侧为机载感知与零样本全身遥操作。
策略泛化实验包含 160 段动作,共 2.61 小时,来自 PHUMA、100STYLE 和 LaFAN1 三个固定公开评测子集。对照组是 SONIC v1.1、HumanoidGPT、HoloMotion 和 PMT。每个检查点接收完全相同的平地命令,并在平地、5 厘米与 15 厘米台阶、8.5 度与 24.2 度坡面上测试。NEXUS 的训练地形只有 10 厘米台阶和约 16.7 度坡面,因此测试同时包含更容易和更困难的支持高度变化。
结果显示 NEXUS 在三个动作子集和各地形难度层上的完成率最高,在部分条件与其他控制器并列。平地上的优势说明它没有因地形监督而牺牲行为覆盖;地形上的优势则说明深度输入确实改变了动作执行。PMT 即使在 100STYLE 和 LaFAN1 的平地子集上也会失败,论文给出的合理解释是其训练语料更偏 locomotion 与舞蹈,地形适配监督本身不能弥补动作多样性。
跟踪误差必须和完成率一起读。论文明确说明,位置误差、旋转误差和接触 F1 都只在各控制器自己的失败前窗口统计。HoloMotion 的地形身体位置误差更低,但它更早终止时会跳过后续困难片段。NEXUS 的身体朝向误差和足部接触 F1 最优,同时完成率更高;因此不能把 HoloMotion 的单项低误差解释成完整动作跟踪更好。
图 3:同一动作帧上的基线失败与 NEXUS 改善。图中展示脚底悬空、脚部穿透、手部穿透以及 TCRS 为非接触腿引入的姿态收缩。
消融实验使用 415 段留出运动,共 3601.72 秒,覆盖四种地形和五档难度。每档包含 5 至 15 厘米的台阶或 0.15 至 0.45 的坡度梯度,每个策略执行 8300 次试验,合计 20.01 小时参考动作。视觉学生与无视觉学生共享同一教师和训练设置;单阶段 PPO 因显存限制使用不同预算,但训练到收敛。
| 变体 | 成功率 | 根位置误差 | 身体位置误差 | 身体旋转误差 | 接触 F1 |
|---|---|---|---|---|---|
| NEXUS | 91.072 ± 14.959% | 19.596 ± 5.398 cm | 7.066 ± 2.949 cm | 0.127 ± 0.010 rad | 80.662 ± 2.545% |
| 无视觉 | 87.771 ± 19.362% | 20.089 ± 6.651 cm | 7.603 ± 3.753 cm | 0.128 ± 0.010 rad | 80.523 ± 2.876% |
| 无教师-学生 | 90.964 ± 15.938% | 31.951 ± 4.472 cm | 9.482 ± 3.533 cm | 0.161 ± 0.015 rad | 79.637 ± 2.859% |
视觉带来的总体成功率提升只有 3.30 个百分点,但在两个较难地形层,差距扩大到 78.10% 对 70.51%。这说明机载深度主要不是负责平地动作,而是在支撑高度偏离训练分布时恢复完成能力。无教师-学生训练的变体成功率只低 0.108 个百分点,却把根位置误差从 19.596 厘米放大到 31.951 厘米,说明单看成功率会掩盖蒸馏对轨迹精度的贡献。
接触 F1 的三个变体差距也不大,范围约为 79.637% 到 80.662%。这不表示接触项无用,而是该指标统计的是足部二值接触,可能无法完全反映手部门槛、脚底姿态与接触时序的连续变化。论文同时报告成功率、根位置、身体位置和旋转误差,正是为了覆盖不同失败模式。
真机部署
图 1:操作者在平地运动,Unitree G1 在楼梯、平台、坡面与草地等不同地形上执行全身动作。
真机平台是 Unitree G1,搭载 Intel RealSense D435i。深度流为 60 Hz、分辨率 $480\times270$,每边裁掉 2 像素后缩到 $32\times18$,深度裁剪到 0 至 2 米并归一到 $[0,1]$。策略在 Jetson Orin NX 上用 ONNX Runtime 运行,控制频率为 50 Hz。深度预处理和动作重定向分别在独立进程或独立电脑上完成,通过本地 ZeroMQ 异步传输,避免任一流短暂延迟阻塞控制循环。
动作窗口包含当前参考、6 帧历史和 6 帧前瞻,约提供 120 毫秒前视。若新动作没有及时到达,系统重复最近一帧,策略继续使用本体反馈输出关节位置目标,而不是等待网络数据。这种工程处理很关键:遥操作中的动作流和深度流可能有不同延迟,控制器若同步等待所有输入,就会把网络抖动放大成机器人停顿。
论文报告机器人跨过 15 厘米楼梯、从 60 厘米高平台走下并尝试跳下,在约 30 度草坡和室内坡道、台阶上完成侧手翻,还演示单腿平衡、跪姿、下蹲、踢腿和垂直跳。常规姿态跟踪试验中没有观察到失败;从 60 厘米平台跳下和部分侧手翻尝试出现摔倒。这个结果支持零样本泛化,但样本规模、成功次数和统计置信区间没有在正文中展开,不能把演示视频视为安全认证。
局限与批判性判断
作者明确承认运动适配不支持 overhanging terrain,也就是没有从下向上查询的悬垂面。当前射线沿重力方向找支撑,台阶、坡面和平台属于可见的上表面,天花板、桌沿下方或洞穴内壁则需要另一套接触几何。若机器人要做攀爬或钻进结构内部,仅靠二维高度查询不够。
几何修正只在接触关键帧上做局部优化,整体无碰撞由后续检查和插值近似保证。论文自己说明局部过程不保证碰撞自由轨迹。PCHIP 能降低过冲,但若关键帧本身选取错误,或者手腕与脚踝之间的接触发生切换,插值段仍可能把肢体带过障碍物。更严谨的做法需要在连续时间上优化碰撞约束,而不是只在关键帧验收。
策略比较中的“失败前窗口”是第二个需要读者主动校正的口径。一个控制器越早失败,它统计到的后续困难片段越少,平均位置误差可能反而更低。论文已经明确承认这一点,并同时给出完成率,因此结论应表述为“NEXUS 在完整动作覆盖、朝向和足部接触上更好”,而不是“所有位置误差都最低”。
真机验证展示了很强的行为跨度,但属于定性工程验证。正文没有列出每种地形的试验次数、成功率、摔倒率、操作者数量和延迟分布,也没有跨机器人型号或跨相机标定重复。深度输入只有 $32\times18$,在细窄台阶、透明或反光表面以及强光变化下的鲁棒性仍未量化。对这些场景下结论,需要补充受控统计。
复现性是另一个现实限制。论文没有公开控制策略、动作适配器、训练配置或真机部署代码,公开项目页主要承担演示与项目介绍。于是外部团队可以理解方法,却无法核对 Table I/II 的随机种子、网络结构、奖励权重、深度归一化和 ZeroMQ 时序。论文的技术贡献成立,但“可立即复现的工程系统”这一点尚未成立。
结论
NEXUS 把地形适配从“为每个动作和地形分别调控制器”转成“在接触关键帧上生成源相对修正,再用学生策略学习这种修正”。它的关键不是某一个网络层,而是平地命令、配对参考、特权教师、深度学生和真机异步时序形成了一条闭合链路。Table I 显示适配器在接触保持和生成速度上同时超过 TCRS,Table II 显示视觉主要在困难地形上提高完成率,而教师-学生训练显著降低根位置误差。
对后续研究而言,最值得继续推进的是连续时间几何约束、悬垂面与非水平支撑、失败样本统计以及公开实现。当前结果已经说明,全身遥操作不必假设机器人和操作者站在同一种地面上;下一步要让这种“动作语义不变、接触几何重算”的能力覆盖更复杂的人造结构和自然地形。
地形适配不是重画人的动作,而是保留动作的意图,只重算身体与地面的接触。



