Apollo -- Planning (一) 模块启动相关

1、planning package介绍

planning模块由以下几个目录构成:

  • planning_component: 包含planning组件类和planning程序的启动以及配置文件。
  • planning_interface_base: 包含planning中几个重要的插件类型(scenario, task, traffic rule和planner)的父类接口文件。
  • planning_base: 包含planning的基础数据结构和算法库。
  • planner: 包含planning模块的几种规划器子类插件。
  • pnc_map: 生成参考线基于的pnc_map类,根据输入的planning导航命令或地图等信息,生成参考线数据,作为planning局部路径规划的路线参考。
  • scenarios: lanning模块支持的场景插件,每个目录下包含一个独立的场景插件包,包含scenario和stage类的定义。
  • tasks: lanning模块中支持的任务插件,每个目录下包含一个独立的任务插件包,包含task类的定义。
  • traffic_rules: lanning模块支持的通用交通规则插件,每个目录下包含一个独立的traffic rule插件包,traffic rules作用于所有运行的场景中。

2、模块启动

mainboard启动

mainboard -d modules/planning/planning_component/dag/planning.dag

cyber_launch 启动

cyber_launch start modules/planning/planning_component/launch/planning.launch

其实两种启动方式都是modules/planning/planning_component/dag/planning.dag这个文件

该文件主要定义配置文件路径以及readers的channal名称

有两个参数需要关注下:

depth

  • 定义depth 参数通常位于QoS配置中,它指的是订阅者消息队列的最大深度,即订阅者能缓存多少个尚未处理的消息。
  • 作用:它控制了订阅者接收消息的缓冲区大小,确保即使在短暂的处理延迟或网络抖动情况下,也不会丢失消息。一旦队列满载,新的消息会替换掉最旧的消息。
  • 位置depth 控制的是订阅者接收并初步存储消息的队列,即在网络层面上接收到消息后,但还未开始处理前的队列深度

pending_queue_size

  • 定义pending_queue_size 参数指的是订阅者内部用于处理消息的队列大小,即消息已经由网络层接收并准备处理,但在处理函数调用前暂存的地方。
  • 作用:它确保了即使在消息处理速度慢于接收速度的情况下,也有足够的空间存储待处理消息,避免消息的即时丢失。
  • 位置pending_queue_size 控制的是消息从网络层传递到应用层处理之间的中间队列,是消息等待实际处理的队列

主要区别

  • 层次差异depth 更倾向于网络层的缓存,而 pending_queue_size 则是应用层处理前的临时存储。
  • 目的差异depth 旨在防止网络延迟或处理滞后导致的消息丢失,pending_queue_size 则关注于确保处理机制不会因为处理速度跟不上接收速度而造成消息积压或丢弃。
  • 影响depth 影响的是消息的接收和初步存储策略,pending_queue_size 则影响消息处理前的等待队列管理。

在设计和配置系统时,这两个参数需要根据系统的吞吐量、响应时间和可用资源来平衡选择,以达到最佳的性能和稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值