Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。
本系列文章将记录笔者在调试Apollo决策规划算法Planning模块的所见所思所想,不仅会分析决策规划算法具体的代码逻辑,还会使用Vscode对Apollo决策规划算法进行断点调试,从而揭示关键变量的数据结构以及取值。
PathBoundsDecider 是第四个task,PathBoundsDecider根据lane borrow决策器的输出、本车道以及相邻车道的宽度、障碍物的左右边界,来计算path 的boundary,从而将path 搜索的边界缩小,将复杂问题转化为凸空间的搜索问题,方便后续使用QP算法求解。它的作用主要是:
- 根据借道信息、道路宽度生成FallbackPathBound
- 根据借道信息、道路宽度生成、障碍物边界生成PullOverPathBound、LaneChangePathBound、RegularPathBound中的一种
PathBound的生成对于后续的路径规划,以及规划算法的整体表现,是沿着当前道路行驶还是借道超车,有着决定性的作用。
上篇介绍了如何根据道路宽度以及自车位置生成基础的PathBounds,本文将介绍如何让根据障碍物修正PathBounds。
调试所使用场景如下: