全局规划器利用路线尺度环境模型计算从机器人姿势到目标的路径。本地控制器利用该路径和当前近距离状态,生成可行的速度或轨迹指令。当这些职责、数据产物和故障条件分别测量时,导航效果会更好。
全局和局部标签描述范围,而非重要性或绝对频率。规划器可以频繁重新规划,控制者则可以向前预测轨迹。边界是输出:路径表达预期几何形状,而控制输出必须尊重动力学、足迹、当前障碍物和指令时机。
将本指南与 Nav2 代价地图指南 以及 运动规划与轨迹优化指南一起使用。切换算法前,请保存路径和指令证据。
从规划师-控制员合同开始
规划器接收起始、目标和环境表示,返回路径或失败。控制器接收当前姿态、速度、路径和局部约束,输出控制指令或失败状态。定义边界处每个数据产物的坐标系、时间戳、更新规则和有效性。
Nav2的 导航概念将 规划器描述为路径计算插件,控制器为路径跟踪或本地任务插件。尽可能将任务逻辑排除在这些算法之外,这样插件替换不会无声地改变重试、目标或安全策略。

判断全局路径的判断不仅仅是最短距离
可用的全局路径必须对足迹碰撞有效,连接起点和目标,兼容未知空间策略,且对控制器来说合理。最短几何距离可能切近转角,造成急剧航向变化,或进入成为操作瓶颈的区域。
测量路径长度、最小净空、曲率或航向不连续性、计算时间和故障率,均为固定起始目标集合。比较分布,而非单一展示路线。保留每个结果的代价地图和插件参数,以确保路径差异可解释。
| 文物 | 制片人 | 接受证据 | 典型缺陷 |
|---|---|---|---|
| 全局路径 | 规划师 | 有效性、许可、连续性、年龄 | 不可能的转角或陈旧路线 |
| 平滑路径 | 更平滑 | 碰撞重检与几何结构 | 进入障碍的捷径 |
| 速度指令 | 控制器 | 限制、可行性、时间戳 | 振荡或饱和 |
| 进展状态 | 进度检查器 | 距离与时间窗口 | 假失速或无尽滑移 |
| 进球结果 | 进球检查器 | 位置、航向与任务容差 | 过早的成功 |
使路径平滑保持有效性
平滑可以减少剧烈变化并提升控制,但移动路径点可能会减少障碍物清除或破坏狭窄通道。将平滑路径视为需要碰撞和边界验证的新伪影,而非表面化的后处理。
记录规划器、独立平滑器或控制器是否修改了参考。比较每个阶段所消耗的精确路径。当机器人切入角位时,仅绘制原始全局路径的图可能会将后续几何形状归咎于控制器。
根据当前的本地证据评估控制者
控制器应在尊重足迹碰撞、运动学或动态限制及附近障碍物的前提下,生成遵循参考的命令。请查阅已部署版本的 Nav2 控制器服务器文档。其本地地图和状态必须足够更新,以适应命令视界。
测量指令率、年龄、加速度、饱和度、预测间隙和跟踪误差。在可用时保存被拒绝的候选或控制器诊断数据。仅靠总成功率即可隐藏控制器是否顺利达成目标,或是在反复振荡和恢复后成功。

