阅读时间大约10分钟以上(6829字)
作者:Marilyn 出品:具身纪元
最近翻论文,软硬件协同设计(Co-design)这个词的出现频率明显变高,王小龙老师组和舒然老师组几乎前后脚放出了相关工作。也勾起了我的兴趣。
先讲讲为什么这个事情一直都重要?
我们可以举一个现实的例子,比如要设计一个可以抓取洗衣房衣物的末端夹爪。
洗衣房这个场景看起来简单,但要处理不同大小的衣物干湿衣物,对末端设计要求不低。
产品经理先针对要完成任务翻译成一串指标,比如夹持力,负载,是否要防水防碰撞。硬件团队承接需求,设计具体的末端的硬件技术方案。
等本体大致定型,控制和算法团队才开始调试控制策略和模型。但总归会遇到一些corner case,比如光滑得卡在洗衣机桶口的羽绒服,贴在桶壁上可抓取点位很小的袜子。
归因往往很困难,是末端设计不够合理?不够防滑?还是算法应该多做几次尝试或者设计一些动作改变衣物的形态。
团队通常只能把结果带回会议室,讨论,“分锅”,再改动硬件。
样机如果主要是 3D 打印件,一轮修改也许几天就够;换成机加工迭代周期立刻按月算。
这么痛的点,迎来了一些新变化。
小龙和舒然组的文章让我有了新思路。结论先行: 数据可能是一个要改变当下节点的新变量。
Co-design 的三个基本环节
先拆接一下软硬件协同设计。
软硬件 Co-design 的流程,通常由生成器、控制器和评价器三个模块闭环运转。
生成器负责提出本体设计。输入是任务要求,输出则是拓扑、连杆、关节、电机、材料这些设计变量。
控制器负责让设计出的本体完成任务。它的形态可以是一段关节轨迹,也可以是逆运动学、优化控制或者一套学出来的策略。
评价器负责把执行结果变成可以比较的反馈。反馈可以来自真机,也可以来自物理仿真、解析运动学或者可微模型和学习式动力学。衡量的指标通常是成功率、跟踪误差、能耗、碰撞次数和制造成本。
一轮 Co-design 就是三个流程的流转,生成器提出候选,控制器让候选把任务做完,评价器给出反馈。

图 1|三个“器”的关系。生成器提出身体,控制器执行任务,评价器把结果变成反馈。
三个环节:变化与瓶颈
生成器的第一步,是从人工画图走向受规则约束的搜索。
机器人本体的组合空间非常大,如果让计算机随意拼接电机、连杆和关节,组合数量会迅速膨胀,而且大量结果导向的可能是构型不合理的机器人设计,例如分支末端没有执行器,有的两根连杆互不连接。
所以一些工作的做法是由人写出来的语法、模块和边界来限制搜索空间。
MIT RoboGrammar 的做法是先给机器人写一套“语法”。规则规定某类节点可以替换成连杆、关节或者分支,生成器只能沿着合法规则一步步把机器人装配出来。
这有点像语法约束句子,算法仍然能探索大量组合,却不会把完全不合规的零件序列当成候选。RoboGrammar 的贡献,是把工程师心里“什么结构可以成立”的那份先验,变成生成器能直接执行的规则。
Evolution Gym 用体素和材料分布构造软体机器人,走的是相似方向,先定义可组合的设计单元,再让生成器在合法空间里产生身体。

RoboGrammar 图 1(论文原图)
随着搜索空间继续扩大,另一条路线开始出现。研究者不再只靠人工规则限制设计,而是尝试从过去的数据里学习“什么样的身体通常更值得尝试”。学习式生成把过去的任务、结构和运动经验压进模型。新任务来了先提出有希望的候选设计,再用奖励或者梯度做局部精修。后面要讲的两篇论文,都会沿着这个方向走。

控制器的核心问题,是如何减少随生成器变化的代价。
本体一变,控制问题通常会跟着变。传统 Co-design 经常形成内外两层逻辑。外层负责改变机器人本体,比如选三指还是四指,改臂长或者挪关节位置;内层为对应的本体重新求一条轨迹或者训练一套策略。
假设外层每轮产生 100 种候选设计,而每种设计的控制器训练成本约为 C,那么仅完成一轮评估就可能需要约 100C 的计算开销。随着候选数量和设计维度增加,内层训练很快就会成为整个 Co-design 的主要计算瓶颈。
更棘手的是,候选设计的最终得分同时取决于身体形态和控制器的训练质量:一种原本很有潜力的形态,可能只是因为控制策略尚未充分收敛而被低估,甚至提前淘汰。
不同机器人在过去又难以充分共享训练经验,被淘汰设计所产生的大量仿真数据也随之浪费。当设计参数越来越多时,依靠随机变异寻找优秀形态便越来越像大海捞针,搜索效率会迅速下降。

