前言

在上一篇文章《OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)》中的“2.3节趣味工作:语音指令控制机器人干活与GPT4o加持”时,我们提到

通过将与预训练的文本到人体动作生成扩散模型MDM[57-Human motion diffusion model]连接,实现了通过语音指令控制人形机器人

如下图所示

人类可以描述所需的动作,例如“举起你的右手”,然后MDM生成相应的动作目标,由OmniH2O跟踪「with humans describing desired motions, such as “raise your right hand”. MDM generatesthe corresponding motion goals that are tracked by the OmniH2O」


我个人感觉到很amazing,毕竟确实挺酷的,直接口头让机器人干活

  1. 语音模型根据人类语音转换成文本
  2. 然后类似MDM、Momask这样的模型再根据文本生成3D骨骼动画,作为机器人的动作目标
  3. 然后用训练好的策略 去驱动人形机器人达到该动作目标

我自己都想复现这个工作了..

故,本文来了

第一部分 Human Motion Diffusion Model

1.1 动态扩散模型

22年9月,来自TAU的研究者们通过此篇论文《Human Motion Diffusion Model》提出了运动扩散模型MDM,在该文中,作者通过在无分类器的方式下对CLIP进行条件化来实现文本到动作的转换,类似于文本到图像

如下图所示「运动扩散模型(MDM)通过在给定文本提示的情况下生成多样化的动作,反映了文本到动作映射的多对多特性,其中,较深的颜色表示序列中的较晚帧,即最后生成的帧

1.1.1 MDM的整体框架与几何损失

MDM的目标是在给定任意条件c的情况下合成长度为N的人体动作x1:N。这个条件可以是任何将决定合成的现实世界信号,例如音频(Li等,2021;Aristidou等,2022)、自然语言(文本到动作)(Tevet等,2022;Guo等,2022a)或离散类别(动作到动作)(Guo等,2020;Petrovich等,2021)

此外,也可以进行无条件的动作生成,此时将其表示为空条件c=\emptyset,生成的动作x^{1: N}=\left\{x^{i}\right\}_{i=1}^{N}是由关节旋转或位置x^{i} \in \mathbb{R}^{J \times D}表示的人体姿势序列,其中J为关节的个数,D为关节表示的维数(总之,MDM 可以接受由位置、旋转或两者共同表示的运动,下文还会详述此点)

首先,在整体框架上

扩散建模为马尔可夫噪声过程,\left\{x_{t}^{1: N}\right\}_{t=0}^{T},其中x_{0}^{1: N}取自数据分布,且有

q\left(x_{t}^{1: N} \mid x_{t-1}^{1: N}\right)=\mathcal{N}\left(\sqrt{\alpha_{t}} x_{t-1}^{1: N},\left(1-\alpha_{t}\right) I\right)

其中,t \in(0,1)是常数超参数,当\alpha_{t}足够小时,可以得到如此近似x_{T}^{1: N} \sim \mathcal{N}(0, I)。从这里开始,用x_t表示在噪声步骤t的完整序列

在该语境中,条件运动合成将分布p\left(x_{0} \mid c\right)建模为逐步清理x_T的反向扩散过程。且不再像 Ho 等人所提出的那样预测\epsilon_t,而是遵循 Ramesh 等人(2022)的方法,直接预测信号本身,即\hat{x}_0=G(x_t, t, c),其目标是(Ho 等人,2020)

\mathcal{L}_{\text {simple }}=E_{x_{0} \sim q\left(x_{0} \mid c\right), t \sim[1, T]}\left[\left\|x_{0}-G\left(x_{t}, t, c\right)\right\|_{2}^{2}\right]

其次,在几何损失上

在运动领域,生成网络通常使用几何损失进行正则化(Petrovich等,2021;Shi 等,2020)。这些损失用于强化物理属性并防止伪影,促进自然和连贯的运动

在这项工作中,作者尝试了三种常见的几何损失来调节(1)位置(在我们预测旋转的情况下),(2)脚部接触,以及(3)速度

