PredActor

将本体感知、任务条件与未来运动预测融入同一个扩散策略,直接生成关节动作,在 Jetson Orin NX 上实现 50 Hz 板载人形控制。

让人形机器人按文字行走,再用手柄改变方向,难点并不只是让模型“听懂指令”。对一个 50 Hz 控制器来说,每个控制周期都只有 20 毫秒 接收身体反馈、更新预测并产生动作。去噪还没算完,身体可能已经偏离了上一轮预测。

做过仿真到真机部署的人还会遇到另一层落差:仿真可以直接给出身体各部位的位置和速度,板载传感器却更容易提供关节、惯性等本体感知信息。如果为了引导未来运动,又要求策略读取完整全身状态,就需要额外解决状态估计;如果只让模型输出动作,又不容易直接表达“以某个速度朝目标运动”这样的要求。

我们要解决的是这两个约束如何同时成立:用真机可获得的反馈直接生成动作,同时保留可供文本与运动目标引导的接口。为此,我们(RoboParty Lab)在 PredActor 中让未来状态留在模型内部,与动作一起预测;用本体感知历史更新策略,以文本选择行为,以预测状态上的目标引导运动,部署时不再串接独立的运动参考跟踪策略。

我们已将这套系统部署到 G1 的 Jetson Orin NX 上,以 50 Hz 板载运行。完整控制回调的 p95 延迟为 19.383 ms;仿真中的目标到达结果为 44/45,真机则展示了文本行为切换和外部干扰下的动作响应。这几类证据分别回答计算预算、引导能力和物理执行问题,不能互相替代。下面先看行为如何执行,再拆解这种设计为什么能兼顾反馈与引导。

该实验完成较早,尚未在 RoboParty RP1 上进行部署与测试,后续迭代将推出 RP1 版本。

01 指令切换之后,身体动作也要接得上

G1 真机:文本指令下行走、下蹲、再行走

对使用者来说,“行走”“下蹲”“再走起来”只是几条指令;对控制器来说,每次切换的起点却是机器人当时的身体状态,而不是一段预设动画的第一帧。

G1 实机实验包含站立、行走、慢跑和下蹲等行为,以及行走、下蹲、重新行走的转换。策略持续接收本体感知历史,根据当前任务条件生成后续动作。同一策略既要改变行为,也要让转换后的动作继续在物理环境中执行。

要解释这些切换,首先需要分清两件事:选中一种运动,不等于已经得到了机器人此刻该执行的动作。我们尝试在 PredActor 中把任务要求与身体反馈放进同一策略,但直接输出动作之后,原来在运动轨迹上表达的目标又该放在哪里?

02 省去跟踪环节之后,如何保留运动可控性

关键在于生成结果与机器人之间的接口。Diffusion Policy 将扩散用于动作学习:依据观测产生一段动作,执行其中一部分,再用新观测更新后续计划。这种滚动时域控制(Receding Horizon Control,RHC)把反馈接回生成过程。用于人形全身控制时,还需要决定:模型应当生成供人观看的运动参考,还是可交给机器人执行的动作?

选择运动参考,就需要另一个控制器负责跟踪。生成器处理运动表达,跟踪器处理身体执行,分工清楚,却要求前者给出的参考落在后者的能力范围内。一段运动即便在视觉上合理,也可能难以被当前身体状态下的机器人执行;一旦受扰,恢复工作仍主要落到跟踪环节。

直接生成动作可以缩短这条执行路径。但 action-only diffusion,即只预测动作的扩散策略,没有显式的未来状态轨迹。对于“朝目标点走”或“维持某个运动方向”这样的要求,使用者能描述期望的运动,却很难直接写出对应的关节动作。这正是引入内部状态预测的理由。

联合预测状态和动作提供了一种接口:目标可以写在未来状态上,而不是直接写成关节动作。但已有代表性方法依赖全身状态等特权输入,部署时需要额外估计;学到的行为条件和测试时指定的运动目标,也需要各自进入生成过程。因此,只把动作输出改为状态与动作联合输出,还没有解决真实部署中的全部问题。

我们的设计选择是:以本体感知历史作为外部输入,把未来状态作为内部引导接口,最终直接输出动作。联合状态–动作建模并非这项工作的独立首创;值得关注的是,这种表示如何与真机观测、两类引导和板载反馈执行结合。它减少了部署时对外部完整状态输入和独立运动跟踪模块的依赖,代价则是策略本身必须学好状态预测与动作生成,并满足在线计算预算。

因此,“直接”指的是省去独立的运动参考跟踪策略,并非取消底层关节控制。另一个需要区分的环节是监督与输入:完整全身状态仍可用于训练监督,部署时则不要求外部向策略提供这些状态。

03 文本选行为,预测轨迹接收运动目标

无分类器引导(Classifier-Free Guidance, CFG);分类器引导(Classifier Guidance, CG)。

