你有没有想过,为什么机器人学走路、搬东西这种事,到现在还这么难?
答案可能和你想的不一样。不是运动控制算法不够强,而是在教机器人之前,有一个更基础的问题没解决好:怎么把人的动作,原封不动地"翻译"给一个身材完全不同的机器人。
这篇论文讲的就是这件事。研究团队给这个方法起名叫OTRETARGET,一个基于最优传输理论的机器人和物体动作联合重定向系统。先别被"最优传输"这个词吓到,我们一步步拆开看。
**这件事难在哪**
想象一下,你录了一段自己从地上捡箱子放到桌上的视频。现在你想让一台身高1米32、手臂比你短得多的人形机器人G1也做同样的动作。
最简单的办法是什么?把整个场景和箱子按比例缩小,让机器人的身材刚好和缩小后的场景匹配。这是目前业界最常用的思路,一个叫OmniRetarget的方法就是这么干的,它按照机器人和人的身高比例,把整个演示场景整体缩放。
但这里有个要命的问题。
**场景缩小了,可桌子和地板没缩小。**
你把人和箱子的轨迹按比例缩小了75%,可现实世界里的桌子还是那么高,地板还是那么硬。缩小后的轨迹放到原尺寸的场景里,接触点全乱了。箱子可能悬在桌子上方,或者直接穿到桌子底下。论文里把这个问题称为"缩放不一致"。
这就像你照着一张缩印的地图去找一家真实大小的商店。地图上商店门口到路口的距离是5厘米,可现实里路口到商店的距离根本不是按这个比例缩小的,你按地图走,最后会撞到墙上,或者在空地里转圈找不到门。如果不解决这个尺度错位,机器人的手可能永远够不到真实高度的桌子,或者脚永远踩不实地板。
除了缩放问题,还有两个麻烦事。
第一个是物体轨迹没法适应新身体。人从地上搬箱子放到桌上,这条轨迹是针对人的身材录的。换成机器人,如果机器人手臂短,这条轨迹可能在某个高度就够不到了。如果不缩放,箱子可能被放到桌子底下而不是桌子上。
第二个是交互关系会丢失。即便轨迹本身是可行的,接触方式也得跟着身材变。手臂短的机器人抱箱子,可能需要把胳膊张得更开才能抓稳,这种微调,光靠记录骨架关键点的位置是推不出来的。
骨架点只能告诉你"手在哪个位置",不能告诉你"手和箱子表面贴合得有多紧、贴在哪个角度"。这是整篇论文最核心的洞察:传统方法只盯着骨骼关键点,这是远远不够的。
**表面距离场:把"贴合"这件事量化**
既然骨架点不够用,OTRETARGET选择了一个更细致的表示方式,叫做邻近三元组。
邻近三元组*:对表面上每个采样点,计算三个量,到目标表面的带符号距离、目标表面上最近的那个点(witness point,见证点)、以及从见证点指向采样点的单位方向向量。这三个数字合起来,就能精确描述"这个点和那个表面贴得有多近、贴在哪里、朝哪个方向贴"。
具体做法是,在人体、机器人、物体的表面上密密麻麻撒点,物体表面撒1000个点每平方米,人体和机器人表面撒2000个点每平方米。每个点都去查一下自己和周围"通道"(地面、箱子、桌子等)之间的这三个量。这些距离场提前在一个1厘米精度的体素网格里算好,用的时候直接插值读取,不用每一帧都重新计算,省了大量时间。
为什么要这么精细?因为"接触"这件事,本质上是表面级的现象,而不是骨架级的。你的手掌贴在箱子表面的哪个位置、贴合的角度,这些信息如果只靠手腕关节点的XYZ坐标,根本还原不出来。
这就像你想判断两个人有没有牵手,只看两人身体中心点的距离是不够的,中心点距离可能完全一样,但一个是手拉手,另一个是手背对背贴着。你必须知道手掌和手掌之间具体哪个区域在接触、接触的朝向是什么,才能判断这是不是"牵手"这个动作。如果只用骨架关键点做重定向,机器人很可能做出一个"看起来姿势差不多,但手根本没碰到箱子"的动作,这就是论文里说的"交互丢失"问题的根源。
**最优传输:给每个点找一个"靴子对脚"的对应关系**
有了邻近三元组之后,还有一个问题:人体表面的一个点,应该对应机器人表面的哪个点?
人的手掌和机器人的手掌,形状完全不一样,点的数量也不一样,怎么建立一一对应的映射关系?
论文用了一个叫最优传输的数学工具来解决这个问题。
最优传输*:一种数学方法,用来找到把一堆"质量"从一个分布搬到另一个分布的最省力方式。在这里,被搬运的"质量"就是每个采样点携带的交互信息,目标是找到一种搬运方案,让总的搬运代价(点与点之间的空间距离)最小。
具体操作是,先把人体和机器人的点云按照各自的均方根半径做归一化,消除尺寸差异带来的干扰,然后用一种叫Sinkhorn算法的迭代方法求解一个熵正则化的最优传输问题,最终得到一个传输方案矩阵,矩阵里每个格子的数值代表"人体上第i个点的信息,有多少比例应该传给机器人上第p个点"。
论文里专门做了个对比实验,如果用最简单的"找最近邻点"的方法来做对应,那些处在肢体末端(比如手指尖、脚尖)的采样点,有42%会找不到合适的对应点,因为很多最近邻的点都被挤到了身体中心区域,边缘点没人要。换成最优传输方法后,这个比例降到了14%。
这是为什么呢?因为最优传输有个硬性约束条件,要求每一个人体采样点都必须把自己的信息分配出去,不能有点被晾在一边不管。这个约束逼着算法在肢体末端这些"偏远地区"也要安排好对应关系,而不是像最近邻方法那样,放任多数点挤在同一批"热门"目标点上。
打个比方,这就像给一个班的学生分配宿舍。如果规则是"每个学生自己去找最近的空床位",那肯定会有学生因为手脚慢、宿舍位置偏,最后没床位可分。但如果规则改成"每个学生必须都分到床位,床位资源也要刚好用完,整体调配下最小化大家的通勤距离",结果会公平很多,偏远宿舍也会被利用起来,不会被一直空着。如果不用这种带约束的分配方式,人体四肢末端的交互信息在传给机器人的过程中就会大量丢失,机器人做精细动作时手指、脚尖的贴合度会明显变差。
**约束逆向动力学:让机器人姿态和物体位置一起算**
有了交互目标之后,接下来是怎么把这些目标变成机器人真实的关节角度。
论文把这件事构建成一个逆向动力学问题,说白了,就是给定一堆目标(骨架姿态要像、交互要贴合),反过来求解机器人每个关节该转多少度,同时还要求解每个被操纵物体(比如箱子)的六维位姿。
这里有个关键设计:物体的位姿不是提前定好的输入,而是和机器人姿态一起作为自由变量来求解。
这个设计看起来简单,但分量很重。之前大多数方法,是把物体轨迹当成固定不变的输入,机器人去适配这条固定轨迹。而OTRETARGET把物体轨迹也变成了可以调整的变量,这意味着机器人和箱子可以"互相商量"着找一个双方都舒服的姿态组合。
论文里有个很直观的案例。демонстрация里,一个人把箱子举过头顶再放下。如果把箱子轨迹锁死不让它动,机器人为了够到那个固定高度,身体会扭曲变形,风格误差(衡量姿态自然程度的指标)从8.8度飙升到16.8度,脚也会被带离地面。但如果让箱子位姿也能微调,箱子平均移动12厘米,找到一个机器人够得着的高度,姿态误差马上降回9.8度,抓握成功率从71%提升到80%。
这组数字背后的意思是,固定物体轨迹这个看似"忠实于原始演示"的做法,实际上在很多情况下会逼着机器人做出变形、不自然的动作。给物体松绑,反而让整体动作更接近人类演示的精神,而不是字面上的每一个坐标点。
这个逆向动力学问题里还包含了碰撞避免约束,机器人和物体、地面之间不能穿模,机器人自身的手臂腿脚之间也不能打架,这些都变成硬性的不等式约束,求解器用的是一种叫SQP(序贯二次规划)的方法,在信赖域框架下迭代求解,每一步内部用ProxQP这个二次规划求解器算,整个流程在第一帧冷启动跑50次迭代,后续帧热启动只需6次。
**风格目标:不丢掉人类动作的"味道"**
光有交互目标还不够,如果只追求贴合接触点,机器人可能会做出姿态很怪异但"技术上贴合"的动作。所以论文还设计了一个风格追踪代价,用人体骨架姿态作为参考,约束机器人整体姿态不要偏离太远。
这里有个巧妙的处理:风格目标里的位置目标,不是直接从人体骨架缩放得到的,而是先确定机器人每个关节该朝哪个方向转(姿态目标),再用机器人自己真实的骨骼长度,通过正向动力学算出对应的位置目标。
为什么要绕这一圈?因为人体和机器人的骨骼比例差异极大,论文里提到各个肢体的长度比例从0.19到1.18不等,根本没有一个统一的缩放系数能同时适配所有肢体。如果直接按某个比例缩放人体骨架的位置坐标去匹配机器人,必然会在某些肢体上产生冲突变形。而用姿态驱动位置的方式,相当于先确定"手该往哪个方向伸",再用机器人自己的手臂长度去算"伸到哪里",这样就不会出现比例冲突的问题。
**跨物体泛化:一份演示,适配各种形状**
这篇论文还有一个挺有意思的延伸能力,就是把同一个最优传输框架,用在物体和物体之间的对应关系上。
具体做法是,预先计算演示里的箱子表面和替代物体(比如一个球、一个圆环)表面之间的点对应关系,各自归一化到局部坐标系,建立映射后,演示里箱子表面每个点记录的交互目标,就可以转移到替代物体对应的表面位置上,而这个交互目标的实际数值(距离、方向)保持原来的物理含义,不随几何形状变化而重新缩放。
实验里,研究者拿同一段"搬大箱子"的演示,换上了球、鼓、胶囊、橄榄球、环状物、立方体、木板、梁等八种从未在演示里出现过的物体形状,结果抓握的召回率和精确率基本维持在演示原物体水平附近,深度误差始终在3毫米以内。只有物体形变量(因为形状差异大,机器人需要调整抓握姿势而产生的轨迹偏移)会随着形状差异增大而增加,环状物和木板的偏移量大概是原箱子的两倍。
这组结果说明了一件事:只要表面几何结构存在某种相似性,这套方法能把一份演示的"手该怎么抓"这种抽象经验,迁移到完全没见过的物体上,而不需要为每种新物体重新录一遍演示。
**实验结果:数字说话**
论文在两个数据集上做了系统评测,一个是AMASS(纯人体运动,不涉及物体),一个是OMOMO(人和单个物体交互的动作数据集),总共6448段动作。
对比的基线方法包括OmniRetarget、GMR、PHC三个现有的重定向方法。
在地面交互方面,OTRETARGET在风格误差、地面深度误差、交互一致性上全面领先。具体数字上,在OMOMO数据集的机器人-物体交互评测里,OTRETARGET达到了87%的Jaccard一致性分数(衡量演示和重定向结果里"接触事件"重合程度的指标),深度误差只有8.7毫米,而OmniRetarget只有28%的一致性分数,深度误差29.3毫米,相差三倍以上。
Jaccard指数*:衡量两个集合重合程度的指标,取值在0到1之间,值越高代表两个集合越接近完全重合。这里用来衡量"演示里发生接触的时刻"和"重定向后机器人也发生接触的时刻"两个集合有多重合。
在物体尺寸泛化测试里,把一个扫描得到的箱子从原尺寸的0.7倍缩放到1.6倍,OTRETARGET的抓握召回率几乎保持不变,而OmniRetarget在非原始尺寸上召回率直接崩掉,尺寸是原来一半时召回率几乎掉到接近零。这说明OmniRetarget依赖的网格拉普拉斯方法,对物体几何的变化太敏感了,而OTRETARGET的表面距离场表示方式天生就对尺度变化更鲁棒。
速度方面,论文的未优化Python实现,在纯运动场景下平均每帧21.5毫秒,物体搬运场景下每帧63.8毫秒,比OmniRetarget快12到22倍(OmniRetarget在相同场景下分别需要470毫秒和749毫秒每帧)。虽然GMR更快(3.2毫秒和2.5毫秒),但GMR完全不建模环境交互,没法比。
下面这张表,整理了论文里最核心的几组对比数据:
| 数据集/场景 | 方法 | 风格误差(度) | 地面/物体深度误差(mm) | Jaccard一致性(%) |
|---|---|---|---|---|
| AMASS定位 | OTRETARGET | **6.3** | **1.2** | **99** |
| AMASS定位 | OmniRetarget | 25.5 | 3.3 | 93 |
| OMOMO地面 | OTRETARGET | **10.7** | **1.7** | **99** |
| OMOMO地面 | OmniRetarget | 27.8 | 2.7 | 96 |
| OMOMO物体交互 | OTRETARGET | — | **8.7** | **87** |
| OMOMO物体交互 | OmniRetarget | — | 29.3 | 28 |
**真机验证:从仿真到物理机器人**
最后一步,论文验证了这套重定向方法生成的参考轨迹,能不能真正训练出可用的机器人控制策略。
研究团队用强化学习(PPO算法)在仿真环境里,训练机器人跟踪OTRETARGET和OmniRetarget各自生成的参考动作。在纯运动任务上,两种参考训练出来的策略成功率差不多(98.8%对97.2%),但追踪精度差异明显:用OTRETARGET参考训练出的策略,平均关节位置误差(MPJPE)最终收敛到28.8毫米,而OmniRetarget训练出的策略是33.7毫米,差了大约5毫米,而且这个差距在整个训练过程中持续存在。更惊人的是,OTRETARGET的策略在训练到6000次迭代时,精度就达到了OmniRetarget训练满30000次迭代才能达到的水平,只用了五分之一的训练预算。
在物体操纵任务上,研究团队针对一个两手搬箱子放到桌上的场景,训练了一个强化学习策略,让机器人学会追踪箱子的运动轨迹同时完成抓握。这个策略最终以48%的成功率在仿真中完成任务,箱子落点和参考轨迹平均相差11厘米。这个策略随后被直接部署到真实的G1人形机器人上,没有重新训练,也没有额外的物体感知模块,在8次抓取放置试验里成功完成了6次。
这个结果虽然规模不大(单个机器人、单条演示轨迹的验证),但证明了一件重要的事:重定向阶段生成的参考质量,会直接影响到下游强化学习训练的效率和最终策略在真实世界的可迁移性。如果重定向这一步做得粗糙,哪怕后续用再强的强化学习算法去补偿,效果也会打折扣,这也是论文反复强调要在重定向阶段就把交互关系做对的原因。
写在后面
读完这篇论文,最触动我的不是那套最优传输的数学工具本身,而是它背后那个朴素到容易被忽略的观察:骨架点位置,从来就没能完整描述"接触"这件事。
这个观察挺反直觉的。过去十年人体动作捕捉和机器人学习领域,几乎所有流程的默认起点都是"提取骨架关键点序列",这几乎成了行业共识,没人去质疑它是不是漏掉了什么。这篇论文相当于从"接触"这个具体的物理现象倒推回去,发现骨架表示在设计之初就先天残缺,少了表面级的方向和距离信息。
还有一个细节值得单独说一下。论文里提到OmniRetarget在处理一个细长的台灯灯杆时,交互完全丢失了,召回率是0%。而换成OTRETARGET,结果几乎没受影响。这背后的原因是,OmniRetarget依赖的插值网格方法,本质上还是建立在稀疏采样的网格顶点上,细长物体的网格顶点数量本来就少,表示能力天然不足。而OTRETARGET用的密集表面采样加上距离场插值,对这种细长、小体积的抓握对象反而更稳健。这提醒我一件事:很多看似"更简洁、更优雅"的表示方法,在遇到极端几何形状时,稀疏性反而会变成致命弱点。
论文自己也坦白承认了局限,整个方法目前只在一个机器人、一个平坦地面场景、一份双物体演示上验证过,而且是逐帧的纯运动学方法,没有真正建模力和动力学约束,也没有在时间维度上做整体优化。这意味着,如果场景换成不平坦的地形,或者物体很重需要考虑动力学可行性,这套方法目前还接不住。
这让我想到一个更大的问题:运动学层面的"贴合"和动力学层面的"可行",终究是两件事。机器人的手贴在箱子表面的位置再精确,如果箱子太重,机器人的关节力矩跟不上,这个动作在物理世界里照样做不出来。这篇论文解决的是前一半的问题,后一半,可能要等后续工作去补上了。
Q&A
Q1:OTRETARGET和OmniRetarget相比核心区别是什么?
A:OTRETARGET把表面接触信息(带符号距离、最近点、方向)用最优传输建立跨实体对应关系,并把物体位姿也作为自由变量联合求解,不需要缩放整个场景;OmniRetarget依赖骨骼网格的拉普拉斯变形,且按身高比例整体缩放场景,容易导致接触点和地面桌面错位。
Q2:OTRETARGET能处理没见过的新物体形状吗?
A:能。论文通过物体和物体之间的最优传输映射,把演示里箱子表面记录的交互目标迁移到球、圆环、木板等八种全新形状上,抓握召回率和精度基本保持不变,深度误差始终在3毫米以内,只是轨迹会有一定调整幅度。
Q3:这套方法训练出的机器人策略真的能在实体机器人上用吗?
A:论文在真实G1人形机器人上做了验证,用强化学习策略完成两手搬箱子放桌子任务,8次试验成功6次,没有重新训练或额外物体感知,但论文也说明这只是单机器人单演示的验证,还不是大规模硬件研究。
好文章,需要你的鼓励
GeoVerse融合几何潜在扩散模型与Wan2.2视频生成先验,并引入全局空间记忆机制,实现了跨视角一致、生成质量高且推理速度快的新视角合成,在多个数据集上大幅超越现有方法GLD。
本文解读TT-VidT,一种通过分离外观锚点与动作令牌、结合Diff Compression训练目标的视频自监督方法。在24种架构目标组合的受控实验中,仅TT3D与Diff Compression搭配才能进入强动作敏感区,且计算量比同类方法降低近一半。
Q&A Q1:Imprint Reader是什么? A:Imprint Reader是上海人工智能实验室团队开发的模型,通过SMaRT训练方法学会读取另一个模型冻结的权重更新,把参数层面的变化翻译成自然语言描述,判断这次更新到底注入了什么知识或诱导了什么行为习惯。 Q2:MetaEdit能做什么? A:MetaEdit能把Reader对目标行为的梯度信号迁移到原始模型上,不需要任何目标任务的训练数据,只用一句行为描述就能定向调整模型参数,已经在安全性拒绝率调节、数学推理风格转变和工具调用能力提升上验证过效果。 Q3:Imprint Reader读权重更新的准确率高吗? A:目前还不高,知识类目标的Pass@100只有2%,行为类目标是16%,说明自由生成描述的可靠性有限,但相比原始模型完全答不出来的0%基线,已经证明了权重更新的自然语言读取是可行的。
统一多模态模型能看也能画,理论上该会自我修正。本论文提出UMM-Reflection,用整条轨迹的强化学习联合训练诊断和修图能力,GenEval提升12分,且迁移到多个未训练基准,揭示RL提升的是选择可靠性而非新能力。