当前位置: 首页 > news >正文

英伟达HOVER——用于人形机器人的多功能全身控制器:整合不同的控制模式且实现彼此之间的无缝切换

前言

本博客内已经介绍过了各种人形机器人,比如

  • Open-television,也是HOVER的第1篇参考文献
  • Okami,是HOVER第3篇参考文献
  • Digit,HOVER的第4篇参考文献
  • OmniH2O,第9篇参考文献
  • H2O,第10篇参考文献
  • ExBody,第12篇参考文献
  • HumanPlus,第13篇参考文献

第一部分 HOVER

1.1 HOVER提出的背景及相关工作

1.1.1 背景

人形机器人是一种多功能的形态,支持多种机器人任务和应用,包括双手操作[1–3,即open-television、Learning visuotactile skills with two multifingered hands、Okami]、双足行走[4–7]和灵活的全身控制[8–14]。尽管这些努力展示了令人印象深刻的成果,每个项目都根据其特定任务和场景使用了不同的全身控制公式

  1. 一些使用根速度跟踪[5-Reinforcement learning for versatile, dynamic, and robust bipedal locomotion control,6-Humanoid parkour learning]来支持行走
    一些选择关节角度跟踪[12-ExBody,13-HumanPlus]以实现富有表现力的动作
    还有一些使用选定身体关键点的运动学跟踪[9-OmniH2O,10-H2O]来支持远程操作
  2. 虽然这些方法在运动跟踪的最终目标上相似,但它们需要任务特定的控制器接口和奖励设计。这不仅使开发过程重复且耗时,还限制了最终全身控制器的多功能性

    例如,使用根速度跟踪[5,6]在不平坦地形上进行双足行走的机器人,将难以无缝切换到需要精确双手操作的任务,此时可能需要关节角度或末端执行器跟踪[2,12,13]。这些任务特定的依赖性限制了多功能性,因为每个控制器都被限制在单一的控制模式

    除了运动跟踪之外,许多预训练的操作策略[15-Open x-embodiment: Robotic learning datasets and rt-x models,16-Openvla: An open-source vision-language-action model]需要在不同的配置空间中运行,例如关节角度和末端执行器位置。这种变化性突显了需要一个统一的低级人形控制器,能够适应多种控制模式配置
    说白了,就是大家用的算法或控制策略,可能在某一套硬件上能比较好的work,但可能换到另一个硬件上,则不一定能很好的work,尽管它们都是机器人

1.1.2 HOVER及其优势

为此,来自NVIDIA、CMU、UC Berkeley、UT Austin(得克萨斯大学奥斯汀分校)、UC San Diego的研究者们

  • Tairan He*1,2(他是a second-year Ph.D. student at the Robotics Institute at Carnegie Mellon University, advised by Guanya Shi and Changliu Liu. I am also a member of NVIDIA GEAR group led by Jim Fan and Yuke Zhu)
  • Wenli Xiao*1,2、Toru Lin1,3、Zhengyi Luo1,2、Zhenjia Xu1、Zhenyu Jiang1,4、Jan Kautz1
  • Changliu Liu2Guanya Shi2
  • Xiaolong Wang1,5
  • Linxi "Jim" Fan†1、Yuke Zhu†1,4
    「以上标粗的同时也是OmniH2O的作者,且最后两个作者带的†表示是GEAR Team Leads」

提出了HOVER

其是一个用于人形全身控制的统一神经控制器——旨在学习一种统一的控制策略,可以直接用于使用不同控制模式控制真实的人形机器人「we aim to learn a unified control policy that can be directly used to control real humanoids using different control modes

如下图所示,4个机器人分别代表H2O模式、OmniH2O模式、ExBody模式、HumanPlus模式,但不同控制模式下背后对应的策略可以统一为HOVER策略

