1. 课程导入
欢迎进入《Autoware行为与运动规划工程》课程。本课程面向已经具备一定自动驾驶基础、希望深入掌握 Autoware 规划栈的工程师与研究人员。行为规划与运动规划是自动驾驶系统从“感知世界”走向“控制车辆”的关键桥梁:感知模块回答“周围有什么”,定位模块回答“我在哪里”,而规划模块回答“我接下来该怎么走”。本课程的目标,就是让你能够读懂、修改、调试并扩展 Autoware 的规划模块,最终具备独立完成城市道路与园区场景规划任务的能力。
一、学习目标:从“会用”到“会改”
本课程不满足于让你会启动一个 demo,而是希望你在完成 30 章学习后,能够达到以下四个层次的目标:
- 理解架构:说清 Autoware 规划栈中 mission planning、behavior planning、motion planning 三层的职责边界与数据接口。
- 掌握算法:理解行为决策中的状态机与场景树、运动规划中的采样、优化与搜索三类方法及其适用条件。
- 具备工程能力:能够配置规划参数、阅读规划日志、定位规划失败原因,并完成插件式扩展。
- 形成系统思维:理解规划与感知、定位、控制之间的耦合关系,避免“只调规划不看全局”的局部优化陷阱。
二、核心概念:三层规划与一条数据链
Autoware 的规划体系可以抽象为三层结构。最上层是任务规划(Mission Planning),它关注“从 A 到 B 的全局路线”,输出一条参考路径,典型模块包括路线规划与全局路径生成。中间层是行为规划(Behavior Planning),它关注“在当前交通环境中如何安全合规地行动”,例如变道、跟车、避障、通过路口、靠边停车,典型实现是场景树与行为状态机。最下层是运动规划(Motion Planning),它关注“未来几秒内具体的轨迹、速度与加速度”,输出带时间戳的轨迹点,供控制模块跟踪。
三层之间通过一条清晰的数据链连接:地图与路由提供全局参考,感知与预测提供动态障碍物信息,行为层据此选择场景与约束,运动层在约束下生成可行轨迹,最终由控制层执行。理解这条数据链,是后续所有调试工作的基础。
三、整体框架:模块、接口与运行机制
在工程实现上,Autoware 规划栈由多个 ROS 2 节点组成,节点之间通过话题与服务通信。任务规划通常由路线规划节点完成,行为规划由场景树节点与行为插件共同实现,运动规划则由多个规划器插件按场景选择执行。每个规划器都遵循统一的输入输出接口:输入参考路径、障碍物、车辆状态与地图,输出轨迹或规划结果状态。
这种插件化设计带来两个重要特性。第一,可替换性:你可以用新的规划算法替换默认插件,而不影响其他模块。第二,可组合性:不同场景可以激活不同插件组合,例如高速场景使用车道跟随,园区场景使用避障与窄道通行。理解插件注册与场景选择机制,是后续实战的关键。
| 层级 | 核心职责 | 典型输入 | 典型输出 | 常见模块 |
|---|---|---|---|---|
| 任务规划 | 全局路线生成 | 地图、起终点 | 参考路径 | 路线规划、全局路径 |
| 行为规划 | 场景决策与约束 | 路径、障碍物、规则 | 行为指令、场景约束 | 场景树、状态机、变道 |
| 运动规划 | 轨迹生成与优化 | 约束、车辆模型 | 带时间轨迹 | 采样、优化、搜索规划器 |
四、实战路线:从环境搭建到场景调优
本课程的实战路线遵循“由静到动、由简到繁”的原则。第一阶段完成环境搭建与规划栈启动,确认各节点正常通信;第二阶段深入行为规划,理解场景树如何根据交通环境选择行为;第三阶段进入运动规划,掌握轨迹生成与参数调优;第四阶段进行综合场景调试,包括跟车、变道、避障、路口通行与靠边停车。
# 典型规划栈启动与调试命令示例
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit
# 查看规划相关节点
ros2 node list | grep -E "planning|behavior|motion"
# 查看轨迹输出话题
ros2 topic echo /planning/trajectory --once
五、常见误区与复盘建议
初学者最容易陷入三个误区。第一,把行为规划与运动规划混为一谈,导致调试时不知道问题出在决策层还是轨迹层。第二,只调参数不理解约束,例如盲目增大最大速度或减小安全距离,短期看似有效,遇到复杂场景必然失效。第三,忽略感知与预测的不确定性,把障碍物位置当作精确真值,导致规划过于激进。
本课程后续每一章都会围绕一个具体能力点展开,并配有可运行的配置、代码与调试方法。请带着“分层框架”和“数据链”这两个核心视角进入学习,你会在 30 章之后获得一套完整、可迁移的 Autoware 规划工程能力。