TAMP_T0 任务规划与分配总论 (Task Planning & Allocation: A Panorama)¶
本文档属于 Robotics Tutorial 项目移动机器人规控方向
60_任务运动规划/子线。 难度: ⭐ ~ ⭐⭐ (总览性质,重地图不重推导) 定位: 这是整条任务层 (TAMP) 学习线的入口与地图,不是某一项技术的教程。它回答"任务层这个领域由哪些板块组成、彼此什么关系、我该按什么顺序学",为后续 9 个分章建立统一的概念坐标系。 前置知识: 仅需 A* 搜索、一阶逻辑常识、RRT/PRM 概念(运动规划入门)。无需任何任务规划基础——本章正是为零基础进入任务层而写。 核心参考: Garrett et al. (2021, Annual Review of Control, Robotics, and Autonomous Systems); Zhao et al. (2024, IEEE/ASME T-Mechatronics, 优化式 TAMP 综述); Gerkey & Matarić (2004, IJRR, MRTA 分类学); Iovino et al. (2022, RAS, 行为树综述)
关于本章的读法(先读这段)¶
整条规控大纲里,时空规划 (T)、采样 MPC (MPPI)、不确定性 (U)、博弈 (G)、多机 (Multi) 五条线都在解决同一类问题——"机器人怎么动得又快、又好、又安全"。它们是机器人的"小脑"与"脊髓":把一条给定的目标轨迹执行到极致。
但有一个问题它们都不回答:这条目标轨迹本身从哪来?谁决定机器人现在该去 A 还是去 B、该先搬这个箱子还是先开那扇门? 这是机器人的"大脑"——任务层要回答的。本章和后续 8 个分章组成的 TAMP 线,讲的就是这个大脑。
为什么先读一份"总论"再学具体技术? 因为任务层不是一个单一算法,而是一个方法生态:有讲逻辑推理的符号规划、有讲数值优化的 LGP、有讲流式采样的 PDDLStream、有讲稳健执行的行为树、有讲自然语言的大模型规划、还有讲多机分工的任务分配。它们解决相邻但不同的问题,用完全不同的数学工具,新手一头扎进任意一个都容易"只见树木不见森林"。这份总论的使命,就是先给你整片森林的地图——看清每棵树长在哪、为什么长在那、和邻居什么关系——然后你再带着地图去逐棵研究。
一句话定位:如果把整条 TAMP 线比作一座城市,本章是入城口那张"游客地图"。它不会带你走进任何一栋建筑,但它让你知道每栋建筑在哪、是干什么的、该按什么路线参观。
本章不做什么:不教你写 PDDL(那是 T1)、不教你实现匈牙利算法(那是 T2)、不带你精读 Nav2 行为树(那是 T5)。本章只画地图。所以它没有大段代码、没有逐步推导——它的价值在"结构"和"取舍",不在"动手"。
本章目标¶
读完本章后,你应当能够:
- 定位任务层在"感知 → 决策 → 控制"整个机器人栈里的位置,并说清它与运动规划的分界线在哪、为什么这条线不能简单地"先规划任务再规划运动"。
- 画出任务层的方法谱系大地图:符号规划 / 优化式 (LGP) / 流式 (PDDLStream) / 执行式 (行为树) / 学习式 (LLM) / 分配 (MRTA) 六大板块,并说出每个板块解决什么问题、用什么核心工具。
- 区分任务层的三个根问题——做什么 (规划)、谁来做 (分配)、怎么稳地做下去 (执行)——以及它们各自由哪些板块负责。
- 梳理从 STRIPS (1971) 到 LLM 任务规划 (2022+) 的历史主线,理解每一代方法是为解决上一代的什么局限而生。
- 使用一棵方法选型决策树:给定一个真实任务,判断该走符号 / 优化 / 流式 / 行为树 / 大模型 哪条技术路线。
- 规划自己的学习路线:知道 9 个分章的依赖关系、按自己的目标(自动驾驶 / 移动操作 / 多机 / 研究)该走哪条路径、以及这条线与 T/U/G/Multi 线在哪里交叉。
本章全景导航¶
本章本身就是一张地图,所以它的结构也是地图式的——从"任务层是什么"出发,逐步展开到"有哪些方法、怎么选、怎么学":
本章 = 任务层的入城地图
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
【是什么】 【有什么】 【怎么走】
│ │ │
§1 任务层定位 §3 方法谱系大地图 §6 方法选型决策树
├─ 感知-决策-控制栈 ├─ 六大板块全景 ├─ 设计时选型(给工程师)
├─ 与运动层的分界 │ 符号/优化/流式 ├─ vs Nav2运行时BT(给机器)
└─ 为何不能解耦 │ /执行/学习/分配 └─ 决策树各分支去向
│ └─ 板块间的依赖关系 │
§2 贯穿全线的场景 │ §7 全线学习路线图
├─ 仓库/家庭机器人 §4 三个根问题 ├─ 9章依赖关系
└─ 后续每章都回到它 ├─ 做什么(规划) ├─ 角色路径(4条)
├─ 谁来做(分配) └─ 与T/U/G/Multi交叉
└─ 怎么稳地做(执行)
│
§5 历史脉络
STRIPS→PDDL→TAMP→LLM
(每代解决上代什么局限)
怎么读这张图:左列"是什么"建立直觉(§1-§2),中列"有什么"是本章主体(§3-§5,方法地图),右列"怎么走"给出行动指南(§6-§7,选型与学习路线)。新手建议顺序读;有经验者可直接跳 §3 谱系图和 §6 选型树。
1. 任务层是什么 ⭐¶
1.1 从一个反差说起:会跑步的机器人,不会"过日子"¶
2023 年前后,机器人界出现了一个耐人寻味的反差。一方面,波士顿动力的 Atlas 能后空翻、苏黎世大学的无人机能以冠军级速度穿越竞速门(本大纲 D9 章的 Swift 工作)、四足机器人能在崎岖地形上奔跑——运动能力达到了惊人的高度。另一方面,让同一台机器人去"收拾一下厨房",它往往束手无策——不是因为它的某个动作做不到(拿杯子、开柜门它都会),而是因为它不知道该按什么顺序做这一连串事、遇到意外怎么调整。
本质洞察:这个反差揭示了机器人智能的一条裂缝——"把一个动作执行好"和"决定该执行哪些动作、按什么顺序"是两种完全不同的能力。前者是运动层(本大纲绝大多数章节的主题),后者是任务层(本章及 TAMP 线的主题)。一个能后空翻却收拾不了厨房的机器人,是"小脑发达、大脑空白"。任务层就是要补上这块大脑。
这条裂缝在学术上有个精确的名字。Garrett 等人在 2021 年的权威综述里指出:机器人在含有大量物体的环境中行动、既要移动自身又要改变物体状态,这个问题称为任务与运动规划 (TAMP);TAMP 问题同时包含离散任务规划、离散-连续数学规划和连续运动规划的元素,因此无法被其中任何单一领域直接有效解决。这句话的后半句是关键——任务层不是运动层的简单延伸,它是一个性质不同、必须单独对待的问题。
1.2 机器人软件栈:任务层站在哪¶
把一个自主机器人的软件从下到上摊开,大致是这样一座栈:
┌────────────────────────────────────────────────────────────┐
│ 人的意图 / 高层目标 "把这些包裹送到打包台" "收拾厨房" │
└───────────────────────────┬────────────────────────────────┘
│
╔═══════════════════════════▼════════════════════════════════╗
║ 任务层 (本章 + TAMP 线) ║
║ ┌────────────────────────────────────────────────────┐ ║
║ │ 任务分配 谁来做 (多机时才有, 单机可跳过) │ ║
║ │ 任务规划 做什么·什么顺序 │ ║
║ │ 任务执行 怎么稳地做下去(监控·异常·重规划) │ ║
║ └────────────────────────────────────────────────────┘ ║
║ 输出: 一串带先后关系的子目标 / 动作 (符号层) ║
╚═══════════════════════════┬════════════════════════════════╝
│ "去货架A取p1" "移动到打包台" ...
┌───────────────────────────▼────────────────────────────────┐
│ 运动层 (T / U / G / MPPI / Multi 线) │
│ 把每个子目标变成一条无碰撞、动力学可行的轨迹 q(t) │
│ 方法: RRT/PRM, 时空优化, MPC, MPPI, 博弈求解 ... │
└───────────────────────────┬────────────────────────────────┘
│ 期望轨迹 / 期望状态
┌───────────────────────────▼────────────────────────────────┐
│ 控制层 (05_运动控制) 把轨迹跟踪成电机指令 │
└───────────────────────────┬────────────────────────────────┘
│ 力矩 / 转速
┌───────────────────────────▼────────────────────────────────┐
│ 硬件 (电机 / ESC / 传感器) │
└─────────────────────────────────────────────────────────────┘
感知层 (03_SLAM, 06_具身智能) 横贯各层, 持续提供世界状态
任务层坐在"人的意图"和"运动层"之间,干一件事:把一句模糊的高层意图,翻译成一串运动层能逐条执行的、带先后关系的子目标。它向上接住人类的愿望("收拾厨房"),向下喂给运动层可执行的指令("先去拿杯子,路径是……")。
为什么任务层值得单独成线? 因为这个"翻译"远不是查字典那么简单。"收拾厨房"要拆成几十个子目标、它们有复杂的先后约束(擦桌子前得先清空桌面)、有几何可行性(杯子被书挡住就得先移书)、还要应对执行中的意外(杯子滑了、柜门卡了)。这套翻译需要逻辑推理、组合搜索、数值优化、异常处理——构成了一个完整的方法生态,也就是本章 §3 要展开的六大板块。
1.3 任务层与运动层的分界线:离散 vs 连续¶
任务层和运动层的分界,本质是离散世界与连续世界的分界。这是理解整条 TAMP 线最重要的一条线,值得讲透。
| 维度 | 任务层(符号 / 离散世界) | 运动层(几何 / 连续世界) |
|---|---|---|
| 状态是什么 | 一组命题:{杯子在桌上, 手是空的, ...} | 一个连续向量:关节角 \(\mathbf{q}\in\mathbb{R}^d\)、物体位姿 |
| 决策是什么 | 选哪个动作、什么顺序、归谁做(离散选择) | 走哪条轨迹(连续路径) |
| "可行"指什么 | 逻辑前提满足(手空才能抓) | 无碰撞 + 逆运动学可解 + 动力学可行 |
| 用什么方法 | 图搜索、组合优化、逻辑推理 | 采样 (RRT)、优化 (MPC)、几何 |
| 典型工具 | PDDL 规划器、MILP 求解器、行为树 | OMPL、MoveIt、acados、CasADi |
| 分支因子 | 有限(动作数 × 对象数) | 无限(连续参数) |
本质洞察:任务层处理"有限个命题之间的离散跳转",运动层处理"无穷维连续空间里的路径"。这道"符号 vs 几何"的鸿沟,是 TAMP 全部困难的根源——也是 TAMP 这个名字里 "Task" 和 "Motion" 被刻意并列的原因:真实机器人问题的难点,恰恰在于这两个世界必须协同,却说着两种语言。本章 §4 会讲清这道鸿沟如何催生了不同的方法板块(有的从符号侧搭桥,有的从几何侧搭桥)。
一个澄清:分界线不等于"任务层在上、运动层在下、单向下达命令"。下文 §1.4 会说明,这两层是双向耦合的——这正是 TAMP 之所以难、之所以需要专门方法的核心。
1.4 为什么不能"先规划任务,再规划运动"¶
新手最自然的想法是:任务层先把动作序列排好,运动层再逐条去执行不就行了?这个"先任务后运动、单向下达"的朴素方案,恰恰是 TAMP 领域第一个要破除的迷思。
考虑收拾厨房:任务层排出"1. 拿杯子放到架子上层;2. 拿书放到书柜;3. 擦桌子"。看起来完美。但运动层一执行就出事:
- 第 1 步"放到架子上层"——架子太高,机械臂够不到。任务层不知道,因为它的世界里只有"架子是空的"这个命题,没有"架子高 1.2 米、机械臂臂展 0.8 米"这个几何事实。
- 退一步,杯子被书挡在角落——机械臂伸不进去抓。任务层同样不知道,因为它不掌握杯子和书的精确位置。
问题的根子在于:任务层的"可行"(逻辑前提满足)和运动层的"可行"(几何上够得到、走得通)是两回事,而任务层看不到几何。于是朴素方案会陷入一种灾难性的循环:
这个"两层解耦、信息单向、失败只能盲目重试"的陷阱,会在整条 TAMP 线里反复出现,换不同的面貌:
- 在任务 vs 运动之间出现(刚讲的,TAMP 的核心难题,T1 详述);
- 在任务分配 vs 任务规划之间出现(把"谁来做"和"做什么顺序"解耦同样会回溯,T2 详述);
- 在规划 vs 执行之间出现(规划好却不监控执行、出事不重规划,T5 行为树要解决的)。
本质洞察:TAMP 全线的方法,本质上都在回答同一个问题——如何让"离散决策层"和"连续执行层"之间有效地交换信息、协同求解,而不是单向下达、盲目回溯。不同板块给出了不同的搭桥方式(§3 会展开):PDDLStream 让几何"采样器"把可行性信息流回符号层、LGP 干脆把两层揉进一个优化问题、行为树让执行层的失败实时反馈触发重规划。理解了"耦合"是核心难题,你就抓住了整条线的灵魂。
2. 一个贯穿全线的场景 ⭐¶
为了让后面抽象的方法地图有处落脚,这里建立一个贯穿整条 TAMP 线的场景。后续每个分章都会回到它,用同一个场景演示不同方法——这样你能直观对比"同一个问题,符号规划怎么解、LGP 怎么解、大模型怎么解"。
2.1 场景设定:一个会犯错的世界¶
场景:一台带机械臂的移动机器人,在一个仓库/家庭混合环境里干活。 环境里有:
- 一些可操作物体:包裹、杯子、书、工具,分布在货架、桌面、地面。
- 一些位置:货架(有高有低)、打包台、桌面、充电桩、书柜。
- 机器人自身的约束:机械臂臂展有限(够不到太高的架子)、一次只能抓一个物体、电量会耗尽(需要回充电桩)。
任务的难度可以逐级加码,正好对应 TAMP 线从易到难的分章:
| 难度 | 任务 | 主要挑战 | 对应分章 |
|---|---|---|---|
| ⭐ | 把桌上的杯子放到(够得到的)架子上 | 基本的 pick-place 规划 | T1 基础 |
| ⭐⭐ | 收拾桌面:多个物体各归其位,有的被挡住 | 任务顺序 + 几何可行性耦合 | T1, T2 |
| ⭐⭐⭐ | 同上,但要求最优顺序、且中途电量会低 | 时序 + 资源约束 | T2 时序规划 |
| ⭐⭐⭐ | 执行中杯子滑落、柜门卡住——要恢复 | 执行监控 + 异常恢复 | T5 行为树 |
| ⭐⭐⭐⭐ | 物体位置只有概率估计(感知不确定) | 信念空间规划 | T6 不确定性 TAMP |
| ⭐⭐⭐ | 用一句自然话下达"帮我把厨房收拾干净" | 语言到符号的落地 | T7 大模型规划 |
| ⭐⭐⭐⭐ | 三台机器人协作收拾整个仓库 | 任务分配 + 多机协调 | T2 分配, T8 多机 TAMP |
2.2 为什么这个场景好用¶
选这个场景不是随意的,它刻意包含了任务层每一类困难的"最小触发条件":
- 顺序依赖:擦桌子前要先清空——触发任务规划。
- 几何可行性:够不到的架子、被挡住的物体——触发任务-运动耦合(TAMP 核心)。
- 资源/时序:电量耗尽、动作有时长——触发时序与数值规划。
- 执行异常:会滑落、会卡住——触发执行层与重规划。
- 不确定性:物体位置靠感知估计——触发信念空间规划。
- 多体分工:多台机器人——触发任务分配。
本质洞察:一个好的"贯穿场景"应该像一把多刻度的尺子——同一个场景,拧一下难度旋钮就能触发不同层次的挑战。这让学习者能在"控制变量"的条件下对比方法:不是换了个问题所以方法不同,而是同一个问题加了一道约束,于是必须升级方法。这种对比,比孤立地学每个方法记得牢得多——这也呼应了教学里"在对比中理解"的原则。
2.3 三个根问题在场景里的样子¶
把这个场景对照 §1.2 的任务层三件事,能看到三个根问题各自的形态:
场景: 三台机器人收拾仓库, 几十个物体各归其位
「谁来做」 任务分配
5个包裹 + 10件杂物, 怎么分给 R1/R2/R3?
R1顺路拿货架A的3件, R2负责重物(要不要R3帮忙?)...
↓ 每台机器人拿到自己的任务清单
「做什么·什么顺序」 任务规划
R1拿到清单后: 先拿哪件? 被挡住的先移开挡路的?
擦桌子前先清空? 电量低了中途回充?
↓ 每个子目标交给运动层, 但执行会出意外
「怎么稳地做下去」 任务执行
杯子滑了 → 重新抓; 柜门卡了 → 换策略或求助;
发现新障碍 → 触发重规划; 收到新指令 → 抢占当前任务
这三个根问题,就是下一节方法谱系要逐一对应的——每个板块都在解决其中某一个(或几个)问题。
3. 方法谱系大地图 ⭐⭐¶
这是本章的核心。任务层不是一个算法,而是一个由六大板块组成的方法生态。本节先给出全景图,再逐块说清"它解决什么、用什么工具、从哪来、和邻居什么关系"。
3.1 六大板块全景图¶
任务层方法生态
│
┌───────────────────────┼───────────────────────┐
│ │ │
【生成"做什么"】 【缝合符号与几何】 【组织与落地】
│ │ │
┌─────┴─────┐ ┌──────┴──────┐ ┌──────┴──────┐
│ │ │ │ │ │
①符号规划 ⑤学习式 ③流式集成 ②优化式 ④执行式 ⑥任务分配
(PDDL/HTN) (LLM规划) (PDDLStream) (LGP) (行为树) (MRTA)
│ │ │ │ │ │
逻辑推理 语言/常识 采样器接口 联合优化 控制流树 组合优化
离散搜索 生成候选 符号↔几何 符号+几何 监控+恢复 谁做哪个
│ │ │ │ │ │
经典AI规划 GPT/VLM 几何采样融入 轨迹优化与 Nav2/BT.CPP 匈牙利/拍卖
(1971起) (2022起) 符号搜索 逻辑联立 (2014起流行) /MILP/CBBA
│ │ │
└──── 解决:做什么 ──────┴─── 解决:跨越鸿沟 ──────┴── 解决:谁做+稳执行
六个板块可以归成三组:
- 第一组「生成"做什么"」——①符号规划、⑤学习式规划。它们都产出"该执行哪些动作、什么顺序",区别是①用逻辑搜索、⑤用语言模型的常识。
- 第二组「缝合符号与几何」——③流式集成 (PDDLStream)、②优化式 (LGP)。它们专门解决 §1.4 那道"任务-运动耦合"的核心难题,是狭义 TAMP 的两大主流范式。
- 第三组「组织与落地」——④执行式 (行为树)、⑥任务分配。④把规划好的东西稳健地执行下去(监控、恢复),⑥把任务在多机间分工。
3.2 板块①:符号规划——逻辑推理生成动作序列¶
| 项目 | 内容 |
|---|---|
| 解决什么 | 给定初始状态、目标、动作模型,搜索出一串达成目标的动作("做什么、什么顺序") |
| 核心工具 | STRIPS/PDDL 表示、启发式状态空间搜索(FF/LAMA)、HTN 分层分解(SHOP2)、时序规划(PDDL 2.1) |
| 数学本质 | 在离散状态/动作空间里的启发式图搜索;HTN 是受配方约束的搜索 |
| 从哪来 | AI 规划领域,STRIPS (1971) 奠基,PDDL (1998) 标准化,至今仍是任务层的"经典力学" |
| 本线对应 | T1(PDDL/FF 入门)、T2(启发式原理、HTN、时序规划深化) |
| 强项 / 弱项 | 强:可验证、有完备性/最优性理论保证;弱:要手写动作模型,纯符号、看不到几何 |
符号规划是任务层的根基。即便是最新的大模型规划,很多也要把语言翻译成 PDDL再交给经典规划器验证(§3.6 会讲)——所以哪怕你最终想做 LLM 规划,符号规划也是绕不开的地基。
3.3 板块②:优化式 (LGP)——把符号和几何揉进一个优化问题¶
| 项目 | 内容 |
|---|---|
| 解决什么 | 跨越符号-几何鸿沟的一种方式:不分两层,而是把"选哪个动作序列"和"轨迹怎么走"联立成一个优化问题一起解 |
| 核心工具 | 逻辑-几何规划 (Logic-Geometric Programming, LGP)、KOMO 轨迹优化、非线性规划 (NLP) |
| 数学本质 | 混合离散-连续优化:离散变量选动作骨架 (skeleton),连续变量定轨迹,目标函数编码"任务完成度 + 轨迹代价" |
| 从哪来 | Toussaint 等人的工作(2015 起)。优化式 TAMP 用目标函数定义目标条件,能处理开放式目标、机器人动力学和物理交互,特别适合求解高度复杂、富接触的运动与操作问题 |
| 本线对应 | T4(LGP 专章),T1 §8 有入门 |
| 强项 / 弱项 | 强:能处理接触丰富、动力学密集的操作(如推、倒、插);弱:优化非凸、对初值敏感、求解慢 |
本质洞察:优化式与符号式的根本区别在于"目标怎么表达"。符号规划用逻辑命题表达目标("杯子在架子上"为真);优化式用目标函数表达目标(最小化"杯子位置与目标位置之差")。前者适合离散的、是非分明的目标,后者适合连续的、有程度之分的目标("尽量靠近""尽量平稳")。这也是为什么富接触操作(力的大小、接触的角度都是连续量)更适合优化式。
3.4 板块③:流式集成 (PDDLStream)——让几何采样器把可行性流回符号层¶
| 项目 | 内容 |
|---|---|
| 解决什么 | 跨越鸿沟的另一种方式:保留符号规划的框架,但让它能调用几何"采样器"来获得连续参数(抓取位姿、放置位置、路径),并把几何可行性信息流回符号搜索 |
| 核心工具 | PDDLStream、Stream(条件化的几何采样器)、optimistic/certified 搜索 |
| 数学本质 | 符号搜索 + 几何采样的交替:符号层提出"需要一个能抓 p1 的位姿",Stream 采样器生成候选并验证,符号层据此继续 |
| 从哪来 | Garrett 等人(2018 起),是 Garrett 2021 综述里 TAMP 集成范式的代表 |
| 本线对应 | T3(PDDLStream 专章),T1 §7 有入门 |
| 强项 / 弱项 | 强:模块化(几何采样器可插拔)、保留符号规划的可验证性;弱:采样器设计需要技巧,效率依赖采样质量 |
②和③的对比——这是狭义 TAMP 的两条主流路线,值得并置:
| ②优化式 LGP | ③流式 PDDLStream | |
|---|---|---|
| 哲学 | 把符号和几何揉成一个优化 | 让符号搜索调用几何采样 |
| 符号与几何的关系 | 联立、同时求解 | 分工、交替协作 |
| 擅长 | 富接触、动力学密集的操作 | 物体多、组合复杂的搬运摆放 |
| 求解方式 | 非线性优化(连续为主) | 离散搜索 + 采样(离散为主) |
| 代表 | KOMO / RAI | PDDLStream |
3.5 板块④:执行式 (行为树)——稳健地把计划执行下去¶
| 项目 | 内容 |
|---|---|
| 解决什么 | 不解决"生成什么计划",而解决"怎么把计划稳健地执行下去"——监控执行、处理异常、失败恢复、响应新目标 |
| 核心工具 | 行为树 (Behavior Tree, BT)、tick 机制、Sequence/Fallback/Parallel 控制节点、BehaviorTree.CPP、Nav2 |
| 数学本质 | 一棵手工设计(或自动生成)的控制流树,每个 tick 决定当前该执行哪个动作;本质是混合动态系统的切换结构 |
| 从哪来 | 源自电子游戏 AI,2014 年后被机器人界广泛采用。行为树可以被看作序贯行为组合、包容架构和决策树这三者的推广——这三个工具各有所长却很不相同,BT 把它们自然统一,正是其流行的原因 |
| 本线对应 | T5(行为树专章,精读 Nav2 默认树) |
| 强项 / 弱项 | 强:模块化、反应快、易维护、工业标准;弱:本身不做规划,需要搜索/优化的任务序列它表达不了 |
本质洞察:行为树和前面板块的关系,最容易被误解。BT 不生成计划——它是执行层,不是规划层。
ComputePathToPose这个 BT 叶子节点背后是 A* 在规划,BT 只负责"按什么顺序 tick、失败退到哪"。所以 BT 与①符号规划是互补而非竞争:符号规划答"做什么",BT 答"怎么稳健地做下去"。前沿做法是让规划器在线生成 BT(plan-to-BT),把两者的长处结合——这是 T5 的重点。
一个必须澄清的混淆:行为树 (Behavior Tree) 不是决策树 (Decision Tree)。决策树是机器学习里从数据学出的分类模型(叶子是预测类别),行为树是机器人执行的控制流结构(叶子是动作)。两者都叫 "BT"、都是树,但一个用于"从特征预测标签"、一个用于"组织机器人行为"。事实上前面引用的定理表明,决策树是行为树的一个特例——BT 比决策树更一般。本线讲的始终是行为树。
3.6 板块⑤:学习式 (LLM 任务规划)——用语言模型的常识生成候选¶
| 项目 | 内容 |
|---|---|
| 解决什么 | 用大语言模型 (LLM) / 视觉语言模型 (VLM) 的常识与语言理解,把自然语言指令转成任务计划,或为符号规划提供启发式 |
| 核心工具 | LLM 提示工程、ReAct/Inner Monologue 推理、SayCan(语言可行性加权)、Code-as-Policies、LLM 生成 PDDL |
| 数学本质 | 用预训练模型在符号层"生成候选",再用经典方法(可行性检查、规划器)验证 |
| 从哪来 | 2022 年 SayCan 后爆发。当前研究分两大范式:LLM-as-Planner(直接让 LLM 输出动作序列)和 LLM-as-Modeler(让 LLM 生成 PDDL 模型再交给经典规划器)。近期工作把自然语言指令转成结构化几何表示以连接抽象语言理解与空间推理,还有的把 LLM 与视觉语言模型结合做视觉感知,并在闭环系统里用 LLM 生成初始状态与目标、配合自纠错循环 |
| 本线对应 | T7(大模型规划专章) |
| 强项 / 弱项 | 强:处理开放式自然语言、零样本泛化、利用海量常识;弱:不保证可行性/最优性、可能幻觉、难验证 |
本质洞察:LLM 在任务层的正确定位,是"有常识但不严谨的任务规划器"——它擅长生成像样的候选(这步符合常识吗?),但不做几何可行性检查、不解组合优化、不保证最优。所以主流做法不是用 LLM 取代经典规划,而是把它当成①符号规划的"前端"或"启发式":LLM 把语言/常识转成候选或 PDDL,经典规划器/可行性检查器把好关。这呼应 §1.1 那个反差的解法——LLM 给机器人补常识,经典方法给机器人保严谨,两者合起来才是完整的大脑。这条边界(LLM 增强而非取代)是 T7 的核心。
3.7 板块⑥:任务分配 (MRTA)——决定谁来做哪个¶
| 项目 | 内容 |
|---|---|
| 解决什么 | 多机器人时的"谁来做":把任务集合分给执行者集合,优化总代价/时间/均衡 |
| 核心工具 | MRTA 分类学(ST/MT × SR/MR × IA/TA)、匈牙利算法(线性指派)、MILP 建模、市场/拍卖(CBBA) |
| 数学本质 | 组合优化:从指派问题(多项式可解)到带约束分配(NP-hard) |
| 从哪来 | Gerkey & Matarić (2004) 的分类学奠基,把 MRTA 各类问题映射到运筹学已知问题;Choi 等 (2009) 的 CBBA 是分布式拍卖代表 |
| 本线对应 | T2(分配理论 + 匈牙利/MILP/拍卖),T8(多机 TAMP 中的分配-规划联合),与 Multi_03 交叉 |
| 强项 / 弱项 | 强:有清晰的复杂度理论指导选型;弱:与规划耦合时(代价依赖路线)难解,要走向联合优化 |
任务分配是任务层里"最像运筹学"的板块——它的核心不是逻辑推理而是组合优化。它和①②③(讲单体规划)正交:分配决定"谁",规划决定"那个人怎么做"。两者耦合时(顺路、避让)问题最难,这是 T2 §9 和 T8 的主题。
3.8 板块之间怎么协作:一张数据流图¶
六个板块不是孤立的,真实系统里它们串成一条数据流。以"三台机器人收拾仓库、用自然语言下达"为例:
人: "把仓库收拾干净"
│
▼
⑤ LLM 规划: 理解意图, 拆出高层子任务 + 生成/补全 PDDL 目标
│ (有常识但不严谨, 需下游验证)
▼
⑥ 任务分配: 把子任务分给 R1/R2/R3 (匈牙利/拍卖)
│ (谁做哪些)
▼
① 符号规划: 每台机器人把自己的清单排成有序动作 (FF/HTN)
│ (做什么顺序; 验证 LLM 候选的逻辑可行性)
▼
②/③ TAMP 集成: 为每个动作求几何可行的参数与轨迹 (LGP / PDDLStream)
│ (跨越符号-几何鸿沟; 够不到就反馈回①重排)
▼
④ 行为树执行: 稳健执行每条轨迹, 监控异常, 失败恢复, 响应新指令
│ (出事就重规划, 反馈回上游)
▼
运动层 (RRT/MPC/...) → 控制层 → 硬件
本质洞察:这张图揭示了任务层各板块的真实分工——它们像一条流水线上的不同工序,从"模糊意图"逐级精炼到"可执行轨迹"。⑤负责理解、⑥负责分工、①负责排序、②③负责落地几何、④负责稳健执行。箭头不全是单向的:②③够不到会反馈回①、④出事会反馈回上游——这些反馈回路正是 §1.4 强调的"耦合",是整条线最难也最关键的部分。一个工业级系统未必六块全用(单机就没⑥、不要语言就没⑤),但理解这条完整流水线,你才知道自己的系统缺了哪一环、该补哪一块。
4. 三个根问题 ⭐¶
把六大板块"竖着"切一刀,会看到它们其实在回答三个根问题。这一节从"问题"而非"方法"的角度重新组织,帮你建立"遇到问题先归类"的思维。
4.1 根问题一:做什么、什么顺序(规划)¶
问题形态:给定目标和当前状态,决定该执行哪一串动作。
这是任务层最核心的问题,由板块①(符号规划)、⑤(学习式)、②③(TAMP 集成,在涉及几何时) 共同回答。它的难点谱系:
- 最简单:目标清晰、动作独立、无几何约束 → 经典 PDDL 搜索(T1)。
- 加长程:任务几十步、搜索爆炸 → HTN 用配方压缩搜索(T2)。
- 加时序:动作有时长、要并发、有资源 → 时序与数值规划(T2)。
- 加几何:动作可行性取决于物理(够不够得到)→ TAMP 集成(T3 PDDLStream / T4 LGP)。
- 加语言:目标用自然话给出 → LLM 规划(T7)。
4.2 根问题二:谁来做(分配)¶
问题形态:多个执行者时,把任务分给谁。
这是板块⑥(任务分配) 的领地,单机器人时这个问题消失(只有一个执行者)。它的难点谱系(由 MRTA 分类学刻画,T2 详述):
- 最简单:瞬时、每任务一机器人、每机器人一任务 → 线性指派,匈牙利算法多项式可解。
- 加未来:要排未来的任务序列 → NP-hard,MILP 或拍卖。
- 加协作:一个任务要多机合作 → 联盟形成,更难。
- 加依赖:代价取决于路线(顺路便宜)→ 与规划耦合,走向联合优化(T8)。
4.3 根问题三:怎么稳地做下去(执行)¶
问题形态:计划有了,但执行中世界不配合(障碍突现、抓取滑脱、目标变更),怎么稳健地执行下去。
这是板块④(行为树) 的领地,也是最容易被新手忽略、却在工业界占工程量最大头的问题。它的核心机制:
- 监控:持续检查执行是否按预期进行(路径还有效吗?抓取成功了吗?)。
- 反应:环境变化时快速响应(新障碍 → 重规划;新指令 → 抢占)。
- 恢复:失败时有后备策略(抓取失败 → 重试;卡住 → 清代价地图/原地转/后退)。
本质洞察:三个根问题对应机器人自主性的三个层次——会想(规划)、会分工(分配)、扛得住意外(执行)。学术研究偏爱前两个(有漂亮的理论),但真实部署的成败往往系于第三个。一个只会规划不会执行监控的机器人,在实验室能跑、一到真实环境就因为"世界不按计划走"而频繁卡死。这就是为什么本线专门用一章(T5)讲执行——它补上了从"算法 demo"到"能用的系统"之间那道最关键的缝。
4.4 三个根问题与六大板块的对应表¶
把问题和方法交叉成一张表,作为本章方法地图的总索引:
| 根问题 | 主要板块 | 次要板块 | 核心分章 |
|---|---|---|---|
| 做什么·什么顺序 | ①符号规划 ⑤学习式 | ②③(涉几何时) | T1, T2, T3, T4, T7 |
| 谁来做 | ⑥任务分配 | —(与规划耦合时联动①) | T2, T8 |
| 怎么稳地做下去 | ④执行式(行为树) | —(触发上游重规划) | T5 |
| 跨越符号-几何鸿沟 | ②优化式 ③流式 | (服务于"做什么"的几何落地) | T3, T4 |
| 不确定性贯穿三者 | (信念空间,给三个问题都加一层) | — | T6 |
5. 历史脉络 ⭐¶
理解任务层的最好方式之一,是看它怎么一步步长出来的。每一代方法都是为解决上一代的某个具体局限而生——理清这条因果链,比孤立记住每个方法有用得多。
5.1 一条主线:从符号到语言¶
1971 STRIPS 用前提/效果描述动作, 离散符号规划诞生
│ 局限: 各家表示不统一, 无法交流、无法公平比较
▼
1998 PDDL 标准化语言, 国际规划竞赛(IPC)推动, 规划器百花齐放
│ 局限: 纯符号, 看不到几何; 长任务搜索爆炸
▼
2000s HTN / 启发式搜索 HTN(SHOP2)用配方压缩搜索; FF用删除松弛造强启发式
│ 局限: 仍是纯符号; 机器人操作需要几何可行性
▼
2010s TAMP 集成 PDDLStream / LGP 缝合符号与几何, 狭义TAMP成形
│ 局限: 要手写动作模型与采样器; 不懂自然语言、缺常识
▼
2022+ LLM 任务规划 SayCan起, 用大模型补常识与语言; LLM生成PDDL/候选
现状: 增强而非取代经典方法; 可行性仍靠经典规划器把关
5.2 每一代解决了什么、又留下了什么¶
| 年代 | 里程碑 | 解决了前代什么局限 | 自己留下什么局限(催生下一代) |
|---|---|---|---|
| 1971 | STRIPS | 第一次形式化"动作",让规划可计算 | 各家表示不通用,无法交流比较 |
| 1998 | PDDL | 标准化,催生 IPC 竞赛与一批强规划器 | 纯符号,看不到几何;长任务爆炸 |
| 2000s | HTN / FF 启发式 | HTN 用领域知识压缩搜索;FF 用松弛造强启发式,搜索提速几个数量级 | 仍纯符号,机器人操作的几何可行性无解 |
| 2010s | PDDLStream / LGP | 缝合符号与几何,让规划器"看得到"够不够得到 | 要手写模型与采样器;不懂语言、缺常识 |
| 2022+ | SayCan / LLM 规划 | 补上常识与自然语言理解,开放式任务成为可能 | 不保证可行/最优、会幻觉、难验证 |
本质洞察:这条历史线有一个清晰的韵律——每一代都在"扩大能处理的问题范围"和"保持可验证性"之间寻找新的平衡点。符号规划可验证但范围窄(纯离散);TAMP 集成扩大到几何但要手写模型;LLM 扩大到开放语言但牺牲了可验证性。最前沿的研究(LLM+经典规划混合)正是想把钟摆拉回来——既要 LLM 的开放性,又要经典方法的可验证性。看懂这个钟摆,你就能预判任务层下一步往哪走:不会是"LLM 取代一切",而会是"如何让学习式的开放性和符号式的严谨性更好地结合"。这也正是本大纲把 T7(大模型)放在 T1-T4(经典与集成)之后、并强调"增强而非取代"的原因。
5.3 为什么经典方法没有被淘汰¶
一个常见的误解是"有了大模型,经典符号规划该进博物馆了"。事实恰恰相反——经典方法不仅没被淘汰,反而成了大模型规划的"安全网"。原因在 §3.6 已点明:LLM 不做可行性检查、不保证最优。学习式方法在 TAMP 里成为重要趋势,因为它对提升经典方法的可扩展性和泛化性很有前景;把学习用作启发式能提升经典方法效率(如用神经可行性分类器加速任务序列搜索中的动作可行性检查),生成模型则有望替换经典方法中的某些组件——注意这里的措辞是"提升""加速""替换某些组件",而非"取代整个框架"。
这就是为什么本线的学习顺序是先经典(T1-T4)后学习(T7):经典方法是地基,学习式是地基之上的增益层。不懂 PDDL,你连 LLM 生成的 PDDL 对不对都判断不了。
6. 方法选型决策树 ⭐⭐¶
地图画完了,但面对一个真实任务,你仍需要回答:该走哪条技术路线? 本节给一棵选型决策树。
6.1 先澄清:两种"决策树"别混了¶
这里要讲一个容易混淆、但对理解整条线很关键的区分。本节这棵"决策树"和你将在 T5 学到的 Nav2 行为树,都是树、都在做"决策",但它们是两个层次、两个使用者的东西:
| 本节的方法选型树 | Nav2 的行为树(T5) | |
|---|---|---|
| 谁在用 | 工程师(人) | 机器人(运行时自动) |
| 什么时候用 | 设计时——决定系统该用哪套框架 | 运行时——机器人每个 tick 按它决定下一步动作 |
| 树的节点是什么 | 判断条件("任务有几何约束吗?"),叶子是"用哪个方法" | 控制节点 (Sequence/Fallback),叶子是动作 |
| 用一次还是反复用 | 设计阶段用一次,定下技术路线 | 执行中每秒 tick 几十次,持续运行 |
| 类比 | 选购指南:"你的需求该买哪款" | 自动驾驶仪:"此刻该做什么动作" |
本质洞察:这个区分点出了任务层一个微妙但重要的事实——"决策"发生在两个时间尺度上。设计时的决策是工程师做的、一次性的、关于"用什么架构"(本节的选型树);运行时的决策是机器人做的、持续的、关于"此刻做什么动作"(行为树)。混淆两者会导致荒唐的结论,比如"既然要做决策树,是不是用行为树就能自动选出该用 PDDL 还是 LGP"——不能,因为前者是人的架构选型、后者是机器的动作选择,根本不在一个层次。看清这一点,你才能理解为什么 T5 的行为树是"执行层"而不是"决策层的全部"。
6.2 方法选型决策树¶
下面这棵树供工程师在设计阶段走一遍,判断任务层该用哪条路线:
开始: 我有一个机器人任务, 任务层该怎么搭?
│
├─ Q1: 是多机器人协作吗?
│ ├─ 是 → 先解"谁来做": 走板块⑥任务分配
│ │ ├─ 任务彼此独立、要最优、规模不大 → 匈牙利/MILP (T2)
│ │ ├─ 要分布式、规模大 → 拍卖/CBBA (T2, Multi_03)
│ │ └─ 代价依赖路线(顺路/避让) → 分配-规划联合 (T8)
│ │ ↓ 分配完, 每台机器人各自往下走 Q2
│ └─ 否(单机器人) → 直接进 Q2
│
├─ Q2: 任务指令是自然语言、或需要开放式常识吗?
│ ├─ 是 → 引入板块⑤ LLM 规划做前端 (T7)
│ │ ⚠️ 但 LLM 输出必须下游验证, 继续走 Q3
│ └─ 否(目标已是形式化的) → 直接进 Q3
│
├─ Q3: 动作可行性强烈依赖几何吗? (够不够得到、抓取位姿、无碰撞放置)
│ ├─ 否(纯逻辑、几何平凡) → 板块①符号规划足矣
│ │ ├─ 任务短、目标清晰 → PDDL + FF/LAMA (T1)
│ │ ├─ 任务长、有标准流程 → HTN/SHOP2 (T2)
│ │ └─ 有时长/并发/资源 → 时序规划 PDDL2.1 (T2)
│ └─ 是 → 需要 TAMP 集成跨越鸿沟, 进 Q4
│
├─ Q4: 操作是"富接触/动力学密集"还是"组合摆放"?
│ ├─ 富接触(推、倒、插、力控) → 板块②优化式 LGP (T4)
│ └─ 组合摆放(多物体、抓放为主) → 板块③流式 PDDLStream (T3)
│
└─ Q5: (贯穿) 以下条件命中任意一条, 叠加对应板块:
├─ 物体位置/状态只有概率估计 → 叠加 T6 不确定性 TAMP (信念空间)
└─ 要部署到真实环境、需异常恢复 → 必加板块④行为树执行层 (T5)
(几乎所有真实系统都命中这条——执行层不是可选项)
6.3 决策树的几条使用须知¶
须知一:板块是叠加的,不是互斥的。 决策树不是"选一个就排斥其余"。一个完整系统常常多块叠加:用 LLM 做前端(⑤)+ 任务分配分工(⑥)+ 符号规划排序(①)+ PDDLStream 落地几何(③)+ 行为树稳健执行(④)。决策树帮你判断"需要哪几块",而非"只能用一块"。
须知二:执行层(④行为树)几乎是必选项。 Q5 最后那条"要部署到真实环境"——几乎所有真实系统都命中。实验室 demo 可以省略执行监控(环境受控、不出意外),但凡要在真实世界跑,异常恢复就是刚需。所以把行为树当成"默认要有",而不是"可选加项"。
须知三:先定问题类别,再选方法。 这棵树的每个 Q 都是在判断"问题属于哪类",方法是问题类别的自然结果。反过来——先有偏好的方法再硬套问题——是新手最常见的错误("我会 CBBA,所以什么分配都用 CBBA")。永远先归类问题(用 §3 地图和这棵树),再选方法。
本质洞察:好的工程选型不是"我熟悉什么就用什么",而是"问题需要什么就用什么"。这棵决策树的真正价值,不在于它给出的具体答案,而在于它强迫你按问题的内在结构(多机?语言?几何?接触?不确定?)逐层提问——把模糊的"这任务该怎么做"拆成几个能明确回答的判断。一旦你能熟练走这棵树,你就具备了任务层工程师最核心的能力:面对新问题,快速定位它在方法地图上的坐标。
7. 全线学习路线图 ⭐⭐¶
最后给出整条 TAMP 线的学习地图——9 个分章的依赖关系、按目标选的角色路径、与其他线的交叉。
7.1 九个分章一览¶
| 编号 | 章节 | 难度 | 周 | 角色 | 核心板块 |
|---|---|---|---|---|---|
| T0 | 任务规划与分配总论(本章) | ⭐~⭐⭐ | 1 | 地图/入口 | 全景 |
| T1 | 任务与运动规划基础 | ⭐~⭐⭐⭐⭐ | 4 | 基础课 | ①符号 + TAMP 入门 |
| T2 | 任务规划与任务分配 | ⭐~⭐⭐⭐⭐ | 3 | 决策层纵深 | ①深化 + ⑥分配 |
| T3 | PDDLStream 与流式集成 | ⭐⭐⭐~⭐⭐⭐⭐ | 2.5 | 集成范式 A | ③流式 |
| T4 | 逻辑-几何规划 LGP | ⭐⭐⭐⭐ | 2 | 集成范式 B | ②优化式 |
| T5 | 行为树与反应式执行 | ⭐⭐~⭐⭐⭐ | 2 | 执行层 | ④执行式 |
| T6 | 不确定性下的 TAMP | ⭐⭐⭐⭐ | 2.5 | 进阶 | 信念空间,接 U 线 |
| T7 | 大模型任务规划 | ⭐⭐⭐ | 2 | 前沿 | ⑤学习式 |
| T8 | 多机器人 TAMP | ⭐⭐⭐⭐ | 2 | 进阶 | ⑥×①×运动 联合,接 Multi 线 |
| T9 | 长时域移动操作综合实战 | ⭐⭐⭐ | 2.5 | 整合 | 全栈集成 |
7.2 章节依赖关系¶
T0 总论(本章, 地图)
│ 读完有全貌, 再按需深入
▼
T1 基础(PDDL/TAMP入门) ★必修地基
│
┌───────────────┼───────────────┐
▼ ▼ ▼
T2 规划+分配 T5 行为树执行 (可并行起步)
①深化+⑥分配 ④执行层
│ │
┌──────┴──────┐ │
▼ ▼ │
T3 PDDLStream T4 LGP │ ← 两条集成范式, 可任选其一深入或都学
③流式 ②优化 │
│ │ │
└──────┬──────┘ │
▼ │
┌────┴──────┬────────┤
▼ ▼ ▼
T6 不确定性 T7 大模型 T8 多机TAMP ← 三个进阶方向, 相对独立
(接U线) (前沿) (接Multi线)
└───────────┼────────┘
▼
T9 综合实战(全栈整合) ★收尾
读法:T0(本章)→ T1 是所有人的必经地基。之后 T2/T5 可并行起步(一个深化规划+分配,一个补执行层)。T3/T4 是两条集成范式,按你的应用选(富接触选 T4,组合摆放选 T3,或都学)。T6/T7/T8 是三个相对独立的进阶方向。T9 整合收尾。
7.3 四条角色路径¶
不必九章线性通关。按你的目标选一条:
路径甲——移动操作工程师(最主流,~13 周):
路径乙——多机器人任务协调(~12 周):
T0(1) → T1(4) → T2(3, 重⑥分配) → T8(2) → T9(多机部分)
配合 Multi 线: Multi_03(MAPF) → Multi_04(分布式MPC)
重点: 任务分配 + 多机 TAMP 联合
路径丙——研究/前沿(~13 周):
路径丁——工业落地/快速可用(~9 周,最小可行):
7.4 与其他横切线的交叉引用¶
TAMP 线不是孤岛,它在多处与大纲其他线咬合:
| TAMP 章 | 交叉的线/章 | 交叉点 |
|---|---|---|
| T2 任务分配 | Multi_03(任务分配与 MAPF) | CBBA、MAPF;T2 给理论骨架,Multi_03 给多机路径应用 |
| T2 时序规划 | T 线 ST 图(20_Frenet坐标系与ST图) |
都处理时间;STN 是任务层离散时序,ST 图是运动层连续时空 |
| T5 行为树 | MPPI_08(Nav2 MPPI 控制器) | Nav2 行为树里的 FollowPath 叶子,可由 MPPI 控制器实现 |
| T5 行为树 | 06_工程实践(BT.CPP) | 行为树的工程实现框架 |
| T6 不确定性 TAMP | U 线 U4(POMDP/Belief) | 信念空间规划;T6 用 POMDP 机器处理符号层不确定性 |
| T8 多机 TAMP | Multi 线(分布式 MPC、MARL) | 多机协调的运动层;T8 管任务分配+规划,Multi 管协同控制 |
| T7 大模型 | 06_具身智能(VLA) | 边界:T7 只讲 LLM 作任务规划器,端到端 VLA 归具身智能线 |
本质洞察:TAMP 线在整个大纲里扮演"大脑",所以它天然要和各个"小脑/脊髓"线对接——任务层产出的子目标,最终都要落到运动层(T/U/G/MPPI/Multi)去执行。这张交叉表的真正含义是:学 TAMP 不能只学 TAMP。当你学到 T5 行为树的
FollowPath节点,回头看 MPPI_08 你会更懂那个节点背后是什么;当你学到 T6 信念空间,回头看 U4 POMDP 你会更懂不确定性怎么进入符号层。带着"大脑如何指挥小脑"的视角在 TAMP 线和运动线之间往返,是把整个规控体系融会贯通的关键。
本章小结¶
本章是整条 TAMP 线的入口地图。回顾全章:
- §1 任务层是什么:任务层是机器人的"大脑",坐在"人的意图"与"运动层"之间,把模糊意图翻译成可执行子目标。它与运动层的分界是"离散符号 vs 连续几何",而两层的耦合(不能简单先任务后运动)是 TAMP 全部困难的根源。
- §2 贯穿场景:仓库/家庭机器人,一把多刻度的尺子——拧难度旋钮就触发不同层次的挑战,供后续每章对比方法。
- §3 方法谱系:六大板块——①符号规划、②优化式 LGP、③流式 PDDLStream、④执行式行为树、⑤学习式 LLM、⑥任务分配——归为"生成做什么 / 缝合符号几何 / 组织与落地"三组,串成一条从意图到轨迹的数据流。
- §4 三个根问题:做什么(规划)、谁来做(分配)、怎么稳地做下去(执行);学术偏爱前两个,工业成败常系于第三个。
- §5 历史脉络:STRIPS→PDDL→HTN/启发式→TAMP集成→LLM,一条"扩大问题范围 vs 保持可验证性"的钟摆;经典方法不是被淘汰,而是成了大模型的安全网。
- §6 选型决策树:设计时供工程师走一遍判断技术路线;务必区分它(人、设计时、选架构)与 Nav2 行为树(机器、运行时、选动作)。
- §7 学习路线:九章依赖关系 + 四条角色路径 + 与 T/U/G/Multi 线的交叉。
核心术语速查¶
| 术语 | 一句话定义 |
|---|---|
| 任务层 (Task Level) | 机器人软件栈中决定"做什么、谁做、什么顺序"的离散决策层,区别于运动层 |
| TAMP | 任务与运动规划,研究如何缝合"离散任务规划"与"连续运动规划"这两个说不同语言的世界 |
| 符号-几何鸿沟 | 任务层(命题)与运动层(连续向量)之间的表示差异,TAMP 全部困难的根源 |
| 符号规划 (板块①) | 用 PDDL/HTN 等逻辑表示、靠图搜索生成动作序列的经典 AI 规划 |
| LGP (板块②) | 逻辑-几何规划,把任务选择与轨迹优化联立成一个混合优化问题 |
| PDDLStream (板块③) | 让符号规划调用几何采样器、把可行性信息流回符号搜索的 TAMP 框架 |
| 行为树 (板块④) | 组织机器人执行的控制流树,管监控/反应/恢复;注意≠机器学习的决策树 |
| LLM 任务规划 (板块⑤) | 用大模型的语言理解与常识生成任务计划或为符号规划提供启发式 |
| MRTA (板块⑥) | 多机器人任务分配,核心是组合优化,由分类学指导选型 |
| 三个根问题 | 做什么(规划)/ 谁来做(分配)/ 怎么稳地做下去(执行) |
知识点总表¶
| # | 知识点 | 核心要点 | 对应节 | 难度 |
|---|---|---|---|---|
| 1 | 任务层定位 | 大脑层,意图↔运动层之间的翻译 | §1.1-1.2 | ⭐ |
| 2 | 离散 vs 连续分界 | 符号-几何鸿沟,TAMP 困难根源 | §1.3 | ⭐ |
| 3 | 不能解耦 | 先任务后运动会指数回溯,须耦合 | §1.4 | ⭐⭐ |
| 4 | 贯穿场景 | 多刻度尺子,触发各层次挑战 | §2 | ⭐ |
| 5 | 六大板块 | 符号/优化/流式/执行/学习/分配 | §3.1-3.7 | ⭐⭐ |
| 6 | 板块协作数据流 | 从意图到轨迹的流水线 + 反馈回路 | §3.8 | ⭐⭐ |
| 7 | 三个根问题 | 做什么/谁来做/怎么稳地做 | §4 | ⭐ |
| 8 | 历史钟摆 | 扩大范围 vs 保持可验证性 | §5 | ⭐ |
| 9 | 选型决策树 | 设计时按问题结构逐层提问 | §6.2 | ⭐⭐ |
| 10 | 选型树 vs 行为树 | 人/设计时/选架构 vs 机器/运行时/选动作 | §6.1 | ⭐⭐ |
| 11 | 学习路线 | 九章依赖 + 四角色路径 + 跨线交叉 | §7 | ⭐⭐ |
延伸阅读¶
综述与教材(建立全貌,按推荐顺序): - Garrett et al. (2021), "Integrated Task and Motion Planning," Annual Review of Control, Robotics, and Autonomous Systems. ⭐⭐⭐ —— 狭义 TAMP 的权威综述,本线 T1/T3/T4 的总纲。 - Zhao et al. (2024), "A Survey of Optimization-Based Task and Motion Planning: From Classical to Learning Approaches," IEEE/ASME T-Mechatronics. ⭐⭐⭐ —— 把经典、优化、学习三条路线统一梳理,本章 §3/§5 的主要依据。 - Gerkey & Matarić (2004), "A Formal Analysis and Taxonomy of Task Allocation in Multi-Robot Systems," IJRR 23(9). ⭐⭐ —— 任务分配(板块⑥)的奠基分类学,T2 详用。 - Iovino et al. (2022), "A Survey of Behavior Trees in Robotics and AI," Robotics and Autonomous Systems 154. ⭐⭐ —— 行为树(板块④)综述,T5 详用。 - Colledanchise & Ögren (2018), Behavior Trees in Robotics and AI: An Introduction, CRC Press. ⭐⭐⭐ —— 行为树标准教材,含"BT 推广决策树"的形式化。
前沿方向(大模型任务规划,板块⑤): - LLM-as-Planner 与 LLM-as-Modeler 两大范式的综述(2024-2025,arXiv)。⭐⭐⭐ —— T7 的入口,理解 LLM 在任务层"增强而非取代"的定位。
入门补充: - 经典 AI 教材中"自动规划"章节(如 Russell & Norvig《AIMA》规划部分)。⭐ —— 符号规划(板块①)的最基础入门。
本章与后续章节的关系¶
| 后续章节 | 本章哪部分为它铺垫 | 它如何深化本章 |
|---|---|---|
| T1 基础 | §3.2 板块①、§5 历史 | 真正教你写 PDDL、跑规划器、理解 TAMP 入门 |
| T2 规划+分配 | §3.2/§3.7、§4.1/§4.2 | 深化符号规划启发式、HTN、时序,补全任务分配理论 |
| T3 PDDLStream | §3.4 板块③ | 详解流式集成如何缝合符号与几何 |
| T4 LGP | §3.3 板块② | 详解优化式如何联立任务与轨迹 |
| T5 行为树 | §3.5 板块④、§4.3、§6.1 | 精读 Nav2 默认树,讲清执行层与规划的接口 |
| T6 不确定性 | §4.4 "不确定性贯穿" | 给三个根问题都加一层信念空间 |
| T7 大模型 | §3.6 板块⑤、§5 钟摆 | 详解 LLM 两大范式与"增强而非取代"边界 |
| T8 多机 TAMP | §3.7 板块⑥、§4.2 | 详解分配-规划-运动的多机联合 |
| T9 综合实战 | §3.8 数据流、§7 全栈 | 把六大板块整合成一个可运行的长时域系统 |
结语:本章只画了地图,没有带你走进任何一栋建筑。但有了这张地图,你接下来学 T1 的 PDDL、T3 的 PDDLStream、T5 的行为树时,就不会"只见树木不见森林"——你会知道每项技术在整片森林里的位置、它的邻居是谁、它解决三个根问题里的哪一个。带着地图前行,是高效穿越一个复杂领域最好的方式。 下一站:T1,真正动手写第一个任务规划器。
下一章预告:TAMP_T1《任务与运动规划基础》将从零教你符号规划——STRIPS 表示、完整的 PDDL domain/problem 编写、用规划器求解,再到 TAMP 的核心挑战(符号-几何鸿沟、无限分支因子、几何可行性)与三大集成范式入门。它是本章地图之后的第一座、也是最重要的一座建筑。