\begin{array}{c} \mathcal{L}_{\mathrm{pos}}=\frac{1}{N} \sum_{i=1}^{N}\left\|F K\left(x_{0}^{i}\right)-F K\left(\hat{x}_{0}^{i}\right)\right\|_{2}^{2} \\ \mathcal{L}_{\text {foot }}=\frac{1}{N-1} \sum_{i=1}^{N-1}\left\|\left(F K\left(\hat{x}_{0}^{i+1}\right)-F K\left(\hat{x}_{0}^{i}\right)\right) \cdot f_{i}\right\|_{2}^{2} \\ \mathcal{L}_{\text {vel }}=\frac{1}{N-1} \sum_{i=1}^{N-1}\left\|\left(x_{0}^{i+1}-x_{0}^{i}\right)-\left(\hat{x}_{0}^{i+1}-\hat{x}_{0}^{i}\right)\right\|_{2}^{2} \end{array}

如果预测关节旋转,FK(·)表示将关节旋转转换为关节位置的正向运动学函数(否则,它表示恒等函数)。f_{i} \in\{0,1\}^{J}是每一帧i的二进制足部接触掩码。仅与足部相关,它指示它们是否接触地面,并根据二进制真实数据设置(Shi等,2020)。本质上,它通过在接触地面时将速度归零来减轻足部滑动效应

总体而言,训练损失是

\mathcal{L}=\mathcal{L}_{\text {simple }}+\lambda_{\text {pos }} \mathcal{L}_{\text {pos }}+\lambda_{\text {vel }} \mathcal{L}_{\text {vel }}+\lambda_{\text {foot }} \mathcal{L}_{\text {foot }}

1.1.2 MDM的模型架构图

如下图所示

  • 在左侧中可以看到该模型的输入总共有两个:一个运动序列x_{1:N}^t——一个噪声步骤中长度为N的序列,和一个条件编码c
    但这个条件编码c需要先做一定处理,即它一开始是一个基于CLIP(Radford等,2021)的文本嵌入,首先被随机屏蔽以进行无分类器学习「通过使用CLIP(Radford等人,2021)文本编码器将文本提示编码为c来实现文本到运动的转换,并通过每个类别的学习嵌入实现动作到运动的转换,然后与t一起投影到输入tokenz_{t k}中——相当于噪声时间步t和条件编码c分别通过独立的前馈网络投影到与transformer相同的维度,然后相加以生成token z_{t k}
    The model is fed a motion sequencex1:Nt of length N in a noising step t, as well as t itself and a conditioning code c. c, a CLIP (Radfordet al., 2021) based textual embedding in this case, is first randomly masked for classifier-free learningand then projected together with t into the input token ztk.

    且噪声输入xt的每一帧也被线性投影到与transformer相同的维度,并与标准位置嵌入相加。z_{t k}和投影帧随后被输入到编码器。除去第一个输出token(对应于z_{t k}),编码器的结果被投影回原始运动维度,并作为预测\hat{x}_{0}——即在在每个采样步骤中,transformer编码器预测最终的干净运动\hat{x}_{0}^{1: N}
  • 在右侧则是采样MDM

    给定一个条件c,然后在期望运动的维度上采样随机噪声x_T,然后从T迭代到1。在每个步骤t,MDM预测干净样本\hat{x}_{0},并将其扩散回x_{t-1}

    具体而言,根据Ho等人(2020)的说法,从p\left(x_{0} \mid c\right)进行采样是以迭代的方式完成的
    在每个时间步t,预测出干净样本\hat{x}_{0}=G\left(x_{t}, t, c\right),然后将其重新加噪至x_{t-1}

    这一过程从t=T开始重复,直到获得x_0
        \rightarrow  且使用无分类器引导法训练我们的模型G(Ho & Salimans,2022),在实际操作中,G通过随机设置c=\emptyset来学习有条件和无条件的分布,这占样本的10%,使得G\left(x_{t}, t, \emptyset\right)可以近似p\left(x_{0}\right)
        \rightarrow  然后,在对G进行采样时,可以通过插值甚至外推这两种变体来在多样性和保真度之间进行权衡——使用s
    G_{s}\left(x_{t}, t, c\right)=G\left(x_{t}, t, \emptyset\right)+s \cdot\left(G\left(x_{t}, t, c\right)-G\left(x_{t}, t, \emptyset\right)\right)

