如何配置和使用Apollo的component里的plugin

关于如何使用Apollo的Component里的plugin,在Apollo的文档里只有如果和开发的说明却没有找到一个清楚完整说明怎么把plugin跑起来的说明,例如我想把lidar_detection_filter按我们的需求对目标过滤算法作修改然后编译完后,执行

cyber_launch start  modules/perception/lidar_detection_filter/launch/lidar_detection_filter.launch

总是报错说找不到libbackground_filter.so和libroi_boundary_filter.so,而这些so文件在编译后是已经在路径bazel-bin/modules/perception/lidar_detection_filter/object_filter_bank下是有了的

只好去看Apollo的原码,发现cyber/mainboard/mainboard.cc和cyber/mainboard/module_controller.cc里加载plugin的代码是这样的:

cyber/plugin_manager/plugin_manager.cc里看LoadPlugin()的参数就是Plugin描述文件的全路径:

而cyber/mainboard/module_argument.h和cyber/mainboard/module_argument.cc里:

再看cyber_launch的代码所在文件cyber/tools/cyber_launch/cyber_launch.py里在调用mainboard前是如何获取plugin_list的:

上面的代码说明需要在launch文件的module里配置plugin元素,有几个plugin配置几个plugin元素,元素的值是plugin的描述文件pluginx.xml的全路径,例如lidar_detection_filter里的两个plugin在modules/perception/lidar_detection_filter/launch/lidar_detection_filter.launch文件里需要配置如下:

然后执行

cyber_launch start modules/perception/lidar_detection_filter/launch/lidar_detection_filter.launch

两个plugin就正常加载了!

附上modules/perception/lidar_detection_filter/launch/lidar_detection_filter.launch源码:

<!--this file list the modules which will be loaded dynamicly andtheir process name to be running in -->
<cyber><desc>cyber modules list config</desc><version>1.0.0</version><!-- sample module config, and the files should have relative path like./bin/cyber_launch./bin/mainboard./conf/dag_streaming_0.conf --><module><name>lidar_detection_filter</name><dag_conf>/apollo/modules/perception/lidar_detection_filter/dag/lidar_detection_filter.dag</dag_conf><plugin>/apollo/modules/perception/lidar_detection_filter/object_filter_bank/background_filter/plugins.xml</plugin><plugin>/apollo/modules/perception/lidar_detection_filter/object_filter_bank/roi_boundary_filter/plugins.xml</plugin><!-- if not set, use default process --><process_name>lidar_detection_filter</process_name><version>1.0.0</version></module>
</cyber>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1410323.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024年【浙江省安全员-C证】考试及浙江省安全员-C证找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【浙江省安全员-C证】考试及浙江省安全员-C证找解析&#xff0c;包含浙江省安全员-C证考试答案和解析及浙江省安全员-C证找解析练习。安全生产模拟考试一点通结合国家浙江省安全员-C证考试最新大纲及浙江省安全…

12 Junit单元测试、反射、注解

单元测试 介绍 Junit单元测试是做什么的&#xff1f; 就是针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试。 Junit单元测试框架 可以用来对方法进行测试&#xff0c;它是由Junit公司开源出来的 Junit单元测试的优点是什么&#xff1f; 可以灵活的…

智能消费记账|基于SSM+vue的大学生智能消费记账系统(源码+数据库+文档)

智能消费记账目录 基于SSMvue的大学生智能消费记账系统 一、前言 二、系统设计 三、系统功能设计 1 用户列表 2 预算信息管理 3 预算类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1…

JavaScript百炼成仙自学笔记——3

外门小比 JavaScript运算符 var a 10; var b 2; var s1 a b; var s2 a - b; var s3 a * b; var s4 a / b; var a 10; var b a; var console.log(b); 同理还有a&#xff0c;就是先对a本身进行运算&#xff0c;然后再用a的值 var a 1; var b; var sum (b a--a) a--…

【Excel】excel连接数字和符号

使用“&”对数字和符号进行连接 示例&#xff1a; 将“2.6”和“&#xff0c;”连成“2.6&#xff0c;” 连接公式为&#xff1a; V3&W3 V3和W3分别是"2.6"和“&#xff0c;”在excel中的位置

Word文件导出为PDF

Word文件导出为PDF 方法一、使用Word自带另存为PDF功能 打开需要转换为PDF格式的Word文件&#xff0c;依次点击【文件】➡【另存为】➡选择文件保存类型为.PDF 使用这种方法导出的PDF可能存在Word中书签丢失的情况&#xff0c;在导出界面点击&#xff0c;选项进入详细设置 勾…

ICode国际青少年编程竞赛- Python-1级训练场-for循环入门

