ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

机器人操作300篇文献的系统梳理:高层规划与低层控制

机器人操作300篇文献的系统梳理:高层规划与低层控制

一直在啃Manipulation(机器人操作)方向的东西,陆陆续续攒了近300篇论文。刚开始按任务分类去整理——抓取归抓取、装配归装配、桌面整理归桌面整理——越整理越乱,因为同一个算法往往能跨好几个任务,同一篇工作既讲推理又讲控制。后来换了个坐标:不看任务,看决策与控制的分层。用“高层规划”和“低层控制”这两条轴线去重排所有工作,整个领域的发展脉络一下子清楚了。这篇东西就是把这个梳理过程的思路和结论分享出来,给正在做机器人操作、具身智能,或者准备系统读这个方向文献的朋友一个参考框架。

1. 先从近300篇文献讲起:我为什么决定用“规划-控制”当主线

Manipulation任务有个很特别的地方:它既要回答“做什么”,又要回答“怎么做”,还要回答“做得够不够准”。放在真实环境里,一个抓取动作可能只有一两秒,但背后既要理解物体位置和语义类别,又要生成一条无碰撞轨迹,还要在接触瞬间处理好摩擦力和反作用力。任何一环掉了链子,任务就失败。

经典的教科书会把机器人系统分成感知、规划、控制三层。感知负责理解世界,规划负责出方案,控制负责执行。这个分层在理论上是干净的,但真到操作任务里就暴露一个麻烦:层与层之间的接口定义得很模糊。规划层算出一个末端目标位姿,控制器不一定能精确到达;控制器能稳定跟踪的轨迹,规划层又可能完全不考虑接触力约束。于是大量工作在做“缝缝补补”——要么在规划阶段加几何校验,要么在控制阶段加修正项。

到了最近五六年,学习方法的介入让这个边界更加混乱。端到端策略想的是“输入图像、输出动作”,直接把规划和感知、控制揉在一起,中间没有明确的分层;分层式方法则想在顶层保留规划能力,在底层保留控制精度。这样一来,文献地图就变得很难用传统教科书来归类。我看过不少综述,按算法流派分的,按任务场景分的,按硬件形态分的都有,但每种分法都有信息丢失:按算法分看不到任务带来的共性挑战,按任务分又看不出方法论的迁移趋势。

最后我决定用“高层规划-低层控制”这个坐标去重排全部工作。原因很简单:**近300篇文献里真正剧烈的变化,不是某个算法横空出世,而是“决策”和“执行”两端的属性都在改变。**高层规划从符号搜索演变成大模型生成,低层控制从解析控制器演变成数据驱动策略,而两者之间的接缝处冒出了一堆新的表征方式,比如技能、运动原语、选项、扩散过程。这三条线索基本能解释绝大多数论文的动机、创新点和局限。

所以这篇文章不是按时间线报菜名,而是按这条主线讲清楚:规划一侧怎么变的,控制一侧怎么变的,中间接口是怎么被重新设计的,以及现在哪些问题最让人头疼。

2. 300篇工作的分布地图:谁在解决高层,谁在解决低层,谁在当胶水

先给一张我整理时的粗糙分布表,不是严格定量统计,但足以反映我读完这批文献的整体印象:

方法集群高层规划是否学习低层控制是否学习主要适用场景文献量占比(印象值)
经典任务规划与运动规划(含符号规划、随机采样规划、TAMP)否否结构化工厂、已知物体、装配线约10%
经典控制与优化控制(阻抗、力位混合、MPC、轨迹优化)否否/部分接触式操作、抛光、插拔、拧螺丝约15%
技能库与运动原语(DMP、ProMP、技能封装)部分部分抓取、传递、多阶段操作约15%
模仿学习/强化学习的低层策略(含视觉运动策略)否是桌面操作、灵巧手、双臂协作约30%
大语言模型/视觉语言模型做规划,搭配低层技能是部分长时序任务、开放词汇指令、家庭服务约20%
分层强化学习、选项学习、自动技能发现是是复杂长程任务、不确定环境约10%

我统计完一个很直观的感受是:纯经典方法并没有消失,而是在特定场景里继续扎实地活着。比如高精度装配,力控和阻抗控制的地位很难被纯学习替代;纯端到端学习也不是万能,大规模铺开更多集中在桌面操作和仿真环境。真正占比最大、增长最快的,是“学习型低层策略”和“LLM/VLM做高层规划”这两块,而且这两块近两年有明显的合流趋势。

