OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)

news2024/11/17 0:24:51

前言

由于我司一直在针对各个工厂、公司、客户特定的业务场景,做解决方案或定制开发,所以针对每一个场景,我们都会反复考虑用什么样的机器人做定制开发

于此,便不可避免的追踪国内外最前沿的机器人技术进展,本来准备在上一篇博客《VLM驱动机器狗——从UMI on Legs到Helpful DoggyBot:分别把机械臂装到机器狗背上、夹爪装到机器狗嘴里》之后,解读今天上午看到的字节刚发的机器人大模型GR2

当时,还发微博说,头一次看paper不看正文,而是直奔其References:​看有没有我预想中的文献,说明咱看paper的能力相比去年强很多了

没想到

  1. 晚上,一在上海一机器人公司的朋友,又发我了一个链接:OmniH2O: Universal and Dexterous Human-to-Humanoid Whole-Body Teleoperation and Learning,并说这个挺可以的

    我回复他说,这个工作 之前看到过,和humanplus、television 挺像「OmniH2O论文(24年6.13)和humanplus(24年6.15)的发布时间差不多,但比television(24年7月初)发布的更早,但后来再一细究发现,OmniH2O的前身H2O发布的更早(24年5月7日):Learning Human-to-Humanoid Real-Time Whole-Body Teleoperation,和此文第一部分中介绍的AnyTeleop发布时间差不多(24年5.16)

    之前 一直没来得及解读,准备也解读下,😆
  2. 我再问他,你们是在仿真环境中 复现了下,是不
    他回答道:他最近开源了代码,有新的改进,目前是仿真,后续可以尝试迁移

考虑到OmniH2O及其前身H2O是之前的工作,在字节机器人大模型GR2之前,故本文先解读这个OmniH2O及其前身H2O

第一部分 H2O:Learning Human-to-Humanoid Real-Time Whole-Body Teleoperation

24年5月7日,来自CMU的研究者Tairan He, Zhengyi Luo, Wenli Xiao, Chong Zhang, Kris Kitani, Changliu Liu, Guanya Shi,发布了这篇论文《Learning Human-to-Humanoid Real-Time Whole-Body Teleoperation》,这篇论文在我熟知的几大开源人形机器人里——比如humanplus television,算是发布的最早的了,比如其便是humanplus的第31篇参考文献

在该文中,作者设计了一个实时人形机器人远程操作的完整系统

1.1 相关工作及背景:第一个实现基于学习的全身远程操作的方法

1.1.1 数据集的问题

首先,识别出全身人形机器人远程操作的一个主要挑战是缺乏一个针对人形机器人的可行动作数据集,这对于训练能够跟踪多样化动作的控制器至关重要。尽管先前的研究已经探索了人类到人形机器人的直接动作重定向,主要集中在运动方面的努力[23-25],但将大规模的人类动作数据集重定向到人形机器人上带来了新的挑战

也就是说,人类与人形机器人之间显著的动态差异意味着某些人类动作对于人形机器人来说可能是不可行的(例如侧手翻、步幅超过人形机器人腿长的步伐)

鉴于此,他们引入了一种自动化的“模拟到数据”过程,将大规模的人类动作数据集[26-Amass,关于,在此文HumanPlus的1.1.2 训练用于全身控制的low-level policy:Humanoid Shadowing Transformer中有介绍]重定向并优化为适用于现实世界人形机器人体现的动作

  1. 具体来说,我们首先通过逆运动学将人类动作重定向到人形机器人,并训练一个具有特权状态信息访问权限的人形机器人控制器[18-Perpetual humanoid control for real-time
    simulated avatars],以在模拟中模仿未经滤波的动作
  2. 之后,去除特权模仿器无法跟踪的动作序列(we remove the motion sequences that the privileged imitator fails to track)
    通过这样做,创建了一个大规模的人形机器人兼容动作数据集。在获得可行动作的数据集后,再开发了一种可扩展的训练过程,用于现实世界的动作模仿器,该过程结合了广泛的领域随机化以弥合模拟与现实之间的差距
  3. 为了促进实时远程操作,设计了一个状态空间,优先考虑现实世界中使用RGB摄像头可获得的输入,例如关键点位置。在推理过程中,我们使用一个现成的人体姿态估计器[27-Hybrik: A hybrid analytical-neural inverse kinematics solution for 3d human pose and shape estimation]来提供全局人体位置以供人形机器人追踪

1.1.2 将人类动作转移到现实世界的仿人机器人上

