6. 导航编排综述(Survey)

本文范围:编排谱系、Autonomy 能力边界与选型依据
形式化见 §0 指南;模块架构见 §1;BT 专题见 §2–§5


6.1 综述定位

维度

本文

其他文档

SE(2) 任务形式化、双层 GoalChecker

不展开

§0.3

BtNavigator 分层、tick 时序

不展开

§1§3 引擎

XML 逐层、插件端口

摘要 + 链接

§2 总览 · §4–§5

编排历史、分类、选型

本文

全局路径 / 局部轨迹

摘要

Planning 综述 §6 · Control 综述 §6

建议阅读顺序

角色

路径

选型 / 集成

§6.6 → §6.7 排错对照

BT 定制

§6.3 → §6.5 模式族 → §4

背景调研

§6.4 → §6.5 → §6.9 参考文献


6.2 Autonomy 能力边界

Autonomy navigatornav2 兼容的 L1 编排层:将用户目标转化为对 planning / control / map 的 Action 调用序列,不实现路径搜索或跟踪律。

1995 BDI/FSM → 2010 ROS move_base → 2018 Nav2 BT → 2022 Groot2 → 2025 Autonomy navigator
                                                                              ├── BT XML(局部生存)
                                                                              ├── 52 插件清单
                                                                              └── 直驱 / BT 双模式

能力

状态

说明

nav2 对齐 BT XML

单点 + 多点 + Groot 模型

RecoveryNode / PipelineSequence

✅ XML

与 Nav2 默认同型

局部生存(TF 丢失)

✅ XML

Autonomy 增强

BtEngine + 52 插件 .so

待迁回

直驱规划调试

NavigateDirectToPose

HTN / 任务规划器

上层应用

多机 MAPF 编排

需 Fleet 层

LLM 高层任务分解

研究向(见 §6.8)


6.3 编排范式分类

6.3.1 四维分类法

导航编排
├── 表示:FSM · 行为树 BT · BDI · HTN · 脚本/DSL
├── 反应性:开环脚本 · 每 tick 重检(ReactiveFallback)· 事件驱动 FSM
├── 恢复:硬编码(move_base)· 子树组合(RecoveryNode)· 学习策略
└── 可配置性:编译期 · XML 热替换 · 运行时 Goal 指定树

6.3.2 范式—特性矩阵

范式

代表

可读性

组合性

反应性

恢复扩展

Autonomy

FSM

move_base、早期游戏 AI

状态少时好

差(\(N^2\) 转移)

需显式边

硬编码

历史对照

BT

Nav2、BT.CPP

XML + Groot 高

子树复用

Reactive 节点

RecoveryNode

✅ 目标

BDI

PRS、JAM

信念/意图抽象

需设计

HTN

SHOP2、ROSPlan

任务分解清晰

规划周期

重规划层

脚本

launch + 服务调用

手动

直驱近似


6.4 发展时间轴

按五个历史阶段分块展示里程碑;完整对照见 §6.4.1

任务表示奠基 · 1980s–1990s
1985
BDI 架构
Belief–Desire–Intention,智能体任务推理
1992
HTN 规划
层次任务网络,分解复合任务
1995
PRS / JAM
反应式规划与 FSM 混合
1998
Gat 综述
移动机器人三层架构:规划/执行/控制
ROS 反应式栈 · 2000s–2010s
2002
Player/Stage
开源机器人中间件先驱
2007
ROS navigation
move_base FSM + global/local planner
2009
actionlib
长时间任务 Action 抽象
2013
ROSPlan
PDDL 任务规划接入 ROS
行为树兴起 · 2005–2018
2005
Façade / Halo
游戏 AI 中 BT 替代 FSM
2012
BT 期刊论文
BT 形式化进入学术主流
2014
BT ≡ FSM 表达力
BT 与 FSM 等价性证明
2018
BT 专著
机器人 BT 系统化教材
Nav2 与工程化 · 2018–2023
2019
Navigation2
ROS 2 导航栈,BT Navigator 为核心
2020
BT.CPP v3
C++17、插件化、黑板
2022
Groot2
BT 可视化编辑与在线监控
2023
ROS 2 导航综述
Nav2 算法与 BT 架构权威梳理
前沿 · 2023–
2023
BT 综述 RAS
机器人/AI 领域 BT 全面调查
2024
LLM + BT
大模型生成/修补行为树
2024
Nav2 Lifecycle
编排与生命周期深度集成
2025+
语义导航编排
VLM 目标 + 经典 BT 执行层

6.4.1 分阶段特征表

阶段

年代

核心矛盾

编排解法

局限

任务表示

1980s–90s

复合任务如何分解

BDI、HTN、三层架构

与运动层耦合弱

ROS 反应式

2000s–10s

实时避障 + 全局路径

move_base FSM、actionlib

恢复逻辑难定制

BT 理论

2005–18

FSM 状态爆炸

层次 BT、与 FSM 等价证明

工程库分散

Nav2 工程

2019–23

ROS 2 生命周期 + 可配置

BT Navigator、BT.CPP、Groot2

默认树偏保守

前沿

2023–

自然语言任务 + 安全执行

LLM 规划 + BT 护栏、语义地图

可靠性待验证


6.5 编排模式族

6.5.1 行为树导航理论与优势

维度

FSM(move_base)

BT(Nav2 / Autonomy)