图 2|传统 Co-design 的内外两层。外层改变身体,内层重新求控制,评价完成后才进入下一轮。
康奈尔Transform2Act 做的是让生成器和控制器联合优化,把机器人设计和控制放进了同一个训练流程。每轮开始时,设计模块先修改机器人的关节结构、腿长和电机力量;设计确定后,控制模块再驱动机器人完成任务。任务结束时得到的成绩不仅用于改进控制方法,也会反过来告诉设计模块,刚才的身体改得好不好。因此,设计和控制虽然不是同时发生,却能围绕同一个任务目标一起学习。

Transform2Act 图 1(论文原图)
另一条路线是让控制经验在不同机器人形态之间复用,避免为每种身体从头训练控制器。MetaMorph把机器人的形态当作 Transformer 控制器的条件,一套策略就能控制训练里见过的多种身体。House of Dextra 把灵巧手表示成手掌和手指模块组成的图,在同一个运动学家族内训练形态条件控制器,再用图神经网络价值模型预测候选设计的潜力,用于排序候选方案;入选的完整设计再交给预训练策略进行仿真评估。
这类工作共同目标都是确保在身体不断变化的同时,控制经验最好不要从零开始。

评价器的作用,不只是判断一个设计好不好,还决定算法能否知道下一步应该怎么改。
最直接的办法当然是真机测试:把候选机器人制造出来,让它实际完成任务,再测量成功率、速度或者能耗。但每评估一个新设计,都可能涉及加工、装配和测试,很难支撑大规模搜索。
物理仿真把这一步搬到了计算机中,降低评估成本。但普通仿真通常不直接告诉优化器“连杆应该加长多少”或“关节位置应该向哪个方向移动”。为了找到更好的设计,优化器需要不断修改参数并重新仿真。
可微方法把这层反馈补出来了。它不仅计算任务损失,还能计算损失相对于机器人尺寸、质量、关节位置和控制输入的梯度。梯度说明参数朝哪个方向变化可能降低损失,因此优化器不必完全依靠随机试错。Functional Co-Optimization 将机器人尺寸、质量、运动状态、控制输入和接触力放进同一个轨迹优化问题中联合求解;DiffHand 则构建了可处理接触的可微刚体仿真器,能够对运动学和动力学设计参数计算解析梯度。
学习式模型进一步降低了初步评价的成本。其中,学习式动力学模型预测不同形态在动作作用下如何运动,可以用虚拟轨迹替代一部分环境交互;价值模型则跳过完整运动过程,直接根据机器人结构预测其任务表现。Data-efficient Co-Adaptation、RoboGrammar 和 House of Dextra 分别利用已有经验、图搜索启发函数或设计价值网络,把评估预算优先分配给更有潜力的形态。但这些预测主要用于筛选和排序,入选设计仍需经过高保真仿真或真机验证。

DiffHand 图 1(论文原图)

规则生成缩小了合法设计空间,跨本体控制器减少了重复训练,可微模型和学习式代理则让评价更便宜、更有方向。三个环节都在尝试解决同一个问题:身体每变化一次,怎样避免整套控制与评价从头再来。
接下来两篇工作的变化更进一步。数据开始直接进入“身体应该怎样生成”这件事本身。一篇把人类动作当作硬件设计需要覆盖的目标,另一篇把大量跨本体运行经验压进生成与动力学模型。
Generating Robot Hands:用人类动作约束硬件生成
Generating Robot Hands from Human Demonstrations由 UC San Diego和 Amazon Frontier AI & Robotics合作,是小龙老师的新作品。
论文的问题意识是:之前的流程是先有一副固定的灵巧手,再想办法把人的动作重定向过去。但如果末端设计天然有缺陷,再复杂的控制也很难弥补这段结构差距。于是团队反过来思考,给定人类拇指和食指的运动轨迹,能不能不再问“这副手怎么模仿人”,而去问“什么样的手本身就更适合这些动作”?

