apollo介绍之cyber启动

apollo介绍之cyber启动

附赠自动驾驶最全的学习资料和量产经验:链接

cyber组件启动

cyber_launch主要用来启动cyber模块,其中一个launch文件可以有一个或者多个module,每个module 包含一个dag文件,而一个dag文件则对应一个或者多个components。

launch文件中有几个module则会启动几个进程,每个进程有单独的内存空间,比如静态变量等都不会共享

一个dag文件中可以有一个或者多个components,一个components对应一个协程。协程中的静态变量是共享的,并且全局唯一。

理解了上述原理,我们再详细分析以下2种启动方式。

  1. cyber_launch

  2. dreamview

实际上上述2种启动方式没有太大区别,都是通过mainboard来启动程序,而一个dag文件对应一个进程,接着根据dag文件中有几个components,生成几个协程,每个components对应一个协程。

下面介绍下cyber_launch的文件结构。

cyber_launch

<cyber>
    <module>
        <name>planning</name>   \ module名称
        <dag_conf>/apollo/modules/planning/dag/planning.dag</dag_conf>   \ module的dag文件
        <process_name>planning</process_name>   \ 指定调度文件
    </module>
</cyber>
  • module 用于区分模块

  • name 模块名称,主要用来cyber_launch启动的时候显示名称

  • dag_conf module模块对应的dag文件

  • process_name 指定module的调度文件,如果找不到则会提示

dag

下面以velodyne.dag文件为例来进行说明。

module_config {
    module_library : "/apollo/bazel-bin/modules/drivers/lidar/velodyne/driver/libvelodyne_driver_component.so"
    // 模块的so文件,用于加载到内存
    # 128
    components {  // 第1个组件
      class_name : "VelodyneDriverComponent"
      config {
        name : "velodyne_128_driver"   // 名称必须不一样
        // 配置文件
        config_file_path : "/apollo/modules/drivers/lidar/velodyne/conf/velodyne128_conf.pb.txt"
      }
    }
    # 16_fr
  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值