结构

扁平转移图

层次树 + 子树复用

可读性

状态多时难维护

XML + Groot 可视化

反应性

需显式转移边

ReactiveFallback 每 tick 重检

恢复

recovery_behaviors 硬编码列表

RecoveryNode 参数化子树

定制

改 C++ 重编译

换 XML 或 Goal 指定树

黑板模式:节点通过 \(\mathcal{B} = \{g, p, q_r, \ldots\}\) 共享数据,解耦 Action 与 Condition。详见 §2.3

6.5.2 标准流水线(Pipeline)

\[ \mathrm{Plan} \xrightarrow{\mathrm{Smooth}} \mathrm{Validate} \xrightarrow{\mathrm{Follow}} \mathrm{Goal} \]

PipelineSequence + RateController:Nav2 与 Autonomy 默认同型。Autonomy 在 ReactiveFallback 内增加 局部生存 分支(TF 丢失时低速运动 + 重定位),见 §4

6.5.3 恢复层级

级别

触发

动作

Autonomy

L0 上下文

单节点 FAILURE

清局部图 + Wait

LocalSurvival 内

L1 导航

Pipeline FAILURE

清全局 + BackUp + Spin

NavigationRecovery ×8

L2 航点

多点 FAILURE

清图 + Wait 0.5s

ThroughPoses ×6

6.5.4 ROS 导航栈演进

系统

编排

里程碑意义

ROS 1 move_base

FSM + 恢复行为列表

十年工业标准,恢复难扩展

ROS 2 Nav2

nav2_bt_navigator + XML

可配置、社区插件生态

Isaac Sim / Nav2

同型 BT

仿真—真机同一编排

Autonomy

nav2 对齐 + 局部生存

C++ 栈、进程内 Action


6.6 Autonomy 编排选型

6.6.1 模式决策树

需要 FollowPath + 恢复?
├── 否 → 直驱模式(规划调试)
└── 是 → 单目标还是多航点?
         ├── 单点 → navigate_to_pose.xml
         │         └── TF 不稳定?→ 增大 local_survival_timeout
         └── 多点 → navigate_through_poses.xml

6.6.2 场景矩阵

场景

模式

关键配置

理由

规划算法调试

直驱

use_bt_navigation = false

跳过 BT

标准室内

BT 单点

默认 XML

完整流水线

定位慢恢复

BT 单点

local_survival_timeout = 180

局部生存

仓库巡检

BT 多点

10 Hz RateController

动态重规划

窄通道

BT + Theta*

planner_selector

任意角路径

动态拥挤

BT 10 Hz 规划

RateController hz=10

快速响应

6.6.3 参数敏感度

参数

过小

过大

bt_loop_duration

tick 延迟

CPU 占用

规划频率 (Hz)

动态障碍反应慢

规划负载高

number_of_retries

轻易放弃

长时间原地恢复

goal_reached_tolerance

难以 SUCCESS

停车精度差


6.7 Nav2 对照

Nav2 包

Autonomy

关系

nav2_bt_navigator

autonomy/navigator

编排层

nav2_behavior_tree

behavior_tree/plugins

BT 插件

navigate_to_pose Action

NavigateToPoseAction

顶层接口

Nav2 类

Autonomy 类

状态

BehaviorTreeNavigator

BehaviorTreeNavigator<ActionT>

NavigatorMuxer

NavigatorMuxer

BtNavigator

BtNavigator

Action / 插件对照详见 §1.7 与历史 Nav2 文档。


6.8 前沿方向

方向

代表工作

与 Autonomy 关系

BT 形式化验证

合成、模型检测

长期:关键安全任务

LLM → BT

自然语言生成 XML / 节点

上层接口,执行层仍用 BT.CPP

VLM + 经典栈

语义目标 → NavigateToPose

Bridge 下发目标位姿

行为树 + 学习恢复

学习何时 Spin/BackUp

研究向,默认仍用规则恢复

多机编排

Fleet / MAPF 上层

超出单机器人 navigator

LLM + BT 的常见分层:大模型负责任务分解与自然语言接口,确定性 BT 负责运动安全与实时反应——与 move_base→Nav2 的「可配置 + 可验证」路线一致,而非端到端替代规划/控制。


6.9 参考文献

教材与专著

  1. Colledanchise & Ögren, Behavior Trees in Robotics and AI (2018)

  2. LaValle, Planning Algorithms (2006) — 任务规划章

里程碑论文

年份

论文

贡献

1985

Bratman 意向理论

BDI 哲学基础

1992

Erol et al., HTN

层次任务网络

1995

Rao & Georgeff, BDI

反应式 BDI 智能体

1998

Gat, 三层移动机器人架构

规划/执行/控制分层

2005

Isla, GDC BT 实践

游戏 BT 工程化

2007

Gerkey et al., ROS

机器人操作系统

2012

Champandard, BT 期刊

BT 学术形式化

2014

Marzinotto et al., BT 表达力

BT 与 FSM 等价

2018

Macenski et al., Nav2 白皮书

ROS 2 导航设计

2022

Colledanchise et al., BT 综述

机器人/AI BT 全面调查

2022

Macenski et al., ROS 2 野外应用

ROS 2 生态与 Nav2

2023

Macenski et al., ROS 2 导航综述

Nav2 算法与 BT 章节

工程资源


6.10 相关文档