ExBody2: Advanced Expressive Humanoid Whole-Body Control

ExBody2: Advanced Expressive Humanoid Whole-Body Control

ExBody2: Advanced Expressive Humanoid Whole-Body Control

研究动机

  • 高维状态空间和复杂控制限制了人形机器人在现实世界中的应用。
  • 人形机器人和人类在身体结构上有很大不同,阻碍了机器人完全复制人类动作的能力。

解决方案

提出高表达性全身控制(ExBody2),该框架可以最大限度地提高人形机器人上可行的全身运动的表现力。该框架属于Sim2Real,策略将参考运动作为输入,输出控制真实人形机器人在现实世界中执行运动的动作。其中策略可以对不同的动作进行泛化。

在这里插入图片描述

技术路线

数据集管理:数据集包括各种上半身运动。动作的多样性对于挑战和增强机器人的适应性和对实际应用的准备至关重要,尤其是响应意外场景的灵活性。而由于机器人的机械限制和稳定性要求,下半身的运动选择更加保守。基本动作包括行走和细微的姿态调整。而高动态的运动如跳跃或复杂的旋转运动,则需要仔细考量。不可行的行为进行训练会在学习过程中引入噪声,从而降低其有效性。此外,还需要排除或修改超出机器人能力的复杂下半身运动动作。

策略学习:采用两阶段师生训练策略。具体而言,教师策略首先使用PPO算法进行训练,在仿真中获取特权信息。然后,将特权信息替换为与现实世界一致的观测值,并将教师策略提炼为可部署的学术策略。

  • 教师策略学习:状态信息包括特权信息、机器人本体感知和运动跟踪目标。动作输出是关节目标位置。特权信息包含人形机器人和环境的一些状态真值,这些真值只能在仿真中观测到,包括机器人本体速度、机器人本体连接件的位置和物理属性(比如摩擦系数、电机强度)。运动跟踪目标由两部分组成,分别是上半身和下半身的预期关节和3D关键点,以及目标线速度和位姿。奖励函数包括跟踪机器人本体速度、方向和方位,跟踪关键点和关节位置,以及正则化项。

Alt
在这里插入图片描述

  • 学生策略学习:学生策略不含特权信息,而是使用观测时序更长的历史帧来训练,同时包含运动跟踪目标。使用教师策略输出的动作对学生策略输出的动作进行监督,并采用MSE损失进行训练。此外,还用DAgger方法,在仿真环境中执行学生策略以生成训练数据。
  • 跟踪策略解耦:运动跟踪包含两个目标:跟踪关节位置和身体关键点位置。关键点跟踪至关重要,因为关节的跟踪误差可以扩散到整个身体,而关键点跟踪而直接应用于身体。具体而言,将全局关键点映射到机器人的局部坐标系,并使用基于速度的全局跟踪。速度和运动的协调允许即使出现轻微的位置偏差也能完成跟踪效果。此外,为进一步增强机器人在跟随关键点的能力,在训练阶段允许关键点有轻微的全局漂移,并定期将其纠正到机器人的当前坐标系。

连续运动生成:现有的动作通常较短,这限制了人形机器人连续执行有趣且延伸的行为。为克服该问题,训练条件变分自编码器CVAE,以合成未来可以被全身跟踪策略直接使用的动作。具体而言,CVAE根据历史M帧的运动信息合成未来H帧的运动信息,包括关节位置、机器人本体姿态、速度和角速度。该设计使ExBody2系统能够执行超越原始数据集时长限制的复杂动作(如持续舞蹈),并且动态适应环境变化以及保持动作的自然流畅性。

实验结果

请阅读原文。

### 表达性人形机器人复现的方法与技术路径 #### 技术背景 表达性人形机器人的开发涉及多个领域,包括自然语言处理、动作生成模型以及机器人控制系统。通过将预训练的文本到动作生成模型(如MDM)与机器人硬件相结合,能够实现基于语音指令的人体动作模仿和执行[^1]。 #### 关键组件分析 为了构建类似的系统,需关注以下几个核心模块: 1. **文本到动作生成模型** 文本到动作生成的核心在于利用扩散模型(Diffusion Model),例如MDM (Human Motion Diffusion Model),它可以从输入的自然语言描述中生成对应的动作序列[^2]。该模型通常依赖大规模数据集进行训练,这些数据集中包含了标注好的人体姿态及其对应的语义描述。 2. **机器人运动规划** 动作目标一旦被生成,就需要由机器人平台上的运动控制器来追踪并完成实际操作。例如,在某些实验中提到的OmniH2O框架可以用于实时跟踪生成的目标轨迹,并将其映射至具体的关节角度变化上。 3. **软硬件集成** 将上述软件部分部署于物理设备之上还需要解决诸多工程挑战,比如传感器校准、延迟优化等问题。此外,还需考虑不同品牌型号间可能存在的兼容性差异。 #### 实践建议 对于希望重现此类项目的开发者而言,可遵循如下策略: - 学习并掌握相关理论基础,特别是深度学习中的变分自编码器(VAEs)及马尔科夫链蒙特卡洛方法(MCMC); - 获取公开可用的数据资源以供本地测试; - 参考已有的开源项目代码库作为起点, 如GitHub上有不少围绕motion generation topic展开的工作可供借鉴; - 如果条件允许的话,则尝试搭建简易版原型验证可行性后再逐步完善功能特性. ```python import torch from diffusers import AutoencoderKL # 加载预训练权重文件 vae = AutoencoderKL.from_pretrained("path/to/mdm_weights") def generate_motion(prompt): # 编码提示词为潜空间表示向量z z = encode_text_to_latent_space(prompt) # 使用VAE解码得到最终动作序列 generated_sequence = vae.decode(z).sample return generated_sequence.numpy() ``` 以上片段展示了如何调用一个假设性的函数`generate_motion()`来自动生成一段舞蹈或其他形式的身体活动表现给定一句简单的英语说明文字。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值