1. 局部路径规划概述:什么是局部路径规划?为什么需要它?与全局路径规划的区别与联系
大家好,我是你们的老朋友。今天咱们正式开始聊局部路径规划。说实话,这个主题我特别喜欢,因为在实际项目中,它往往是机器人能不能「好好走路」的关键。
你可能已经听过很多次「路径规划」这个词。但局部路径规划到底是什么?为什么我们非得搞它?它和全局路径规划又是什么关系?别急,咱们一个一个来拆。
1.1 什么是局部路径规划?
简单说,局部路径规划就是机器人「看脚下」的能力。它负责在短时间内,根据传感器实时感知到的环境信息,规划出一段安全、平滑的行驶轨迹。
我习惯这么理解:全局规划是「看地图」,局部规划是「看路」。你想想看,你开车去一个陌生城市,导航给你一条大路线(全局规划),但路上突然有个坑、有辆车加塞,你得自己打方向盘躲开——这就是局部规划干的事。
核心定义:局部路径规划是在全局路径的引导下,结合实时传感器数据(激光雷达、摄像头、超声波等),在局部窗口内生成无碰撞、可执行的轨迹。
它的输入通常包括:
- 全局路径的参考点
- 当前机器人位姿(位置+朝向)
- 局部障碍物信息(点云、代价地图等)
- 运动学/动力学约束(最大速度、转弯半径等)
输出呢?就是一系列控制指令——比如线速度、角速度,或者更高级的轨迹点序列。
1.2 为什么需要局部路径规划?
这个问题我当年刚入行时也问过。既然全局路径都规划好了,直接沿着走不就完了?
嗯,这里要注意:现实世界是动态的、不确定的。全局规划假设环境是静态的、已知的,但实际中呢?
- 突然窜出来的行人
- 被移动过的箱子
- 临时打开的井盖
- 甚至是一只猫
我在项目中遇到过最典型的一次:AGV小车按全局路径走得好好的,结果前方地面上多了一滩水(反光导致激光雷达误判为障碍物)。如果没有局部规划,小车会直接撞上去或者急停死锁。有了局部规划,它能绕过去或者减速通过。
所以,局部路径规划存在的意义就是:应对不确定性。它让机器人从「死板执行」变成「灵活应变」。
我的经验:在工业场景中,80%的路径规划问题其实都出在局部规划上。全局规划只要地图建得好,基本不会出大错。但局部规划涉及传感器噪声、控制延迟、动态障碍物,坑特别多。
1.3 与全局路径规划的区别与联系
咱们用一张表来对比,这样更清楚:
| 对比维度 | 全局路径规划 | 局部路径规划 |
|---|---|---|
| 规划范围 | 整个地图(全局) | 机器人周围局部窗口 |
| 环境信息 | 静态、先验地图 | 实时传感器数据 |
| 计算频率 | 低(几秒甚至几分钟一次) | 高(10Hz~50Hz) |
| 输出 | 路径点序列(无时间信息) | 轨迹(带速度、时间) |
| 典型算法 | A*、Dijkstra、RRT | DWA、TEB、MPC |
| 应对动态障碍物 | 不能 | 可以 |
| 对计算资源要求 | 较高(搜索空间大) | 较低(局部搜索) |
说白了,全局规划负责「去哪儿」,局部规划负责「怎么去」。两者缺一不可。
它们的联系也很紧密:
- 局部规划需要全局规划提供参考路径,否则它不知道大方向
- 全局规划的结果如果太粗糙(比如路径点间距过大),局部规划会很难跟踪
- 当局部规划发现全局路径被完全堵死时,需要触发全局重规划
注意:我曾经犯过一个错误——把全局路径规划得特别精细,以为这样局部规划就省事了。结果发现,全局路径上的每个小拐弯都被局部规划「忠实」跟踪,导致机器人走起来一顿一顿的。后来我学乖了:全局路径要平滑、稀疏,局部规划才发挥空间。
1.4 局部路径规划在ROS中的位置
如果你用过ROS的导航栈(Navigation Stack),应该知道它分两层:
- global_planner:负责全局路径规划
- local_planner:负责局部路径规划
在ROS中,局部规划器接收全局路径和局部代价地图,然后发布速度指令给底层控制器。常用的有:
- DWA (Dynamic Window Approach):经典算法,适合差速轮式机器人
- TEB (Timed Elastic Band):能生成更平滑的轨迹,适合全向移动机器人
- MPC (Model Predictive Control):更高级,考虑未来多步优化,适合高速场景
我个人建议初学者先从DWA入手。为什么?因为它直观、参数少、调起来容易看到效果。我在带团队时,新人第一周的任务就是调通DWA,理解它的四个核心参数:最大速度、最大加速度、预测时间、代价权重。
小技巧:调DWA时,先把「障碍物代价」权重设高一点,让机器人学会躲障碍。然后再慢慢调「路径跟踪代价」,让它学会沿着全局路径走。顺序搞反了,机器人要么撞墙,要么原地打转。
1.5 本章小结
好,咱们来捋一捋今天的内容:
- 局部路径规划是机器人实时避障、跟踪路径的核心模块
- 它存在的根本原因是现实环境充满不确定性
- 与全局规划的关系是:全局定方向,局部管执行
- 在ROS中,DWA、TEB、MPC是主流局部规划器
下一章,我会带大家深入DWA算法的原理,从数学公式到代码实现,一步步拆解。到时候咱们再聊一个我踩过的坑——「为什么DWA参数调好了,机器人还是撞墙?」
今天就到这儿。记住一句话:没有局部路径规划的机器人,就像闭着眼睛走路的人。咱们下章见。
公众号:蓝海资料掘金营,微信deep3321