【H2O系列】包括人形机器人WBC相关论文小结

1. 前言

这篇博客主要用于简要记录包括人形机器人WBC或locomotion相关论文小结。
一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。
如有不对之处,欢迎评论区指出错误,你我共同进步学习!

PS:主要是备忘,不然看过就忘了。。。(汗

2. 正文

先看数据集或者说动捕数据:

2.1 SMPL Skinned Multi-Person Linear (SMPL) Model

2.1.1 摘要

用数据来构建人体和mesh的,在这个上,后面的AMASS有所拓展,引入了motions,赋予了尸体灵魂(bushi
详细查看:https://blog.csdn.net/IanYue/article/details/127206953
一个3D人体mesh由6890个网格顶点和23个关节点组成

Skinned表示这个模型不仅仅是骨架点了,其是有蒙皮的,其蒙皮通过3D mesh表示,3D mesh如图所示,指的是在立体空间里面用三个点表示一个面,可以视为是对真实几何的采样,其中采样的点越多,3D mesh就越密,建模的精确度就越高(这里的由三个点组成的面称之为三角面片)。Multi-person表示的是这个模型是可以表示不同的人的,是通用的。Linear就很容易理解了,其表示人体的不同姿态或者不同升高,胖瘦(我们都称之为形状shape)是一个线性的过程,是可以控制和解释的(线性系统是可以解释和易于控制的)
image

2.1.2姿态参数

pose parameters,含有\(24\times3\)个参数,24个点,每个点含有相对于父节点的axis-angle 表达,也就是相对父节点的旋转角度:
image

image

影响动作姿势:θ,72个参数,后69个值在-1到1之间,3*23 + 3,影响23个关节点+1个root orientation的旋转。前三个控制root orientation,后面每连续三个控制一个关节点

2.1.3 形状参数

一组形状参数有着10个维度的数值去描述一个人的形状,每一个维度的值都可以解释为人体形状的某个指标,比如高矮,胖瘦等。
image

image

2.2 《AMASS: Archive of Motion Capture as Surface Shapes》

2019.4.5

介绍了AMASS,这是一个庞大而多样的人体运动数据库,通过在一个共同的框架和参数化中表示它们,统一了15种不同的基于光学标记的运动捕捉数据集

AMASS是一个由不同的光学标记运动捕捉数据集统一表示在一个公共框架和参数化下的大型人体运动数据库。它包含了超过40小时的运动数据,涵盖了300多个主体和11000多个运动。它使用了SMPL人体模型,它是一种基于混合形状和姿态空间的生成式人体模型,可以用少量的参数来描述人体的形状和姿态。AMASS使用了一种新的方法MoSh++,它可以将运动捕捉数据转换为由刚性身体模型表示的逼真的3D人体网格。这种方法可以适用于任意的标记集,同时恢复软组织动力学和逼真的手部运动。AMASS数据集是经过严格筛选和质量控制的,它提供了人体运动的丰富和多样的样本,可以用于训练和评估人体姿态和形状估计的方法。

  1. 首先,我们开发了一种从标准动作捕捉(mocap)标记数据中准确恢复运动中的人的形状和姿势的方法。
  2. 创建最大的公共人类运动数据库,使机器学习能够应用于动画和计算机视觉

只要知道这个是一个包含人体motions的数据集就好了,里面会有很多的dataset提供给我们下载。
image

官方使用教程的链接:https://www.dionach.com/how-to-use-owasp-amass-an-extensive-tutorial/
可以见我的之前的博客:https://www.cnblogs.com/myleaf/p/18715051 有仔细提到这个地方。

2.3 《H2O:Learning Human-to-Humanoid Real-Time Whole-Body Teleoperation》

何泰然大佬的连续三篇工作:

IROS 2024.3.7
CMU
何泰然大佬,b站也很有名!

个人总结主要贡献点包括:
image

2.3.1 Retargeting(a)

将机器人的关节点映射,和SMPL的数据集的人体模型作距离的梯度下降,以最小化二者间的距离,这时人体的shape参数就需要改变了:
image
shape-fitted的过程
image
作者还对比了一下如果不这么做的结果:如果直接把人体的关节点般过去,就会导致机器人的脚部距离过小 ,走路可能会绊倒。
image
有一些动作比较特殊,机器人完成不了,所以需要去除,这是一个filt
image

2.3.2 Sim-to-data

将2.1.1部分的得到的运动机器人数据集(H1)的作为输入,输入到ISSAC GYM中进行训练,让机器人可以跟踪数据点进行模仿学习

  • 本体状态:

image

  • 目标状态:

image

  • 奖励函数:

image

2.3.3 Real-time Teleoperation

通过RGB相机输入人体动作,通过HybrIK进行3D人体姿态估计。

说到HybrIK,这里进行简要的记录:
之前一直比较好奇他是如何通过RGB相机得到人体的3D姿态分析的:
image
关于HybrIK,详细查看L:https://zhuanlan.zhihu.com/p/461640390

2.4 《OmniH2O: Universal and Dexterous Human-toHumanoid Whole-Body Teleoperation and Learning》

2024.6.13
目前我主要也在看这篇工作的开源代码。。。。。

2.4.1 摘要

较之前进行了多种控制方式的扩展,比如:
image
还公布了一个数据集:OmniH2O-6

2.4.2 从pipeline得到的对比

image
第一个部分几乎没有变化,还是retargeting

(a) OmniH2O retargets large-scale human motions and filters out infeasible motions for humanoids.

第二个部分采用了模仿学习,先利用特权观测值训练一轮,然后去掉特权观测值,利用之前的几组历史本体观测值训练得到sim2real的policy网络

(b) Our sim-to-real policy is distilled through supervised learning from an RL-trained teacher policy using
privileged information.

第三个部分区别在于,这里又拓展了遥操作的多样性,versital

(c) The universal design of OmniH2O supports versatile human control interfaces
including VR headset, RGB camera, language, etc. Our system also supports to be controlled by autonomous
agents like GPT-4o or imitation learning policy trained using our dataset collected via teleoperation.

也就是先用pre obs训一个教师网络,然后再蒸馏给只能看到历史数据的学生网络。

2.5 《HOVER: Versatile Neural Whole-Body Controller for Humanoid Robot》

HOVER (Humanoid Versatile Controller)
输入的
image
蒸馏的结构:
image
融合了很多的模态输入,引入了掩码。

2.6 《HumanPlus: Humanoid Shadowing and Imitation from Humans》

Zipeng Fu大佬的文章
Best Paper Award Finalist (top 6) at CoRL 2024!!!!
Stanford 大学

HumanPlus的全栈人型机器人
image

主要贡献点

1、一个实时影子系统,允许人类操作员使用单个RGB相机和Humanoid Shadowing Transformer(简称HST)来全身控制人形机器人,该HST是一种low-level策略,基于大量的模拟人体运动的数据进行训练
2、人形模仿Transformer,本质就是模仿学习算法,能够通过40次演示高效学习:双目感知和高自由度控制

通过影子跟踪模仿施教:具体而言,通过使用上面收集的数据,然后执行监督行为克隆,并使用自我中心视觉训练技能策略,使人形机器人(33自由度、180cm高)通过模仿人类技能自主完成不同的任务
最终,机器人自主完成了穿鞋、站立行走、从仓库货架卸载物品、折叠运动衫、重新排列物品、打字以及向另一台机器人打招呼等任务

简单总结下
HST:通过AMASS数据集实现能够shadow人体数据集的动作,使用HST也可以用一个单纯的RGB相机来进行shadow(使用具有精确运动的基于世界的模型(WHAM)来实时使用单个 RGB 相机联合估计人体姿态和全局变换),不过前面训练的shadow是一个低级low level的版本,后面人类的数较有点大模型的微调的那个感觉(bushi)
HIT:机器人可以自主学习技能,通过上面训练的数据,然后执行监督学习进行克隆,并使用以自我为中心的视觉技能策略,是机器人通过模仿人类动作自主完成策略。

实验配置

  • 我们使用 HaMeR [58],一个基于 Transformer 的单 RGB 相机手势估计器,用于实时手势估计。 HaMeR 使用 MANO [72] 手部模型预测手部姿势、相机参数和形状参数。 我们使用上述方法执行实时的人类到人形机器人手部重定向。 我们的手势估计和重定向在 NVIDIA RTX4090 GPU 上以 10 fps 的速度运行。
  • 为了估计现实世界中用于阴影的人体运动,我们使用具有精确运动的基于世界的模型(WHAM) [81] 来实时使用单个 RGB 相机联合估计人体姿态和全局变换。 WHAM 使用 SMPL-X 进行人体姿态参数化。 如 2 所示,我们使用上述方法执行实时人体到人形身体重定向。 身体姿态估计和重定向在 NVIDIA RTX4090 GPU 上以 25 fps 的速度运行。
  • image

代码开源了,连接已经贴上了https://humanoid-ai.github.io/
更详细的见大佬的解读博客

2.7 《Expressive Whole-Body Control for Humanoid Robots》

Chengxuxin大佬的系列工作,现在已经开源,项目链接:https://expressive-humanoid.github.io/
下面是文章的系统框图:
image

作者原文:Expressive Whole-Body Control (ExBody) 通过鼓励人形机器人上半身模仿参考运动实现动作跟随,同时放松了其双腿的模仿约束,只需要它们以稳健的方式遵循给定的速度同时保持平衡即可。

  • 文章的核心思想:在使用 RL 进行训练期间,鼓励人形机器人的上半身模仿不同的动作以实现表达性,同时放松其双腿的运动模仿项。 具体来说,腿式运动的奖励函数被设计为遵循参考运动提供的鲁棒根部运动指令,而不是匹配每个精确的关节角度。换言之,下肢跟踪速度,上肢跟踪模仿运动,下肢被认为并不需要很好的模仿参考动作。
  • 文章参数配置:使用利用了 CMU MoCap 数据集(大约 780 个参考动作)H1机器人共19个自由度,通过语言标签比如“跳舞”来粗略过滤超越机器人动作极限的参考动作。。。
    image
    CMU数据集中的一些动作很夸张,如果要全身控制来实现模仿的话,会很困难,所以作者把下半身和上半身分开实现。

其他更详细解读博客--知乎
但可以看到机器人的下肢响应并不是特别敏感的:
image

2.8 《ASAP: Aligning Simulation and Real-World Physics for Learning Agile Humanoid Whole-Body Skills》

网站:https://agile.human2humanoid.com/
还是何Tairan大佬的文章
下面是整篇文章的pipeline:
image

2.8.1 尝试解读

奖励函数有3种类型:
image
为了增强鲁棒性,使用了DR:
image

2.8.2 总结

大概浏览了下整体的可结构,我可以得到如下的总结:

Part1 对应图(a)

  • 首先通过video数据集得到动作数据,然后retargeted到机器人身上,请注意,这时是不考虑物理引擎的,也就是机器人可能会飞起来模仿动作。
  • 然后在虚拟环境中训练一个policy,让机器人学会这些motion。
  • 然后将这个policy部署到实机上,roll out出来一个trajectories,得到一系列的<s,a>数据。我个人觉得以上这些工作都是前面的H2O或者Hover之类的铺垫(也是该作者的项目)

Part2 对应图(b)

  • 训练一个delta action网络根据roll out出来的trajectories训练,也就是基于real环境的训练,这是训练的是\(\Delta\)A,经过仿真器得到下一时刻的state,然后以此类推。
  • 让仿真器得到下一时刻的state和真实环境的state作loss,这算一个奖励函数了。

我其实感觉就是在真实环境的action上进行了修正,训练出来的是一个修正网络,该网络让真实环境的action加上一个训练出来的修正\(\Delta A\),作为真正的输出,从视频结果来看,作者比较了下加和不加的两种结果。加delta action policy的明显要更自然一些。
image

Part3 对应图(c)

  • 当delta action网络训练好后,冻结这个网络,训练一个policy,能够根据一个输入s0的状态,推断出action0,其实这个地方用的就是PPO的强化学习算法,然后将aciton送到delte action网络里面,输出delta action,加到输入的aciton上面,经过仿真器输出state,这个是下一时刻的,以此类推
    image

Part4 对应图(d)

  • 在真实环境中部署这个policy

总结就是让机器人运动的更加自然了,主要还是模仿学习。。

2.8.3 code

代码是基于HumanoidVerse和之前的H2O改进的,都是LeCAR实验室的,这个项目需要一定的基础和铺垫。。

2.9 《HumanoidVerse: A Multi-Simulator Framework for Humanoid Robot Sim-to-Real Learning.》

项目地址:https://github.com/LeCAR-Lab/HumanoidVerse
支持多个仿人机器人模拟真实学习的模拟器和任务。一个关键的设计逻辑是模拟器、任务和算法的分离和模块化,允许在模拟器和任务之间方便地切换,并以最小的努力开发新的模拟器。
image

代码还在看。。

2.10 《AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control》

2.10.1 研究

研究动作生成的方向:
链接:
https://arxiv.org/abs/2104.02180

2.11 《ExBody2: Advanced Expressive Humanoid Whole-Body Control》

Chengxuxin团队,一作Mazeyu Ji

image

主要贡献:

  • 一种自动分类的方法来筛选不合理超过机器人物理极限的动作。。
  • 以前的全身体跟踪方法,例如 H2O 和 OmniH2O ,依赖于关键点位置的全局跟踪。 当机器人难以与当前全局关键点对齐时,这通常会导致后续步骤的跟踪失败,从而限制了其在高度静止场景中的应用。相反,Exbody2 将关键点转换为局部坐标系,并将关键点跟踪与速度控制解耦。 基于速度的跟踪引导运动,而关键身体跟踪则侧重于运动模仿。为了提高跟踪鲁棒性,Exbody2 采用了一种师生框架,其中教师策略首先使用具有特权信息(包括真实根速度、精确的身体链接位置和物理属性(例如摩擦))的 PPO 进行训练。 然后,学生策略通过 DAgger 风格的蒸馏进行训练,使用历史观测来推断特权信息,从而能够在没有直接访问此类数据的情况下进行实际部署。
  • 教师蒸馏学习
  • 其他和EXBody那篇基本无异。

和之前的主要区别:
前部仅着眼于上身运动跟踪,不利用教师学生的结构,只使用历史记录长度为5,并且完全通过本地关键点进行跟踪。

其他输入
image

对于如何筛选部分,论文里面是这么写的:

在实际实验中,我们从 CMU 数据集中选择了一个具有代表性的子集,其中包含各种各样的动作——例如富有表现力的站立姿势、以各种速度和模式行走、蹲下和跳舞。
我们首先训练了未经过滤的基本政策数据集包括广泛的人类运动,包括稳定和高度动态的序列,以及超过机器人物理局限性的不可行的运动。然后用较低的阈值仅保留跟踪误差最低的动作,从而确保高稳定性但降低多样性。
image

最后提一下,RGB策略也是用的是HybrIK,和H2O是一样的,来采集关键点通过RGB相机,这是 一篇CV领域的文章。

2.12 《Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer》

2024 ICRA(可能由于是第一个,所以能中ICRA,之后就不见得能中了。。。)
内容上不算创新,只是提出了一套通用的人形机器人的legged ym框架
image

XBot-S和XBot-L

3. 后记

这篇博客暂时记录到这里,日后我会继续补充。

posted @ 2025-02-20 20:51  泪水下的笑靥  阅读(1809)  评论(0)    收藏  举报