【机器人】无人车-运动规划-Apollo6.0-planning模块代码框架梳理(一)--整体结构

本文详细梳理了Apollo6.0的Planning模块代码框架,重点介绍了LatticePlanner。规划模块基于车道线,采用三分策略:分场景、分阶段、分任务。文章涵盖了代码库结构、Planning主流程、初始化和消息响应流程。规划器动态调度通过dispatcher实现,LatticePlanner在ST、SL规划中生成轨迹。后续将深入解析LatticePlanner的逻辑细节。
摘要由CSDN通过智能技术生成

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都是与模块启动相关的配置参数
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值