按任务场景统计的话,分布大概是这样的:

  • 抓取与放置:仍然是最基本的测试床,近300篇里至少有六成以上工作会用抓取作为验证场景。
  • 接触式操作:插孔、拧螺丝、打磨、切菜,数量在增加,但难度高、数据难采,能真正跑通实机的少。
  • 长时序桌面任务:摆盘、整理桌面、按指令放东西,是LLM规划最容易讲故事的地方,仿真和实机都很多。
  • 移动操作:也就是带轮子或底盘的机械臂做全屋操作,近两年明显升温,因为单臂夹在桌上的任务已经快被做透了。
  • 人机协作:共融场景,文献量中等,但安全性和不确定性处理很有代表性。

还有一个容易被忽略的发现:**中间层工作数量最少,但引用影响力往往最大。**比如把技能库和高层规划接起来的那几篇,或者把运动原语和RL结合起来的经典工作,几乎成了很多后续系统的骨架。这其实暗示了一个现实——Manipulation的瓶颈往往不在单点算法的天花板,而在模块之间的连接设计。

3. 高层规划三十年:从符号状态搜索到大模型直接吐子目标

高层规划这条线,如果只挑关键节点,可以压缩成四步:符号规划、任务与运动联合规划、学习型感知规划、大模型直接生成。

3.1 早期符号规划:解决了“逻辑可行”,解决不了“几何可行”

早期的高层规划是建立在符号状态上的。一个规划器拿到的是“物块A在桌上”“夹爪是空的”这类离散状态,它用类似STRIPS的风格或者后来规划领域定义语言(PDDL)写出领域文件,通过搜索得到一个动作序列。这个思路在抽象层面很漂亮:只要状态转移模型准确,规划出来的序列在逻辑上一定通。

但放到真实机械臂上,立刻遇到一个经典困境:符号状态和真实世界之间没有可靠映射。规划器说“抓取物块A”,可物块A具体在哪里、夹爪以什么姿态伸过去不碰撞、抓取点怎么选,这些全在符号层下面。于是经常出现“规划两分钟,执行两秒钟就失败”的情况:逻辑上规划出来的是闭环,几何上根本走不通。

我最早读到这类工作的感觉是:这不是规划器的问题,是抽象层级选择的问题。顶层把世界过度简化了,而底层要面对完整物理世界,中间的断裂又没人负责。这个断裂后来催生了TAMP。

3.2 TAMP:把几何拉回决策循环

任务与运动规划(TAMP)本质上是在符号规划和运动规划之间做交替求解:先给出一个候选动作序列,再对每一步调用采样式运动规划或轨迹优化,验证几何可行性;如果某一步过不了,就回去换一个符号序列。这样规划出的任务序列天然带有几何约束,不会出现“目标位姿在墙里”这种事情。

TAMP很长一段时间是操作规划的主流工具,它依赖的假设是世界状态可以被比较准确地估计。在已知物体、固定工位的工厂场景里,这套东西非常可靠。但到了开放环境,物体形状未知、位置不确定,符号状态估计本身就变成学习问题,TAMP的表示成本就上来了。

这几年TAMP领域也有不少工作在做“把感知不确定性融合进规划”,比如让规划器在状态估计置信度低时主动请求新的观测,或者在规划时间考虑多个可能的物体位姿假设。这个方向我认为还会持续有价值,因为工业场景需要可证明的规划保证。

3.3 LLM/VLM时代的规划:从搜索变为生成

大语言模型出现之后,高层规划的画风彻底变了。规划不再被看成状态空间的搜索问题,而是被看成条件文本生成问题:把任务指令、环境描述、可用技能列表一起塞给模型,让它直接吐出一个子目标序列。零样本意味着不需要为每个新任务重新写领域定义文件,这对开放世界操作是质变。

实际操作中,我看到的大多数做法有这样几类:

  • 让LLM输出结构化的子目标列表,每个子目标带参数。顶层只做分解,不直接算轨迹。
  • 让LLM调用预设技能API,技能内部的轨迹生成、反馈控制完全交给专门的模块。
  • 让LLM和VLM配合,用视觉模型确认每个子目标是否达成,形成一个“规划-执行-验证-再规划”的闭环。