在基于强化学习的类人控制器出现之前,传统方法通常采用基于模型的优化来跟踪重新定位的动作,同时保持稳定性 [1-Teleoperation of humanoid robots:A survey]

  1. 为此,这些方法在稳定性和接触约束下最小化跟踪误差,需要预定义的接触状态 [6,10,12,13,37–40] 或从传感器估计的接触 [7,9,14,41,42],这限制了在实验室外的大规模部署
  2. Zhang 等人 [11-Slomo: A general system for legged robot motion imitation from casual videos] 使用隐式接触的模型预测控制MPC来跟踪从视频中提取的动作,但轨迹必须首先离线优化以确保动态可行性
    此外,由于计算负担,MPC中使用的模型需要简化 [6,11,14],这限制了可跟踪动作的能力。基于强化学习的控制器可能提供一种不需要明确接触信息的替代方案
  3. 一些研究[43, 44]使用模仿学习将人类风格的动作转移到控制器上,但不能准确跟踪人类动作。Cheng等人[22-Expressive whole-body control for humanoid robots]训练了全身类人控制器,可以从离线的人类动作中复制上半身动作,但下半身依赖于根部速度跟踪,并未跟踪精确的下半身动作

    相比之下,CMU的工作实现了人类动作的实时全身跟踪

1.1.3 人形机器人远程操控

人形机器人遥操作可以分为三种类型:

  1. 任务空间遥操作 [45,46]
  2. 上半身重定向遥操作[47,48]
  3. 全身遥操作 [6,7,13,42,49]

对于第一种和第二种类型,人类与人形机器人之间的共享形态并未得到充分利用,全身控制必须以任务指定的方式解决。这也引发了一个问题,即如果不需要跟踪下半身的运动,机器人可以选择具有更好稳定性的设计,例如四足 [50] 或轮式配置 [51]

CMU的工作属于第三种类型,并且是第一个实现基于学习的全身远程操作的方法。此外,他们的方法不需要在人类远程操作员身上使用捕捉标记或力传感器,因为他们直接使用RGB摄像头捕捉人类动作进行跟踪,这可能为收集大规模类人数据以训练自主代理铺平道路(所以后来的humanplus也是用的这个RGB摄像头的方式捕捉人类动作进行跟踪)

1.2 将全身实时人形远程操作建模为目标条件下的RL问题

作为符号惯例,使用表示来自姿态估计器/关键点检测器的运动学量(不包含物理模拟),用表示来自动作捕捉(MoCap)的真实值,而使用没有重音符号的普通符号表示来自物理模拟的数值

1.2.1 面向目标的类人控制强化学习

接下来,将问题表述为目标导向的强化学习,其中策略π被训练用于跟踪实时的人体动作

  1. 将学习任务表述为一个由状态集S、动作集A、转移动态T、奖励函数R和折扣因子γ组成的马尔可夫决策过程(MDP):\mathcal{M}=\langle\mathcal{S}, \mathcal{A}, \mathcal{T}, \mathcal{R}, \gamma\rangle,其中,状态s_{t} \in \mathcal{S}、动作a_{t} \in \mathcal{A}\mathcal{T}代表轨迹、\mathcal{R}代表奖励函数
    且状态\boldsymbol{s}_{t}包含本体感知p。目标状态s_g^t是人类远程操作者全身运动的统一表示
  2. 基于本体感觉s_p^t和目标状态s_g^t,可以定义用于策略训练的奖励r_t = R(s_p^t, s_g^t)
    动作a_t \in \mathbb{R}^{19}指定了 PD 控制器将用于驱动自由度的关节目标位置
    然后,应用近端策略优化(PPO)[52] 来最大化累积折扣奖励
    E\left[\sum_{t=1}^{T} \gamma^{t-1} r_t\right]

    从而将远程操作任务表述为运动模仿/跟踪/模拟任务,在每一帧训练类人机器人跟踪参考运动

1.2.2 参数化人体模型与人体运动数据集

在视觉和图形学界,参数化人体模型(如 SMPL[53,相当于是人形机器人的身体建模数据集,可以代表人形机器人,在我解读的humanplus一文中的此节“1.1.2 训练用于全身控制的low-level policy:Humanoid Shadowing Transformer”也有相关介绍])因其易于处理的人体形状和动作表示而广受欢迎

  1. SMPL 将人体表示为体型参数 β∈R^10,姿势参数\theta \in \mathbb{R}^{24 \times 3},以及根部平移p \in \mathbb{R}^{24 \times 3}
  2. 给定\beta\thetapS表示 SMPL 函数,其中\mathcal{S}(\boldsymbol{\beta}, \boldsymbol{\theta}, \boldsymbol{p}): \boldsymbol{\beta}, \boldsymbol{\theta}, \boldsymbol{p} \rightarrow \mathcal{R}^{6890 \times 3}将参数映射到一个具有 6890 个顶点的人体三角网格的顶点位置
  3. AMASS[26] 数据集包含 40 小时的运动捕捉数据,这些数据用 SMPL 参数表示