论文用了 OakInk 里 627 段人类操作序列,超过 400 万帧数据,把腕部坐标系下拇指和食指的三维指尖轨迹当成设计条件。
生成器不必在所有可能动作和所有可能结构上同时探索,只要针对真实人类操作里出现过的那部分运动分布去找合适的身体。
人类数据在这里首先不是控制器的训练材料,而是硬件设计需要覆盖的目标分布。
系统把机器人手写成连杆长度、关节方向等硬件参数,同时为候选结构求一段关节轨迹。可微前向运动学根据身体结构和关节运动计算双指的实际轨迹,再与人类目标轨迹比较。误差沿计算链反向传播,同时修改关节轨迹、连杆长度和关节方向。
当然,在让损失最小化的过程中,为了避免优化出“轨迹能跟上、结构却没法用”的手,还加入了轨迹平滑、设计正则、自碰撞和关节限制等约束。
有意思的是,同一套方法最后导向了两种不同的设计哲学。
通用6自由度手把整套人类动作数据都作为目标,寻找一副尽可能覆盖广泛双指运动的结构。任务定制型3自由度手只服务某一类轨迹,不追求什么都会,而是尽可能少用电机,把稳定的协调关系直接固化进机械结构。后者用到了 Bennett 空间四杆 mimic 关节。

论文图 2|Generating Robot Hands 的轨迹条件生成流程
既然可微优化已经能设计手,为什么论文还需要 actor?
对全驱动手,这套可微优化可以直接运行;但到了带机械耦合的低自由度手,事情变难了。Bennett 机构改变了整个可达空间,优化问题高度非凸,同一个目标从不同随机初值出发,最后可能掉进完全不同的局部解。作者因此额外训练了一个轨迹条件 actor。它并不直接输出最终机器人手,而是看完目标轨迹后,先提出一批更有希望的硬件和关节轨迹初值,再交给后面的可微优化精修。
训练时,每个候选初值都先跑一小段真实的可微优化,再根据最终跟踪和机构约束打分;表现最好的那个初始值反过来监督 actor。于是 actor 学到的是“这种动作从哪里开始搜更容易找到答案”。
这一步主要解决搜索效率。由 actor 提出初值、再进行可微精修的完整生成流程,约 30 分钟就能得到高质量设计;纯 CEM 搜索运行约 5 小时,仍未达到相当水平。

论文图 7|生成效率:30 分钟 vs. 5 小时
这篇论文还有一个刻意的取舍,控制和评价都没有做复杂。 设计阶段联合优化出来的关节轨迹并不是部署时要照抄的动作脚本,它只是用来检验这副结构是否存在可行运动;硬件真正造出来以后,作者仍然用简单的逆运动学实时控制。
评价器也没有额外训练 reward model。它主要判断双指位置轨迹能否被候选结构复现,再用碰撞、关节限制等约束排除明显不可行的设计。论文选择了一条很克制的路线:保持部署控制器简单,把更多任务适配能力交给本体结构。
当身体开始适配动作,结果会怎样?
实验首先验证,根据人类动作反向设计出来的手,确实更适合这批运动。 作者生成的 6 自由度通用手,在整套人类动作数据上的总体指尖误差只有 0.24 毫米,1 毫米误差内的覆盖率达到拇指 95.38%、食指 98.19%。对比来看,同为 6 自由度的 XHand 总体误差是 7.40 毫米。更值得注意的是,作者生成的 5 自由度手误差仍有 2.84 毫米,到了 6 自由度骤降到 0.24 毫米,这个跳跃非常像是,身体一旦跨过某个结构门槛,原本够不到的一大片运动空间突然被打开了。

论文表1|3→4→5→6 DoF 的误差变化
低自由度实验则说明,有些控制复杂度可以直接写进机械结构。 插钥匙轨迹上,普通 3 自由度全驱动结构的误差是 2.93 毫米,mimic 设计降到 1.10 毫米;在“一根手指画圆、另一根画方”的轨迹上,误差更是从 5.43 毫米降到 0.66 毫米。当然 mimic 并不是所有任务都更好,比如较接近平面圆周运动的拧盖子任务,两种结构表现接近。也就是说,机械耦合的价值取决于目标动作本身有没有稳定的几何规律。

论文图6|拧盖子、插钥匙、circle-square 三种目标轨迹和对应生成的 mimic 手并排展示
最后作者把优化结果真正做成了硬件。生成的 6 自由度手可以实时跟随人类双指遥操作、夹起并移动薄餐巾,也可以执行“一指画圆、一指画方”的编程轨迹。这个实验至少说明,前面的优化结果已经能够继续走到制造—装配—IK 控制—真机执行这一整条链路里了。