保持规划器和控制器框架的时间一致
全局路径可以用地图帧表示,而控制依赖里程计和基础帧。在不一致时间变换路径可能会使静止路线相对于机器人看起来在移动。定义每个阶段的变换查找时间和容差。
使用机器人的消息时间戳而非屏幕时间。注入变换延迟和定位修正,然后观察路径替换和指令行为。拒绝无法在声明时间内转换的数据,而不是使用最新的变换而不披露。
| 症状 | 第一个检查的车主 | 证据 | 避免假设 |
|---|---|---|---|
| 没有路 | 规划与全球地图 | 起始、目标、地图和结果代码 | 控制器缺陷 |
| 路径存在,但机器人停下 | 控制器与本地地图 | 命令与拒绝理由 | 规划器解运动 |
| 机器人振荡 | 控制器、几何结构、定位 | 候选轨迹与位姿记录 | 一个参数就足够了 |
| 机器人从不声明卡住 | 进度检查器 | 位移与时间 | 车轮运动等于进步 |
| 目标成功是错误的 | 进球检查器 | 姿势、航向与容差 | 路径端点定义了成功 |
使用进度检查器作为显式故障检测器
进度检查器决定在一定时间窗口内的移动是否足够。半径和余量必须反映定位噪声、指令速度、机动类型和场地限制。缓慢而谨慎的做法是有效的,而旋转轮可以在不造成物理位移的情况下实现里程计。
测试阻挡运动、低摩擦滑移、定位漂移、故意的慢区和暂停行为。确定检查器使用的姿态源。进展失败应产生命名错误,行为树可将其区分给规划器失败或目标拒绝。
定义目标接受度独立于路径跟踪
目标检查器确定位置和方向何时足够接近,并可能在多次检查间保持状态。公差应来自任务:过境航路点、电梯进入和对接分级姿态需要不同的精度和航向要求。
在精度关键时,通过独立姿态测量验证成功。从多个方向测试进近,并在定位校正后进行。不要在感测和控制能力以下收紧公差;这会导致无尽的最终振荡,却不改善任务结果。
触发有意义事件的重新规划
周期性重新规划简单,但可能浪费计算,并用小幅变化替换良好路径。事件驱动重规划可以对无效路径、目标改变或持续的局部阻塞做出反应,但依赖于可靠的条件。许多系统将有界周期触发与有效性检查结合起来。
测量规划器延迟和流量下的路径流失情况。定义控制器何时采用新路径,以及如果规划失败而现有路径在本地仍可行时会发生什么。在替换方案通过接受检查前,切勿删除最后一个有效计划。
将算法与机器人几何结构及任务匹配
基于网格的规划器、格点规划器和混合规划器对航向、运动原语和车辆运动学做出不同的假设。控制器在优化、采样和跟踪行为方面也存在差异。在基准调优前,从机器人约束和站点几何中选择候选方案。
在多个算法间使用同一个场景矩阵:开放行进、窄通道、反转、急转弯、动态障碍和目标进近。报告计算平台和加载情况。赢得未加载模拟的插件可能会错过部署边缘计算机上的命令截止时间。
用同步的伪影链诊断导航
捕获目标、起始姿态、全局和本地代价地图、原始和平滑路径、变换、控制器命令、进度状态、目标状态和行为树结果。将它们放在一个时间线上。这条链揭示了错误几何体是被规划、变换、遵循还是接受。
从最早出现错误的伪造物开始。如果路径已经穿过致命单元,控制器调优不是首要解决办法。如果路径有效但未发出命令,检查本地可行性、状态年龄和控制器结果后再更换规划器。
测试转换与失效行为
注入规划超时、控制器超时、无效路径、障碍物插入、定位跳跃、陈旧变换和命令拒绝。当新目标到达时,确认取消和归属。导航动作失败后,机器人不应继续遵循过时的命令流。
测量从故障出现到检测、命令抑制、恢复和最终报告的时间。包括系统负载和间歇性错误,因为异步时序常常会改变哪个组件看起来先失效。
把导航系统作为经过测量验证的组合发布
版本规划器、平滑器、控制器、进度检查器、目标检查器、地图、足迹和行为树。保留场景级结果和尾部延迟。没有部署参数和证据的算法名称无法定义可重复的导航系统。
每次更改都使用简明的发布清单。
评估“移动机器人中的全局规划器与本地控制器的比较”时,还应保存模型版本、机器人配置、标定文件、测试日期和全部试验记录。把成功、失败、恢复与人工介入放在同一份数据中,才能区分模型能力、系统接口和现场流程造成的差异。
成本评估除了设备与算力,还要记录数据采集、工程调试、安全措施、维护、停机和人员培训。只有把这些持续投入与单位成功任务的价值比较,才能判断方案是否适合扩大。
上线后仍要持续检查分布变化、传感器漂移、机械磨损和人工接管原因。监测结果应能触发降级、停止与重新验证流程,并为下一轮数据采集和模型更新留下可追溯记录。
- 独立验证原始路径和平滑路径。
- 测量指挥年龄、可行性和限制。
- 用任务特定案例测试进展和目标检查器。
- 控制重新规划频率和路径切换。
- 在重新调校之前,先追溯最早的错误伪影。
常见问题
本地控制员和本地规划师是一样的吗?
“本地规划器”一词在较早的ROS用法中很常见; Nav2 描述那些沿着路径或执行本地任务并产生控制工作的控制器。
全球规划器应多久重新规划一次?
使用测量环境动态,计算时间和路径有效性。周期性和事件驱动触发均需有界行为。
控制器能修复糟糕的全局路径吗?
它可能避开其能力范围内的局部障碍,但不应期望修复一条全球无效或不可能完成的路线。
为什么机器人能到达目标却没能完成?
目标检查器可能要求机器人无法满足的位置或航向容差,或者使用了不一致的姿态证据。
诊断导航故障最快的方法是什么?
保存同步目标、地图、路径、变换、命令和检查器状态,然后找到最早的错误伪影。
导航输出与运动边界
规划路径和控制器命令是应用输出,而非安全级保护功能。独立的运动限制、保护和停止行为仍然必要。