一、路径规划概述

大家好,我是老张。做机器人这行十几年了,今天咱们聊聊路径规划。

说实话,我第一次接触路径规划是在一个AGV项目上。那会儿车总撞墙,我以为是硬件问题,折腾了两周才发现——原来是路径没规划好。嗯,从那以后,我就再也不敢小看这个环节了。

1.1 路径规划到底是什么?

路径规划,说白了就是:给定起点和终点,找一条能走的路

但这里有个坑——不是随便找条路就行。你得考虑:

  • 能不能走通——别撞墙、别掉坑
  • 好不好走——距离短、转弯少、能耗低
  • 安不安全——远离障碍物、避开动态风险

我习惯把路径规划拆成两个问题:

  1. 路径搜索——在地图上找一条可行路径
  2. 轨迹优化——让这条路径更平滑、更可执行

核心定义:路径规划 = 在约束条件下,寻找从起点到终点的最优或可行路径的过程。

1.2 应用场景——我在项目中踩过的坑

机器人领域

我最早做的是仓储机器人。那会儿遇到一个典型问题:多台机器人在同一个仓库里跑,路径规划不好就会「死锁」——你堵我、我堵你,全卡住了。

后来我用了A*算法 + 交通管制策略才解决。具体做法是:

  • 全局规划:用A*找一条粗路径
  • 局部调整:遇到其他机器人时,动态避让
  • 优先级调度:给每个任务分配优先级,低优先级让高优先级

自动驾驶

做自动驾驶的朋友应该深有体会——城市道路的路径规划比高速难多了。为什么?

  • 路口多、车道复杂
  • 行人、自行车、其他车辆混行
  • 交通规则约束(红灯、实线、限速)

我记得有个项目,车在十字路口总是犹豫不决。查了半天,发现是行为规划层运动规划层的接口没对齐。嗯,这种「层间通信」的问题,新手特别容易忽略。

游戏AI

游戏里的路径规划,我接触得少一些,但有个案例印象很深。一个RTS游戏,单位寻路时总是「挤成一团」。后来用了流场寻路(Flow Field),让大量单位像水流一样自然分散,效果好了很多。

我的建议:如果你是初学者,先从机器人场景入手。因为机器人环境相对可控,调试起来方便。自动驾驶和游戏AI的复杂度更高,适合进阶学习。

1.3 算法分类——一张图看懂全局

路径规划算法种类很多,我习惯从两个维度来分类:

路径规划算法分类 路径规划算法 全局路径规划 局部路径规划 Dijkstra A* DWA TEB 静态环境 vs 动态环境 全局规划:已知地图,离线计算 局部规划:实时感知,在线调整 静态环境:障碍物不变 | 动态环境:障碍物移动

全局 vs 局部

维度 全局路径规划 局部路径规划
地图信息 已知完整地图 仅知道传感器范围内的信息
计算时机 任务开始前或离线 实时在线计算
典型算法 A*, Dijkstra, RRT DWA, TEB, MPC
输出 一条完整路径(点序列) 当前时刻的速度指令
我的经验 适合静态环境,计算量大但结果稳定 适合动态环境,实时性强但可能陷入局部最优

注意:全局规划和局部规划不是二选一的关系。实际项目中,我通常两者结合使用——全局规划提供宏观路径,局部规划负责微观避障。这叫「分层规划」,后面章节会详细讲。

静态 vs 动态

这个维度很多人会忽略,但实际项目中特别重要。

  • 静态环境:障碍物位置固定不变。比如工厂里的货架、家里的墙壁。这种场景用A*就够了。
  • 动态环境:障碍物会移动。比如行人、其他车辆、宠物。这时候需要局部规划来实时避障。

我曾经在一个商场导览机器人项目上吃过亏——只做了全局规划,没考虑动态避障。结果机器人遇到小孩就傻站着,被投诉了好几次。后来加了DWA局部规划,才算是能正常工作了。

1.4 一个简单的例子——帮你建立直觉

说了这么多理论,咱们看个实际例子。

假设你有一个扫地机器人,要从客厅(起点)到厨房(终点)。中间有沙发、茶几、一只猫(动态障碍物)。

  1. 全局规划:先根据户型图,规划一条绕过沙发和茶几的路径。这时候猫还没动,所以不考虑它。
  2. 局部规划:机器人开始移动后,传感器发现猫突然跑到路中间了。于是局部规划器调整速度,绕开猫,再回到全局路径上。

你看,这就是典型的「全局+局部」配合。没有全局规划,机器人可能找不到厨房;没有局部规划,机器人可能撞到猫。

一个小技巧:刚开始做路径规划时,我建议你先在仿真环境里调试。比如用ROS的Gazebo或者Python的pygame。等算法跑通了,再上真机。不然真机撞坏了,老板会心疼的。

1.5 本章小结

这一章我们聊了:

  • 路径规划的定义——找一条能走、好走、安全的路
  • 三个典型应用场景——机器人、自动驾驶、游戏AI
  • 算法分类——全局vs局部、静态vs动态

下一章,我会带大家手写一个最简单的路径规划算法——Dijkstra。别看它简单,很多高级算法都是它的变体。掌握了它,后面的路就好走了。


公众号:蓝海资料掘金营,微信deep3321