且其支持如下图图1所示的多种控制模式,包括用于真实世界应用的超过15种有用模式,且适用于19自由度的人形机器人

  • 这种多功能的命令空间涵盖了大多数先前工作中使用的模式[9,10,12,13]。为了确保在任务中具有良好泛化能力的稳健运动技能基础,作者训练了一个预言机运动模仿器,以模仿来自MoCap的大规模人类运动数据[17],涵盖多种类型运动和控制目标
  • 且还通过策略蒸馏过程,将这些运动技能从原始策略转移到一个能够处理多种控制模式的“通用策略”中。结果表明,生成的多模式策略不仅支持多样的控制模式,而且在下图图3中展示的结果显示「在相应模式下,之前工作的专家(蓝色)HOVER的通用策略(绿色)之间的比较。使用的指标是:上/下关节误差(弧度)、全局/局部身体位置误差(毫米)、根速度误差(米/秒)和根旋转误差(弧度)。这些指标评估每种策略在不同控制模式下对参考动作和关节配置的跟踪准确性」,其性能优于为每种模式单独训练的策略

    作者假设这是因为策略利用了跨模式共享的物理知识,例如维持平衡、类人运动和精确的肢体控制。这些共享技能增强了泛化能力,从而在所有模式下实现更好的性能
    他们宣称,相比之下,单模式策略通常对特定的奖励结构和训练环境过拟合,限制了其适应性。HOVER的多模式通用策略还实现了模式之间的无缝切换,使其既稳健又多才多艺

1.2 HOVER的方法

1.2.1 面向目标的RL用于人形控制

作者将问题表述为一个目标条件强化学习任务,其中策略\pi被训练用于跟踪实时的人体运动

  1. 状态\boldsymbol{s}_{t}包括代理的本体感受s_{t}^{\mathrm{p}}和目标状态s_{t}^{\mathrm{g}}
    其中,目标状态s_{t}^{\mathrm{g}}提供了目标运动目标的统一表示(在原论文中第II-B节详细描述)
  2. 利用代理的本体感受s_{t}^{\mathrm{p}}和目标状态s_{t}^{\mathrm{g}},定义奖励
    r_{t}=\mathcal{R}\left(s_{t}^{\mathrm{p}}, s_{t}^{\mathrm{g}}\right)
    用于策略优化
  3. 动作\boldsymbol{a}_{t} \in \mathbb{R}^{19}表示目标关节位置,这些位置被输入到PD控制器中以驱动机器人的自由度。且作者采用近端策略优化(PPO)算法 [18] 来最大化累计折扣奖励
    \mathbb{E}\left[\sum_{t=1}^{T} \gamma^{t-1} r_{t}\right]
    该设置被框定为一个命令跟踪任务,其中人形机器人学习在每个时间步跟随目标命令

1.2.2 仿人控制的命令空间设计

在腿式运动中,根速度[19]或位置跟踪[20]是常用的命令空间。然而,仅关注根跟踪会限制仿人机器人的全部能力,尤其是在全身运动操作任务中

作者观察到,尽管先前的工作[9,10,12,13]引入了具有不同优缺点的控制模式,但每种模式通常都针对特定任务子集进行定制,因此缺乏通用仿人控制所需的灵活性。相反,作者的目标是设计一个综合控制框架,以适应各种场景并对各种人形任务皆具有适应性

为实现这一目标,命令空间必须构建以满足以下关键标准:

  • 通用性:命令空间应涵盖大多数现有配置,允许通用控制器在不牺牲性能或多功能性的情况下替换任务专用控制器。该空间应具有足够的表达能力,以便与现实世界的控制设备接口,包括如图1所示的操纵杆、键盘、动作捕捉系统、外骨骼和虚拟现实(VR)头戴设备
  • 原子性:命令空间应由独立的维度组成,使得控制选项可以任意组合,以支持各种模式

基于这些标准,作者为人形机器人全身控制定义了一个统一的命令空间。这个空间由两个主要控制区域组成——上半身控制和下半身控制——并包含三种不同的控制模式:

  1. 运动学位置跟踪:机器人关键刚体点的目标3D位置
  2. 局部关节角度跟踪:每个机器人电机的目标关节角度
  3. 根部跟踪:目标根部速度、高度和方向,由滚动、俯仰和偏航角指定

在作者的框架中,如下图图1所示