论文图 5|生成的 6-DoF 通用灵巧手:实时遥操作、薄餐巾抓取与双指几何轨迹。
当然,这里的“灵巧”仍然主要指双指运动学覆盖。论文没有直接解决接触力、摩擦、完整手掌几何和柔顺材料问题,设计空间也限定在双指树形结构和 Bennett 四杆机构里。位置轨迹跟得准,还不能等同于复杂抓取一定成功。
Generating Robot Hands 给出了一个边界清楚的答案。研究者先规定双指手的机构家族,再用可微运动学寻找最适合目标动作的参数。人类数据开始塑造硬件,但搜索语言、结构边界和评价方式仍然高度任务定制。
如果希望把这件事从“一类灵巧手”扩展到机械臂、四足、移动双臂甚至更多机器人本体,就会碰到另一个问题:不同机器人连表示方式都不一样,生成、控制和评价又各用一套模型,怎么才能把这些经验真正放到一起?
这正是 Transformer Transformer 接下去要解决的问题。
Transformer Transformer:让三种角色使用一种机器人语言
Transformer Transformer 由 Huy Ha、Karen Liu 和 Shuran Song 共同完成,作者来自 Stanford University 与 Columbia University。
标题是一个双关,第一个 Transformer 说的是会改变身体的机器人,第二个才是模型架构。
论文的问题来自 UMI一类与最终部署本体相对解耦的采集方式。人类使用便携装置记录目标末端轨迹,采集时不必先确定最终由哪一种机器人执行。
虽然轨迹本身与本体无关,执行效果却高度依赖本体,同一条动作换到不同机械臂上,可达性、奇异位形、关节速度和跟踪误差全都不一样。过去这件事常被归为策略迁移不稳定,论文把它改写成了一个设计问题。能不能让目标运动反过来决定什么样的机器人更适合执行它?
此前的生成器之所以很难继续放大,一个重要瓶颈正是机器人表示。
生成模型需要见到大量不同的机器人,而传统 MJCF 这类格式最初是为人类编辑和仿真器加载设计的。同一套几何关系可能有多种坐标写法。一个零件的位置可以一部分写在父节点上,另一部分写在子节点上;只要最终组合结果相同,落到 Transformer 眼里,两个实际相同的机器人会呈现成差异很大的 token 序列,模型只好去学一批并不增加任何物理信息的等价写法。
RoboToken 就是为此提出的。
机器人被表示成五类本体 token:连杆、固定关节、滑动或转动关节、球关节和电机;状态与动作则写成连续 token。连杆编号、关节编号和时间步编号保存拓扑与时间关系,统一的坐标变换约定在预处理阶段折叠冗余变换、重新计算惯量,让“机器人长什么样”和“它怎样运动”能够进入同一个连续表示空间。

时间不变的 embodiment tokens,描述“机器人长什么样”; 随时间变化的 dynamics tokens,描述“机器人现在怎么动”
这种表示并不只是把 MJCF 换成更短的文本,它改掉了三个模块交换信息的方式。生成器可以直接生成连杆、关节和电机 token,动力学模型可以在同一条序列上预测后续状态,控制器则可以根据本体、当前状态和目标补全动作。在 MuJoCo Menagerie 的 11 种机器人上,RoboToken 用 28 到 101 个 token 描述本体,比对应的 MJCF 文本紧凑 27 到 110 倍。
有了统一表示,论文采用扩散 Transformer(DiT)作为核心网络。通过改变训练时被遮住的 token 和提供的条件,同一种架构可以承担多种角色:
给出目标运动、遮住本体和未来运动,它就是生成器,从噪声里逐步恢复连杆、关节、电机、惯性以及相应的动力学 token。
给出本体、当前状态和目标、遮住动作,它就是控制器,预测专家动作。
让它去补全状态和动作序列,它又变成学习式动力学,为评价器提供候选身体可能走出的轨迹。