1.3 人类动作重定向至人形机器人

为了使仿人机器人能够模仿未编写脚本的人类动作,需要大量的全身动作来训练一个稳健的动作模仿策略

由于人类和仿人机器人在身体结构、形状和动力学方面存在显著差异,直接从人类动作数据集中重新定向的动作可能导致许多仿人机器人无法执行的动作,而这些不可行的动作序列可能会妨碍模仿训练,正如之前的研究所观察到的那样[32-Universal humanoid motion representations for physics-based control]

为了解决这些问题,作者设计了一种“模拟到数据”的方法,以补充传统的重新定向,将大规模的人类动作数据集转换为仿人机器人可行的动作

1.3.1 动作重定向:通过SMPL数据集建模人形以逼近人类动作

由于SMPL运动结构与人形运动之间存在非微不足道的差异,作者针对初始重定向执行了一个两步过程

  1. 首先,由于SMPL身体模型可以表示不同的身体比例,故找到一个最接近人形结构的身体形状\boldsymbol{\beta}^{\prime}
    即选择12个在人类和人形之间具有对应关系的关节,如下图所示「将SMPL身体拟合到H1类人模型。(a) 类人模型关键点的可视化(红点),(b) 类人模型关键点SMPL关键点(绿色点和网格)在拟合SMPL形状β′之前和之后的对比。(c) 拟合前后的对应12个关节位置

    并在形状参数上执行梯度下降,以使用一个通用的静止姿势最小化关节距离
    在找到最优的β′后,给定以SMPL参数表示的一系列动作,使用原始的平移p和姿势θ,但使用拟合的形状β′来获取身体关键点的位置集
  2. 然后,通过使用Adam优化器[54]最小化12个关节位置差异,将动作从人类重定向到人形
    请注意,该重定向过程试图匹配人类的末端执行器到人形(例如脚踝、肘部、手腕),以保持整体运动模式

    另一种方法是直接复制人类到人形的局部关节角度,但这种方法可能会由于运动学树的巨大差异导致末端执行器位置的巨大差异

    在此过程中,作者还添加了一些基于启发式的过滤,以去除不安全的序列,例如坐在地上。在重定向之前寻找β′的动机是,在静止姿势下,我们的人形在其双脚之间有很大的间隙。如果天真地尝试匹配人类和人形之间的脚部运动,人形运动可能会出现内八字的伪影

    使用β′,可以找到一个在其静止姿势下(如上图所示)有大间隙的人体结构
    最终,在拟合过程中使用β′可以有效地创建更可行的运动,如下图所示

1.3.2 基于仿真的数据清洗:提高数据质量(含整体训练流程图)

由于人类与电机驱动的人形机器人之间能力的显著差距,即便把AMASS数据集中的13K运动序列\hat{Q},经过计算,得到10k重新定向的运动序列\hat{Q}^{\text {retarget }},依然包含大量不合理的人形运动

考虑到从大规模数据集中手动查找这些数据序列可能是一个相当繁琐的过程

  1. 因此,作者提出了一种“模拟到数据”的程序,其中训练了一个动作模仿器\pi_{\text {privileged }}(类似于PHC [18-Perpetual humanoid control for real-time simulated avatars]),该模仿器可以访问特权信息privileged information且没有领域随机化domain randomization,以模仿所有未清理的数据\hat{Q}^{\text {retarget }}
    Thus, we propose a “sim-to-data” procedure, where we train a motion imitator πprivileged (similar to PHC [18]) with accessto privileged information and no domain randomization toimitate all uncleaned data ˆQretarget.
  2. 没有领域随机化,\pi_{\text {privileged }}可以在动作模仿中表现良好,但不适合转移到真实的人形机器人
    Without domain random-ization, πprivileged can perform well in motion imitation, butis not suitable for transfer to the real humanoid.

    然而,\pi_{\text {privileged }}代表了动作模仿性能的上限,而\pi_{\text {privileged }}无法模仿的序列则代表不合理的序列

    具体来说,按照PULSE [32-Universal humanoid motion representations for physics-based control]中提出的相同状态空间、控制参数和困难负样本挖掘程序训练\pi_{\text {privileged }},并训练一个单一的模仿策略来模仿整个重定向的数据集

    经过训练,AMASS的1万个动作序列中约有8.5k被证明对H1人形机器人是合理的,将获得的干净数据集称为\hat{\boldsymbol{Q}}^{\text {clean }}