// 待更

第二部分 PhysDiff

// 待更

第三部分 RobotMDM

// 待更

第四部分 从UC San Diego的Exbody

24年2月初,UC San Diego提出了一种面向人形机器人的全身运动控制策略Exbody,其对应的论文为《Expressive Whole-Body Control for Humanoid Robots

// 待更

第五部分 Exbody 2

24年12月17,UC San Diego的该Xiaolong Wang团队推出Exbody的升级版Exbody 2

这是一种通用的全身跟踪框架,可以接受任何参考动作输入并控制人形机器人模仿动作。该模型在仿真环境中通过强化学习进行训练,然后转移到现实世界。它将关键点跟踪与速度控制解耦,并有效利用特权教师策略(privileged teacher policy)将精确的模仿技能传授给目标学生策略,能够高保真地复制动态动作,如跑步、蹲下、跳舞和其他挑战性动作

5.1 Exbody 2的提出背景与其创新性

5.1.1 提出背景与相关工作

机器人动作模仿机器人动作模仿可以分为两个主要领域:操作和表现力

目前,随着大规模人类运动数据集的日益可用[4-mocap database,45-Amass: Archive of motion capture as surface shapes],解决这一挑战的实用方法是通过跟踪和模仿人类动作来学习复制多样化的运动[8-Exbody,20-Humanplus,23-Omnih2o,24-H2O]

然而,考虑到硬件,人形机器人和人类仍然存在很大差异,这阻碍了机器人完全复制人类动作的能力。这提出了一个引人注目的研究问题:在考虑到其物理限制的情况下,如何追求类人机器人的表现力和类似人类的能力,同时保持其稳定性和鲁棒性?

5.1.2 Exbody 2的4个关键设计

对此,作者训练了一个可以跨不同输入运动进行泛化的单一策略。并确定了实现这一目标的四个技术设计:

  • (i) 构建可行且多样化的训练数据集。像AMASS [45]这样的人体运动数据集通常包含超出机器人物理能力的复杂运动,使得跟踪过于具有挑战性并降低性能。一些工作通过改进数据集来解决这个问题

    例如,ExBody[8]使用语言标签过滤掉不可行的运动,尽管模糊的描述(例如“跳舞”)仍可能包括不合适的运动。其他方法,如H2O[24]和OmniH2O [24],使用SMPL模型模拟虚拟人形并过滤掉复杂运动。然而,SMPL化身可以执行真实机器人无法做到的极端动作,导致模拟与现实世界可行性之间的差距,仍可能影响训练效果

    作者系统地分析了数据集的难度和多样性,重点关注上半身运动多样性以实现稳定性和跟踪准确性,以及下半身的可行性以实现稳健的训练。实验表明,数据集中的多样性和可行性对于在训练和测试阶段实现表现力和稳定性行为至关重要
  • (ii)两阶段训练。ExBody2采用了如下图图2所示的两阶段教师-学生训练框架「(b)ExBody2在Unitree G1和H1全身控制任务中采用了教师-学生学习框架
    首先使用标准的强化学习算法PPO[60]在模拟环境中利用特权信息训练教师策略,这些特权信息包括真实的根速度、每个身体链接的精确位置以及其他物理属性(例如摩擦力)。这产生了一种能够准确模仿多种人类动作的有效策略

    然后,通过对教师策略执行DAgger[59-A reduction of imitation learning and structured prediction to noregret online learning]风格的蒸馏来学习可部署的学生策略
    对于学生策略,特权信息被一系列历史观察所取代
  • (iii) 局部关键点跟踪策略。之前的全身跟踪方法,如 H2O [24] 和 OmniH2O [23],依赖于关键点位置的全局跟踪。这种方法通常会导致在机器人难以与当前全局关键点对齐时,在后续步骤中出现跟踪失败,限制了其在高度静止场景中的应用

    相比之下,ExBody2 将关键点转换到局部坐标系,并将关键点跟踪与速度控制解耦。为了进一步提高跟踪的鲁棒性,作者定期将全局跟踪关键点重置到局部坐标系。此方法确保了持续且稳健的全身跟踪
  • (iv) 使用CVAE进行远程运动。借助增强的全身跟踪能力,ExBody2的机器人现在可以执行长时间的运动模仿。然而,现有数据集中的动作相对较短,这在旨在实现连续运动执行而无需人工重置时提出了挑战

    为了解决这个问题,作者训练了一个条件变分自编码器(CVAE)[64-Learning
    structured output representation using deep conditional generative models,
    79-ALOHA ACT]模型来合成未来的动作

    如下图图2-c所示「(c) ExBody2采用了基于Transformer的CVAE进行连续运动合成,(d) 通过跟踪CVAE生成的运动,ExBody2可以在现实世界中无缝部署,以生动地模拟持续运动

    CVAE利用过去的动作信息生成未来的动作序列,使机器人在部署期间能够无缝执行复杂且富有表现力的动作

