*MAVROS应该是一直在不断地读取飞控内部的状态数据并自动以ROS话题的形式发布出来,它并不知道谁在订阅,哪个节点想订阅到自然能订阅到。(这也应该是为什么MAVROS有个消息黑名单)

本文主要是介绍*MAVROS应该是一直在不断地读取飞控内部的状态数据并自动以ROS话题的形式发布出来,它并不知道谁在订阅,哪个节点想订阅到自然能订阅到。(这也应该是为什么MAVROS有个消息黑名单),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我之前还有的一个疑问就是MAVROS怎么知道谁订阅了哪种MAVROS话题呢?我现在觉得啊,是这样啊,就是MAVROS一直在不断地读取飞控内部的状态数据并自动以ROS话题的形式发布出来,它并不知道谁在订阅,哪个节点想订阅到自然能订阅到。

也是受到下面这篇博文的启发,这篇博文我也有转载。

https://blog.csdn.net/SIR_wkp/article/details/87861658

 

 

我记得ROS这边是可以有个黑名单的,就是禁止哪些MAVROS话题的发布。是不是如果不禁止他们就都会发布。那这也再一次说明我的理解是对的。

可以见我这篇博文

https://blog.csdn.net/sinat_16643223/article/details/112636193

这是普罗米修斯里面的,不过我看着黑名单还包括板载计算机发给飞控的话题种类。

 

我还看到MAVROS自身就带了几个pluginlists.yaml,可以找找有没有什么关系。

 

 

启动MAVROS的launch文件里面写了加载这个px4_pluginlists.yaml文件。

https://blog.csdn.net/weixin_44917390/article/details/106427533

 

 

我们应该可以直接ros topic list 看一下这个所有的话题,里面mavros的有哪些。很多我怀疑就是mavros自动发布的,就算我没有订阅它也在发布。

 

看了下这篇文章,我觉得应该就是的,接收到一个Mavlink消息调用回调函数转为ROS消息发布。只要不在黑名单上的应该都会自动进行。这可能也是为什么他们要建立一个黑名单,不然消息就太多了,是吧,这样想想就合理了。之所以黑名单还有板载计算机发往飞控的消息,可能是为了避免什么消息都能发往飞控都能控制飞控,对不对。所以黑名单里面双向的消息都有。

这篇文章分析得非常细致。

https://blog.csdn.net/SIR_wkp/article/details/87861658

这篇关于*MAVROS应该是一直在不断地读取飞控内部的状态数据并自动以ROS话题的形式发布出来,它并不知道谁在订阅,哪个节点想订阅到自然能订阅到。(这也应该是为什么MAVROS有个消息黑名单)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/507163

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,