它不是学会跳舞,而是学会"接住":伯克利让 Unitree G1 看着人就把击掌、拥抱、挽手接上,308 毫秒
人形机器人的动作模型,过去两年大多在解决一件事:让机器人把一套动作自己跳完。音乐一响,从第一拍到最后一拍,动作是预先定好的。但真实场景里,动作从来不是独舞——是两个人互相迁就出来的。
伯克利、索尼和 Meta 的联合团队 11 月 5 日挂上 arXiv 的 Social Humanoid,把问题换了个问法:如果对面站着一个活人,机器人能不能看着他的动作,实时生成自己的那半边?论文已被 CoRL 2026 接收。它不生成舞蹈,但生成的是所有编舞工作的底层能力——两个人之间的动作如何互相咬合。
3分钟看懂
- 谁做的:UC Berkeley、索尼、Meta 联合团队(Vongani H. Maluleke、James Ni、Kie Horiuchi、Lea Wilken、Jiahui Lei、Evonne Ng、Roei Herzig、Jitendra Malik、Trevor Darrell、Angjoo Kanazawa),arXiv 编号 2611.08407,11 月 5 日提交,目前只有 v1,CoRL 2026。
- 做了什么:一套分层系统。高层策略把人和机器人的动作塞进同一个离散码本(共享码本 VQ-VAE,512 个码),再用 Diffusion Forcing Transformer 自回归地生成机器人的反应动作;低层用 NVIDIA SONIC 全身跟踪控制器在 29 自由度的 Unitree G1 上执行。
- 关键能力:人是被遮挡的、输入是断断续续的,模型还能预测人下一步要做什么,并提前把自己的动作接上去。相机帧到机器人指令的中位延迟 308 毫秒,控制在 50 Hz。
- 数据:把五套人-人动捕数据集(CHI3D、Hi4D、Harmony4D、Inter-X、Embody3D)通过两阶段自适应重定向搬到 G1 身上,凑出 260 小时的 Human-Humanoid Interaction 基准。
- 成绩:真机上 6 个场景、每场景 30 次试验、4 位参与者——握手、挥手、拥抱、弯腰、挽手都是 100%,击掌 90%。重定向的姿态误差 3.893 cm,低于 OmniRetarget 的 4.184 和 PHC 的 6.179。
- 能不能用:现在不能。项目页上 Code 和 Data 都写着 "Soon",论文也只到真机演示这个程度。而且它明确不管手指、不管表情、不管物体。
先说清楚:为什么"两个人一起动"比"一个人跳舞"难
单人动作生成这两年进步很快,但把它搬到物理机器人身上,会同时撞上三堵墙。论文自己把这三堵墙命名为三个 gap,这个框架比结论更值得记。
第一堵是数据 gap。 人-人交互的动捕数据其实不少,但没有任何数据集拍过人-机器人交互。最直觉的解法是把两个人的动作各自重定向到机器人身上——但这样一来,两个人之间的接触点、伸手够得着的距离、谁在谁前面,全被破坏了。你得到两段"看起来像人"的机器人动作,但它们不再是一段互动。
第二堵是表征 gap。 人的骨骼比例和 G1 的 29 个关节不是一回事。如果模型分别学人、学机器人,它就要花容量去学"两个身体差在哪",而不是学"这段互动本身长什么样"。
第三堵是生成 gap。 一个自然的想法是:先用成熟的人体动作模型生成两个人的互动,再优化重定向到机器人。但优化式重定向是为干净的离线数据设计的,线上相机给的人体姿态带噪声、会断帧、会被遮挡,优化器在这种输入上很不稳。
Social Humanoid 的三个贡献,正好一堵墙一个:造数据的两阶段重定向、跨身体共享的动作词表、前馈式生成。
方法:先把数据"搬"过去,再把两个身体塞进同一本词典
第一步:两阶段自适应重定向
普通重定向只处理一个身体。这里的难点是两个人都得动。
论文的做法分两遍:第一遍把其中一个人(ego)重定向到 G1 的骨骼上,手腕和脚的关键点权重被特意放大(腕 ×4、脚 ×0.1,因为接触主要发生在手腕);第二遍把另一个人(partner)的身体"变形"——按机器人和真人的身高比例缩放、调整关节朝向,目的是保住接触位置、可达范围和两人之间的相对尺度。
这一步的直觉是:不要问"这个人怎么塞进机器人",要问"这两个人之间的几何关系怎么才能不变形地留下来"。
效果在 Table 3 上很直白(三个数据集的最好成绩都是这一行):
| 数据集 | 方法 | 姿态误差 MPJPE ↓ | 脚打滑 ↓ | 腕部接触误差 ↓ | 下游策略成功率 ↑ |
|---|---|---|---|---|---|
| CHI3D | PHC | 6.179 cm | 0.107 | 22.382 cm | 68% |
| CHI3D | OmniRetarget | 4.184 cm | 0.009 | 1.379 cm | 100% |
| CHI3D | 本方法 | 3.893 cm | 0.003 | 0.501 cm | 100% |
| Harmony4D | PHC | 7.656 cm | 0.291 | 23.365 cm | 62% |
| Harmony4D | OmniRetarget | 5.220 cm | 0.033 | 2.981 cm | 81% |
| Harmony4D | 本方法 | 4.638 cm | 0.020 | 1.909 cm | 97% |
腕部接触误差这一列最能说明问题。PHC 在 20 厘米量级——那不是"手差一点",那是手根本没碰到。这类误差在单人动作里看不出来,但在击掌、握手、挽手这种任务里是致命的。
第二步:一本 512 个词的共用词典
拿到数据之后,核心设计只有一个:让人和机器人共用同一套离散动作词表。
具体是共享码本 VQ-VAE:人的动作和机器人的动作各自过编码器,压到同一个 512 维隐空间,然后对着同一个 512 条目的码本做量化(EMA 更新)。压缩率 ω=4。解码时用各自的身体专属解码器还原。
为什么这件事重要?因为一旦两边落到同一批码上,"人做了第 137 号动作"和"机器人做了第 137 号动作"在模型眼里就是同一件事。跨身体翻译变成了查表:把人的动作编码、量化、再用机器人解码器解出来,一次前馈就完事,不需要跑优化式重定向。
论文专门做了一个消融,验证共享是不是真的关键(Table 2,在 HHI-Chi3D 上):
| 变体 | FD ↓ | 穿模 IP ↓ | 互动一致性 MI ↓ | 位置误差 W-MPJPE ↓ |
|---|---|---|---|---|
| 去掉 VQ-VAE(连续隐空间) | 0.253 | 0.027 | 0.018 | 0.075 |
| 各自独立码本、不加对齐 | 0.181 | 0.088 | 0.212 | 0.085 |
| 共享码本(本方法) | 0.072 | 0.026 | 0.019 | 0.057 |
中间那行是全文最有信息量的数字:只是把码本分开,互动一致性 MI 就从 0.019 崩到 0.212(越低越好),穿模从 0.026 涨到 0.088。也就是说,两本词典各说各话的时候,模型能生成"两个都挺像样的动作",但它们不是一段互动——各自很自然,合起来各干各的。
第三步:用 Diffusion Forcing Transformer 边看边生成
高层策略是一个 Diffusion Forcing Transformer(DFoT),在这套共享词表上自回归地生成机器人的动作,30 步 DDIM 采样。
选 DFoT 而不是普通扩散,是因为它的输入容忍度更高:真实相机给的人体姿态有噪声、有断帧、有遮挡,DFoT 的逐步去噪结构天然能吃这种"不完美的历史"。论文特别强调的一点是:当人被挡住时,模型会去预测人接下来要做什么,再决定自己怎么接——这正是"社交性"在动作层面的定义。
执行侧交给 NVIDIA SONIC 全身跟踪控制器,50 Hz 跑。生成和执行是异步的,所以从相机看到一帧,到机器人真的动起来,中位延迟 308 毫秒。
260 小时是怎么凑出来的(以及它有多偏)
这是我觉得最该被单独拎出来看的一段,因为它决定了这套系统"会什么"。
| 源数据集 | 片段数 | 总帧数 | 重定向后时长 |
|---|---|---|---|
| CHI3D | 245 | 25,588 | 0.24 小时 |
| Hi4D | 200 | 23,890 | 0.22 小时 |
| Harmony4D | 416 | 153,160 | 1.42 小时 |
| Inter-X | 22,776 | 4,049,990 | 37.50 小时 |
| Embody3D | 14,692 | 23,864,668 | 220.97 小时 |
"260 小时"这个数字听起来很大,但拆开看,其中 221 小时来自 Embody3D 一个数据集,另外四套加起来不到 40 小时。而真正精细的近距离接触——握手、击掌、拥抱——主要来自 CHI3D 和 Hi4D,这两套加起来不到半小时。
这个结构解释了后面所有能力边界:模型在"大场景里多人各自活动"这种数据上吃得最饱,在"两个人贴身接触"上其实只见过很少的样本。所以它能在 6 个场景上做到 90~100%,但作者自己在 Limitations 里写得很清楚:这衡量的是"动作能不能被执行",不是"社交反应对不对"。
成绩单:动作像不像是一回事,接不接得上是另一回事
Table 1 是高层策略在 HHI 数据上的对比(越低越好):
| 方法 | FD ↓ | FS ↓ | 穿模 IP ↓ | 互动 MI ↓ | 速度一致性 MPJVE ↓ | 位置误差 W-MPJPE ↓ |
|---|---|---|---|---|---|---|
| 最近邻 NN | 0.053 | 0.138 | 0.057 | 0.056 | 0.014 | 1.099 |
| 随机采样 RS | 0.180 | 0.134 | 0.058 | 0.056 | 0.015 | 1.100 |
| R2R | 0.504 | 0.921 | 0.088 | 0.088 | 0.019 | 0.545 |
| 本方法 | 0.118 | 0.876 | 0.051 | 0.002 | 0.007 | 0.128 |
读这张表要注意两件事。
第一,它没有全赢。FD 和 FS 两列,最近邻基线都比它好。这很正常——最近邻是直接把训练集里的真实片段搬出来,分布上当然更"真"。但最近邻的位置误差是 1.099,是它的 8.6 倍,也就是说动作分布很像,但根本不是对这个人的反应。
第二,互动一致性 MI 是 0.002,比第二名低一个数量级。这个指标衡量的是"两个人的动作在时间上咬合得有多紧"。0.002 意味着生成的机器人动作几乎完全由对方动作决定,而不是自己随机发挥。这正是"回应"和"表演"的区别。
真机验证(Table 4,每场景 30 次、4 位参与者):
- 握手 100%/100%、挥手 100%/100%、拥抱 100%/100%、弯腰 100%/100%、挽手 100%/100%
- 击掌 90%/90%(仿真 90、真机 90,两边一致)
真机和仿真成功率完全对上,这一点比成功率本身更值得注意——说明低层跟踪控制器没有在真机上掉链子。
附带一个对编舞更有用的能力:影子遥操作
论文第 5.2 节藏了一个实用价值很高的副产品。
因为人和机器人共用同一套码本,你可以把操作者的动作编码、量化、再用机器人解码器解出来——机器人就实时跟着人动。整个过程不需要以机器人动作为输入,也不需要跑任何优化式重定向,就是一次前馈。
对做编舞和动捕的人来说,这件事的意义是:"让舞者跳一遍,机器人跟着跳"这条路,第一次不需要重定向这一步了。传统流程里,人的动作要经过 IK、约束求解、脚部贴地、关节限位一连串处理才能上机器人,每一步都会掉精度;这里是把人直接编码进共享词表,词表里存的本来就是"这个动作在机器人身上长什么样"。
当然,前提还是那句话:现在没有代码,没有数据。
不适用 / 别踩的坑
这部分直接来自论文的 Limitations 和我的判断,混着写:
- 不管手指。 没有手部关节建模。所有精细操作、手势语言、乐器演奏这类,全在能力之外。论文说扩展码本到手部是"自然的下一步"——也就是还没做。
- 不管表情和眼神。 作者自己写:缺少面部表情和眼神交流,让机器人的行为"难以解读",导致社交互动变得尴尬。所以这套系统解决的是身体层面的协调,不是"读懂人"。
- 不管物体。 没有物体姿态建模,所以"递东西""一起搬""接过杯子"这类全做不了。
- 不管力。 只跟踪运动学轨迹,不建模互动中的受力、人的舒适度、贴身接触的安全约束。真要进家庭环境,还得额外一层安全策略。
- 只在双人场景验证过。 多人、多机器人、异构智能体都是 future work。
- "成功"的定义很窄。 试验成功 = 机器人做出了相应反应、没摔倒、没人工干预。这不等于"这个反应是合适的、及时的、让人舒服的"。作者明确说需要一次 HRI(人机交互)研究才能回答。
- 依赖外部模块的失败模式。 人体姿态估计用的是现成的 Fast SAM 3D Body,跟踪用的是 SONIC,两者的错都会被继承。
- 别当产品看。 arXiv 记录是研究论文,不是产品公告;项目页 Code 和 Data 都标 "Soon",没有时间表。
成本与时间
- 跑推理(将来有代码之后):一张 RGB-D 相机 + 一台 G1。308 毫秒的端到端延迟意味着它只能做"慢半拍"的社交反应,不能做快速对打类互动。50 Hz 的控制频率是够的,瓶颈在感知和生成。
- 复现成本:数据侧是五套公开动捕数据集重定向,这步不需要自己拍;但训练需要 G1 硬件做真机验证,仿真侧还需要 SONIC 控制器。个人研究者能复现到仿真,真机部分门槛很高。
- 时间预估:按这类论文的惯例,代码放出通常在会议前后,CoRL 2026 已接收,所以"几周到几个月"是合理预期,但没有任何承诺。
行动建议
- 今天就能做:如果你在做双人或多人的动作生成,先检查一件事——你的模型是一个模型学两个身体,还是两个模型各学一个。这篇的消融显示,分开学的时候单看都还行,合起来 MI 会差一个数量级。这个诊断不需要训练新模型,读自己的损失函数就能看出来。
- 这周可以做:把"接触点误差"加进你的评估指标。多数动作生成论文只报 MPJPE 和 FID,但 Table 3 里真正拉开差距的是腕部接触误差(0.501 cm vs 1.379 cm vs 22.382 cm)。编舞场景里,"手有没有真的碰到"比"姿态平均差几厘米"重要得多。
- 如果你做动捕/虚拟制作:盯"影子遥操作"这个方向。人编码→共享词表→机器解码,跳过重定向,这条链路对实时预览很有吸引力,而且它不依赖这套系统本身——思路可以直接搬。
- 别做的事:别拿它当"机器人会跳舞"的证据。它做的是反应,不是编排。想让它跳一支完整的舞,那是另一个问题(站内之前写过的 FFMT、Möbius、浙大+宇树那条线才是)。
- 要盯的信号:Code / Data 是否真的放出,以及放出的版本带不带 Embody3D 那 221 小时。如果只放 CHI3D + Hi4D 的重定向结果,那实际可用规模会小很多。
参考来源
- arXiv 摘要页(一手):https://arxiv.org/abs/2611.08407
- arXiv 全文 HTML(一手,含 Table 1/2/3/4、Table A.1、Limitations):https://arxiv.org/html/2611.08407v1
- 官方项目页(CoRL 2026,Code/Data 标 Soon):https://von31.github.io/social-humanoid/
- 第三方转述(RoboActu,11-07):https://www.roboactu.fr/social-humanoid-unitree-g1-interactions-humaines/
- 第三方转述(ShinyMetal,11-07):https://shinymetal.bot/news/social-humanoid-unitree-g1-research
说明:本文技术细节与全部数字均取自论文原文与官方项目页;论文发布时间与"真机可执行"这一核心结论,另由上述多家媒体转述交叉印证,属基于多家媒体转述整理的部分。