1. 一个被问烂了的问题,背后其实是两个完全不同的世界
这两年只要聊机器人控制,几乎绕不开一个场景:学术会议的茶歇、技术群的深夜讨论、甚至产品评审会上,总有人抛出类似的问题——“既然Transformer这么强,为什么波士顿动力还在用老一套控制理论?”“隔壁组用强化学习让机器狗学会了后空翻,为什么机械臂抓个瓶子还是用传统规划?”
我最早看到"都是机器人控制,为什么走路用RL,干活却用Transformer"这个说法时,第一反应是这问题本身有歧义。它把"控制"当成了一件铁板一块的事,好像机器人身上所有的决策都可以塞进同一个模型里。但真正做过机器人系统的人都知道,腿足机器人的运动控制和机械臂的操作控制,表面看都属于"机器人控制",实际上面临的物理约束、环境假设、评价指标、失败成本完全是两个维度。
这篇文章我会尽量把这件事讲透:先说清楚腿足运动为什么天然适合强化学习(RL),再说操作任务为什么近年越来越多人倒向Transformer架构,然后聊一聊这两种路线各自的天花板和现实陷阱,最后给出一个不那么"站队"的判断——在实际工程项目里,它们大概率会长期共存,而不是谁取代谁。
先给一个我自己的结论:不是"走路用RL、干活用Transformer"这个分工天然正确,而是这两类任务的数学结构和工程约束,恰好分别把RL和Transformer推到了聚光灯下。搞清楚背后的逻辑,比记住结论重要得多。
2. 先拆一个基本问题:机器人控制里的"走路"和"干活",到底差在哪
2.1 腿足运动:一个连续、高频、模型难建的动态过程
走路这件事,从力学角度看是一个典型的高维、非线性、强耦合的欠驱动系统。四足机器人一条腿至少3个主动自由度,全身12到16个自由度,每一步都涉及支撑相和摆动相的切换,地面反作用力、关节力矩、身体姿态、质心轨迹全部耦合在一起。
更麻烦的是,地面接触是离散事件。脚落地的瞬间,接触力发生跳变,摩擦锥约束只在接触点成立,一旦脚打滑,整个动力学模型就失效。传统方法想建模,需要精确知道地面刚度、摩擦系数、地形几何,而这些在实际场景里几乎都只能估算。
这个问题的本质是:系统的真实动力学模型很难写准,但系统的行为目标却非常直观——别摔倒,往前走,能跟上指令速度。换句话说,你不知道"世界怎么运转",但你知道"什么叫表现好"。
2.2 操作任务:离散、有语义、强调对象与工具的理解
工业机械臂抓瓶子、插孔、装配、码垛,物理上同样是非线性多体动力学,但因为基座固定、负载变化范围可控、环境结构化程度高,动力学模型反而可以建立得相当准。一个6自由度工业臂,用牛顿-欧拉法或拉格朗日法写出完整动力学方程,配合厂商提供的惯量参数,力矩前馈能做到相当可靠。
那"干活"难在哪?难在语义理解:目标物体在哪、什么姿态、该用哪种夹爪策略、夹具怎么避障、多步动作怎么排序。你让机器人把桌上的杯子放到托盘里,"杯子在哪"这个问题消耗的算力和心智能量,比"手怎么伸过去"大得多。
2.3 两类任务的核心矛盾完全不同
我把两者的差异整理成一个对照表,方便后面讨论:
| 维度 | 腿足运动(走路) | 操作任务(干活) |
|---|---|---|
| 动力学准确性 | 差,接触和地形不确定 | 较好,结构化和负载可控 |
| 控制频率 | 高,关节级需1kHz以上 | 低,规划级10-50Hz足够 |
| 成功标准 | 连续数值指标:稳定、速度、能耗 | 离散任务:抓没抓牢、插没插进 |
| 环境变化 | 连续变化,同分布内泛化 | 语义级变化,跨分布泛化 |
| 失败代价 | 摔倒,可重试,物理损伤可控 | 撞坏工件、伤人的可能性高 |
| 数据获取 | 同一地形可反复试错 | 真实操作数据昂贵,试错成本高 |
这个表基本解释了为什么两条技术路线会分道扬镳:RL需要大量试错数据,但每一步的"反馈信号"可以连续不断地从传感器里拿,正好匹配走路这件事的滚动优化特性;Transformer擅长从大量离散数据里学习长程依赖和语义模式,正好匹配操作任务中"看-想-动"的决策链条。
3. 走路为什么是RL的主场:从仿真到实机的完整逻辑链
3.1 免模型RL解决了"动力学建模难"这个死结
传统腿足控制的主流方案是模型预测控制(MPC)加全身控制(WBC):先简化为质心动力学,用MPC在线算未来一段时间的足端力分配,再用WBC把力映射到各关节力矩。这套东西在实验室平地上已经非常成熟,MIT的Cheetah系列、国内的几款四足产品早期都是这个路子。
但MPC的痛点很明显:每一帧都要解一个带约束的优化问题,计算量不小;模型一旦简化,碰到软地面、斜坡、台阶就抓瞎;参数调起来极其痛苦,一个地面刚度参数可能就要调一周。而且不同地形要切不同的模型参数,场景一换,工程师头皮发麻。
免模型强化学习的思路是彻底绕开动力学建模:不需要显式写出地面模型,智能体自己在环境里试,试错了给负奖励,走稳了给正奖励,通过海量交互直接学出一个"状态到动作"的映射。这一下把"建模难"变成了"探索难",而探索难的问题恰好可以被仿真环境暴力解决。
3.2 仿真到实物迁移(Sim-to-Real)为什么在这个领域特别好用
腿足运动被RL攻克的另一个关键原因是:仿真和真实的差距(sim-to-real gap)可以被系统性地填平。四足机器人在地面行走,核心物理过程是接触力学,而现代物理引擎(MuJoCo、Isaac Gym、Bullet)对刚性接触的模拟精度已经相当高。再加上Domain Randomization——训练时随机化地面摩擦、机器人质量、电机力矩系数、延迟时间——学出来的策略天然对参数波动不敏感。
我见过一个很典型的案例:在Isaac Gym里并行开几万个环境,用一个小时内训出来的策略,直接部署到真实机器狗上,步态已经能跑了。这在传统MPC路线里几乎不可想象,MPC的部署链路里每一步都要人工干预。
3.3 更隐蔽的优势:RL策略天然是时间连续的闭环
RL学出来的神经网络策略,输入是当前的状态(关节角度、角速度、机体姿态、指令速度),输出是关节位置或力矩指令,本身就构成一个高频闭环。这个结构天生适合走路这种需要毫秒级响应的任务——不需要人在回路里做高层决策,所有的反馈都在网络前向传播里完成。
我记得业内有个经验数据:腿足RL策略的推理频率通常在200Hz到1kHz之间。为什么这么高?因为触地瞬间的冲击如果不及时处理,几毫秒内就可能把姿态带偏。神经网络的一次前向传播在嵌入式GPU上只需要零点几毫秒,完全扛得住这个频率。
3.4 走路任务的成功信号连续,RL的奖励工程好做也有上限
做RL的人都知道奖励设计是门玄学。但腿足任务的幸运之处在于,成功与否不是"0或1",而是一个连续谱:不倒能走给正奖励,走得稳给更多,速度跟上指令再给更多,能耗低还可以加一个惩罚项。这种连续的、多维的、密度很高的奖励信号,刚好是RL最擅长优化的对象。
不过要泼一盆冷水:走路RL的奖励设计其实远比看上去复杂。光一个"别摔倒"是不够的,你得平衡前进速度、姿态稳定、能耗、步态对称性,稍不留神就会学到"螃蟹步"——机器人确实前进了,但姿态极其丑陋且能耗高。这也是现在很多团队用风格奖励(style reward,参考真狗步态数据)和对抗式奖励的原因。
4. 干活为什么偏偏拥抱Transformer:从感知到决策的语义化转型
4.1 操作任务的真正瓶颈不在控制误差,而在"理解任务"
回到机械臂的问题。假设目标是把不同形状的零件插到对应孔位里。传统方案是:视觉识别定位、运动规划器算轨迹、力控做柔顺插入。这套流程的问题是每一个环节都是独立模块,误差逐级放大,一旦目标物体的姿态超出预设范围,整个流程就崩。
本质上,传统操作链路缺一个"跨模态的语义理解层":它需要同时理解视觉图像里"这是什么物体、什么姿态",语言指令里"插到哪个孔",以及本体感受里"现在夹爪碰到物体了没有"。这种多模态对齐能力,恰好是Transformer架构的看家本领。
4.2 从RT-1到RT-2:Transformer在机器人操作里的进化路径
Google的RT系列是这条路线最典型的样本。RT-1的思路是把机械臂的摄像头图像、本体状态、语言指令全部token化,丢进一个Transformer里做序列建模,输出离散的动作指令。RT-2更进一步,直接把机器人数据和大规模互联网图文数据混合训练,让模型具备了一定的常识推理能力。
为什么Transformer在这里比RNN、CNN、MLP都合适?三个原因:
- 注意力机制天然支持长程依赖:操作任务经常是"看一眼桌子→决定抓哪个→伸手→调整姿态→抓取→放到目标点",这个序列跨度几十步,RNN容易遗忘,Attention可以任意位置直接关联。
- 统一的多模态嵌入:图像、文本、关节状态、动作标签,都可以映射到同一个语义空间,Transformer的QKV机制天然接受异构输入。
- 规模化能力:这是最关键的——Transformer架构的收益会随着数据量和模型参数量上升而持续增长,CNN饱和后再加数据提升有限,Transformer没有这个瓶颈。
4.3 数据从哪来:操作领域的"ChatGPT时刻"还差一个规模化的数据引擎
既然Transformer这么适合操作任务,为什么不是所有团队立刻拥抱它?因为数据。
语言大模型有整个互联网当语料库,图像模型有几十亿张图片,但机器人操作数据呢?机械臂真实执行一次抓取,需要传感器记录图像、力矩、位置、成败标签,效率极低,一条数据十秒钟,标注成本却比文本高得多。真实场景数据量,全球加起来估计也就百万级轨迹,跟语言模型动辄万亿token完全不在一个数量级。
所以目前行业的折中方案是:仿真数据为主、真实数据微调、预训练模型做底座。比如在Isaac Sim里批量渲染场景,用领域随机化生成海量操作数据,再在真机上用几千条人工采集数据做微调。这个路线的可行性和上限,是目前学术界和工业界厮杀最激烈的地方。
4.4 一个反直觉的点:操作任务其实不排斥RL,Transformer和RL正在合流
这里要澄清一个误区:标题说"干活用Transformer",好像操作任务里RL被淘汰了,其实没有。真正的主流趋势是把Transformer当策略网络的主干,用RL去训练它。比如谷歌的RT系列部分工作、清华和上交的一些操作工作,都是Transformer policy + RL优化。
原因很简单:Transformer出力的是长程语义建模能力,RL提供的是试错优化的能力,两者解决的问题并不重叠。你让Transformer直接用行为克隆(BC)从数据里学,泛化能力受限于数据覆盖度;你让RL从零开始学一个Transformer策略,探索空间太大,很难收敛。所以两者合流几乎是必然——先行为克隆预训练,再用RL微调,这已经是不少团队的标准配方。
5. 边界条件与误用陷阱:什么情况下"走路用RL"和"干活用Transformer"都可能是错的
5.1 RL走路的三个隐形天花板:安全、现实差距、算力成本
即使RL在腿足领域已经非常成功,它也不是银弹。
第一个天花板是安全。RL策略的本质是黑箱,你很难证明"在某个没见过的地形上它一定不会摔倒"。军用、救援、医疗场景对这种不确定性容忍度很低,传统MPC虽然参数难调,但每一步都有明确的优化目标和约束表达,出了问题工程师能解释。
第二个是sim-to-real的上限。Domain Randomization能掩盖一部分仿真差距,但碰到形变物体、流体地面、极端摩擦力分布,仿真模型本身就不靠谱,RL学出来的策略在真机上可能就是另一个行为。
第三个是训练算力。一个四足机器人走路的RL训练动辄几十GPU小时起步,操作任务的Transformer策略训练更是百卡量级,中小团队不一定扛得住这个成本。
5.2 Transformer干活的三个认知误区:别把"大模型"当成"万能控制器"
反过来,Transformer在操作任务里也有被过度神化的趋势。
第一个误区是以为Transformer直接输出关节力矩。实际上绝大多数机器人Transformer输出的是高层动作(比如末端位姿增量、离散动作类型、运动规划的cost map),低层还是交给传统控制器。你不可能让一个Transformer以1kHz的频率去算每个关节的电流指令,计算开销和延迟都受不了。
第二个误区是忽视实时性。大模型前向推理动辄几十毫秒甚至几百毫秒,而操作任务里接触状态变化的速度远高于这个时间尺度。所以真正落地的系统里,大模型往往只做"任务规划"和"轨迹点子生成",真正的力控和柔顺操作还是靠底层专用控制器。
第三个误区是把互联网预训练的常识直接当成操作技能。RT-2能告诉你"杯子通常在桌子上"这个常识,但不代表它知道"这个杯子的材质是易碎的,夹持力要小一点"。物理交互层面的经验,只能从真实物理交互数据里来——这也是为什么现在讨论很热的"世界模型"最终还是要靠机器人自己的交互数据来验证。
5.3 一个实际工程中更容易踩的坑:混合架构里的模块通信
如果你决定走"高层Transformer + 低层RL或MPC"的混合路线,会遇到一个非常现实的工程问题:两个模块之间的接口怎么设计?
Transformer输出的"意图"是语义级的——"把红色杯子放到托盘中央"。这个意图要传递到低层控制器,需要翻译成轨迹目标点、速度约束、力上限等参数。问题是语义空间和物理空间之间的转换,往往需要大量手工设计的中间层(比如抓取位姿估计器、避障规划器、力控参数表)。接口设计得好,系统如虎添翼;设计得不好,高层的智能化一点也落不到执行层,反而变成累赘。
我自己在项目里常用的做法是:让高层输出一个"候选轨迹集合"而不是单条轨迹,低层用安全约束过滤,再选一条满足所有硬约束的轨迹去执行。虽然计算量大了点,但工程可靠性高很多。
6. 选型决策框架:真到自己做项目时,该怎么选
6.1 三类典型的任务画像
我根据自己看到的实际项目,把机器人控制任务粗略分成三类,每一类的最优方案不一样:
| 任务画像 | 典型场景 | 推荐主线方案 | 理由 |
|---|---|---|---|
| 连续动态控制 | 四足/双足行走、跑酷、平衡 | RL为主要策略来源,MPC做安全兜底 | 动力学建模难,试错代价小,仿真可靠 |
| 离散操作规划 | 抓取、装配、整理、工具使用 | Transformer做语义理解与任务规划,传统控制器执行 | 多模态语义对齐是核心瓶颈 |
| 精密力控操作 | 插孔、打磨、拧螺丝 | 传统力控(阻抗/导纳)为主,RL或学习算法只在补偿环节用 | 精度要求极高,试错成本高,现有学习算法稳定性不够 |
这个表格不是说三者互斥,而是告诉你资源有限的时候,应该把重心押在哪。
6.2 资源约束下的现实选择
如果你是学生或者小团队,没有几百张GPU,我建议这么分配精力:
- 走路类项目:优先用现成的RL框架(Isaac Lab / Isaac Gym),在仿真里把baseline跑通,再用Domain Randomization提高迁移成功率。别自己造物理引擎,也别一上来就调奖励函数,先跑通最简单的,再一点点加约束。
- 干活类项目:优先用已有的视觉-语言-动作模型(VLA)做预训练底座,再微调自己的数据。别从零训练Transformer,成本太高且没有意义。数据用仿真批量生成做预训练,真机数据只做最后一步精调。
- 混合系统:优先保证低层控制器的稳定性,高层模型哪怕弱一点,系统还是能跑;反过来低层不稳,高层再智能都是空中楼阁。
6.3 一个决策checklist
最后给出我自己在做技术选型时反复使用的checklist,供参考:
- 任务失败的安全代价有多高?高代价任务尽量别把黑箱策略放在最底层。
- 任务是在线连续决策还是离线单步决策?连续决策RL有优势,离线语义决策Transformer有优势。
- 环境模型能不能建准?能建准,MPC和传统控制仍然是最优解;建不准,才轮到RL和Learning。
- 数据的未标记但低成本(仿真可刷)还是高成本(真实操作)?前者适合RL试错,后者适合Transformer做预训练。
- 是否需要跨场景、跨物体的语义泛化?需要就上Transformer,不需要就别给自己添乱。
7. 我的一些个人体会:别被标题带节奏,架构选择永远是任务倒推的
做了几年机器人控制相关的项目,我的体会是:技术圈特别喜欢制造"范式对立"——RL vs MPC、Transformer vs 传统控制、端到端 vs 模块化。但实际操作下来,真正好用的系统几乎都是混合的,差别只是不同模块的占比和接口设计。
走路用RL这件事,本质上是向"模型不确定性"妥协的结果——我们放弃了对每一个物理细节的建模努力,用大量试错换来了对未知环境的适应能力。干活用Transformer,本质上是向"语义复杂性"妥协的结果——我们放弃了对每一步动作的显式编程,用海量数据换来了对任务意图的理解能力。两者的出发点不同,落脚点自然也不同。
从2024到2025年,VLA(视觉-语言-动作模型)的进展已经很明显地在把Transformer在操作领域的份额进一步推高,与此同时,腿足RL在四足产品上的落地也进入了规模化复制阶段。两条线短期内不会交汇成同一条路,而是会各自在合适的任务域里深化。
真到自己做项目的时候,我建议别纠结"该站哪一队",而是先回答三个问题:我的任务失败代价是什么?我的数据来源是什么?我的算力预算有多少?答案出来,技术路线的选择基本也就出来了。技术选型不是站队,是一场基于约束条件的最优化。