前言
由于我司一直在针对各个工厂、公司、客户特定的业务场景,做解决方案或定制开发,所以针对每一个场景,我们都会反复考虑用什么样的机器人做定制开发
于此,便不可避免的追踪国内外最前沿的机器人技术进展,本来准备在上一篇博客《VLM驱动机器狗——从UMI on Legs到Helpful DoggyBot:分别把机械臂装到机器狗背上、夹爪装到机器狗嘴里》之后,解读今天上午看到的字节刚发的机器人大模型GR2
当时,还发微博说,头一次看paper不看正文,而是直奔其References:看有没有我预想中的文献,说明咱看paper的能力相比去年强很多了
没想到
- 晚上,一在上海一机器人公司的朋友,又发我了一个链接: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)」
之前 一直没来得及解读,准备也解读下,😆 - 我再问他,你们是在仿真环境中 复现了下,是不
他回答道:他最近开源了代码,有新的改进,目前是仿真,后续可以尝试迁移
考虑到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中有介绍]重定向并优化为适用于现实世界人形机器人体现的动作
- 具体来说,我们首先通过逆运动学将人类动作重定向到人形机器人,并训练一个具有特权状态信息访问权限的人形机器人控制器[18-Perpetual humanoid control for real-time
simulated avatars],以在模拟中模仿未经滤波的动作 - 之后,去除特权模仿器无法跟踪的动作序列(we remove the motion sequences that the privileged imitator fails to track)
通过这样做,创建了一个大规模的人形机器人兼容动作数据集。在获得可行动作的数据集后,再开发了一种可扩展的训练过程,用于现实世界的动作模仿器,该过程结合了广泛的领域随机化以弥合模拟与现实之间的差距 - 为了促进实时远程操作,设计了一个状态空间,优先考虑现实世界中使用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]
- 为此,这些方法在稳定性和接触约束下最小化跟踪误差,需要预定义的接触状态 [6,10,12,13,37–40] 或从传感器估计的接触 [7,9,14,41,42],这限制了在实验室外的大规模部署
- Zhang 等人 [11-Slomo: A general system for legged robot motion imitation from casual videos] 使用隐式接触的模型预测控制MPC来跟踪从视频中提取的动作,但轨迹必须首先离线优化以确保动态可行性
此外,由于计算负担,MPC中使用的模型需要简化 [6,11,14],这限制了可跟踪动作的能力。基于强化学习的控制器可能提供一种不需要明确接触信息的替代方案 - 一些研究[43, 44]使用模仿学习将人类风格的动作转移到控制器上,但不能准确跟踪人类动作。Cheng等人[22-Expressive whole-body control for humanoid robots]训练了全身类人控制器,可以从离线的人类动作中复制上半身动作,但下半身依赖于根部速度跟踪,并未跟踪精确的下半身动作
相比之下,CMU的工作实现了人类动作的实时全身跟踪
1.1.3 人形机器人远程操控
人形机器人遥操作可以分为三种类型:
- 任务空间遥操作 [45,46]
- 上半身重定向遥操作[47,48]
- 全身遥操作 [6,7,13,42,49]
对于第一种和第二种类型,人类与人形机器人之间的共享形态并未得到充分利用,全身控制必须以任务指定的方式解决。这也引发了一个问题,即如果不需要跟踪下半身的运动,机器人可以选择具有更好稳定性的设计,例如四足 [50] 或轮式配置 [51]
CMU的工作属于第三种类型,并且是第一个实现基于学习的全身远程操作的方法。此外,他们的方法不需要在人类远程操作员身上使用捕捉标记或力传感器,因为他们直接使用RGB摄像头捕捉人类动作进行跟踪,这可能为收集大规模类人数据以训练自主代理铺平道路(所以后来的humanplus也是用的这个RGB摄像头的方式捕捉人类动作进行跟踪)
1.2 将全身实时人形远程操作建模为目标条件下的RL问题
作为符号惯例,使用表示来自姿态估计器/关键点检测器的运动学量(不包含物理模拟),用表示来自动作捕捉(MoCap)的真实值,而使用没有重音符号的普通符号表示来自物理模拟的数值
1.2.1 面向目标的类人控制强化学习
接下来,将问题表述为目标导向的强化学习,其中策略π被训练用于跟踪实时的人体动作
- 将学习任务表述为一个由状态集S、动作集A、转移动态T、奖励函数R和折扣因子γ组成的马尔可夫决策过程(MDP):,其中,状态、动作,代表轨迹、代表奖励函数
且状态包含本体感知。目标状态是人类远程操作者全身运动的统一表示 - 基于本体感觉和目标状态,可以定义用于策略训练的奖励
动作指定了 PD 控制器将用于驱动自由度的关节目标位置
然后,应用近端策略优化(PPO)[52] 来最大化累积折扣奖励
从而将远程操作任务表述为运动模仿/跟踪/模拟任务,在每一帧训练类人机器人跟踪参考运动
1.2.2 参数化人体模型与人体运动数据集
在视觉和图形学界,参数化人体模型(如 SMPL[53,相当于是人形机器人的身体建模数据集,可以代表人形机器人,在我解读的humanplus一文中的此节“1.1.2 训练用于全身控制的low-level policy:Humanoid Shadowing Transformer”也有相关介绍])因其易于处理的人体形状和动作表示而广受欢迎
- SMPL 将人体表示为体型参数 β∈R^10,姿势参数,以及根部平移
- 给定、和,表示 SMPL 函数,其中将参数映射到一个具有 6890 个顶点的人体三角网格的顶点位置
- AMASS[26] 数据集包含 40 小时的运动捕捉数据,这些数据用 SMPL 参数表示
1.3 人类动作重定向至人形机器人
为了使仿人机器人能够模仿未编写脚本的人类动作,需要大量的全身动作来训练一个稳健的动作模仿策略
由于人类和仿人机器人在身体结构、形状和动力学方面存在显著差异,直接从人类动作数据集中重新定向的动作可能导致许多仿人机器人无法执行的动作,而这些不可行的动作序列可能会妨碍模仿训练,正如之前的研究所观察到的那样[32-Universal humanoid motion representations for physics-based control]
为了解决这些问题,作者设计了一种“模拟到数据”的方法,以补充传统的重新定向,将大规模的人类动作数据集转换为仿人机器人可行的动作
1.3.1 动作重定向:通过SMPL数据集建模人形以逼近人类动作
由于SMPL运动结构与人形运动之间存在非微不足道的差异,作者针对初始重定向执行了一个两步过程
- 首先,由于SMPL身体模型可以表示不同的身体比例,故找到一个最接近人形结构的身体形状
即选择12个在人类和人形之间具有对应关系的关节,如下图所示「将SMPL身体拟合到H1类人模型。(a) 类人模型关键点的可视化(红点),(b) 类人模型关键点与SMPL关键点(绿色点和网格)在拟合SMPL形状β′之前和之后的对比。(c) 拟合前后的对应12个关节位置」 并在形状参数上执行梯度下降,以使用一个通用的静止姿势最小化关节距离
在找到最优的β′后,给定以SMPL参数表示的一系列动作,使用原始的平移p和姿势θ,但使用拟合的形状β′来获取身体关键点的位置集 - 然后,通过使用Adam优化器[54]最小化12个关节位置差异,将动作从人类重定向到人形
请注意,该重定向过程试图匹配人类的末端执行器到人形(例如脚踝、肘部、手腕),以保持整体运动模式
另一种方法是直接复制人类到人形的局部关节角度,但这种方法可能会由于运动学树的巨大差异导致末端执行器位置的巨大差异
在此过程中,作者还添加了一些基于启发式的过滤,以去除不安全的序列,例如坐在地上。在重定向之前寻找β′的动机是,在静止姿势下,我们的人形在其双脚之间有很大的间隙。如果天真地尝试匹配人类和人形之间的脚部运动,人形运动可能会出现内八字的伪影
使用β′,可以找到一个在其静止姿势下(如上图所示)有大间隙的人体结构
最终,在拟合过程中使用β′可以有效地创建更可行的运动,如下图所示
1.3.2 基于仿真的数据清洗:提高数据质量(含整体训练流程图)
由于人类与电机驱动的人形机器人之间能力的显著差距,即便把AMASS数据集中的13K运动序列,经过计算,得到10k重新定向的运动序列,依然包含大量不合理的人形运动
考虑到从大规模数据集中手动查找这些数据序列可能是一个相当繁琐的过程
- 因此,作者提出了一种“模拟到数据”的程序,其中训练了一个动作模仿器(类似于PHC [18-Perpetual humanoid control for real-time simulated avatars]),该模仿器可以访问特权信息privileged information且没有领域随机化domain randomization,以模仿所有未清理的数据
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. - 没有领域随机化,可以在动作模仿中表现良好,但不适合转移到真实的人形机器人
Without domain random-ization, πprivileged can perform well in motion imitation, butis not suitable for transfer to the real humanoid.
然而,代表了动作模仿性能的上限,而无法模仿的序列则代表不合理的序列
具体来说,按照PULSE [32-Universal humanoid motion representations for physics-based control]中提出的相同状态空间、控制参数和困难负样本挖掘程序训练,并训练一个单一的模仿策略来模仿整个重定向的数据集
经过训练,AMASS的1万个动作序列中约有8.5k被证明对H1人形机器人是合理的,将获得的干净数据集称为
总之,为了训练,故遵循PULSE [32],并训练一个具有“人形机器人的完整刚体状态访问权限”的动作模仿器
- 具体来说,对于特权策略,其本体感受定义为
其中包含了人形机器人的所有刚体的全局三维位置pt、方向θt、线速度vt和角速度ωt - 目标状态定义为
其中包含了参考与当前模拟结果在所有人形机器人刚体上的单帧差异
它还包含了下一帧的参考刚体方向和位置。所有值都被归一化到人形机器人的坐标系中
注意,所有值都是全局的,像全局刚体线速度vt和角速度ωt这样的值在现实世界中很难准确获得
最终,整个训练过程如下图所示(建议好好品味下图,流程画的非常清晰)
- 重定向:H2O首先通过优化形状参数将SMPL身体模型对齐到类人结构
然后,H2O使用训练好的特权模仿策略重新定向并去除不可行的动作,从而生成一个干净的动作数据集 - 仿真到现实训练:通过从清理后的数据集中采样的动作目标来训练模仿策略
- 实时遥操作部署:实时遥操作部署通过RGB摄像头和姿态估计器捕捉人类动作,然后类人机器人使用训练好的仿真到现实模仿策略进行模仿
// 待更
第二部分 OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人
// 待更