Apollo6.0 planning模块代码框架梳理–整体结构
文章目录
简介
- 本文是基于Apollo6.0的planning模块代码进行的框架梳理
- planning模块的工程实现主体思想是三分策略:分场景、分阶段、分任务实现。
- 即将运动规划问题,先划分到不同场景中(泊车、左转等),再分阶段执行(减速、观察、转弯等),最后分任务执行。
- Apollo开源框架经过近几年的发展,已经开发了多种方案的规划器,此处采用基于车道线规划的LatticePlanner进行示例解释
- 时间有限,梳理过程难免有一定的不足,欢迎探讨交流
代码库结构介绍
代码库地址
- 官方网站:https://apollo.auto/
- 国外库:https://github.com/apolloauto
- 国内库:https://gitee.com/ApolloAuto/apollo
代码库结构简图
代码库结构简单介绍
第一级
- 第一层级主要由cyber、modules两个目录构成
- cyber是操作系统的组成部分,实现了节点管理、资源调度、消息通讯等功能
- modules集合了各模块的实现,包括perception、location、planning等
第二级
- 在modules中与planning比较相关的是planning、map、common等目录
- planning内部是所有规划(planning)模块的实现代码
- map内部是地图接口相关实现,planning规划时需要调用
- common内部是一些通用代码,包括math函数、proto协议(通信协议的设定)等,属于模块间的共享代码
第三级
- 在planning目录内部,都是与planning模块相关的实现
- 其中launch、dag、conf都是与模块启动相关的配置参数