引入了一个独热掩码向量来指定指令空间中哪些组件被激活用于跟踪。最近关于基于学习的人形全身控制的工作[9,10,12,13],如下表表I所示,可以视为他们统一指令空间的子集,每个子集代表特定的配置

1.2.3 动作重定向:从人到SMPL再到人形上

最近的研究表明,从大型动作数据集中学习鲁棒的全身控制对人形机器人具有优势[9,10,12,13]。从人类动作数据集[17]到人形动作数据集的重定向过程分为三个步骤:

  1. 步骤1:首先使用正向运动学计算人形机器人的关键点位置,将其关节配置映射到工作空间坐标
  2. 步骤2:接下来,通过优化SMPL参数以匹配正向运动学计算的关键点,使SMPL模型符合人形机器人的运动学
  3. 步骤3:最后,通过梯度下降匹配拟合的SMPL模型和人形机器人之间的对应关键点,重新定向AMASS数据集

过程中,遵循与[10-H2O]相同的动作重定向和“模拟到数据”程序,将大规模人类动作数据集[17]转换为仅包含对人形机器人可行动作的数据集\hat{Q}

1.2.4 从大规模人类动作中训练Oracle策略

在状态空间设计上,作者训练一个oracle运动模仿器\pi^{\text {oracle }}\left(a_{t} \mid s_{t}^{\mathrm{p} \text {-oracle }}, s_{t}^{\mathrm{g} \text {-oracle }}\right)

  • 本体感觉被定义为s_{t}^{\text {p-oracle }} \triangleq\left[\boldsymbol{p}_{t}, \boldsymbol{\theta}_{t}, \dot{p}_{t}, \boldsymbol{\omega}_{t}, \boldsymbol{a}_{t-1}\right]
    其中包含人形刚体的位置\boldsymbol{p}_{t},方位\boldsymbol{\theta}_{t},线速度\dot{p}_{t},角速度\boldsymbol{\omega}_{t},以及前一个动作\boldsymbol{a}_{t-1}
  • 目标状态被定义为s_{t}^{\text {g-oracle }} \triangleq\left[\hat{\boldsymbol{\theta}}_{t+1} \ominus \boldsymbol{\theta}_{t}, \hat{\boldsymbol{p}}_{t+1}-\boldsymbol{p}_{t}, \hat{\boldsymbol{v}}_{t+1}-\right.\left.\boldsymbol{v}_{t}, \hat{\boldsymbol{\omega}}_{t+1}-\boldsymbol{\omega}_{t}, \hat{\boldsymbol{\theta}}_{\boldsymbol{t}}, \hat{\boldsymbol{p}}_{\boldsymbol{t}}\right]
    其中包含参考姿态\left(\hat{\boldsymbol{\theta}}_{t}, \hat{\boldsymbol{p}}_{t}\right)以及所有人形刚体的参考状态与当前状态之间的一帧差异
  • 作者使用与[9-OmniH2O]相同的策略网络结构,一个三层MLP,层维度为[512,256,128]

在奖励设计和领域随机化(Domain Randomization)上,作者将奖励r_{t}公式化为三个组成部分的总和:1)惩罚,2)正则化,3)任务奖励,详细信息见下表表 II 

作者遵循[9-OmniH2O]中的相同域随机化来随机化模拟环境和人形的物理参数,以实现成功的模拟到现实的转移

1.2.5 通过蒸馏的多模式多功能控制器

对于本体感受

  1. 从先知教师\pi^{\text {oracle }}蒸馏而来的学生策略
    \pi^{\text {student }}\left(s_{t}^{\mathrm{p} \text {-student }}, s_{t}^{\text {g-student }}\right)
  2. 本体感受定义为
    s_{t}^{\mathrm{p} \text {-student }} \triangleq\left[q, \dot{q}, \omega^{\text {base }}, g\right]_{t-25: t} \cup\left[a_{t-25: t-1}\right]
    其中 q 是关节位置,\dot{q} 是关节速度,\omega^{\text {base }}是基座角速度,g 是重力向量,a是动作历史
    根据 [9],作者将这些项在最近的 25个步骤中堆叠起来,以表示学生的本体感受输入

