前言:
Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等自动驾驶软件能力以及高精地图、仿真、数据流水线等自动驾驶云服务,帮助开发者从 0 到 1 快速搭建一套自动驾驶系统。
本系列文章将记录笔者在调试Apollo决策规划算法Planning模块的所见所思所想,不仅会分析决策规划算法具体的代码逻辑,还会使用Vscode对Apollo决策规划算法进行断点调试,从而揭示关键变量的数据结构以及取值。
pnc_map在Apollo的决策规划算法planning模块中,是一个很重要的概念;它被封装在ReferenceLineProvider类中,主要的接口是GetRouteSegments();
GetRouteSegments()是规划算法初始化阶段,以及在参考线ReferenceLine生成过程当中的重要接口,可以认为RouteSegments 是规划模块planning与routing模块以及HDmap的桥梁;
RouteSegments可以理解为routing中的passage信息,也是由多段LaneSegment组成,在pnc_map中会将routing结果的passage信息转换为RouteSegments,之后在ReferenceLinePr