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种不同的基于光学标记的运动捕捉数据集

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

只要知道这个是一个包含人体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相关论文小结的更多相关文章

  1. ROS机器人操作系统相关书籍、资料和学习路径

    作者:Top Liu链接:https://zhuanlan.zhihu.com/p/30391098来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文是易科机器人实验 ...

  2. Kintinuous 相关论文 Volume Fusion 详解

    近几个月研读了不少RGBD-SLAM的相关论文,Whelan的Volume Fusion系列文章的效果确实不错,而且开源代码Kintinuous结构清晰,易于编译和运行,故把一些学习时自己的理解和经验 ...

  3. 深入理解mysql之BDB系列(1)---BDB相关基础知识

        深入理解mysql之BDB系列(1) ---BDB相关基础知识 作者:杨万富   一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的,包括五个子系统(见图1.1 ...

  4. sketch 相关论文

    sketch 相关论文 Sketch Simplification We present a novel technique to simplify sketch drawings based on ...

  5. java高并发系列 - 第4天:JMM相关的一些概念

    JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战.如何保证一个线程可以看到正确的数据呢?这个问题看起来很白痴.对于串行程 ...

  6. SpringBoot 系列教程之事务隔离级别知识点小结

    SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...

  7. Neural ODE相关论文摘要翻译

    *****仅供个人学习记录***** Neural Ordinary Differential Equations[2019] 论文地址:[1806.07366] Neural Ordinary Di ...

  8. bert系列二:《BERT》论文解读

    论文<BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding> 以下陆续介绍ber ...

  9. ACL2016信息抽取与知识图谱相关论文掠影

    实体关系推理与知识图谱补全 Unsupervised Person Slot Filling based on Graph Mining 作者:Dian Yu, Heng Ji 机构:Computer ...

  10. 带状态论文粗读(三)[引用openstate的相关论文阅读]

    一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...

随机推荐

  1. Python实验:Socket编程

    实验六 Socket 编程 一.实验目标: 了解TCP协议原理.标准库socket 的用法.熟悉Socket 编程. 1.TCP协议原理: TCP(Transmission Control Proto ...

  2. 使用腾讯云对象存储 COS 作为 Velero 后端存储,实现集群资源备份和还原

    Velero(以前称为 Heptio Ark)是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷,可以在 TKE 集群或自建 Kubenetes 集群中 ...

  3. 探索使用 ViewContainerRef 的 Angular DOM 操控技术

    探索使用 ViewContainerRef 的 Angular DOM 操控技术 https://indepth.dev/posts/1052/exploring-angular-dom-manipu ...

  4. 【软件工程与UML】第1章 笔记和练习题

    基本概念 软件 = 程序 + 数据 + 文档 软件的特点 抽象性:软件是一种逻辑实体 可复制性:软件是通过人们智力活动,把知识和技术转化为信息的一种产品. 不会磨损: 依赖性:软件的开发和运行经常收到 ...

  5. 深入理解二叉查找树(BST)的重要查找操作

    二叉查找树 (Binary Search Tree, 简称 BST) 是一种基本的数据结构,其设计核心在于每个节点的值都满足以下性质: 左子树的所有节点值均小于当前节点值. 右子树的所有节点值均大于当 ...

  6. mybatis-plus多表联合分页查询

    1.entity层要写个Vo实体类 2.controller @AutoLog(value = "员工CURD-分页列表查询")@ApiOperation(value=" ...

  7. xcrun: error: unable to find utility "xctest", not a developer tool or in PATH

    Start Xcode, select "Preferences -> Locations". Chances are that your Command Line Tool ...

  8. Kubernetes系列(四) - Pod和Pod调度

    目录 1. Pod的组成部分 2. Pod的优势 3. Pod的两种分类 3.1 普通的pod 3.2 静态pod(static pod) 4. 控制器controller的特点 4.1 Deploy ...

  9. OpenCL入门笔记

    1.概述 1.1.OpenCL标准 OpenCL(Open Computing Language)是一个开放标准的并行编程框架,它允许开发者在异构系统上利用各种计算设备(例如CPU.GPU.FPGA等 ...

  10. python基础学习4

    打开文件的方式 # 第一种 f = open('C:\project\pycharmprojects\\bigdata33\day05/cars.csv', mode='r', encoding='U ...