第三种做法我建议重点关注,因为纯开环规划的效果很不稳定。大模型可能因为环境描述不完整,输出一个物理上不可行的子目标;如果系统没有反馈,整个任务链就崩了。加了VLM验证之后,哪怕第一次规划错了,也能在执行失败时重新规划,系统鲁棒性提升明显。

3.4 规划器的判断标准:抽象粒度才是心法

很多人以为高层规划难在“模型选择”,其实更难的是“抽象粒度”设计。同一个任务,你可以规划成“走到桌前-抓杯-放到托盘”,也可以规划成“移动到坐标(1.2, 0.8, 0.1)-闭合夹爪-运动到目标点并张开夹爪”。粒度太粗,低层技能可能不知道该做什么;粒度太细,规划器实际上在做运动规划,失去了高层抽象的意义。

从300篇文献来看,抽象粒度选择几乎没有统一理论,基本靠工程经验和实验权衡。LLM出现之后,很多人偷懒让模型去定粒度,效果时好时坏。我的建议是:越接近物理接触的动作越要向低层下放,越接近语义目标的操作越要保留在高层,不要去跟“机器人语言模型”较劲。

4. 低层控制的三次换芯:模型驱动、数据驱动、扩散模型驱动

低层控制这条线,变化同样剧烈,但它的演进逻辑和高层规划不同:它不是在“表示能力”上跳跃,而是在“对被控对象建模方式”上换了三次内核。

4.1 第一次换芯:从解析模型到优化控制

第一代低层控制是纯模型驱动的。计算力矩法、PID加前馈、阻抗控制和导纳控制,都是先假设我们有相对准确的运动学和动力学模型,然后设计反馈律去跟踪参考轨迹或者调节接触力。这里面阻抗控制特别值得聊:它不用精确控制力,而是控制末端位置和力的动态关系,相当于给机械臂装了一个可调刚度的弹簧,在接触任务里非常实用。

这代方法的优点是稳定、可分析、调试手段成熟,缺点是在模型误差大、接触状态频繁切换的场景里容易翻车。比如插孔任务,孔的位置差一毫米,纯位置控制就可能把轴别断,必须有柔性或者力反馈。

4.2 第二次换芯:强化学习与模仿学习接管策略

第二次换芯的标志是:人们不再显式建模动力学,而是让策略在数据中自动学到“从状态到动作”的映射。强化学习在仿真环境里大杀四方,但样本效率是硬伤,于是模仿学习补了上来,尤其是行为克隆和后来扩散策略的出现,让低层控制变得非常符合直觉。

模仿学习最吸引人的一点是:不需要设计奖励函数。你只需要一份像样的专家数据,策略能直接学到感知和动作之间的复杂映射。这在视觉运动策略里尤其明显——输入一个RGB-D图像,输出动作或动作序列,不需要任何中间状态估计。很多人第一次跑通这类策略时都会感叹:原来“看见就能做”可以这么直接。

4.3 扩散策略为什么这么顺

扩散策略是这几年低层控制里最值得注意的进展。传统行为克隆想拟合一个从状态到动作的单峰分布,但真实操作动作往往是多峰的:面对同一个瓶子,可以往左绕也可以往右绕,直接回归平均就会产生抖动。扩散模型的做法是把动作生成当成一个去噪过程,先采样高斯噪声,再逐步去噪到具体动作,天生能表达多峰分布。

我实际测试中的体会是:扩散策略还有一个隐性好处,就是动作序列的平滑性。因为它生成的是一个动作块,而不是单步动作,策略输出天然有时间上的一致性,不会出现“一步向左一步向右”的震荡。现在很多灵巧手和双臂操作的工作都选择扩散策略做底层,不是没有原因的。

4.4 低层控制真正的麻烦:高频、鲁棒、接触切换

不管内核怎么换,低层控制始终要面对三个硬约束:

  • 高频执行。真实机械臂控制频率通常在几百赫兹,策略推理必须在几毫秒内完成。
  • 观察噪声。相机标定误差、关节编码器噪声、物体滑动,都得在控制环路里消化掉。
  • 接触切换。从自由运动切换到接触,再切换到自由运动,动力学在瞬间改变,纯数据驱动的策略很难泛化出正确的接触响应。

