全局路径规划 vs 局部路径规划:区别、联系、典型算法概览

做机器人路径规划这些年,我经常被问到同一个问题:「全局规划和局部规划到底有啥区别?能不能只用一个?」

说实话,我刚入行时也犯过这个迷糊。有一次做AGV项目,我天真地以为只要一个A*算法就能搞定所有场景。结果呢?机器人倒是能找到从A到B的最短路径,但遇到动态障碍物时直接傻眼——要么撞上去,要么原地打转。

嗯,那次教训让我彻底明白了:全局规划和局部规划,就像人的大脑和眼睛,缺一不可。

一、核心区别:一个看地图,一个看眼前

说白了,全局路径规划解决的是「怎么从起点走到终点」的问题。它需要一张完整的地图,然后算出一条从起点到终点的可行路径。我习惯叫它「宏观决策者」。

局部路径规划解决的是「下一步该怎么走」的问题。它只关心机器人周围几米内的环境,处理动态障碍物、避让行人、平滑轨迹。我管它叫「微观执行者」。

对比维度 全局路径规划 局部路径规划
输入信息 全局地图(已知或SLAM构建) 局部传感器数据(激光雷达、深度相机)
计算范围 整个地图空间 机器人周围几米到几十米
更新频率 低(地图变化时才重规划) 高(每帧传感器数据都更新)
实时性要求 低(毫秒级即可) 高(需要毫秒级响应)
典型输出 离散路径点序列 速度指令(线速度+角速度)

关键认知:全局规划告诉你「要去哪」,局部规划告诉你「怎么走」。两者是上下游关系,不是替代关系。

二、典型算法概览

全局路径规划算法

我个人习惯把全局算法分成三类:

  • 基于图搜索:Dijkstra、A*、D* Lite。A*是我用得最多的,它用启发式函数引导搜索方向,比Dijkstra快很多。我在仓储机器人项目里,用A*在1000×1000的栅格地图上,平均0.2秒就能找到路径。
  • 基于采样:RRT、RRT*、PRM。RRT适合高维空间,比如机械臂的关节空间规划。但RRT生成的路径通常很「锯齿」,需要后处理平滑。
  • 基于智能优化:遗传算法、蚁群算法。说实话,这类算法在工业界用得不多,因为计算量大、稳定性差。我只有在学术研究时才会碰它们。

我的选型建议:如果你做的是二维平面移动机器人,无脑选A*。三维空间或高自由度机械臂,考虑RRT*。别在智能优化算法上浪费时间,除非你发。

局部路径规划算法

局部规划算法,说白了就是「怎么让机器人走得稳、不撞墙」。我接触过的算法有这些:

  • DWA(动态窗口法):在速度空间采样,评估每条轨迹的安全性、速度、朝向。ROS里默认的局部规划器就是它。我在AGV项目里用过,效果不错,但容易陷入局部极小值。
  • TEB(时间弹性带):把路径看作一条「弹性带」,通过优化调整带子的形状。它比DWA更平滑,能处理更复杂的约束(比如运动学约束)。我最近的项目都在用TEB。
  • MPC(模型预测控制):基于模型预测未来轨迹,滚动优化。这是目前最前沿的方法,但计算量大,对硬件要求高。我只有在高速移动机器人上才用MPC。

避坑指南:我曾经在一个人机协作项目里,直接用DWA做局部规划。结果机器人遇到人时,总是急刹车然后重新规划,导致人机交互体验极差。后来换成TEB,加入了「人机距离」约束项,才解决了这个问题。

三、两者的联系:你中有我,我中有你

你想想看,全局规划和局部规划其实是一对「搭档」。

全局规划给局部规划提供参考路径。局部规划沿着这条参考路径走,同时处理动态障碍物。如果局部规划发现参考路径被堵死了(比如突然出现一堵墙),它会通知全局规划重新计算。

我习惯用这个比喻:全局规划是「导航仪」,局部规划是「驾驶员」。导航仪告诉你走哪条路,驾驶员负责看路况、避让行人、保持车道。导航仪不会管你前面有没有车,驾驶员也不会管最终目的地是哪里。

四、知识体系结构图

下面这张图,是我自己总结的路径规划知识体系。你看一眼就能明白全局和局部的关系:

路径规划知识体系 全局路径规划 输入:全局地图 输出:离散路径点 典型算法 A* / Dijkstra / RRT* D* Lite / PRM 局部路径规划 输入:传感器数据 输出:速度指令 典型算法 DWA / TEB / MPC VFH / 人工势场法 参考路径 重规划请求 底层控制模块 执行速度指令 → 电机控制 → 里程计反馈 速度指令 传感器与感知模块 激光雷达 / 深度相机 / IMU / 里程计 地图构建 障碍物信息

五、实际项目中的选型建议

我在不同项目里用过不同的组合,给你几个参考:

  • 仓储AGV:全局用A* + 局部用DWA。地图固定,路径简单,DWA足够应对偶尔出现的行人。
  • 服务机器人:全局用A* + 局部用TEB。人机交互场景多,TEB的平滑轨迹和约束处理能力更优。
  • 自动驾驶:全局用D* Lite(动态环境) + 局部用MPC。高速场景对实时性和轨迹质量要求极高。
  • 无人机:全局用RRT* + 局部用MPC。三维空间搜索,RRT*能处理复杂障碍物分布。

我的经验:别一上来就追求「最先进」的算法。先跑通A* + DWA这个经典组合,理解它们的优缺点,再根据实际场景做替换。我见过太多人一上来就搞MPC,结果调参调了三个月还没跑起来。

六、总结

全局路径规划和局部路径规划,说白了就是「战略」和「战术」的关系。战略定方向,战术保执行。两者配合好了,你的机器人才能既找得到路,又走得了路。

嗯,这一章的内容就到这里。记住:选型没有银弹,关键是根据你的机器人类型、环境复杂度、实时性要求来权衡。

核心要点回顾:

  • 全局规划:宏观决策,基于地图,低频更新
  • 局部规划:微观执行,基于传感器,高频更新
  • 两者是上下游关系,需要协同工作
  • 选型时考虑:环境动态性、实时性要求、机器人运动学约束

可可精品资料库