可以把一次推理理解为两个相连的过程:先依据本体感知历史与可选任务条件,逐步去噪得到未来状态和动作;再从中取出动作送往关节控制器。预测状态不作为运动参考下发,而是留在模型内部,供目标函数评价和引导。

在结构上,我们用交错的词元表示状态与动作,保留 Diffuse-CLoC 的非对称注意力关系。编码后的观测历史和任务条件则通过交叉注意力进入模型,也就是让去噪中的序列读取这些条件信息。这样的连接既保留状态对后续动作预测的作用,也使任务要求能够参与生成,而不只是在生成结束后筛选结果。

接下来要区分“做哪种动作”和“运动要满足什么目标”。它们分别对应 CFG 与 CG,两者作用不同,可以共同使用。

用 CFG 强化已学到的行为条件

无分类器引导(Classifier-Free Guidance, CFG)组合“带任务条件”和“不带任务条件”的预测,增强生成结果对条件的响应。通俗地说,它让模型更明确地执行当前选择的行为。在 PredActor 中,文本编码用于选择训练覆盖的站立、行走、慢跑、下蹲等运动语义,并不等于理解和执行任意自然语言任务。

用 CG 调整未来运动的方向与速度

仿真:文本选择行为,手柄同时控制方向
仿真:目标点引导生成的运动
G1 真机室外:手柄控制沿弯曲路径转向
仿真:混合两个行为条件得到中间行为

如果要求是靠近目标位置,或者让速度接近期望值,可以在预测状态上计算偏差,并利用梯度给出调整方向。这就是这里的分类器引导(Classifier Guidance,CG):把测试时的运动要求写成可微目标,在去噪期间引导预测轨迹。

这里不需要额外接入一个图像分类器。CG 在当前梯度步骤中调整预测状态,不直接改写当前动作预测;随后,联合去噪让更新后的状态信息影响动作生成。这样,“未来速度更接近期望值”可以成为优化目标,而不必由使用者把要求翻译成各关节动作。CFG 负责学到的行为条件,CG 负责测试时可计算的运动目标,两者在同一生成过程中互补。

在文本与手柄联合演示中,这种分工尤其直观:文本选择所学的运动行为,手柄则在执行过程中持续调整运动要求。

同一个内部状态接口也可以接入目标点代价,在目标变化时调整预测轨迹与机器人运动。

室外 G1 视频展示了真机上的转向引导与行为切换。这段演示启用的是转向输入 wz,平移速度输入 vx、vy 为禁用状态。因此,它提供了室外转向控制的定性证据,不能直接等同于仿真中所有速度和目标点设置都已完成真机验证。

行为条件不必只有离散切换。

语义插值实验通过逐渐改变两个条件的混合权重,呈现站立与抬手、站立与跑步等所学条件之间的中间行为。

04 受扰后的反应也与当前行为有关

G1 真机:外部干扰下的行走与站立指令
仿真:外力作用下的全身响应

前面的演示主要改变任务输入。外部交互则改变了身体本身:推挤、移动手臂或挡住行进路径之后,策略面对的已不是原先预测的状态。此时需要观察,新的反馈是否真正改变了接下来的行为。

真机交互视频先展示站立,再展示行走。站立指令下,外部交互伴随手臂伸展、站距变化、身体下沉或侧向迈步;行走指令下,机器人在路径受阻时调整步伐。对从业者而言,这里的观察重点是响应是否与当前行为有关,而不只是轨迹有没有偏离。视频呈现了这些特定情境下的行为调整,恢复的成功率仍需重复试验检验。

真机与仿真中的外力实验用于观察响应方式,定量统计则在实验部分展开。

这些片段说明了反馈更新在行为层面的表现,但它为什么能应对偏离原轨迹的状态?答案不仅在网络结构里,也与训练是否覆盖这种偏离有关。

05 让训练覆盖策略偏离示范后的状态

部署时去掉独立跟踪器,不等于训练时不再需要它的物理执行经验。只收集顺利完成的示范还存在一个问题:学生策略一旦出现误差或受到推力,就可能进入示范很少覆盖的身体状态;继续学习同一批理想轨迹,未必能补上这些缺口。

初始数据先解决“行为从哪里来”。运动库包含生成运动和 AMASS(Archive of Motion Capture as Surface Shapes)动作捕捉数据;BABEL(Bodies, Action and Behavior with English Labels)的标签与 MotionCLIP 运动文本对齐模型提供语义关联。随后,由冻结的跟踪教师执行参考运动,采集状态与动作。采集过程加入观测噪声、动作噪声和推力,让数据不局限于理想执行。

有了初始学生策略,再让它自己运行。教师从学生实际到达的状态出发,生成与参考运动对齐的示范片段;这些新增数据用于下一轮学生训练。这种类似 DAgger(Dataset Aggregation,数据集聚合)的迭代,把采样重点放到了学生自身会遇到的状态上。