对于命令掩码

如下图图2所示,学生策略的任务命令输入是通过基于模式和基于稀疏性的掩码来定义的

具体而言,学生的任务命令输入s_{t}^{g \text { g-student }}表示为

s_{t}^{\text {g-student }} \triangleq M_{\text {sparsity }} \odot\left[M_{\text {mode }} \odot s_{t}^{\mathrm{g} \text {-upper }}, M_{\text {mode }} \odot s_{t}^{\text {g-lower }}\right.

模式掩码M_{\text {mode }}选择特定的任务命令模式独立地控制上半身和下半身。例如,上半身可以跟踪运动学位置,而下半身则专注于关节角度和根部跟踪,如图2所示

在模式特定的遮罩之后,应用稀疏遮罩Msparsity。例如,在某些场景中,上半身可能只跟踪手的运动学位置,而下半身则仅跟踪躯干的关节角度。模式和稀疏二进制遮罩的每一位都来自于伯努利分布B(0.5)。模式和稀疏遮罩在剧集开始时随机化,并在剧集结束前保持不变

在策略蒸馏上,作者使用DAgger框架[21]进行策略蒸馏

  1. 对于每个回合,作者在模拟中展开学生策略
    \pi^{\text {student }}\left(\mathbf{a}_{t} \mid s_{t}^{\mathrm{p} \text {-student }}, s_{t}^{\mathrm{g} \text {-student }}\right)
    以获得
    \left(s_{t}^{\mathrm{p} \text {-student }}, s_{t}^{\mathrm{g} \text {-student }}\right)
    的轨迹
  2. 在每个时间步,还计算相应的oracle状态
    \left(s_{t}^{\mathrm{p} \text {-oracle }}, s_{t}^{\mathrm{g} \text {-oracle }}\right)
    利用这些oracle状态,可以查询oracle教师策略
    \pi^{\text {oracle }}\left(\hat{\mathbf{a}}_{t} \mid s_{t}^{\mathrm{p} \text {-oracle }}, s_{t}^{\mathrm{g} \text {-oracle }}\right)
    以获得参考动作\hat{\mathbf{a}}_{t}
  3. 然后通过最小化损失函数
    \mathcal{L}=\left\|\hat{\mathbf{a}}_{t}-\mathbf{a}_{t}\right\|_{2}^{2}
    来更新学生策略\pi^{\text {student }}

    其中\hat{\mathbf{a}}_{t}是来自oracle的参考动作,而\mathbf{a}_{t}是学生策略采取的动作

// 待更


http://www.mrgr.cn/news/67444.html

相关文章:

  • 在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
  • 【每日一题】2009考研数据结构 - 求倒数第k个数的值
  • 17、论文阅读:VMamba:视觉状态空间模型
  • 爬虫下载网页文夹
  • gitee 使用 webhoot 触发 Jenkins 自动构建
  • BERT框架
  • 【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口
  • 解决 Spring Boot 线程泄漏问题
  • 数据治理:聊聊数据血缘!
  • linux之调度管理(1)-调度器的初始化
  • 第三百一十五节 Java线程教程 - Java线程休眠
  • 网站模版企业如何选择免费网站模板
  • Java 异常处理的最佳实践
  • 探索淘宝API:如何高效获取商品类目信息
  • Stream操作
  • [C++ 核心编程]笔记 4.4.2 类做友元
  • 030集——分组法——C# CAD二次开发
  • 云服务器上的网站取消301重定向功能
  • qt QCompleter详解
  • 【CAN总线协议】CAN和CANFD的区别、CAN FD帧结构解析
  • 制造业仓储信息化总体规划方案
  • 康坦电商发布2024年度战略:立足中国,开拓全球市场
  • Redux的简介及其在React中的应用
  • 想要搭建陪玩系统小程序,这几点不容忽视,陪玩系统源码框架
  • 在Java中抽象类和接口的区别是什么?
  • PySpark本地开发环境搭建