论文图 4|Transformer Transformer 的统一架构:本体、状态与动作都写成 RoboToken,同一 DiT 在不同条件下承担生成与跨本体控制。
支撑这套做法的是大规模跨本体数据。
在任务先验方面,数据包含利用 UMI 夹爪(基于 ARKit 空间追踪)自采的 76 条单臂日常操作轨迹(其中 56 条用于训练,20 条用于验证),涵盖投掷、拧螺丝、开抽屉和擦洗等技能,以及开源的 UMI 双臂洗碗演示轨迹;
在仿真数据方面,团队利用程序化设计空间生成大量本体,再由控制器产生状态和动作轨迹。38 万种 ViperX 构型、380 万段回合和约 20 亿个时间步都来自 MuJoCo 仿真。四足空间包含 13 万种构型、130 万段回合和约 5 亿个时间步;移动双臂空间包含 5000 种构型、5 万段回合和约 6900 万个时间步。
这些数据让模型学习身体、目标运动、状态变化和控制动作之间的联合分布。它得到的并非一份显式设计规则,而是一种经验先验:什么样的身体与运动组合通常合理,改变本体以后,执行代价可能怎样变化。
真正把反馈送回生成过程的是 Dynamics Self-Guidance。每一步扩散里,DiT 不只预测下一步怎样去噪,同时也预测候选身体的运动。外部可微奖励按预测轨迹打出分数,奖励梯度穿过轨迹和噪声预测,作用到本体 token 上,改变下一步的生成方向。
ALOHA 换了一副更适合甩布的身体
传统方法在外层生成身体,在内层求控制、运行仿真,得到结果后才进入下一副身体。Transformer Transformer 在推理阶段同时生成本体 token,并预测候选身体的状态和动作,再用奖励修正下一步扩散。多条扩散链可以在 GPU 上批量运行,模型也能并行处理从回合中抽取的时间片。
原来按候选串行进行的部分生成与评价,由此变成模型内部的批量预测和修正。
从效果上来说,整体的速度提升了。
由于采用了非自回归的时间轴并行表示(8 个时间步并行推理),模型不需要像进化算法那样去顺序推演几千步的仿真。这使得模型在 GPU 上并行生成和评估 128 个形态的速度,比 CMA-ES 进化算法在 CPU 串行评估 5 个候选还要快得多
模型重新设计了 ALOHA 双臂机器人的安装方向和连杆,位置跟踪误差从 13.0 厘米降到 3.5 厘米,降幅 73%,最大关节速度从 2.57 rad/s 降到 1.82 rad/s,降了约 30%。倒装的手臂改变了甩布动作可用的工作空间,也把电机的速度压力减了下来。

论文图 9|原始 ALOHA 与优化后 ALOHA:安装方式和连杆尺寸改变后,甩布轨迹能够完整展开。
两篇论文,都用了数据驱动的思路
Generating Robot Hands 把超过 400 万帧人类手部运动直接写进硬件优化目标,用数据规定一副手需要覆盖哪些动作;它保留简单的逆运动学控制,并在边界清楚的双指机构家族中寻找答案。Transformer Transformer 则先用大量跨本体仿真数据学习身体、状态和动作的联合分布,再以人类末端轨迹和新的奖励作为推理条件,生成更适合当前任务的机器人。
前者证明行为数据能够直接塑造一类硬件,后者尝试把分散在不同本体上的设计与控制经验压进可复用模型。两条路线共同指向同一个变化:数据不再只用于训练机器人的“大脑”,也开始规定身体需要具备什么能力,并参与判断身体应该怎样改变。
为什么软硬件协同设计有了新变量
软硬件协同设计对于具身来说尤其重要,因为人形机器人和通用操作机器人的本体形态还远没有定型。
如果说工业机械臂已经形成相对稳定的结构平台,算法通常在既定硬件边界内优化;人形机器人以及灵巧手仍在成本与能力间探索构型的平衡。
软硬件协同的本质难题司机搜索空间巨大,带来的生成、控制以及评价的困难。一切人工的规则。都会成为苦涩的教训。
而大规模的数据,无论是采集的数据还是仿真的数据都让这个事情开始有了眉目。
无论是小龙组的人类视频,还是舒然和Karen的UMI、仿真数据以及本体的统一表征,都是很好的尝试。
更重要的是,与最终本体相对解耦的采集,又把数据生产提前到了机器人定型之前。
本体的设计不仅与模型与部署相关,还与采集紧密相关。如果不能在Day1用更科学高效的方法设计,后果就是牵一发而动全身。这更需要倒逼团队去协同设计。
过去的问题是如何让算法适应一台已经造好的机器人。
数据驱动的 Co-design 开始追问,面对这些任务和数据,机器人究竟应该拥有怎样的身体。