这一步改变的是数据覆盖方式:不只增加“教师会怎么做”的示范,也补充“学生走偏之后会遇到什么”的状态。模型联合学习动作重建、动作变化正则与未来状态重建,教师在训练期间提供监督,部署时由学生策略直接生成动作。工程上,它把部分跟踪能力转移到训练流程中,而不是消除了教师构建、数据采集和迭代训练的成本。

06 不从头生成整段未来,才能更快接入新反馈

训练解决了策略见过什么,部署还要解决每次更新要算多久。扩散生成通常包含多轮去噪;若收到新观测后才从头生成整段未来,计算量与反馈更新频率就会发生冲突。

G1 的这套配置控制 29 个驱动关节,维护 20 步的状态–动作预测。这个预测长度不等于控制周期:策略每秒更新 50 次,每次的 20 ms 预算需要容纳网络计算、引导和采样更新等完整回调工作。

这种复用必须与噪声调度匹配,不是把上一轮的干净轨迹直接复制过来。板载运行进一步采用两步 DDIM(Denoising Diffusion Implicit Models,一种扩散采样方法),缓存可复用条件、预计算采样调度,并优化 C++ 运行时。时延补偿则在相邻干净动作之间插值,减轻推理耗时与实际执行时刻不一致的影响。这里的取舍不是单纯“步数越少越好”,而是共同考虑采样质量、受扰表现和完整控制回调的耗时。

来源为论文 v3 Section 4.2 与 Appendix D.3。计时覆盖收到状态消息至产生主机端动作张量的完整回调,不只测神经网络前向;但该计时实验不驱动执行器,也不包含执行器完成物理响应的时间。593/600 次落在预算内说明板载运行具备可行性,不构成硬实时保证。对部署者的启示是,网络速度、回调尾延迟和真机闭环表现需要分别检查。

07 实验检验的是可引导性与稳定性的兼顾

我们在统一的 MuJoCo(Multi-Joint dynamics with Contact,多关节接触动力学)环境下开展仿真评估,分别测试目标到达、文本匹配与扰动响应。七个配置中,六个学习策略各评估三个独立训练模型;ARDY 运动生成器与 SONIC 跟踪器的组合采用单模型参考,因此不能把它与三模型统计当成相同重复设置。ARDY 的全称为 Autoregressive Diffusion with Hybrid Representation for Interactive Human Motion Generation,SONIC 为 Supersizing Motion Tracking for Natural Humanoid Whole-Body Control。

目标引导与文本检索结果来自论文 v3 Section 4.1 与 Table 2。文本检索衡量执行运动与目标文本的匹配程度,PredActor 与 DiffuseLoco w TextCFG 的有效窗口分别为 119/135 和 126/135,应与分数一起理解。该比较支持 PredActor 在这一评价下获得更高的文本匹配分数,但不能把整套系统的差异全部归因于联合状态预测这一个设计。

同一仿真扰动评估中,PredActor 的存活时长占比为 0.511,DiffuseLoco w TextCFG 为 0.563;它不是“完整通过试验的次数比例”。这组结果的积极意义在于:PredActor 在获得运动引导能力和更高文本检索分数的同时,仍保留了与条件动作扩散基线接近的抗扰表现。“接近”描述观察到的数值范围,不意味着抗扰提升或统计等价。

G1 真机试验包含六种设置,每种各五次;跌倒、动作未完成与安全停止均计为失败。重复试验补充了演示看不到的失败情况:策略已能完成所测的转换与受扰响应,但还不是每次都成功。小规模重复试验支持的是这些具体设置下的能力,不能外推为任意接触或环境中的可靠性。

08 从现有演示走向更复杂任务还缺什么

把这些结果放在一起看,PredActor 的价值并不只是少串接一个模块。它展示了这样一种组合可以进入板载闭环:身体反馈来自本体感知,行为选择来自条件引导,运动要求作用于内部预测状态,最后由同一策略产生可执行动作。

这一组合仍有边界。文本能选择哪些行为,取决于运动与语义数据的覆盖;目标引导过强时,生成可能偏离训练分布;爬行、攀爬等持续多接触运动也尚未充分验证。这意味着,扩大指令范围、增强引导和增加复杂接触不能只靠调整同一个参数解决。

对策略研究者,这项工作提供了一个值得继续检验的方向:直接输出动作时,内部预测状态仍可以承担运动引导接口,不必要求部署端先提供完整特权状态。对部署工程师,它给出的是包含数据聚合、滚动采样、时延补偿和板载计时的实现路径,而不只是一个网络结构。下一步仍需检验:更强引导下如何保持物理可执行性,更多接触行为需要怎样的数据,以及如何进一步压低尾延迟。这些问题决定了该路线能否从已有演示扩展到更复杂的任务。