前言
今天只是一个平常的日子,不过看到了两篇文章
- 一篇是《半年冒出近百家新公司,「具身智能」也有春天》
我看完之后转发到朋友圈,并评论道:让机器人翻一万个后空翻,不如让机器人打好一个螺钉,毕竟在目前阶段 炫酷没有意义,所以我们近期全力为工厂去赋能,解决一个个工业场景
期待我司与更多工厂合作,从前期的验证、评估开始 - 另外一篇文章便是之前斯坦福Moblie aloha团队竟然开源推出了他们的人形机器人,虽然我司「七月在线」近期暂不涉足人形机器人(更多还是解决工厂实际业务场景 怎么把活干好、干漂亮则怎么来,是否人形不重要),但这种前沿技术我这边还是要及时追踪的
毕竟经过过去一年的努力,我司已从「教育为主」转型到了「科技为主 教育为辅」
于是便有了本文,且为了让大家最快的理解HumanPlus,我在HumanPlus论文的基础上,做了大量重新表述、精简干练,且补充说明了大量的背景知识(比如HumanPlus论文提到的Diffusion policy、PPO、人体姿态估计Wham、人体手势估计HaMeR等等),以及为方便大家一目了然而对相关图表的解读说明
第一部分 HumanPlus: 从人类中学习和模仿的人形机器人
6月中旬,之前斯坦福Moblie aloha的团队(Zipeng Fu、Tony Z. Zhao、Chelsea Finn)中一作Zipeng Fu和三作Chelsea Finn,以及三位新的作者Qingqing Zhao、Qi Wu、Gordon Wetzstein,共同推出了HumanPlus 机器人,其项目地址为:https://humanoid-ai.githubio、GitHub链接为:https://github.com/MarkFzp/humanplus、数据集为:public datasets
本文的主要贡献是一个名为HumanPlus的全栈人形系统,用于从人类数据中学习复杂的自主技能。该系统的核心包括:
- 一个实时影子系统,允许人类操作员使用单个RGB摄像头和Humanoid Shadowing Transformer进行全身控制,这是一种在模拟中训练的大量人类运动数据的low-level策略
a real-time shadowing system that allows human operators to whole-body control humanoids using a single RGB camera and Humanoid Shadowing Transformer, a low-level policy that is trained on massive human motion data in simulation - 人形模仿Transformer,本质就是模仿学习算法,能够通过40次演示高效学习:双目感知和高自由度控制(Humanoid Imitation Transformer, an imitation learning algorithm that enables efficient learning from 40 demonstrations for binocular perception and high-DoF control)
且影子系统和模仿学习算法之间的协同作用允许全身操作的学习,以及在现实世界中直接进行运动技能,例如穿鞋站立和行走(仅需40次演示,成功率为60-100%)
最终使得该人形机器人能够从人类数据中学习动作和自主技能,具体而言
- 一方面,该机器人能够从人类操作员那里模仿快速、多样的动作,包括拳击和打乒乓球
具体而言,首先 使用现有的40小时人类运动数据集,通过强化学习在模拟环境中(比如MuJoCo、Bullet等 )训练一个低级策略(We first train a low-level policy in simulation via reinforcement learning using existing 40-hour human motion datasets)
这个策略转移到现实世界,使人形机器人能够跟随人类身体和手部运动
具体办法是,先仅使用RGB相机拍摄人类动作,然后让机器人就像是人类的影子一样去模仿(从RGB相机上获取到人类动作,并做姿态估计且重定向之后,以作为机器人的目标动作去模仿学习),如此使得人类操作员实时遥控人形机器人,在现实世界中收集全身数据以学习不同的任务(Through shadowing, human operators can teleoperate humanoids to collect whole-body data for learning different tasks in the real world) 初看,你可能觉得没啥,再仔细一想,这套方案还是挺牛逼的,通过影子跟踪学习模仿,便可以把之前Moblie aloha的人类操纵的主动臂直接去掉了,毕竟用人操作2个主机械臂去遥控另外2个从机械臂收集数据,不仅笨重且有些难度,所以后来像UMI、DexCap都是要么用一个手持夹持器、要么用一个便捷式动作捕捉去收集数据(之后DexCap再做人类动作到机器人动作的重定向,详见:DexCap——斯坦福李飞飞团队泡茶机器人:更好数据收集系统的原理解析、源码剖析) - 二方面,该机器人可以学习自主技能,如穿鞋、叠衣服和跳高
具体而言,通过使用上面收集的数据,然后执行监督行为克隆,并使用自我中心视觉训练技能策略,使人形机器人(33自由度、180cm高)通过模仿人类技能自主完成不同的任务
最终,机器人自主完成了穿鞋、站立行走、从仓库货架卸载物品、折叠运动衫、重新排列物品、打字以及向另一台机器人打招呼等任务
对于数据层面而言,使用离线人类数据来学习低级全身策略以实现实时影子跟踪,并通过影子跟踪使用在线人类数据使人形机器人模仿人类技能,从而实现自主的人形机器人技能(we use both offline human data for learning a low-level whole body policy for real-time shadowing, and online human data through shadowing for humanoids to imitate human skills, enabling autonomous humanoid skills)
1.1 HumanPlus机器人的影子重定向技术
1.1.1 现存的一些挑战与HumanPlus的解决思路
在实践中,人形机器人从人类数据中学习仍然具有挑战性,人形机器人的复杂动态和高维状态及动作空间在感知和控制方面都带来了困难
- 传统方法,如将问题分解为感知、规划和跟踪,以及对手臂和腿部控制的单独模块化设计 [10, 23, 40],可能需要耗费大量时间进行设计且范围有限,使其难以扩展到人形机器人预期操作的各种任务和环境中
- 尽管人形机器人相比其他形式的机器人更接近人类,但在人形机器人和人类之间在形态和驱动方面仍然存在物理差异,包括自由度数量、连杆长度、高度、重量、视觉参数和mechanisms,以及驱动强度和响应能力(including number of degrees of freedom, link length, height, weight, vision parameters and mechanisms, and actuation strength and responsiveness)
而且还缺乏现成的和集成的硬件平台 - 此外,缺乏一个可访问的数据管道来进行全身人形机器人的远程操作,这阻止了研究人员利用模仿学习作为工具来教授人形机器人任意技能
多家公司开发的人形机器人已经展示了这种数据管道的潜力以及从收集的数据中进行模仿学习的潜力,但细节尚未公开,他们系统的自主演示仅限于几个任务
简言之,先前的工作使用动作捕捉系统、第一人称视角(FPV)、VR头戴设备和外骨骼来远程操作人形机器人 [17, 20, 38, 59] , 这些设备昂贵且操作地点受限
详言之,一般使用人体动作捕捉服[14,17,20,21]、外骨骼[35,35,63,70 ,75]、触觉反馈设备[6,61,71]和用于视觉反馈 的VR设备[7,38,59,90]
以及用于末端执行器控制的VR设备[2,46,62,86]来开发人形机器人和灵巧的远程操作
例如, Purushottam 等人使用 附加在力板上的外骨骼套装开发了一个轮式人形机器人的全身遥操作系统,用于记录人类运动
1.1.2 训练用于全身控制的low-level policy:Humanoid Shadowing Transformer
HumanPlus团队提出了一个完整的系统,使人形机器人能够从人类数据中学习动作和自主技能
为了解决人形机器人控制的复杂性,我们借鉴了最近在腿部机器人领域使用大规模强化学习进行仿真和sim-to-real transfer的成功经验 [ 41, 51],以训练用于全身控制的low-level策略(To tackle the control complexity of humanoids, we follow the recent success in legged robotics using large-scale reinforcement learning in simulation and sim-to-real transfer [ 41, 51 ] to train a low-level policy for whole-body control)
然,基于学习的低级策略由于耗时的奖励工程 [即learning-based low-level policies are designed to be task-specific due to time-consuming reward engineering,其实就是奖励函数并没有那么好设计,详见Sim-to-real learning for humanoid box locomanipulation、Humanoid locomotion as next token prediction],被设计为特定任务,使得人形机器人硬件一次只能展示一种技能,例如行走,但这种限制限制了人形机器人平台能够执行的任务的多样性
好在,有一个40小时的基于光学标记的人体运动公共数据集AMASS [49],涵盖了广泛的技能
通过首先将人类姿势重新定向为人形机器人姿势,然后训练一个与任务无关的low-level策略(称为Humanoid Shadowing Transformer,其基于重新定向的人形机器人姿势进行条件训练)
We leverage this dataset by first retargeting human poses to humanoid poses and then training a task-agnostic low-level policy called Humanoid Shadowing Transformer condition-ing on the retargeted humanoid poses
如HumanPlus论文所说,We use a public optical marker-based human motion dataset, AMASS [AMASS: Archive of motion capture as surface shapes]to train our low-level Humanoid Shadowing Transformer,最终使得姿态条件低级策略(pose-conditioned low-level policy)可以零样本转移到现实世界
- AMASS 数据集汇集了多个人体运动数据集的数据,包含40小时的多种任务的人体运动数据,并由超过11,000个独特的运动序列组成
为了确保运动数据的质量,应用了一种基于[Perpetual humanoid control for real-time simulated avatars]中概述的方法的过滤过程,人体和手部运动使用SMPL-X [57]模型进行参数化表示:人体关节(22个,每个关节是3自由度的球面关节)、手部关节(总计30个,每个关节是3自由度的球形关节)、3维身体全局平移变换、3维身体全局旋转变换- 人体运动数据到机器人关节的重定向
人形机器人身体相当于是SMPL-X身体自由度的一个子集,仅包含19个旋转关节(Our humanoid body has a subset of the degrees of freedom of SMPL-X body, consist-ing of only 19 revolute joints)
为了重新定位身体姿势,HumanPlus将对应的欧拉角从SMPL-X复制到HumanPlus的人形模型(To retarget the body poses, we copy the corresponding Euler angles from SMPL-X to our humanoid model),即髋部、膝盖、脚踝、躯干、肩膀和肘部
由于每个人形的髋关节和肩关节由3个正交的旋转关节组成,因此可以看作一个球形关节(Each of the humanoid hip and shoulder joints consists of 3 orthogonal revolute joints, so can be viewed as one spherical joints)
HumanPlus的人形手有6个自由度:每个食指、中指、无名指、小指各1个自由度,但拇指有2个自由度,为了重新定位手部姿势,HumanPlus使用中间关节的旋转来映射每个手指的相应欧拉角(To retarget hand poses, we map the corresponding Eulerangle of each finger using the rotation of the middle joint)
为了计算1自由度的手腕角度,HumanPlus使用前臂和手的全局方向之间的相对旋转(To compute the 1-DoF wrist angle, we use the relative rotation between the forearm and hand global orientations)
貌似上面论文中的一堆描述不太直白哈?其实,简言之
对于身体关节:直接将SMPL-X相应关节的旋转角度复制到机器人关节,机器人的髋部和肩部关节都视为3自由度球面关节
对于手部关节:机器人每根手指仅有1个自由度,取SMPL-X中对应手指中间关节的旋转角度即可
机器人手腕有1个自由度,通过前臂和手部的相对旋转计算得到- 实时身体姿态估计和重新定位(在NVIDIA RTX4090 GPU上以25帧每秒的速度运行)
为了在现实世界中估计人类运动以进行影子跟踪,HumanPlus使用WHAM[Wham: Reconstructing world-grounded humans with accurate 3d motion],通过单个RGB摄像头实时联合估计人体姿势和全局变换WHAM,使用SMPL-X进行人体姿态参数化
如下图所示,HumanPlus使用WHAM方法进行实时人类到人形机器人的身体重新定位- 实时手势估计和重定向(在NVIDIA RTX4090 GPU上以10 fps运行)
具体使用HaMeR [HaMeR: Reconstructing Hands in 3D with Transformers],一种基于transformer的手部使用单个RGB相机的姿态估计器,用于实时手势估计。 HaMeR使用MANO [72]手模型预测手势、相机参数和形状参数
我们使用上述方法进行实时人类到人形机器人的手部重定向
将训练好的Humanoid Shadowing Transformer部署到真实机器人上,就可以实现运动模仿功能了,具体步骤如下(基本就是拍摄-估计-重定位-给HST-运动/控制):
- 使用RGB摄像头拍摄人类运动
- 用上面讲过的WHAM和HaMeR等算法从RGB图像中实时估计人体和手部关节角度
- 将估计的人体姿态重定向为机器人目标姿态
- 将机器人状态和目标姿态输入给Humanoid Shadowing Transformer,输出机器人关节的目标角度
对于上面的第2-4步,通俗讲是,即先使用最先进的人体和手部姿态估计算法(即Wham、HaMeR),估计实时人类动作(称之为目标姿态),并将其重新定向到人形机器人动作,再加上机器人本体所感知到的信息(本体感知观测仅使用包括IMU和关节编码器在内的车载传感器进行测量,比如关节角度、角速度,称之为机器人状态),这两方面的数据作为输入传递给Humanoid Shadowing Transformer输出low-level策略
Using state-of-the-art human body and hand pose estimation algorithms[58 , 81], we can estimate real-time human motion and retarget it to humanoid motion,which is passed as input to the low-level policy - 用PD控制器将目标角度转换为关节扭矩,控制机器人运动
- 同时通过机器人头部的双目摄像头记录自己视角的运动数据
在训练完成且部署了控制人形机器人目标姿态的低级策略后,便可以使用单个RGB摄像头实时影像人类动作到我们定制的33自由度、180cm的人形机器人上(After deploying the low-level policy that controls the humanoid given target poses, we can shadow human motion to our customized 33-DoF 180cm humanoid in real time using a single RGB camera)
如何理解这个实时?说白了,人在前面或旁边领舞,然后架个RGB相机对着人类实时抓取各类动作,最后机器人在旁边跟着学(RGB相机实时抓取到人类动作,系统先是通过Wham/HaMeR算法对人类动作做估计,然后把估计好的人类动作重定向到机器人动作上,作为机器人的目标动作,最后机器人结合它自己的当下状态,通过HST做出模仿动作)
1.1.3 动作的预测:使用UMI用过的Diffusion policy
再之后,通过影子技术(shadowing)收集的数据,我们执行监督行为克隆来训练基于视觉的技能策略
技能策略以人形双目自我中心的RGB视觉作为输入「头部安装了两个自我中心的RGB摄像头,拥有两个6-DoF的手、两个1-DoF的手腕和一个19-DoF的身体(每条腿5个DoF,每个手臂4个DoF,至于腰1个DoF),从而总计有33个自由度」,并预测所需的人形身体和手部姿势
顺带把硬件相关的情况也详细说明下,如下图所示,该系统基于来自宇树科技的Unitree H1机器人构建
- 机器人头部安装了两个640x480分辨率的RGB 网络摄像头(Razer Kiyo Pro),向下倾斜50度,瞳距为160mm
- 每个手臂集成了一个 Inspire-Robots RH56DFX手,通过定制的手腕连接
- 每个手腕都有一个 Dynamixel 伺服器和两个推力轴承。手和手腕都通过串行通信控制
- 手指可以施加高达10N 的力,而手臂可以举起高达7.5kg的物品
- 腿部电机在操作期间可以产生高达360Nm的瞬时扭矩
那,怎么具体预测机器人所需的动作呢?可基于人类提供的示范模仿学习的最新成功案例:UMI所用的Diffusion Policy
- 其对应的论文是:Diffusion policy: Visuomotor policy learning via action diffusion,Tony Z Zhao, Vikash Kumar, Sergey Levine, and Chelsea Finn. Learning fine-grained bimanual manipulation with low-cost hardware],引入了基于Transformer的架构
- 或者详见此文:UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读),融合了动作预测和前向动力学预测
通过对图像特征进行前向动力学预测,并通过在图像特征空间上进行正则化,防止基于视觉的技能策略忽略图像特征并过拟合到本体感知,从而显示出性能的提升
从而使得最终通过多达40次演示,该人形机器人可以自主完成诸如穿鞋站立和行走、从仓库货架上卸载物品、折叠运动衫、重新排列物品、打字以及与另一台机器人打招呼等任务,成功率为60-100%
1.2 模型架构的更多细节:low-level控制策略与动作预测策略
1.2.1 low-level控制策略背后的模型架构:Humanoid Shadowing Transformer
将low-level policy所需要用的Humanoid Shadowing Transformer,弄为仅解码器的transformer即可(We formulate our low-level policy, Humanoid Shadowing Transformer, as a decoder-only transformer),如下图左侧所示
在每个时间步
策略(即low-level控制策略)的输入是人形机器人的本体感知和人形机器人的目标姿态(the input to the policy is humanoid proprioception and a humanoid target pose)
- 本体感知,即机器人当下的状态,包括根状态(行、俯仰和基角速度)、关节位置、关节速度和最后的动作
The humanoid propri-oception contains root state (row, pitch, and base angular velocities), joint positions, joint velocities and last action - 至于目标姿态,即机器人要学习的来自人类的目标姿态,则包括目标前进和横向速度、目标滚转和俯仰、目标偏航速度和目标关节角度,并从上文提到的处理过的AMASS数据集中采样的人类姿态重新定位
The humanoid target pose consists of target forward and lateral velocities, target roll and pitch, target yaw velocity and target joint an-gles, and is retargeted from a human pose sampled from the processed AMASS dataset mentioned in Section 4.
策略的输出是19维的关节位置设定点,用于人形机器人身体关节,随后使用一个1000Hz的PD控制器,目标手关节角度直接传递给PD 控制器,且低级策略以50Hz运行,具有8的上下文长度,因此可以根据观察历史适应不同的环境[67]
The output of the policy is 19-dimensional joint position setpoints for humanoid body joints,which are subsequently converted to torques using a 1000Hz PD controller. The target hand joint an-
gles are directly passed to the PD controller. Our low-level policy operates at 50Hz and has a context length of 8, so it can adapt to different environment given the observation history [67]
过程中,我们使用PPO [74]在模拟中训练我们的类人影子transformer(其Transformer层数:3、其隐藏层维度:512、注意力头数:4、学习率:5e-5、PPO训练epoch数:3),通过最大化期望回报
其中是时间步长的奖励,是最大episode长度,是折扣因子。 奖励是鼓励匹配的项的总和(关于RL和PPO相关的概念,如果不熟悉,请参见此文:强化学习极简入门:通俗理解MDP、DP MC TC和Q学习、策略梯度、PPO)
总之,需要在节省能量和避免脚滑的同时,达到目标姿势
- 在下图左侧中列出了所有的奖励项(denote as linear x velocity, as linear y velocity, as angular yaw velocity即角速度, q是关节位置, ˙q是关节速度, r as roll, p as pitch, vfeet as feet velocities, c as feet contact indicator, Ffeet as forces on feet, and ·tg as targets)
- 且随机化了模拟环境和人形机器人的物理参数,详见下图右侧
在模拟中训练人形机器人影子变换器后,便可将其零样本部署到现实世界中的人形机器人上 进行实时影子操作
1.2.2 用于模仿学习的仅解码器Transformer(Humanoid Imitation Transformer)
通过本博客内之前的文章可知,模仿学习在给定广泛任务演示的情况下,已经在学习自主机器人技能方面取得了巨大成功,比如
- Rt-1: Robotics transformer for real-world control at scale
- Diffusion policy: Visuomotor policy learning via action diffusion
- Open X-Embodiment: Robotic learning datasets and RT-X models
- Mobile aloha: Learning bimanual mobile manipulation with low-cost whole-body teleoperation
- Learning fine-grained bimanual manipulation with low-cost hardware by Tony Z Zhao, Vikash Kumar, Sergey Levine,and Chelsea Finn]
而通过影子学习收集的现实世界数据,HumanPlus将相同(即模仿学习)的方法应用于人形机器人以训练技能策略, HumanPlus进行了几项修改,以便在有限的车载计算资源下实现更快的推理,并在双目感知和高自由度控制的情况下实现高效的模仿学习,当然,修改了动作分块算法(Action Chunking Transformer,详见:Mobile ALOHA——斯坦福炒虾机器人的关键技术:动作分块算法ACT的原理解析)
具体修改了什么呢?为更形象的说明,再次贴下这个模型架构图
- 下图左侧是用于低级控制的仅解码器Transformer(Humanoid Shadowing Transformer)
- 下图右下角是一个用于模仿学习的仅解码器Transformer(Humanoid Imitation Transformer)
对于上图右下角的仅解码器的人形模仿Transformer(HIT,其Transformer层数:12、隐藏层维度:1024、注意力头数:16、学习率:1e-4、训练样本:40个演示),其用于技能策略
- 其输入有三方面的数据:来自机器人两个自我中心RGB摄像头的当前图像特征(这些图像特征使用预训练的ResNet编码器进行编码)、机器人本体感受(来自Humanoid Shadowing Transformer)、一个长度为50的带时间步的固定Positional Embeddings
故其输入观测维度:532 = 154(关节角度) + 2x128(图像特征) + 50(位置编码) - 其输出则是预测的50个目标姿势块(未来50个时间步的机器人目标关节角度),以及每个时间步对应的RGB图像特征的预测值(相当于50个Target Pose)
得到预测的动作之后,再交给Humanoid Shadowing Transformer去控制机器人做出实际的行为、策略、动作(说白了,此时的HIT便是high-level的大脑,而HST便是low-level的执行者)
故其输出维度:50x ( 机器人自由度33 + 图像特征维度128) = 8050
这是不和无人驾驶中的所谓「感知 决策/预测 路径规划 控制」,一个本质?^_^
且过程中,还会对预测的50个Target Pose与机器人实际执行后的真实Pose建L2的Feature Loss
最终,这种方法使HIT能够有效地将目标姿态预测与前向动力学预测相结合,通过对图像特征进行前向动力学预测,通过规范图像特征空间来增强性能,防止基于视觉的技能策略忽略图像特征并过度拟合到本体感受
在部署期间,HIT以25Hz的频率在板载运行,异步地将预测的目标位置发送到低级人形阴影transformer,同时丢弃预测的未来图像特征tokens
1.3 一系列实验对比:影子跟随与模仿学习
1.3.1 其他系统与影子跟随效果的对比
接下来,咱们对比下HumanPlus和其他三个系统:Kinesthetic Teaching、ALOHA [104]、Meta Quest之间的差异
- 对于Kinesthetic Teaching,两只手臂都处于被动模式并手动定位
- 对于ALOHA,从两个WidowX 250机器人构建了一对双臂,用于木偶操作,其运动结构与HumanPlus的人形机器人手臂相似
- 对于Meta Quest,使用控制器的位置通过逆运动学和重力补偿进行操作空间控制
总的而言
- HumanPlus之外的所有基线都不支持全身控制,并且至少需要两个人类操作员进行手势估计
相比之下,HumanPlus的影子系统同时控制人形机器人的身体和手,只需要一个人类操作员 - 此外,ALOHA和Meta Quest都更昂贵
相比之下,HumanPlus和Kinesthetic Teaching只需要一个RGB摄像头
如下表所示,我们对6名参与者进行了用户研究,以比较HumanPlus的影子系统与三个基线在远程操作效率方面的表现
- 两名参与者没有远程操作经验,而其余四名参与者具有不同程度的专业知识。所有参与者在此之前都没有使用过我们的影子系统
参与者的任务是执行重新排列物体任务及其变体重新排列低位物体,其中物体被放置在高度为0.55米的低桌上,这需要机器人下蹲,从而需要全身控制 - 我们记录了六名参与者的平均任务完成时间,每人进行三次试验,并进行三次未记录的练习,且还记录了远程操作期间稳定站立的平均成功率
- 虽然 ALOHA能够精确控 制机器人关节角度,但其固定的硬件设置使其难 以适应不同身高和体型的人,并且默认情况下不支持类人机器人的全身控制
Meta Quest由于 每个类人手臂加上手腕的自由度有限(5个自由度),经常导致目标姿势和实际姿势在笛卡尔空间中的奇异性和不匹配,导致最长的完成时间 和在手臂奇异性处站立不稳虽然动觉教学直观且完成时间短,但它需要多个操作员,有时在教学过程中对手臂施加的外力会导致人形机 器人绊倒
相比之下,HumanPlus的系统具有最低的 完成时间,最高的稳定站立成功率,并且是唯一可以用于全身远程操作的方法,解决了重新排列低位物体任务
1.3.2 与其他系统在模仿学习上的效果比较
上面对比了HumanPlus的影子跟随系统与其他相关系统在遥控机器人上的效果,接下来,咱们再来对比下HumanPlus的模仿学习算法与其他相关算法的效果
- 下表展示了HumanPlus的HIT(Humanoid Imitation Transformer)、单目输入的HIT(HumanPlus是双目输入)、ACT、Open-loop在折叠衣服、重新排列物体这两个任务中的成功率(We show success rates of Humanoid Imitation Transformer (Ours), HIT with monocular input, ACT and open-loop trajectory replay across all tasks)
- 至于下表,则对比了HumanPlus的HIT算法与其他三个基线方法在“写AI(步骤是:按下字母‘A’
、松开键、按下字母‘I’、松开键)、和另一个机器人握手、穿鞋、走路”这4个任务上的效果
可以看到,HumanPlus的HIT算法是唯一解决穿鞋和走路任务的方法,在40次演示中成功率达到60%,而所有其他方法都失败了
- 这是因为HumanPlus的方法使用了双目感知,避免了对本体感知的过拟合
- ACT在打字“AI”、穿鞋、走路任务中失败,因为它对本体感知过拟合,机器人在成功完成捡起鞋子,和离开“键盘键A”后反复尝试并卡住
- 单目(Monocular)由于单个RGB相机缺乏深度信息,显示出较低的成功率,在折叠衣物任务中与桌子的互动较为粗糙,在穿鞋和行走任务中完全失败,因为深度感知至关重要
然而,由于其视野较窄,在打字“AI”任务中的某些子任务上比其他方法更成功 - 开环(Open-loop)仅在没有随机化的情况下可以完成打字“AI”任务,但在所有需要反应控制的其他任务中均失败
总体而言, HumanPlus的表现优于其他三个基线方法
第二部分 HumanPlus硬件安装指南
2.1 Bill of Materials
Part | Quantity | Link | Price (per unit) |
Robots | |||
宇树科技:Unitree H1 humanoid | 1 | Unitree H1 - Unitree's first universal humanoid robot - Unitree | $89,900.00 |
机器手:Inspire-Robots RH56DFX hand | 2 | The Dexterous Hands RH56DFX– inspire-robots | $8,519.00 |
Wrists | |||
动力装置DYNAMIXEL XM430-W350-R | 2 | DYNAMIXEL XM430-W350-R - ROBOTIS | $289.90 |
U2D2 | 1 | U2D2 - ROBOTIS | $32.10 |
U2D2 Power Hub Board Set | 1 | U2D2 Power Hub Board Set - ROBOTIS | $19.00 |
M2.5*8 HEX | 32 | Amazon.com | $0.11 |
M3*10 HEX | 36 | Amazon.com | $0.08 |
M3*20 HEX | 6 | Amazon.com | $0.10 |
M2*6 HEX | 8 | Amazon.com | $0.07 |
M3 square nuts | 30 | Amazon.com | $0.04 |
Camera setup | |||
Razer Kiyo Pro Webcam | 3 (1 for real-time shadowing; 2 for onboard vision) | Amazon.com | $92.66 |
Camera Tripod | 1 | Amazon.com | $29.99 |
M4 x 35 HEX | 4 | Amazon.com | $0.16 |
M4 square nuts | 4 | Amazon.com | $0.07 |
Common equipments | |||
USB A Hub | 2 | Amazon.com | $9.99 |
USB C Hub | 2 | Amazon.com | $18.84 |
Total | $107,945.41 |
得,光上面这些便得10万美刀了..
2.2 硬件代码库
2.2.1 硬件相关的一系列安装
硬件代码库基于unitre_ros2,需要经过以下一系列安装
- 安装unitree_sdk
- 安装unitre_ros2
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>conda create -n lowlevel python=3.8 conda activate lowlevel </code></span></span></span></span>
- 安装nvidia-jetpack
- 安装 torch==1.11.0 和 torchvision==0.12.0:
请参考以下链接:
https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048 Installing PyTorch for Jetson Platform - NVIDIA Docs
2.2.2 示例用法
将训练好的策略放入hardware-script/ckpt
文件夹中,并将其重命名为
policy.pt
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>conda activate lowlevel
cd hardware-script
python hardware_whole_body.py --task_name stand</code></span></span></span></span>
2.3 3D printed parts
2.3.1 CAD models
详见:https://drive.google.com/drive/folders/1MtxHqR0SmulucMMbZhxnf_uUJ0qQ9Qe8?usp=sharing
2.3.2 Wrists
2.3.3 Onboard Camera Setup
// 待更
第三部分 姿态估计之 WHAM、HaMeR
3.1 WHAM
根据arXiv的记录,此篇论文WHAM: Reconstructing World-grounded Humans with Accurate 3D Motion的提交记录为[Submitted on 12 Dec 2023 (v1), last revised 18 Apr 2024 (this version, v2)]
如下图所示
- WHAM的输入是由可能具有未知运动的相机捕获的原始视频数据,接下来的目标是预测对应的SMPL模型参数序列,以及在世界坐标系中表达的根方向和平移,具体做法是
我们使用ViTPose [54] 检测2D关键点,从中使用Motion Encoder获得运动特征
此外,我们使用预训练的Image Encoder[7,21,25] 提取静态图像特征,并将其与结合,以获得细粒度的运动特征,从中再回归世界坐标系中的3D人体运动
// 待更
3.2 HaMeR
Reconstructing Hands in 3D with Transformers在arXiv的提交记录为[Submitted on 8 Dec 2023]
// 待更
第四部分 humanplus的代码解读与复现关键
为了对整个humanplus的代码做更好的解读,先把整体的代码结构梳理一下
考虑到为避免 我在解析的时候,看到本文篇幅越来越长而蹑手蹑脚导致很多细节不展开,故把本部分已抽取出来独立成文,见:斯坦福人形机器人HumanPlus的代码解读与复现关键:从HST到HIT、HardWare
// 待更