![]()
你有没有想过,教机器人干活最难的地方是什么?
不是让它记住一个动作,而是让它学会"手怎么转"。你随手拿起一个矿泉水瓶,把它翻转过来放进纸箱,这个动作对你来说毫无难度,手腕轻轻一拧就完成了。但如果让机器人来做这件事,情况就完全不一样了。
过去几年,让机器人从人类视频里学动作,一直被认为是条捷径。毕竟真人操作机器人手臂去采集训练数据,又贵又慢,一个熟练的操作员一天也录不了多少条轨迹。相比之下,人类拿起手机拍一段自己整理桌子、择菜、叠衣服的视频,几乎零成本。这个思路听起来很美好,但一篇来自香港中文大学(深圳)团队的论文,戳破了一个大家心照不宣的事实:几乎所有现有方法,都只能处理"平面任务"。
什么叫平面任务?
就是推一下、拿起来放到旁边、滑动这类几乎不涉及旋转的动作。一旦涉及复杂的空间运动,比如把物体倒过来、大幅度转动手腕、在杂乱环境里精细调整抓取角度,这些方法基本就失灵了。
这不是危言耸听。论文里给出了一张图,统计了几个主流机器人数据集里动作的总旋转角度分布。RT-1、MimicPlay 这些数据集里,超过一半的动作旋转角度都落在 0 到 45 度这个区间,几乎不怎么转。而这篇论文自己收集的数据集里,60% 以上的动作旋转角度落在 90 到 135 度之间,甚至有相当一部分超过 135 度,接近完全翻转。
这个差距意味着什么?意味着过去那些方法擅长解决的问题,其实是相对简单的那一部分。真正困难、也真正贴近人类日常操作复杂度的那部分任务,几乎没人碰过。
难点到底卡在哪儿
为什么复杂空间运动这么难处理?论文给出了两条线索,都指向现有方法的根子问题。
第一条路子是**基于规则的重定向**。
关节映射*:把人类手部的关键点(比如拇指和食指的中点)按照预先设定好的几何规则,映射成机器人夹爪应该摆放的位置和角度。
这种方法简单直接,写几行代码就能跑起来。问题是它假设了一种"标准抓法",比如永远用食指和拇指捏取物体。可现实中人类抓东西的方式五花八门,托、握、捏、勾,每种抓法的手指位置关系都不一样。论文里有张对比图,展示了这种规则映射方法在真实抓取场景下的失败案例:当人手以自然的握持方式抓住一个瓶子时,规则重定向出来的夹爪姿态完全是错的,甚至可能根本抓不稳物体。规则是死的,人的手是活的,这个矛盾在简单任务里被掩盖了,但在复杂旋转任务里会被放大到无法忽视。
这就好比你教一个新手司机开车,只教他"方向盘往左转就是向左转",但从不告诉他遇到急弯该怎么控制车速、怎么预判路况。平时直路上开车看起来没问题,可一旦遇到连续发夹弯,新手司机的机械式操作立刻就会翻车。如果一直靠死板规则应付,那些真正需要判断力的复杂路况永远学不会处理。
第二条路子是**轨迹条件方法**。
物体中心轨迹*:不去管人手具体怎么运动,只追踪物体本身在空间中的运动路径,让机器人复现这条路径。
听起来更聪明一些,因为它绕开了人手和机械爪形状不同的问题,只关心物体动了多远、转了多少。但这里藏着一个致命伤:在复杂旋转过程中,被追踪的物体表面点位经常会被手指或者物体自身遮挡住。
论文里有张示意图特别直观:当物体发生大幅度旋转时,原本贴在物体侧面的追踪点,因为被遮挡,追踪算法会"drift"(漂移)到物体的瓶颈部位去,导致整条运动轨迹全乱套。这不是偶发的小故障,而是这类方法遇到复杂旋转时几乎必然会出现的系统性失败。更重要的是,即便轨迹追踪准确,它也丢失了一个关键信息:人手在这个过程中具体是怎么摆的。有些任务需要精确调整抓取角度来避免碰撞,或者转动一个工具让它保持功能性接触(比如拧螺丝刀时刀头必须对准螺丝槽),这些细节只有手部姿态才能提供,纯粹的物体轨迹根本没法回答。
从规则映射到数据驱动
面对这两条路都走不通的局面,论文团队做了一个思路上的转向:不再依赖人工设计的规则或者纯粹的物体轨迹,而是构建一个大规模的、手部动作和机器人夹爪动作严格配对的数据集,让模型直接从数据里学出这个映射关系。
配对数据*:同一个操作任务,既有人类手部完成时的完整记录,也有机器人夹爪完成同一任务时的完整记录,两者一一对应。
这个想法说起来简单,但实现起来处处是坑。人手有五根手指、二十多个自由度,机器人夹爪往往只有两个夹片、一个开合自由度,怎么让两种完全不同的"手"去做同一件事,还要记录得足够精确?
论文团队想出的办法是用一个叫 UMI 的手持式夹爪设备。
UMI*:全称 Universal Manipulation Interface,一种可以直接用手握持操作的机械夹爪装置,操作者握着它像握着一把钳子一样去完成抓取任务。
这个设计巧妙在哪里?因为操作者是直接用手控制这个夹爪去完成任务,所以夹爪的运动轨迹会自然而然地模仿人手刚才做过的动作,包括那些复杂的旋转和翻转。采集流程变成了:先让操作者徒手做一遍任务,录下人手的视频;然后同一个人再用 UMI 夹爪做一遍一模一样的任务,模仿刚才手部的接触区域、抓取角度和运动轨迹,再录一遍。两段视频记录的是同一个任务,一个是"人手版",一个是"夹爪版",天然配对。
这就像学一支新舞蹈时,先让教练徒手跳一遍完整的动作给你看,然后教练再拿着一根标好关节点的舞蹈杆,重新跳一遍同样的动作,让你能精确看清每个转身、每次抬手的角度变化。如果没有这第二遍"用工具复现"的过程,你只能凭感觉去猜测教练的手到底是怎么转的,细节全靠脑补,学出来的动作十有八九是走样的。
为了保证复杂度,团队还设计了一套严格的采集规范:每个操作任务都必须包含明确的空间移动变换,比如水平旋转和垂直翻转,而且要在工作台上放置空间标记物来确保动作的复杂度达标。针对同一个物体,操作者还要故意变换不同的抓取手势和接触区域,增加动作的多样性。录完之后还有一道质量把关:检查人手版本和夹爪版本在起始帧和终止帧的物体姿态是否一致,如果对不上就直接扔掉这条数据。
最终,这套流程收集出了一个包含 6189 条配对操作片段、覆盖 1254 种不同物体的数据集。经过筛选后保留的配对,平均相似度达到 0.957(满分 1),说明配对质量相当扎实。
数据是怎么变成 3D 信息的
光有视频还不够,视频是 2D 的像素,机器人真正需要的是 3D 空间里的位置和姿态。这一步团队也做了取巧的设计:不依赖复杂的多相机标定系统,而是用一台深度相机拍摄 RGB-D 视频(彩色图加深度图),再借助几个现成的先进模型把 3D 信息提取出来。
具体流程是这样的:先用多视角图像重建出物体的三维网格模型,再把这个模型注册到实际拍摄场景中的具体位置;人手部分则用一个叫 WiLoR 的模型直接从图像重建出手部三维网格;UMI 夹爪的位置和姿态则借助 FoundationPose++ 这样的位姿追踪模型全程跟踪。
FoundationPose++*:一种能够对已知三维模型进行六自由度姿态估计和跟踪的算法,只需要给它物体的三维网格和一张初始遮罩图,就能持续追踪该物体在整段视频里的位置和朝向变化。
这套流程避免了每次换个新场景就要重新标定相机的麻烦,扩展起来更容易。最终每条采集数据里包含了物体点云、人手网格序列,以及夹爪的六自由度姿态序列,这些信息已经足够支撑后续的学习任务了。
两阶段框架:为什么不能一步到位
有了数据,接下来的问题是怎么用这些数据训练出一个能干活的模型。团队最初的想法很朴素:直接训练一个模型,输入人手和物体的点云信息,一步到位生成整条夹爪动作序列。
这个思路听起来合理,但论文里的消融实验数据给出了明确的否定答案。团队用三种不同的单阶段架构(去噪 Transformer、Diffusion Policy、ACT)都试了一遍,结果无一例外表现不佳,成功率最高的一个也只有 64.52%,目标姿态误差高达接近 50 度。
为什么会这样?论文给出的解释是:细微的轨迹偏差在复杂动态过程中会迅速放大。
这就像你让一个人闭着眼睛,凭记忆从起点走到终点,途中要转好几个弯。如果第一个转弯就偏了两度,看起来微不足道,但这个偏差会在后续每一步里持续累积,走到终点时可能已经偏离目标好几米远。如果一开始就没有中途的路标去校正方向,越到后面误差越难收拾。
于是团队改用了一个**两阶段框架**。
第一阶段先只生成起始帧和终止帧这两个关键姿态,把原本连续的、高难度的序列生成问题,简化成了两个独立的单帧生成问题。第二阶段再在这两个关键帧的约束下,生成中间的完整连续动作序列。
这个设计的逻辑其实很直白:与其让模型一次性猜出整条路的每一步,不如先让它确定"起点在哪、终点在哪",把这两个锚点钉死,再去填充中间的过程。这样中间过程即便有小偏差,也会被两端的强约束给拉回来,不至于越走越偏。
姿态怎么表示:三个关键点
在具体实现上,团队还做了一个值得一提的细节设计,关于怎么表示夹爪的姿态。
传统做法通常用齐次变换矩阵或者四元数加平移向量来表示一个物体的六自由度姿态,这是机器人学里的标准写法。但这篇论文借鉴了 HGDiffuser 的思路,改用夹爪上三个关键点的绝对坐标来表示姿态:夹爪中心、左指尖、右指尖。
三个点确定一个刚体在空间中的位置和朝向,这在几何上是成立的。但这个选择背后真正的考量,是让"条件信息"和"生成目标"处在同一个表示空间里。人手点云、物体点云,都是坐标点的形式;如果生成目标是矩阵或者四元数,模型就得学会一次跨域的映射,从"点"的世界跳到"矩阵"或"角度"的世界。而如果生成目标也是坐标点,这次跳跃就被省掉了。
论文的消融实验证实了这个选择的价值:用矩阵表示时目标姿态误差是 28.47 度,用四元数表示是 24.63 度,换成三关键点表示直接降到 10.27 度,几乎是腰斩再腰斩。
这就好比你要向一个外国朋友描述一个物品的形状,与其用一套复杂的公式去描述它的曲率和角度,不如直接摆出三个实物模型让他比划,对方一眼就能看懂你想说什么。表达方式越贴近双方都熟悉的"语言",信息传递的损耗就越小。
位置和朝向:该学的学,该算的算
第二阶段还有一个更细腻的设计,是把动作序列拆成了"朝向"和"位置"两部分分开处理,而不是让模型一股脑全部生成。
团队观察到,夹爪的平移轨迹(也就是它在空间中移动的路径)其实可以从人手的运动轨迹里比较可靠地推算出来,再结合一个简单的启发式规则做优化:抓取区域应该在手和夹爪之间大致对齐。而夹爪的朝向(旋转角度)则没有这样简单的几何规律可循,必须完全依靠数据驱动的方式让模型隐式学习。
所以在实际操作里,位置序列是"算"出来的,先从人手轨迹初始化,再经过接触对齐、轨迹平滑、运动学一致性这三步优化打磨;而朝向序列是"生成"出来的,用一个条件在物体点云、人手点云序列、以及第一阶段生成的起止姿态上的去噪 Transformer 来产出。
论文的消融实验里专门对比了三种策略:直接端到端生成完整序列(位置加朝向都生成)、完全靠几何计算和优化得到整条序列、以及团队最终采用的"生成朝向加优化位置"混合方案。结果显示,纯计算方案的效果最差,目标姿态误差高达 26.78 度,成功率只有 67.2%。原因在于,缺少一个靠谱的几何先验,朝向的初始化就非常粗糙,后续优化很难在一个高维姿态空间里找到正确答案。而混合方案的误差只有 10.27 度,成功率达到 83.87%,是三者中表现最好的。
这个设计其实体现了一种朴素的工程智慧:不是所有的问题都值得用最复杂的工具去解决。
位置有明确的物理规律可以依循,那就交给规则和优化去处理,省下算力和不确定性;朝向没有这样的规律,那就老老实实让数据来说话。这就好比修一栋房子,承重结构该按标准图纸来就按图纸来,但室内装修风格这种没有标准答案的部分,就得靠设计师的经验和审美去把握,硬套一套通用公式反而会显得生硬。
跟谁比、比出了什么
团队把 CosmoH2G 拿去和几类现有方法做了正面比较,既包括基于优化的方法(MimicFunc、3DFlowAction),也包括基于学习的方法(Im2Flow2Act、Track2Act)。评测环境覆盖仿真和真实机器人两种场景,用的是 Galaxea R1 Lite 机械臂平台。
评测指标有四个维度:抓取朝向准确度(衡量机器人复现演示中抓取角度的能力)、轨迹相似度(衡量运动路径的贴合程度)、任务成功率、以及目标朝向放置准确度(衡量最终摆放角度的精确程度)。
结果如下表所示:
方法 | 抓取朝向误差(仿真)↓ | 成功率(仿真)↑ | 轨迹相似度(仿真)↑ | 目标朝向误差(仿真)↓ | 成功率(真实机器人)↑
MimicFunc | 19.37° | 56.45% | 0.7673 | 32.47° | 43.01%
3DFlowAction | 20.84° | 44.62% | 0.6752 | 29.17° | 36.02%
Im2Flow2Act | 29.86° | 57.53% | 0.7835 | 50.27° | 51.61%
Track2Act | 10.67° | 77.42% | 0.9015 | 12.48° | 60.22%
CosmoH2G(本文) | **7.53°** | **83.87%** | **0.9672** | **10.27°** | **70.43%**
从数据能看出几个规律。基于光流追踪的方法(MimicFunc、3DFlowAction、Im2Flow2Act)在复杂旋转任务里普遍表现较差,这和前面提到的"追踪点被遮挡后漂移"问题正好对应。Track2Act 表现相对好一些,但它的"先计算再修正"框架在初始计算严重偏离目标时依然容易出问题。CosmoH2G 在所有指标上都拿到了最好成绩,尤其是目标朝向误差控制在 10 度左右,相比排名第二的 Track2Act 还要再精确一些。
真实机器人上的成功率普遍比仿真里低一些,论文里给出的解释也很实在:物体在大幅旋转过程中偶尔会打滑,或者在还没完全被夹爪提离桌面时就开始移动,摩擦力过大导致物体掉落。这些是物理世界的真实摩擦,仿真环境里往往被简化掉了。
数据集本身的贡献
除了方法层面的设计,这篇论文另一个重要贡献是数据集本身。论文里专门做了一张直方图,对比了 CosmoH2G 和 RT-1、MimicPlay、Robosuite 这几个主流数据集在"总旋转角度"这个维度上的分布差异。前面提到过,现有数据集里超过一半的动作旋转角度不超过 45 度,而 CosmoH2G 里 60% 以上的动作旋转角度落在 90 到 135 度区间。这个差距不是量的差距,而是质的差距,意味着这是目前第一个真正聚焦"复杂空间运动"的人手到机械爪配对数据集。
数据集覆盖的物体种类也做了刻意的多样化设计,五大类涵盖食品、装饰品、美妆用品、生活用品、玩具,单个物体类别里又细分了不同的具体物件,比如蛋挞、青铜枪模型、化妆刷、蓝色抽屉、绿色火车模型等等。这种多样性是为了让训练出来的模型不至于只认识"见过的那几件东西",而是能泛化到没见过的新物体上。
论文还额外做了一组泛化性测试,考察模型对不同演示者、不同拍摄视角的适应能力。测试发现模型在成年男性和成年女性的手部尺度上都表现稳定,成功率分别是 83.33% 和 91.67%,和原始测试集的 83.87% 相当接近。但在儿童手部数据上,成功率骤降到 33.33%,原因是儿童手的尺度落在了训练数据分布之外。这也提醒我们,数据驱动方法的能力边界,很大程度上就是训练数据覆盖范围的边界,超出这个范围,模型的表现会明显打折扣。
在摄像机视角方面,团队测试了第一人称、自我中心俯视、第三人称、外部俯视四种视角,发现成功率基本稳定在 75% 到 90% 之间,波动不大。这是因为输入的是从视频里提取出的 3D 信息,而不是原始 2D 图像,所以对拍摄角度本身不敏感,这也算是这套 3D 提取流程带来的一个附带好处。
还没解决的问题
论文在结尾也坦诚地列出了一些局限。目前这套框架是开环运行的,也就是说一旦生成了动作序列,机器人就照单执行,中途不会根据实际情况做实时纠错,也没有显式的碰撞规避机制。团队提到未来希望加入闭环反馈和碰撞感知的运动规划,这是一个明确的待完成方向。
另外,团队也承认两阶段框架本质上是当前数据规模下的一个"实用设计",如果未来配对数据规模能进一步扩大,单阶段直接生成完整序列的方案也许会重新变得可行。这句话读起来有点耐人寻味,相当于团队自己也认为两阶段框架不是终极答案,而是现阶段数据量和方法能力之间的一个折中方案。
写在后面
读完这篇论文,有个细节让我一直在琢磨:团队没有选择去改进追踪算法或者设计更精巧的重定向规则,而是选择了一条更"笨"但更扎实的路,就是老老实实去采集一个足够大、足够复杂的配对数据集。
这种选择背后其实隐含着一种判断:与其在一个有结构性缺陷的方法上不断打补丁,不如换一个赛道,用数据的规模和质量去正面硬刚问题本身。规则重定向和光流追踪之所以在复杂旋转任务上翻车,根子在于它们对"人手到机械爪"这个映射关系做了过度简化的假设,不管怎么优化参数,假设错了,结果就错。而数据驱动方法绕开了"预设一个映射规则"这一步,直接让模型从大量真实配对案例里去摸索这个映射关系本身长什么样子。
另一个让我意外的地方是,团队在处理"位置"和"朝向"时采取了完全不同的策略,一个交给规则计算,一个交给模型学习。这种拆分看似简单,但背后其实是对问题复杂度的精准判断:并不是所有子问题都同等困难,把简单的部分留给确定性方法处理,把真正棘手的部分才交给数据驱动的黑箱,这是一种很克制、很务实的工程哲学。
数据集里儿童手部数据的失败案例,也算是一个诚实的注脚。它提醒我们,任何数据驱动方法的边界,说到底就是训练数据分布的边界。这不是这篇论文特有的问题,而是几乎所有数据驱动方法共同面对的宿命。
如果有一天,机器人真的能像人一样自然地转手腕、翻转物体、灵活调整抓取角度,那个转折点,大概率不是来自某个惊天动地的新算法,而是来自像这样一点一点把"复杂动作"的数据积累起来的笨功夫。
Q&A
Q1:CosmoH2G解决了什么核心问题?
A:CosmoH2G解决的是让机器人夹爪学会人类手部复杂空间运动(如旋转、翻转)的问题,此前的方法大多只能处理简单的平面操作,如推、拿、放这类几乎不涉及旋转的动作。
Q2:CosmoH2G的数据集是怎么采集的?
A:团队让操作者先徒手完成一遍任务并录制视频,再用手持式夹爪UMI模仿同样的接触区域和抓取角度重新完成一遍任务,两段视频天然配对,最终收集了6189条配对片段,覆盖1254种物体。
Q3:为什么CosmoH2G要用两阶段框架而不是一步到位生成动作?
A:因为实验发现直接端到端生成完整动作序列时,细微轨迹偏差会在复杂旋转过程中迅速累积放大,导致精度不足,所以先生成起始和终止关键帧作为锚点,再生成中间连续序列,效果明显更好。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.