1. 导航系统概述:从全局规划到轨迹调试
大家好,我是你们这门课的主讲。在自动驾驶和机器人领域摸爬滚打了十来年,今天咱们来聊聊导航系统这个老本行。
导航系统,说白了就是让机器人知道「我在哪、要去哪、怎么去」。听起来简单,但实际落地时坑特别多。我最早做AGV小车时,就遇到过导航模块跑飞,小车在仓库里原地转圈的尴尬事。嗯,从那以后我对导航系统的敬畏心就上来了。
1.1 导航系统在机器人/自动驾驶中的作用
导航系统是整个移动智能体的「大脑」和「眼睛」。它要解决三个核心问题:
- 定位:我在哪里?——靠GPS、IMU、激光雷达、视觉里程计等传感器融合
- 建图:周围环境长什么样?——构建栅格地图、拓扑地图或语义地图
- 规划与控制:怎么安全到达?——生成路径并跟踪执行
你想想看,没有导航系统,自动驾驶汽车连路口都过不去。我参与过一个园区物流项目,导航系统一旦掉线,车辆直接停在路中间,调度中心电话被打爆。所以导航系统的可靠性,是底线。
核心观点:导航系统不是单一算法,而是一个「感知-定位-规划-控制」的闭环。任何一个环节出问题,整个系统都会崩。
1.2 全局路径规划 vs 局部路径规划
这是初学者最容易混淆的概念。我面试时经常问这个问题,能讲清楚的人不多。
| 对比维度 | 全局路径规划 | 局部路径规划 |
|---|---|---|
| 任务 | 从起点到终点的宏观路线 | 避开动态障碍物的微观轨迹 |
| 地图 | 使用已知的静态地图 | 使用传感器实时感知的局部地图 |
| 算法 | A*、Dijkstra、RRT、Hybrid A* | DWA、TEB、MPC、Pure Pursuit |
| 输出 | 一系列路径点(waypoints) | 带速度/加速度的轨迹(trajectory) |
| 更新频率 | 低频(0.1~1 Hz) | 高频(10~50 Hz) |
| 典型问题 | 路径穿墙、无法通过狭窄通道 | 振荡、急转弯、陷入死胡同 |
全局规划,就像你开车前用高德地图规划了一条从北京到上海的高速路线。它知道哪里有收费站、哪里有服务区,但不知道路上突然窜出一只猫。
局部规划,就是你在高速上遇到前车急刹,自己打方向盘避让的那一瞬间。它只关心接下来几秒钟的事,反应要快。
我曾经在一个项目中,全局规划用A*跑出了一条完美路径,结果局部规划DWA死活跟不住——因为全局路径的曲率变化太剧烈,DWA的搜索空间根本覆盖不了。后来我调整了全局路径的平滑参数,才解决问题。这就是全局和局部需要「对齐」的典型案例。
个人经验:我建议你在调试时,先把全局路径可视化出来,看看曲率是否连续。如果全局路径本身就有「折角」,局部规划再怎么调也白搭。
1.3 课程整体框架
这门课一共30章,我把它分成四个模块。先给你一张总览图,心里有个底。
模块一打基础。我会带你搭好ROS2导航栈,搞清楚TF树、代价地图这些底层概念。别小看这些,我见过太多人调了半年参数,最后发现是坐标系没对齐。
模块二讲全局规划。从经典的A*开始,到适合车辆的Hybrid A*,再到采样类的RRT*。每个算法我都会给出调参建议和避坑经验。
模块三是重头戏。DWA、TEB、MPC这三个局部规划器,我会逐个拆解。它们的参数加起来上百个,怎么调?我的经验是:先调权重,再调阈值,最后调运动学约束。顺序错了,越调越乱。
模块四就是实战了。我会带你用Gazebo仿真,然后部署到真实小车。最后几章专门讲性能评估——怎么量化轨迹质量,怎么自动化调参。
注意:这门课不是纯理论课。每个章节我都会给出可运行的代码和参数文件。你最好准备一台装有ROS2的电脑,跟着我一起跑。光看不练,等于白学。