MAVROS的plugin到底是什么意思?plugin中文意思是插件,应该是对应的消息处理插件,之所以说是插件应该是可以由我们自己去添加或者删除,官方自己也可以后面一点点增加,并不影响MAVROS本体程序的运行,所以叫插件,我暂时这么理解。MAVROS还有一个专门的插件列表,mavros_plugins.xml,用于MAVROS自动加载插件,这更加说明为什么叫插件了,MAVROS运行的时候加载进来的。插件黑名单的意思,我想就是不加载哪些插件。
插件本质似乎就是编译后变为动态库,动态链接库。
所以这种细节问题深挖下去总能发现很多。
这个词我已经见到多次了
https://blog.csdn.net/sinat_16643223/article/details/107852435
![](https://img-blog.csdnimg.cn/20210315000804144.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
https://blog.csdn.net/sinat_16643223/article/details/112636193
![](https://img-blog.csdnimg.cn/20210314221313528.png)
![](https://img-blog.csdnimg.cn/20210314221338687.png)
http://wiki.ros.org/mavros
![](https://img-blog.csdnimg.cn/20210315000607511.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
mavros的官方源码里有专门一个plugins文件夹。似乎就是专门负责对应消息转换的。
https://gitee.com/maxibooksiyi/mavros
![](https://img-blog.csdnimg.cn/20210320141911846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
vision_pose_estimate对应的插件就在mavros_extras功能包的plugins文件夹下面,所以现在几乎可以确定,每一种消息都是有对应一个专门的插件cpp文件的,是不是确定一些MAVROS消息对应的mavlink消息可以到这些文件里面找呢?看到底转换成了什么类型?
https://gitee.com/maxibooksiyi/mavros/tree/master/mavros_extras/src/plugins
![](https://img-blog.csdnimg.cn/20210320151010488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
这篇博文说明了我的想法。
https://blog.csdn.net/qq_38981124/article/details/104861900
这篇文章我也转载了。
https://blog.csdn.net/sinat_16643223/article/details/115027229
![](https://img-blog.csdnimg.cn/20210320142343346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
在Mavros的代码里搜索plugin会搜索到这些,mavros_plugins.xml应该是加载的插件列表,px4_pluginlists.yaml和apm_pluginlists.yaml应该是禁止插件的列表。
![](https://img-blog.csdnimg.cn/20210320144553453.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
其实细看每个插件的cpp文件就是定义了一个类!!!!!
https://gitee.com/maxibooksiyi/mavros/blob/master/mavros/src/plugins/setpoint_position.cpp
![](https://img-blog.csdnimg.cn/20210320144935386.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
原来ROS里面就有plugin插件这个概念,我怀疑MAVROS的plugin就是借用的这种。
https://blog.csdn.net/moyu123456789/article/details/107907196?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-4&spm=1001.2101.3001.4242
![](https://img-blog.csdnimg.cn/20210320145203687.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
我看MAVROS插件的代码是有include这个 C++的pluginlib,所以应该是跟ROS的plugin是一个概念!!!!!!
https://gitee.com/maxibooksiyi/mavros/blob/master/mavros_extras/src/plugins/vision_pose_estimate.cpp
![](https://img-blog.csdnimg.cn/20210320151222910.png)
胡春旭的《ROS机器人开发实践》里面再后面其实也专门有讲ROS的plugin,确实最后也是动态链接库。
![](https://img-blog.csdnimg.cn/20210322222107730.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE2NjQzMjIz,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)