所以我在整理文献时看到很多工作会在底层加上一层“看门狗”:策略负责输出动作,一个独立的监控器负责检测是否发生接触异常、是否卡死、是否需要切换到备用控制模式。这种混合架构越来越普遍,本质上是在给数据驱动的控制内核补上安全兜底。

5. 最容易翻车的其实是中间地带:技能接口、时序抽象与状态回传

如果说高层规划和低层控制是两端,那中间地带就是很多项目实际翻车的地方。这个结论不是我一个人的观察,我在跟几个做机器人项目的朋友聊天时也得到了几乎一样的反馈:算法调试时间往往只占一半,另一半全在调接口。

5.1 技能接口:高层的一个“动作”,底层到底收到什么

“抓取”“放置”“插拔”这些词在高层的规划器里只是一个动作名,到了低层就需要变成具体的策略参数:目标位置、姿态、力度、速度、接触模式。这个映射是中间层设计的核心。

常见的设计是把技能封装成函数,输入参数在高层的规划输出里直接给出。例如LLM规划器输出“pick(object_a, poi=left_side)”这样的结构化指令,技能库接收到物体ID和抓取点,再调用视觉模型估计实际坐标,最后触发底层的抓取策略。接口好不好用,直接决定系统能不能从“demo能跑”变成“随机场景也能跑”。

5.2 时序抽象:高频反馈与低频规划的节奏问题

高层规划往往在秒级甚至分钟级才做一次决策,低层控制则工作在毫秒级。中间层要做的事情是对齐这两种时间尺度。这里的概念很直观,但实现时容易忽略一个陷阱:低层策略执行一个子目标过程中,如果遇到了规划层没有预期到的情况怎么办?比如技能执行到一半物体滑了。

很多系统用“成功检测器”解决这个问题。子目标完成后,由感知模块确认状态是否达到预期,如果没达到就上报高层重新规划。这个思路简单有效,但要求状态检测本身可靠。我见过不少项目在状态检测器上比在算法本身上花的时间还多,一个抓取放稳了没放稳的判断,经常要调很久。

5.3 运动原语和选项:给低层策略装上一个“参数化外壳”

在技能和选项之间,还有一类经典工具值得提:动态运动原语(DMP)和概率运动原语(ProMP)。它们把轨迹表示成可调参数的基函数组合,高层只需要修改参数,就能让轨迹平滑变形到新的目标点。这种“参数化外壳”让低层轨迹生成从写死变成了可插拔,很多工业装配系统至今还在用。

分层强化学习里的“选项”(Option)则是另一个方向:把低层策略和终止条件绑在一起,高层只需要选择选项并传入目标,直到终止条件触发。这个思路理论上很优雅,但自动发现可用技能在真实世界里仍然困难,目前更多停留在仿真和简化场景。

5.4 表征对齐:LLM输出怎么“翻译”给低层

LLM规划器输出的是文本或者结构化语言,低层策略需要的是向量、坐标、embedding。把两者对齐是近两年的热门操作。现在最常用的做法一种是让LLM直接输出技能名和参数,再用代码把参数变成低层接口;另一种是用CLIP类的多模态embedding,让低层策略以图像和文本embedding作为条件,省去显式参数解析。

后者看起来更优雅,但调试难度更大,因为embedding语义和策略的行为之间没有可解释的中间层。从工程稳妥的角度,我更推荐前者:先限定技能集合和参数格式,用LLM做选择而不是做自由生成。

6. 几类典型系统拆解:规划和控制到底怎么在一个系统里协作

文献读多之后,最终还是要看系统怎么拼。我拆几类我见过也比较认可的系统架构,都是虚构的、不带具体名字,但结构非常有代表性。

6.1 系统A:LLM规划、技能库执行、VLM状态验证

这是目前长时序家庭和服务场景最常见的样子。顶层是一个LLM规划器,输入任务指令和技能列表,输出一个子目标序列;技能库里有导航、抓取、放置、打开抽屉等预训练技能;每个技能执行完,系统调用VLM判断目标是否完成,未完成则反馈给LLM重新规划。

这种架构的优势是模块替换灵活,换一个底层抓取策略不影响顶层。翻车点通常在技能参数生成上:LLM虽然知道“应该去抓杯子”,但不知道杯子在相机坐标系下的精确位置,所以需要专门的视觉检测模块实时给参数。另外,技能库如果不够完备,LLM再聪明也没法调用不存在的技能。

6.2 系统B:传统TAMP加阻抗控制的装配单元

