【H2O系列】包括人形机器人WBC相关论文小结
1. 前言
这篇博客主要用于记录包括人形机器人WBC或locomotion相关论文小结。
一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。
如有不对之处,欢迎评论区指出错误,你我共同进步学习!
PS:主要是备忘,不然看过就忘了。。。(汗
2. 正文
先看数据集或者说动捕数据:
2.1 SMPL Skinned Multi-Person Linear (SMPL) Model
用数据来构建人体和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)是一个线性的过程,是可以控制和解释的(线性系统是可以解释和易于控制的)

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


影响动作姿势:θ,72个参数,后69个值在-1到1之间,3*23 + 3,影响23个关节点+1个root orientation的旋转。前三个控制root orientation,后面每连续三个控制一个关节点
2.1.2 形状参数
一组形状参数有着10个维度的数值去描述一个人的形状,每一个维度的值都可以解释为人体形状的某个指标,比如高矮,胖瘦等。


2.2 AMASS: Archive of Motion Capture as Surface Shapes
2019.4.5
介绍了AMASS,这是一个庞大而多样的人体运动数据库,通过在一个共同的框架和参数化中表示它们,统一了15种不同的基于光学标记的运动捕捉数据集
- 首先,我们开发了一种从标准动作捕捉(mocap)标记数据中准确恢复运动中的人的形状和姿势的方法。
- 创建最大的公共人类运动数据库,使机器学习能够应用于动画和计算机视觉
只要知道这个是一个包含人体motions的数据集就好了,里面会有很多的dataset提供给我们下载。
见我的另一篇博客:https://i.cnblogs.com/posts/edit;postId=18715051#postBody
何泰然大佬的连续三篇工作:
2.3 H2O:Learning Human-to-Humanoid Real-Time Whole-Body Teleoperation
IROS 2024.3.7
CMU
何泰然大佬,b站也很有名!
个人总结主要贡献点包括:

2.3.1 Retargeting(a)
将机器人的关节点映射,和SMPL的数据集的人体模型作距离的剃度下降,以最小化二者间的距离,这时人体的shape参数就需要改变了:

shape-fitted的过程

作者还对比了一下如果不这么做的结果:如果直接把人体的关节点般过去,就会导致机器人的脚部距离过小 ,走路可能会绊倒。

有一些动作比较特殊,机器人完成不了,所以需要去除:

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

- 目标状态:

- 奖励函数:

2.3.3 Real-time Teleoperation
通过RGB相机输入人体动作,通过HybrIK进行3D人体姿态估计。
说到HybrIK,这里进行简要的记录:
之前一直比较好奇他是如何通过RGB相机得到人体的3D姿态分析的:
关于HybrIK,详细查看L:https://zhuanlan.zhihu.com/p/461640390
2.4 OmniH2O: Universal and Dexterous Human-toHumanoid Whole-Body Teleoperation and Learnin
2024.6.13
目前我主要也在看这篇工作的开源代码。。。。。
2.4.1 abstarct
较之前进行了多种控制方式的扩展,比如:

还公布了一个数据集:OmniH2O-6
2.4.2 从pipeline得到的对比

第一个部分几乎没有变化,还是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)
输入的

蒸馏的结构:

融合了很多的模态输入,引入了掩码。
2.6 HumanPlus
大佬的解读博客
Best Paper Award Finalist (top 6) at CoRL 2024
Stanford

https://humanoid-ai.github.io/
读起来不象正经的科研论文的格式,比较奇怪。。。。。。不过代码很是简洁,就是issac的那套框架改的。
HumanPlus的全栈人型机器人
主要贡献点
1、一个实时影子系统,允许人类操作员使用单个RGB相机和Humanoid Shadowing Transformer(简称HST)来全身控制人形机器人,该HST是一种low-level策略,基于大量的模拟人体运动的数据进行训练
2、人形模仿Transformer,本质就是模仿学习算法,能够通过40次演示高效学习:双目感知和高自由度控制
通过影子跟踪模仿施教:具体而言,通过使用上面收集的数据,然后执行监督行为克隆,并使用自我中心视觉训练技能策略,使人形机器人(33自由度、180cm高)通过模仿人类技能自主完成不同的任务
最终,机器人自主完成了穿鞋、站立行走、从仓库货架卸载物品、折叠运动衫、重新排列物品、打字以及向另一台机器人打招呼等任务
2.6.1 简单总结下
HST:通过AMASS数据集实现能够shadow人体数据集的动作,使用HST也可以用一个单纯的RGB相机来进行shadow,不过前面训练的shadow是一个低级low level的版本,后面人类的数较有点大模型的微调的那个感觉(bushi)
HIT:机器人可以自主学习技能,通过上面训练的数据,然后执行监督学习进行克隆,并使用以自我为中心的视觉技能策略,是机器人通过模仿人类动作自主完成策略。
代码开源了,连接已经贴上了
2.7 Expressive Whole-Body Control for Humanoid Robots
https://expressive-humanoid.github.io/

上下半身解耦,下肢主要是locomotion的任务,上肢是模仿学习的任务
有相关的解读,我这里就补充下:
解读博客--知乎
2.8 ASAP: Aligning Simulation and Real-World Physics for Learning Agile Humanoid Whole-Body Skills
网站:https://agile.human2humanoid.com/
还是何Tairan大佬的文章
下面是整篇文章的pipeline:

2.8.1 尝试解读
奖励函数有3种类型:

为了增强鲁棒性,使用了DR:

2.8.2 总结
大概浏览了下整体的可结构,我可以得到如下的总结:
阶段1
- 首先通过video数据集得到动作数据,然后retargeted到机器人身上,请注意,这时是不考虑物理引擎的,也居士机器人肯能会飞在控制模仿动作。
- 然后在虚拟环境中训练一个policy,让机器人学会这些motion。
- 然后将这个policy部署到实机上,roll out出来一个trajectories,得到一系列的<s,a>数据。
- 让仿真器得到的下一时刻的state和真实环境的state作loss,这算一个奖励函数了。
阶段2
- 训练一个delta action网络根据roll out出来的trajectories训练,也就是基于real环境的训练,这是训练的是\(\Delta\)A,经过仿真器得到下一时刻的state,然后以此类推。
我其实感觉就是在真实环境的action上进行了修正

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

阶段4
- 在真实环境中部署这个policy,
3. 后记
这篇博客暂时记录到这里,日后我会继续补充。
【H2O系列】包括人形机器人WBC相关论文小结的更多相关文章
- ROS机器人操作系统相关书籍、资料和学习路径
作者:Top Liu链接:https://zhuanlan.zhihu.com/p/30391098来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文是易科机器人实验 ...
- Kintinuous 相关论文 Volume Fusion 详解
近几个月研读了不少RGBD-SLAM的相关论文,Whelan的Volume Fusion系列文章的效果确实不错,而且开源代码Kintinuous结构清晰,易于编译和运行,故把一些学习时自己的理解和经验 ...
- 深入理解mysql之BDB系列(1)---BDB相关基础知识
深入理解mysql之BDB系列(1) ---BDB相关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的,包括五个子系统(见图1.1 ...
- sketch 相关论文
sketch 相关论文 Sketch Simplification We present a novel technique to simplify sketch drawings based on ...
- java高并发系列 - 第4天:JMM相关的一些概念
JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战.如何保证一个线程可以看到正确的数据呢?这个问题看起来很白痴.对于串行程 ...
- SpringBoot 系列教程之事务隔离级别知识点小结
SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...
- Neural ODE相关论文摘要翻译
*****仅供个人学习记录***** Neural Ordinary Differential Equations[2019] 论文地址:[1806.07366] Neural Ordinary Di ...
- bert系列二:《BERT》论文解读
论文<BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding> 以下陆续介绍ber ...
- ACL2016信息抽取与知识图谱相关论文掠影
实体关系推理与知识图谱补全 Unsupervised Person Slot Filling based on Graph Mining 作者:Dian Yu, Heng Ji 机构:Computer ...
- 带状态论文粗读(三)[引用openstate的相关论文阅读]
一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...
随机推荐
- 对于web性能优化我有话说!
web性能是什么呢? 简单来说就是咱们的项目打开的快不快,举以下几个例子 表单提交 列表切换 动画的流程性 打开速度 MDN上对web性能的定义则是Web性能是网站或应用程序的客观度量和可感知的用户体 ...
- QEMU CVE-2021-3947 和 CVE-2021-3929 漏洞利用分析
QEMU CVE-2021-3947 和 CVE-2021-3929 漏洞利用分析 CVE-2021-3947 信息泄露漏洞 漏洞分析 漏洞点是 nvme_changed_nslist stati ...
- 一款渗透测试信息收集集成工具--mitan密探
本工具仅供安全测试人员运用于授权测试, 禁止用于未授权测试, 违者责任自负.作者及本公众号相关负责人不对您使用该工具所产生的任何后果负任何法律责任,在扫描模块使用多线程,在测试过程中根据目标的实际情况 ...
- 2024年1月Java项目开发指南6:接口测试
我们使用API Fox这款工具对接口进行测试. (你要是会其他的例如postman进行测试也行) https://apifox.com/ 新建一个项目,新增一个接口 因为这个接口没有参数,所以无需填写 ...
- 【Linux】课堂练习作业
# 作业Day01-关机练习作业 查询在线用户 who -H 查询服务状态 systemctl status sshd 停止服务 systemctl stop sshd 停止后再次检查服务状态 方法一 ...
- Android7以上https抓包
1. 问题描述 1.1 运行环境 1.2 问题描述 virtualXposed 不一定支持Android模拟器 无法抓包 https 请求 1.3 问题原因 Android7 以后,系统分了系统证书和 ...
- vertx 获取请求参数
表单登录(GET) <form action="/login"> <input type="text" name="user ...
- Qt音视频开发20-vlc内核动态保存录像文件(不需要重新编译源码)
一.前言 在vlc默认提供的保存文件方式中,通过打开的时候传入指定的参数来保存文件,直到关闭播放生成文件,这种方式简单暴力,但是不适用大部分的场景,大部分时候需要的是提供开始录制和停止录制的功能,也就 ...
- 🤺Universal and Transferable Adversarial Attacks on😊Aligned Language Models
- 即时通讯技术文集(第37期):IM代码入门实践(Part1) [共16篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第37 期. [- 1 -] 一种Android端IM智能心跳算法的设计与实现探讨(含样例代码) ...