5.2 ExBody2的4个组件:数据集策划、策略学习、运动合成和实际部署

ExBody2由四个主要组件组成:数据集策划、策略学习、运动合成和实际部署。接下来,将详细介绍ExBody2的这些组件

5.2.1 动作数据集整理

在ExBody2的动作数据集整理过程中,重点放在对动作的详细分析和选择,尤其是区分上半身和下半身运动所需的能力

此策略性方法旨在优化在可行范围内用于机器人实现的动作多样性

  • 上半身动作的数据集包括各种各样的上半身动作。这种多样性对于挑战和增强机器人的适应性和为真实世界应用的准备至关重要,因为在面对意外情况时,灵活的反应是至关重要的
  • 下半身动作由于机器人的机械限制和稳定性要求,选择下半身动作时采取了更为保守的方法。包括诸如行走和细微姿势调整等基本的运动动作

然而,诸如跳跃或复杂旋转动作等高度动态的动作需要进行仔细评估。在不切实际的动作上进行训练会在学习过程中引入噪声,从而降低其有效性。平衡动作与数据集完整性数据集的策划过程涉及在挑战机器人能力和保持动作在可行范围内之间的微妙平衡

  1. 过于简单的任务可能会限制训练策略推广到新情况的能力,而过于复杂的任务可能超出机器人的操作能力,导致无效的学习结果
  2. 因此,数据集准备的一部分包括排除或修改那些包含超出机器人能力的复杂下半身动作的条目。这一步骤对于确保数据集充满可操作内容而不因不切实际的任务而使机器人的学习算法不堪重负至关重要。通过精心策划,作者策划了适合机器人训练的最佳平衡的不同数据集

5.2.2 策略学习:教师策略与学生策略

ExBody2旨在通过全身更具表现力地跟踪目标运动。为此,ExBody2采用了一种有效的两阶段师生训练程序,如[37-Rma,38-Learning quadrupedal locomotion over challenging terrain]中所述

5.2.2.1 教师策略的训练

具体来说,首先使用现成的强化学习算法PPO [60],在模拟器中仅能获取的特权信息下训练出一个理想的教师策略

  1. 可以将人形运动控制问题表述为一个马尔可夫决策过程(MDP),状态空间\mathcal{S} 包含特权观测\mathcal{X}、本体感知状态\mathcal{O} 和运动跟踪目标G
    策略π 以\left\{p_{t}, o_{t}, g_{t}\right\}作为输入,并输出动作\hat{a}_{t},如图2 中所示为教师策略
    预测的动作\hat{a}_{t} \in R^{23}是关节比例微分(PD)控制器的目标关节位置
  2. 作者使用现成的PPO [60] 算法来最大化累积未来奖励的期望
    E_{\hat{\pi}}\left[\sum_{t=0}^{T} \gamma^{t} \mathcal{R}\left(s_{t}, \hat{a}_{t}\right)\right]
    这鼓励以稳健的行为跟踪示范。预测的\hat{a}_{t} \in R^{23}是关节比例微分(PD)控制器的目标位置