ICode国际青少年编程竞赛- Python-1级训练场-for循环入门 1、 for i in range(4):Dev.step(4)Dev.turnLeft()2、 for i in range(3):Dev.step(6)Dev.turnRight()3、 for i in range(3):Dev.turnRight()Dev.step(2)Dev.turnLeft()Dev.step(-3)4、 for i in range(4):Dev…

GPT-1

GPT 系列是 OpenAI 的一系列预训练模型&#xff0c;GPT 的全称是 Generative Pre-Trained Transformer&#xff0c;顾名思义&#xff0c;GPT 的目标是通过 Transformer&#xff0c;使用预训练技术得到通用的语言模型。目前已经公布论文的有 GPT-1、GPT-2、GPT-3。 最近非常火的…

数据结构学习/复习4--链表的实现/链表练习题/二级指针与一级指针在链表实现中的运用

一、链表的实现&#xff08;写法不唯一&#xff0c;此处多处用二级指针&#xff09; 二、链表实现总结 1.二级指针存储一级指针 2.改变一级指针需要用到二级指针&#xff0c;本次使用二级指针进行修改 注意写法不唯一&#xff0c;也有不用二级指针写法 3.链表的结构体(节点)内…

第13章 软件测评相关标准

一、标准化概述 &#xff08;一&#xff09;概念 1、标准 一定范围内获得最佳秩序&#xff0c;经协商一致并由公认机构批准共同使用和重复使用的一种规范性文档&#xff0c;是标准化活动的核心产物。 2、标准化 一定范围内获得最佳秩序&#xff0c;对现实问题和潜在问题制…

ShellScript脚本编程(一)

什么是Shell Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言 Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问操作系统内核的服务 为什么…

基于Spring Boot的校园疫情防控系统设计与实现

基于Spring Boot的校园疫情防控系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 管理员登录首页界面图&#xff0c;管理员进入校园疫…

数据分析:基于DESeq2的转录组功能富集分析

介绍 DESeq2常用于识别差异基因&#xff0c;它主要使用了标准化因子标准化数据&#xff0c;再根据广义线性模型判别组间差异&#xff08;组间残差是否显著判断&#xff09;。在获取差异基因结果后&#xff0c;我们可以进行下一步的富集分析&#xff0c;常用方法有基于在线网站…

## CSDN创作活动:缓解工作压力:程序员的健康之道

缓解工作压力&#xff1a;程序员的健康之道 在当今快节奏的社会中&#xff0c;程序员作为一个高度专业化和技术密集的群体&#xff0c;往往需要面对持续的工作压力和创新挑战。在如此高强度的工作环境下&#xff0c;如何有效缓解工作压力&#xff0c;保持工作效率和个人健康成…

Java线程池的七大参数说明

线程池中的七大参数如下&#xff1a; &#xff08;1&#xff09;corePoolSize&#xff1a;线程池中的常驻核心线程数。 &#xff08;2&#xff09;maximumPoolSize&#xff1a;线程池能够容纳同时执行的最大线程数&#xff0c;此值大于等于1。 &#xff08;3&#xff09;keepAl…

Recruit App

招聘类APP小程序

【Vulhub靶场】Nginx 漏洞复现

Nginx 漏洞复现 一、Nginx 文件名逻辑漏洞&#xff08;CVE-2013-4547&#xff09;1、影响版本2、漏洞原理3、漏洞复现 二、Nginx 解析漏洞1、版本信息&#xff1a;2、漏洞详情3、漏洞复现 一、Nginx 文件名逻辑漏洞&#xff08;CVE-2013-4547&#xff09; 1、影响版本 Nginx …

HSDB使用教程

HSDB&#xff1a;Hostspot Debugger&#xff0c;JVM内置的工具&#xff0c;用于深入分析JVM运行时的内部状态 启动HSDB java -cp D:/tools/jdk-1.8/lib/sa-jdi.jar sun.jvm.hotspot.HSDB 获取进程id jps 连接到指定进程 查找类 通过查询查找对象 输入查询语句 select d from …

SQL 基础 | AS 的用法介绍

SQL&#xff08;Structured Query Language&#xff09;是一种用于管理和操作数据库的标准编程语言。 在SQL中&#xff0c;AS关键字有几种不同的用法&#xff0c;主要用于重命名表、列或者查询结果。 以下是AS的一些常见用法&#xff1a; 重命名列&#xff1a;在SELECT语句中&a…

Python中的Higher库详解

Python的Higher库是一个用于对深度学习模型进行微分和元学习的强大工具。这个库允许用户在不修改底层代码的情况下对任何可微模型进行高阶梯度计算。在本文中&#xff0c;我们将详细介绍Higher库的基本用法&#xff0c;展示一些实际的代码示例&#xff0c;并探讨其在模型训练中…