一、局部规划概述
大家好,我是老K。今天咱们聊聊局部规划。
说实话,我刚入行那会儿,对「局部规划」这个概念也是一头雾水。全局规划、局部规划,听着都差不多,到底有啥区别?
嗯,咱们先从一个场景说起。
什么是局部规划?
想象一下,你让一台机器人从A点走到B点。
全局规划干的事,是画出一条大路线——比如「先出客厅,左转进走廊,走到尽头右转,进厨房」。这条路线是静态的,地图建好之后基本不变。
但实际走起来呢?
走廊里突然多了把椅子,厨房门口站着个人。这时候全局规划那条线就不好使了。机器人得自己想办法绕过去,对吧?
这个「绕过去」的过程,就是局部规划。
说白了,局部规划是机器人实时、在线地调整自己的运动轨迹,避开动态障碍物,同时尽量朝着全局目标前进。
核心定义:局部规划 = 在传感器感知范围内,根据当前环境信息,实时生成安全、平滑、可执行的运动指令。
全局规划 vs 局部规划:一张表说清楚
| 对比维度 | 全局规划 | 局部规划 |
|---|---|---|
| 规划范围 | 整个已知地图 | 传感器感知范围(几米到几十米) |
| 地图依赖 | 需要先验地图(静态) | 依赖实时传感器数据(动态) |
| 计算频率 | 低(几秒甚至几分钟一次) | 高(10Hz~50Hz) |
| 输出结果 | 离散路径点序列 | 连续速度指令(线速度+角速度) |
| 应对动态障碍 | 基本不考虑 | 核心能力 |
| 典型算法 | A*、Dijkstra、RRT | DWA、TEB、MPC |
我个人习惯把全局规划比作「导航员」,它告诉你大方向。局部规划则是「驾驶员」,负责处理路上的各种突发状况。
一个小经验:我在项目里经常看到有人把全局规划的路径点设得太密,结果局部规划器反而被「束缚」住了,绕障碍时路径很别扭。其实全局规划只需要给出关键路点,中间怎么走,交给局部规划就好。
局部规划在机器人系统中的作用
你想想看,一个机器人如果没有局部规划,会怎样?
- 遇到突然出现的人,直接撞上去
- 走廊里两车交会,卡在那里不动
- 门被风吹动了一点,机器人就迷路了
这些都是真实发生过的事。我曾经调试一台AGV,全局规划明明给了条完美路径,结果车间里叉车一过,机器人直接原地打转。后来才发现,局部规划器的参数没调好,避障反应太迟钝。
局部规划的核心作用,我总结为三点:
- 安全第一:实时检测并避开障碍物,防止碰撞
- 平滑运动:把全局规划的折线路径,变成机器人能实际执行的平滑曲线
- 动态适应:应对环境变化,比如行人、移动货架、临时堆放物
说白了,全局规划负责「能不能到」,局部规划负责「怎么安全到」。
注意:局部规划不是万能的。如果全局规划给的路径本身就有问题(比如穿过一堵墙),局部规划再怎么绕也救不回来。两者是配合关系,不是替代关系。
局部规划的知识体系
下面这张图,是我自己梳理的局部规划知识框架。你看一眼,心里就有谱了。
这张图把局部规划拆成了三个部分:输入、算法、输出。后面几章我们会逐一深入。
我的建议:初学者别急着调算法参数。先把输入输出搞清楚——你的传感器能感知到什么?机器人能执行什么指令?这两头搞明白了,中间算法选型就顺理成章了。
好了,这一章就到这里。局部规划的概念你心里有数了,下一章咱们直接上手,看看DWA算法到底是怎么工作的。
可可精品资料库