对于特权信息,包含人形机器人和环境的一些真实状态,这些状态只能在模拟器中观察到。它包含真实的根速度、真实身体连接的位置和物理属性(例如摩擦系数、马达强度)。特权信息可以显著提高RL算法的样本效率,这通常被利用来获得高性能的教师政策

对于运动跟踪目标,类似于Exbody [9],ExBody2学习一种可以通过操纵杆命令(例如线速度和身体姿态)控制的策略,以为了准确跟踪全身运动
运动跟踪目标由两个部分组成,分别是(1)上半身和下半身的目标关节和3D关键点,以及(2)目标根速度和根姿势。有关特权信息、运动跟踪信息和教师策略的本体感觉观测的完整信息,请参阅补充材料

对于奖励设计,奖励函数经过精心构建,以增强人形机器人运动的性能和逼真度。奖励的主要组成部分包括跟踪根部的速度、方向和方向,以及关键点和关节位置的精确跟踪此外

 作者的跟踪奖励的主要元素详见表1

作者还加入了几个正则化项

旨在提高机器人的稳定性并增强从模拟到现实应用的可转移性。而旨在提高稳定性和sim2real能力的补充奖励将在补充材料中广泛讨论

5.2.2.2 学生策略的训练

在第二阶段,用与现实世界对齐的观测数据替换特权信息,并将教师策略提炼为可部署的学生策略。作者使用IsaacGym[46-Isaac gym: High performance gpu-based physics simulation for robot learning]进行高效并行仿真来训练ExBody2的策略

具体而言,在此阶段,我们移除特权信息,并使用更长的历史观察来训练学生策略「特权信息教师策略利用特权信息以获得准确的运动跟踪性能不同,学生生策略是在较长的历史长度上训练的,相较于教师,因为它无法观察特权信息,而必须从较长的过去观察序列中学习」。如下图图2所示

  1. 学生策略编码了一系列的过去的观测O_{t-H: t}与编码的g_{t}一起用于获取预测的a_{t} \sim \pi\left(\cdot \mid o_{t-H: t}, g_{t}\right)
  2. 作者使用教师的动作\hat{a}_{t} \sim \hat{\pi}\left(\cdot \mid o_{t}, g_{t}\right)和一个MSE 损失来监督π
    l=\left\|a_{t}-\hat{a}_{t}\right\|^{2}

为了训练学生,作者采用DAgger [59- A reduction of imitation learning and structured prediction to noregret online learning]中使用的策略,作者在模拟环境中展开学生策略π以生成训练数据

  • 对于每个访问的状态,教师策略\hat{\pi}计算出作为监督信号的oracle动作。然后通过迭代地最小化累积数据上的损失l 来继续优化策略π。\hat{\pi}的训练通过连续的展开继续进行,直到损失l达到收敛「The training of ˆπ continues through successive rollouts untilthe loss l reaches convergence
  • 训练学生策略的一个关键方面是保留足够长的历史观察序列
5.2.2.3 分解跟踪策略

运动跟踪包括两个目标:跟踪自由度(关节)位置和关键点(身体关键点)位置。后者关键点跟踪通常在运动跟踪中起着至关重要的作用,因为前者关节自由度的错误可能会传播到整个身体,而关键点跟踪直接应用于身体

总之,跟踪目标信息教师策略和学生策略也将运动跟踪目标作为其观察的一部分,其中包括关键点位置、自由度(关节)位置以及根部运动信息

现有的工作如H2O、OmniH2O [23,24] 学习跟随全局关键点的轨迹。然而,这种全局跟踪策略通常会导致次优或失败的跟踪行为,因为全局关键点可能会随着时间的推移而漂移,导致累积误差最终阻碍学习

  1. 为了解决这个问题,作者将全局关键点映射到机器人的当前坐标系,并改用基于速度的全局跟踪。速度和运动的协调允许在出现轻微位置偏差时完成最大表达性的跟踪
  2. 此外,为了进一步增强机器人在跟随具有挑战性的关键点运动方面的能力,允许在训练阶段关键点有小范围的全局漂移,并定期将它们校正到机器人的当前坐标系
    且在部署期间,作者严格采用局部关键点跟踪与速度分解控制