工业装配是最能体现经典方法价值的地方。这种系统通常是:用任务规划器做工序规划,用采样式运动规划生成每条轨迹,用MPC做轨迹跟踪,再在接触阶段切换成阻抗或力位混合控制。关键之处是它有一个显式的接触状态机:找孔阶段用位置控制加搜索策略,插入阶段用力控制,拧紧阶段用速度控制。

这套系统的鲁棒性来自对接触模式的显式建模。只要每个阶段的进入条件、退出条件定义清楚,系统在批量生产中能稳定跑很久。缺点是开发周期长,换一个工件可能要大改状态机和参数,泛化能力有限。

6.3 系统C:端到端RL策略做桌面整理

第三种是极简架构:RGB-D图像输入,一个扩散策略或RL策略直接输出末端速度或关节位置,中间没有任何显式的规划和状态机。这类系统在仿真环境和固定场景里表现惊人,训练完成后控制频率完全够用,动作平滑度也很好。

但问题也很明显:难以注入约束。你很难直接告诉策略“不要去碰那杯水”,因为策略内部没有一个显式的“不碰”状态。长时序任务里,策略可能在前半段做得很好,后半段漂移了,而调试这种漂移比在模块化系统里定位问题要痛苦得多。

我把三种架构做一个直观对比:

维度分层模块系统(LLM+技能库)经典规划+控制(TAMP+MPC)端到端学习(RL/扩散)
可调试性较好好差
新场景泛化快,换技能即可慢,需重新建模慢,需重训
安全约束注入容易最容易困难
开发成本中等高高
典型短板技能不完备缺乏泛化难约束、难调试

从这些对比能看出,没有一种架构通吃所有场景。我的判断是:开放环境、长时序任务选分层模块;高精度、固定工序选经典规划加控制;适量场景、追求灵巧度的任务可以赌一把端到端,但要准备好调试地狱。

7. 综述之外的一些个人判断和实操建议

最后聊点带主观色彩的体会,可能比纯文献整理更有用。

7.1 入门阅读顺序:别按年份读,按“断层”读

我见过太多人入门操作方向是直接从近两年的优秀论文库开始读,读得很累且抓不到脉络。更好的做法是先读三篇“断层性”文献:一篇讲经典TAMP的,一篇讲模仿学习视觉运动策略的,一篇讲LLM规划加技能库的。这个三个断层基本代表了三代系统的思路,再回头补细节会轻松很多。

7.2 做项目先定位瓶颈,再选方法

如果你的任务卡在“不知道下一步做什么”,那瓶颈在高层的任务分解,优先考虑LLM规划或者状态机设计。如果你的任务卡在“知道做什么但做不到”,那瓶颈在低层的控制精度和执行稳定性,这时候上更强的底层策略或者换控制模式比换规划器有用。最忌讳的就是一上来堆大模型,结果底层控制根本稳不住,最后你说不清是模型不行还是接口问题。

7.3 仿真和实机之间的三件小事

  • 域随机化很重要:光随机化位置和材质还不够,要随机化接触摩擦和传感器噪声。
  • 控制频率不一致是Sim2Real的头号杀手:仿真里100Hz跑得飞起,实机只能到30Hz,整个策略的稳定性会完全改变。
  • 实机数据采集成本极高,优先考虑用遥操作或自动数据生成系统,而不是靠人肉一个演示一个演示录。

7.4 我对未来走向的三个预感

第一,世界模型和视频生成会越来越多地出现在Manipulation系统里。不是直接替代规划,而是扮演“预测器”的角色,帮规划器评估动作后果。第二,以物体相对坐标、接触状态为核心的动作表示,会逐步取代单纯的关节角度表示,因为它在多平台迁移上太有吸引力。第三,规划、技能、控制这条链路上的表征会越来越统一,最终大家会习惯用“任务级语义+技能级策略+控制级优化”这种三层结构来思考系统,而不是争论端到端还是模块化。

这些预感没有严格证据支撑,只是我读完近300篇文献之后的直觉。毕竟这个领域现在还在高速变化,今天觉得靠谱的趋势,可能明年就会被新研究推翻。但有一点我是可以确定的:Manipulation技术正在从“单点算法炫技”走向“系统落地比拼”,谁能把从决策到执行这条链路上的坑填平,谁就能拿到下一波红利。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进