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. Linux C/C++编程之静态库

    [图书推荐]<Linux C与C++一线开发实践(第2版)>_linux c与c++一线开发实践pdf-CSDN博客 <Linux C与C++一线开发实践(第2版)(Linux技术丛 ...

  2. 销讯通CRM客户关系管理系统的功能拆分

    随着技术的发展,CRM系统(客户关系管理)成为企业不可或缺的工具,本文从医药行业角度简要谈谈CRM系统的功能. 从业务的理解来说,从医药行业来说,CRM客户管理系统的有以下几部分功能: 01 客户的分 ...

  3. 技术实践|数据迁移中GBK转UTF8字符集问题分析

    导语:在国产化创新的大背景下,数据库迁移项目逐渐增多,在数据库迁移过程中,源数据库和目标数据库字符集有时会不同,这时如何进行字符集转换则成为了一个重要的问题,同时在转换过程中还需要确保数据的完整性和一 ...

  4. SQL语句报com.alibaba.druid.sql.parser.ParserException: TODO IDENTIFIER cross

    这个错误根据网络上人员说是解析出错!虽然报错但不影响结果!但是报错了就是看的不爽!把druid包换成druid-1.0.9.jar就解决这个问题了!至于性能暂时还没测试到

  5. 免费学习基于SpringBoot的高考志愿智能推荐系统

    免费学习基于SpringBoot的高考志愿智能推荐系统 摘要 科学技术日新月异,人们的生活都发生了翻天覆地的变化,高考志愿智能推荐系统管理当然也不例外.过去的信息管理都使用传统的方式实行,既花费了时间 ...

  6. 【原创】利用gitlab多项目自动部署到多个网站目录,自动同步更新,不用插件,重写钩子

    原创内容,分享请保留链接. 0.首先在服务器安装gitlab,网上一堆过程省略 1.建几个空仓库admin.web.xxxx等(1个仓库也行).确保每个仓库名称和网站名称要有一致性,比如仓库叫admi ...

  7. JVM实战—2.JVM内存设置与对象分配流转

    大纲 1.JVM内存划分的原理细节 2.对象在JVM内存中如何分配如何流转 3.部署线上系统时如何设置JVM内存大小 4.如何设置JVM堆内存大小 5.如何设置JVM栈内存与永久代大小 6.问题汇总 ...

  8. Qt/C++音视频开发72-倍速推流/音视频同步倍速推流/不改变帧率和采样率/低倍速和高倍速

    一.前言 最近多了个新需求,需要倍速推流,推流界的扛把子obs也有倍速推流功能,最高支持到两倍速.这里所说的倍速,当然只限定在文件,只有文件才可能有倍速功能,因为也只有文件才能倍速解码播放.实时视频流 ...

  9. .net core反射练习-简易版IOC容器实现

    实现一个简易的IOC容器 先说一下简单思路,参考ServiceCollection,需要一个注册方法跟获取实例方法,同时支持构造函数注入.那么只需要一个地方存储注册接口跟该接口的继承类,以及根据类的构 ...

  10. C Primer Plus 第6版 第六章 编程练习参考答案

    编译环境VS Code+WSL GCC 源码请到文末下载 .注意:本章部分题目中用到了math.h 用gcc编译时加上-lm参数. /*第1题*************************/ #i ...