一、路径规划导论:从算法到代码的起点

大家好,我是你们这门课的主讲。在机器人行业摸爬滚打了十几年,我见过太多同学一上来就啃A*、RRT这些算法,结果代码跑起来要么撞墙,要么原地转圈。说白了,路径规划不是背公式,而是理解「机器人怎么从A点到B点,还不撞到东西」这件事。

今天这第一讲,我们不写一行代码。先聊聊路径规划到底是什么,它用在哪儿,以及这门课我们怎么学。

1.1 什么是路径规划?

路径规划,说白了就是三个问题:

  • 我在哪?(定位)
  • 要去哪?(目标)
  • 怎么去?(路径)

但光有路径还不够。你想想看,如果前面有堵墙,你还直直地开过去,那叫自杀式导航。所以路径规划的核心是:在避开障碍物的前提下,找出一条从起点到终点的可行路径

我个人习惯把路径规划拆成两个层次:

  • 全局规划:提前算好大方向,比如从北京开到上海走哪条高速。
  • 局部规划:实时应对突发情况,比如前面有车祸,临时变道。

嗯,这里要注意:全局规划可以慢,但必须准;局部规划必须快,但可以容忍一点误差。我在项目中遇到过,有些同学把全局规划算法用在实时控制里,结果每走一步都要算半天,机器人直接卡死。

1.2 应用场景:扫地机、自动驾驶、无人机

路径规划不是实验室里的玩具。我挑三个最典型的场景,说说它们各自的特点。

1.2.1 扫地机器人

扫地机是路径规划最「亲民」的应用。你想想看,它要在家里跑来跑去,既要扫干净,又不能漏扫,还不能撞到桌腿。

  • 特点:环境相对固定,但障碍物多(椅子、拖鞋)。
  • 常用算法:覆盖式路径规划(弓字形)、局部避障(红外/激光)。
  • 我的经验:我曾经调试过一款扫地机,发现它总在沙发底下卡住。后来发现是局部规划的参数太保守,稍微有点缝隙就绕路。调了调膨胀半径,问题就解决了。

1.2.2 自动驾驶

自动驾驶是路径规划的「天花板」。它面对的是动态、高速、有交通规则的环境。

  • 特点:环境复杂,需要实时感知和决策。
  • 常用算法:A*(全局)、DWA(局部)、Lattice Planner(轨迹优化)。
  • 避坑指南:我曾经在高速场景测试时,发现路径规划算法在换道时总是犹豫不决。后来查了日志,原来是代价函数里对「变道风险」的权重设得太高了。嗯,调参这件事,真的得靠经验。

1.2.3 无人机

无人机路径规划多了一个维度——高度。它要在三维空间里飞,还要考虑能耗和气流。

  • 特点:三维空间,动态障碍物(鸟、其他无人机)。
  • 常用算法:RRT*(快速随机搜索树)、A*(三维网格)。
  • 我的经验:我记得有一次做无人机编队表演,两架无人机差点撞上。后来发现是路径规划没有考虑「时间同步」——两架飞机同时到达同一个点。从那以后,我所有三维路径规划都会加上时间维度。

1.3 课程整体框架与学习路径

这门课一共10章,我把它设计成「从算法到代码」的完整闭环。你不需要一开始就懂所有数学,但跟着我一步步来,最后你能自己写一个完整的路径规划系统。

下面这张图是我自己画的课程知识体系,你可以先有个整体印象:

路径规划实战教程 - 知识体系 第1章:路径规划导论(当前章节) 第2章:数学基础(坐标系、图论、代价函数) 第3-5章:全局规划(Dijkstra、A*、RRT) 第6-7章:局部规划(DWA、TEB) 第8章:全局+局部融合(规划器设计) 第9-10章:实战项目(扫地机/自动驾驶仿真) 每章都包含:算法讲解 + Python/C++代码实现 + 避坑指南

1.4 学习路径建议

我建议你按这个顺序来学:

  1. 先看导论(就是本章),建立整体认知。
  2. 再啃数学(第2章),别怕,我会用代码帮你理解。
  3. 全局规划打底(第3-5章),这是路径规划的「骨架」。
  4. 局部规划进阶(第6-7章),让机器人学会「随机应变」。
  5. 融合与实战(第8-10章),把前面学的串起来,做一个完整的系统。

我的小建议:每章看完后,一定要动手跑代码。光看是学不会路径规划的。我见过太多人「眼睛会了,手不会」。代码在GitHub上都有,我会在每章给出完整示例。

注意:不要跳章!尤其是第2章的数学基础。我遇到过有同学直接跳到A*,结果连「启发式函数」是什么都没搞懂,代码跑出来全是bug。嗯,基础不牢,地动山摇。

1.5 本章小结

这一章我们聊了:

  • 路径规划的本质:找路 + 避障。
  • 三个典型场景:扫地机、自动驾驶、无人机,各有各的坑。
  • 课程框架:从基础到实战,10章闭环。

下一章,我们会进入数学基础。别紧张,我会用代码帮你把坐标系、图论这些概念「可视化」出来。到时候你会发现,原来数学也可以这么直观。

好了,我们第2章见。


专注资料整理