总之,为了训练\pi_{\text {privileged }},故遵循PULSE [32],并训练一个具有“人形机器人的完整刚体状态访问权限”的动作模仿器

  1. 具体来说,对于特权策略\pi_{\text {privileged }},其本体感受定义为
    \boldsymbol{s}_{t}^{\mathrm{p} \text {-privileged }} \triangleq\left[\boldsymbol{p}_{t}, \boldsymbol{\theta}_{t}, \boldsymbol{v}_{t}, \boldsymbol{\omega}_{t}\right]
    其中包含了人形机器人的所有刚体的全局三维位置pt、方向θt、线速度vt和角速度ωt
  2. 目标状态定义为
    \boldsymbol{s}_{t}^{\text {g-privileged }} \triangleq\left[\hat{\boldsymbol{\theta}}_{t+1} \ominus \left.\boldsymbol{\theta}_{t}, \hat{\boldsymbol{p}}_{t+1}-\boldsymbol{p}_{t}, \hat{\boldsymbol{v}}_{t+1}-\boldsymbol{v}_{t}, \hat{\boldsymbol{\omega}}_{t}-\boldsymbol{\omega}_{t}, \hat{\boldsymbol{\theta}}_{t+1}, \hat{\boldsymbol{p}}_{t+1}\right]\right.
    其中包含了参考与当前模拟结果在所有人形机器人刚体上的单帧差异
    它还包含了下一帧的参考刚体方向和位置。所有值都被归一化到人形机器人的坐标系中

    注意,所有值都是全局的,像全局刚体线速度vt和角速度ωt这样的值在现实世界中很难准确获得

最终,整个训练过程如下图所示(建议好好品味下图,流程画的非常清晰)

  1. 重定向:H2O首先通过优化形状参数将SMPL身体模型对齐到类人结构
    然后,H2O使用训练好的特权模仿策略重新定向并去除不可行的动作,从而生成一个干净的动作数据集
  2. 仿真到现实训练:通过从清理后的数据集中采样的动作目标来训练模仿策略
  3. 实时遥操作部署:实时遥操作部署通过RGB摄像头和姿态估计器捕捉人类动作,然后类人机器人使用训练好的仿真到现实模仿策略进行模仿

// 待更

第二部分 OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人

// 待更

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2200999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库管理-第249期 23ai:全球分布式数据库-请求路由与查询过程(20241008)

数据库管理249期 2024-10-08 数据库管理-第249期 23ai:全球分布式数据库-请求路由与查询过程(20241008)1 客户端应用请求路由1.1 分片键1.2 Oracle连接驱动 2 查询过程和查询协调器2.1 指定一致性级别2.2 高可用与性能 总结 数据库管理-第249…

拍立淘API接口以图搜商品列表功能实现技术分享item_search_img|返回商品列表商品id商品价格url

开发背景 在电商平台的快速发展中,用户对于商品搜索的效率和准确性提出了越来越高的要求。传统的基于关键词的搜索方式,虽然在一定程度上满足了用户的需求,但在面对复杂的商品信息和多样化的用户搜索意图时,仍存在诸多局限性。为…

PyTorch搭建GNN(GCN、GraphSAGE和GAT)实现多节点、单节点内多变量输入多变量输出时空预测

目录 I. 前言II. 数据集说明III. 模型3.1 GCN3.2 GraphSAGE3.3 GAT IV. 训练与测试V. 实验结果 I. 前言 前面已经写了很多关于时间序列预测的文章: 深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)PyTorch搭建LSTM实现时间序列…

IO相关,标准输入输出及错误提示

一、IO简介 1.1 IO的过程 操作系统的概念:向下统筹控制硬件,向上为用户提供接口。 操作系统的组成 内核 外壳(shell) linux的五大功能:进程管理、内存管理、文件管理、设备管理、网络管理。 最早接触的IO&#xf…

01背包,CF 1974E - Money Buys Happiness

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1974E - Money Buys Happiness 二、解题报告 1、思路分析 问我们能够到达…

docker简述

1.安装dockers,配置docker软件仓库 安装,可能需要开代理,这里我提前使用了下好的包安装 启动docker systemctl enable --now docker查看是否安装成功 2.简单命令 拉取镜像,也可以提前下载使用以下命令上传 docker load -i imag…

深度学习笔记(持续更新)