5.2.3 连续运动合成:类似ALOHA ACT,通过CVAE做编码、解码

现有的运动通常较短,这限制了人形机器人连续执行有趣和延长的行为。为了解决这个问题,作者训练了一个条件变分自编码器(CVAE)[64- Learning structured output representation using deep conditional generative models,79-ALOHA ACT]来合成可以被全身跟踪策略直接使用的未来运动,使机器人在部署期间能够无缝执行复杂且富有表现力的动作

如下图图2(c) 所示,CVAE 模型包含一个基于transformer 的编码器和解码器

CVAE 采用过去M 步的运动m_{t-M: t},并自回归地合成未来H 步的运动m_{t+1: t+H+1}m_{t}包括当前的自由度位置、根姿态、速度和角速度

  1. 具体来说,作者利用基于Transformer 的CVAE 架构,类似于[79-ALOHA ACT]中提出的架构
    首先通过两个独立的MLP 分别对自由度位置和根信息进行tokenize,获得tokenized的运动信息
  2. 然后通过Transformer 编码器网络,利用[CLS] token的特征,计算后验q_{\phi}\left(m_{t-M: t}, m_{t+1: t+H+1}\right)
    相当于在训练过程中,transformer编码器f_{e n c}接收整段全部动作m_{t-M: t+H+1}和一个分类token [CLS],并得到输出序列

    为了简化记号并与标准CVAE 保持一致,作者将条件c=m_{t-M: t}表示为历史上下文,而x=m_{t+1: t+H+1}
    表示为要预测的目标,相当于ground truth

    在训练时,潜在变量z\mathcal{N}\left(\mu(c, x), \sigma(c, x)^{2}\right.中采样
    相当于编码器利用双向注意力从过去M 步动作m_{t-M: t}未来H 步动作m_{t+1: t+H+1}中提取潜在后验变量z——The encoder leverages bidirectional attention to extract the latent posterior variable z based on past M−step motions mt−M:t and future H-step motions mt+1:t+H+1
  3. 一个Transformer 解码器将利用zc=m_{t-M: t}以及位置嵌入来预测H 步的未来运动\hat{x}
    相当于解码器基于因果注意力基于z 和过去M 步动作m_{t-M: t} 去预测的未来H 步动作m_{t+1: t+H+1}——即the decoder uses causal attention to predict future H-step motions mt+1:t+H+1 based on z and mt−M:t.
    1) 这里m_t 包括当前关键点位置、根速度、根角速度、位置和旋转
    2) 预测归预测,那实际的
    未来H步动作m_{t+1: t+H+1}怎么生成的呢?一个潜在变量z 被采样并与整段全部动作m_{t-M: t+H+1}一起输入解码器,以生成未来H步动作m_{t+1: t+H+1}
    A latent variable z is sampled and fed into the decoder alongside mt−M:t+H+1 to generate mt+1:t+H+1

    CVAE 损失包括重建损失l_{\text {recon }}=\|x-\hat{x}\|^{2}和KL 散度损失
    l_{K L}=\frac{1}{2} \sum_{i=1}^{d}\left(\sigma_{i}^{2}(x, c)+\mu_{i}^{2}(x, c)-1-\log \left(\sigma_{i}^{2}(x, c)\right)\right)

    其中,d是潜在空间的维数。为了提高预测运动的平滑性,作者还应用了平滑损失l_{\text {smooth }}=\left\|\hat{m}_{t+1}-m_{t}\right\|^{2}+\sum_{i=t+1}^{t+H}\left\|\hat{m}_{i+1}-\hat{m}_{i}\right\|^{2}

    cVAE 训练的总损失为:l_{\text {motion }}=l_{\text {recon }}+\alpha l_{K L}+\beta l_{\text {smooth }},在作者的实验中设置α = β = 0.5。在推理过程中,z 被设置为先验的均值(即零)
    且采用与Zhao 等人[79-ALOHA ACT] 类似的时间集成策略来获得预测的未来运动

至于作者做的为证明ExBody2效果不错的一系列实验,请见原论文

// 待更

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