机器人操作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, poileft_side)”这样的结构化指令技能库接收到物体ID和抓取点再调用视觉模型估计实际坐标最后触发底层的抓取策略。接口好不好用直接决定系统能不能从“demo能跑”变成“随机场景也能跑”。5.2 时序抽象高频反馈与低频规划的节奏问题高层规划往往在秒级甚至分钟级才做一次决策低层控制则工作在毫秒级。中间层要做的事情是对齐这两种时间尺度。这里的概念很直观但实现时容易忽略一个陷阱低层策略执行一个子目标过程中如果遇到了规划层没有预期到的情况怎么办比如技能执行到一半物体滑了。很多系统用“成功检测器”解决这个问题。子目标完成后由感知模块确认状态是否达到预期如果没达到就上报高层重新规划。这个思路简单有效但要求状态检测本身可靠。我见过不少项目在状态检测器上比在算法本身上花的时间还多一个抓取放稳了没放稳的判断经常要调很久。5.3 运动原语和选项给低层策略装上一个“参数化外壳”在技能和选项之间还有一类经典工具值得提动态运动原语DMP和概率运动原语ProMP。它们把轨迹表示成可调参数的基函数组合高层只需要修改参数就能让轨迹平滑变形到新的目标点。这种“参数化外壳”让低层轨迹生成从写死变成了可插拔很多工业装配系统至今还在用。分层强化学习里的“选项”Option则是另一个方向把低层策略和终止条件绑在一起高层只需要选择选项并传入目标直到终止条件触发。这个思路理论上很优雅但自动发现可用技能在真实世界里仍然困难目前更多停留在仿真和简化场景。5.4 表征对齐LLM输出怎么“翻译”给低层LLM规划器输出的是文本或者结构化语言低层策略需要的是向量、坐标、embedding。把两者对齐是近两年的热门操作。现在最常用的做法一种是让LLM直接输出技能名和参数再用代码把参数变成低层接口另一种是用CLIP类的多模态embedding让低层策略以图像和文本embedding作为条件省去显式参数解析。后者看起来更优雅但调试难度更大因为embedding语义和策略的行为之间没有可解释的中间层。从工程稳妥的角度我更推荐前者先限定技能集合和参数格式用LLM做选择而不是做自由生成。6. 几类典型系统拆解规划和控制到底怎么在一个系统里协作文献读多之后最终还是要看系统怎么拼。我拆几类我见过也比较认可的系统架构都是虚构的、不带具体名字但结构非常有代表性。6.1 系统ALLM规划、技能库执行、VLM状态验证这是目前长时序家庭和服务场景最常见的样子。顶层是一个LLM规划器输入任务指令和技能列表输出一个子目标序列技能库里有导航、抓取、放置、打开抽屉等预训练技能每个技能执行完系统调用VLM判断目标是否完成未完成则反馈给LLM重新规划。这种架构的优势是模块替换灵活换一个底层抓取策略不影响顶层。翻车点通常在技能参数生成上LLM虽然知道“应该去抓杯子”但不知道杯子在相机坐标系下的精确位置所以需要专门的视觉检测模块实时给参数。另外技能库如果不够完备LLM再聪明也没法调用不存在的技能。6.2 系统B传统TAMP加阻抗控制的装配单元工业装配是最能体现经典方法价值的地方。这种系统通常是用任务规划器做工序规划用采样式运动规划生成每条轨迹用MPC做轨迹跟踪再在接触阶段切换成阻抗或力位混合控制。关键之处是它有一个显式的接触状态机找孔阶段用位置控制加搜索策略插入阶段用力控制拧紧阶段用速度控制。这套系统的鲁棒性来自对接触模式的显式建模。只要每个阶段的进入条件、退出条件定义清楚系统在批量生产中能稳定跑很久。缺点是开发周期长换一个工件可能要大改状态机和参数泛化能力有限。6.3 系统C端到端RL策略做桌面整理第三种是极简架构RGB-D图像输入一个扩散策略或RL策略直接输出末端速度或关节位置中间没有任何显式的规划和状态机。这类系统在仿真环境和固定场景里表现惊人训练完成后控制频率完全够用动作平滑度也很好。但问题也很明显难以注入约束。你很难直接告诉策略“不要去碰那杯水”因为策略内部没有一个显式的“不碰”状态。长时序任务里策略可能在前半段做得很好后半段漂移了而调试这种漂移比在模块化系统里定位问题要痛苦得多。我把三种架构做一个直观对比维度分层模块系统LLM技能库经典规划控制TAMPMPC端到端学习RL/扩散可调试性较好好差新场景泛化快换技能即可慢需重新建模慢需重训安全约束注入容易最容易困难开发成本中等高高典型短板技能不完备缺乏泛化难约束、难调试从这些对比能看出没有一种架构通吃所有场景。我的判断是开放环境、长时序任务选分层模块高精度、固定工序选经典规划加控制适量场景、追求灵巧度的任务可以赌一把端到端但要准备好调试地狱。7. 综述之外的一些个人判断和实操建议最后聊点带主观色彩的体会可能比纯文献整理更有用。7.1 入门阅读顺序别按年份读按“断层”读我见过太多人入门操作方向是直接从近两年的优秀论文库开始读读得很累且抓不到脉络。更好的做法是先读三篇“断层性”文献一篇讲经典TAMP的一篇讲模仿学习视觉运动策略的一篇讲LLM规划加技能库的。这个三个断层基本代表了三代系统的思路再回头补细节会轻松很多。7.2 做项目先定位瓶颈再选方法如果你的任务卡在“不知道下一步做什么”那瓶颈在高层的任务分解优先考虑LLM规划或者状态机设计。如果你的任务卡在“知道做什么但做不到”那瓶颈在低层的控制精度和执行稳定性这时候上更强的底层策略或者换控制模式比换规划器有用。最忌讳的就是一上来堆大模型结果底层控制根本稳不住最后你说不清是模型不行还是接口问题。7.3 仿真和实机之间的三件小事域随机化很重要光随机化位置和材质还不够要随机化接触摩擦和传感器噪声。控制频率不一致是Sim2Real的头号杀手仿真里100Hz跑得飞起实机只能到30Hz整个策略的稳定性会完全改变。实机数据采集成本极高优先考虑用遥操作或自动数据生成系统而不是靠人肉一个演示一个演示录。7.4 我对未来走向的三个预感第一世界模型和视频生成会越来越多地出现在Manipulation系统里。不是直接替代规划而是扮演“预测器”的角色帮规划器评估动作后果。第二以物体相对坐标、接触状态为核心的动作表示会逐步取代单纯的关节角度表示因为它在多平台迁移上太有吸引力。第三规划、技能、控制这条链路上的表征会越来越统一最终大家会习惯用“任务级语义技能级策略控制级优化”这种三层结构来思考系统而不是争论端到端还是模块化。这些预感没有严格证据支撑只是我读完近300篇文献之后的直觉。毕竟这个领域现在还在高速变化今天觉得靠谱的趋势可能明年就会被新研究推翻。但有一点我是可以确定的Manipulation技术正在从“单点算法炫技”走向“系统落地比拼”谁能把从决策到执行这条链路上的坑填平谁就能拿到下一波红利。