注:本文所有深度学习内容都是基于PyTorch,PyTorch作为一个开源的深度学习框架,具有可以动态计算图、拥有简洁易用的API、支持GPU加速等特点,在计算机视觉、自然语言处理、强化学习等方面有广泛应用。 使用matplotlib绘图&#xff…

Linux 常用命令详解,线上问题排查必备

comm 比较文件行 comm 是 Linux 系统下的用于比较两个已排序文件的命令行工具。主要用于找出文件之间的差异或相同之处,例如两个文件中相同的行、仅在第一个文件中的行以及仅在第二个文件中的行。 基本语法 comm [OPTION] FILE1 FILE2可选参数OPTION如下&#xf…

图像分类-demo(Lenet),tensorflow和Alexnet

目录 demo(Lenet) 代码实现基本步骤: TensorFlow 一、核心概念 二、主要特点 三、简单实现 参数: 模型编译 模型训练 模型评估 Alexnet model.py train.py predict.py demo(Lenet) PyTorch提供了一个名为“torchvision”的附加库,其中包含…

芯课堂 | FatFs文件系统的移植及应用指南

1、FatFs文件系统简介 FatFs是用于小型嵌入式系统的通用FAT/exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,与磁盘控制层完全分离。因此,它独立于平台和存储设备,具有良好的硬件平台独立性。它可以集成到资源有…

这个问题做项目的时给某些客户普及过,这里再给你普及一下

有些因素不是地理概念,没错!但与地理有关!可以通过地理位置将他们链接起来,再结合其它业务数据,完成数据分析!例如百度地图会将:餐饮、文化、交通、住宿、甚至价格、天气与位置关联分析&#xf…

S7---基本介绍

目录 高通S7和S7 Pro Gen 1声音平台 音频性能的新层次 高通XPAN技术 卓越的听力增强 高通第四代ANC 特征 QualcommS7 Pro Gen 1附加功能 QualcommS7 Pro Gen 1框图 高通S7和S7 Pro Gen 1声音平台 声音被重新想象。QualcommS7声音平台旨在开启一个新的高级音频性能级别。…

Unity转Unreal5之从入门到精通 Spline(样条曲线)组件的使用

前言 Spline 组件 能编辑 样条曲线,定义一条路径,路径上的点可以通过距离起点的长度获取,因此可以实现 物体沿路径连续移动 的效果或者 物体沿路径分布 的效果。 今天我们就来实现一个简单的Spline样条曲线的Demo 实现一个沿路径运动的功能 1.新建一个基于 Actor 的蓝图…

JavaSE——集合1:Collection接口(Iterator和增强for遍历集合)

目录 一、集合框架体系(重要) 二、集合引入 (一)集合的理解与好处 三、Collection接口 (一)Collection接口实现类的特点 (二)Collection接口常用方法 (三)Collection接口遍历元素的方式(Iterator和增强for) 1.使用Iterator(迭代器) 1.1Iterator(迭代器)介绍 1.2Itera…

使用cv::FileStorage对yaml文件进行读写

问题描述:记录使用cv::FileStorage对yaml文件进行读写 参考官网:OpenCV: cv::FileStorage Class Reference WRITE:根据文件路径写文件,如果文件不存在会新建,文件存在则变空白 FileStorage fs(filepath, FileStorag…

新增数据集 SDK、“关系抽取”文本标注、优化模型监控和管理|ModelWhale 版本更新

ModelWhale 带来了新一轮的版本更新,期待为大家带来更优质的使用体验。 本次更新中,ModelWhale 主要进行了以下功能迭代: 数据管理:新增 mw_python_sdk 支持通过查看、下载、制作、更新数据集 文本标注:新增“关系抽取…

【DFDT】DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformer

文章目录 DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformerkey points贡献方法补丁提取和嵌入基于注意力的补丁选择多流transformer块多尺度分类器实验DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformer 会议/期刊:App…

Apache Linkis + OceanBase:如何提升数据分析效率

计算中间件 Apache Linkis 构建了一个计算中间件层,以实现上层应用程序和底层数据引擎之间的连接、治理和编排。目前,已经支持通过数据源的功能,实现用户通过Linkis 对接并使用 OceanBase数据库。 本文详细阐述了在 Apache Linkis v1.3.2中&a…

【虚拟化】内核级虚拟化技术KVM介绍,全/半虚拟化的区别,使用libvirt搭建虚拟化平台(go/java/c++)

【虚拟化】内核级虚拟化技术KVM介绍,全/半虚拟化的区别,使用libvirt搭建虚拟化平台(go/java/c) 文章目录 1、虚拟化技术分类与架构(KVM,Xen),全/半虚拟化的区别2、libvirt介绍3、使用…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第二十四章 安装 Samba

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…