【PX4-AutoPilot教程-TIPS】Matlab使用ROS Toolbox编译MAVROS2消息报错缺少geographic_msgs消息

Matlab使用ROS Toolbox编译MAVROS2消息报错缺少geographic_msgs消息的解决方法

    • 问题描述
    • 解决方法

环境:

MATLAB : R2022b

ROS Toolbox : 1.6

Windows :Windows 10 22H2

ROS :ROS2 Foxy

问题描述

在使用Matlab的ROS Toolbox工具箱编译与PX4联合调试的代码,Matlab官方给出的示例是使用ROS2配合microRTPS连接无人机,并发送控制命令来导航模拟无人机。

Control a Simulated UAV Using ROS 2 and PX4 Bridge

但是实际中使用更多的是MAVROS2连接的方法,所以这里选择了编译MAVROS2消息来实现与Matlab的联合调试。

MAVROS2

在官网下载MAVROS2的源码,使用Matlab中的ros2genmsg命令生成ROS2消息。

Generate custom messages from ROS 2 definitions

新建一个PX4-ROS2-Simulink文件夹用来存储工程文件(名字可以任取),在其下新建custom文件夹、others文件夹。

将下载的MAVROS2包的Zip压缩包放在PX4-ROS2-Simulink/others文件夹下。

解压,将其中的mavros_msgs文件夹放在PX4-ROS2-Simulink/custom文件夹下。

最后的结构为下列所示。

PX4-ROS2-Simulink
├─custom
|  └─mavros_msgs
|      ├─include
|      ├─msg
|      ├─srv
|      ├─CHANGELOG.rst
|      ├─CMakeLists.txt
|      ├─mavros_msgs_mapping_rule.yaml
|      └─package.xml
└─others
   └─mavros-ros2.zip

用Matlab打开PX4-ROS2-Simulink文件夹,在Matlab命令行中输入以下命令。

folderPath = fullfile(pwd,"custom");
ros2genmsg(folderPath);

编译过程中报错如下:

>> ros2genmsg(folderPath);
Identifying message files in folder 'F:/PX4-ROS2-Simulink/custom'..Done.
Validating message files in folder 'F:/PX4-ROS2-Simulink/custom'..Done.
[0/1] Generating MATLAB interfaces for custom message packages... 0%错误使用 ros.internal.utilities.locateMessage
Specified message package geographic_msgs does not exist. Check the message package specified.

出错 ros.internal.MessageParser/getMessageDefinitionHelper (第 143 行)
            filePath = ros.internal.utilities.locateMessage(...

出错 ros.internal.MessageParser/nestedMessageParser (第 662 行)
            dataStructure = getMessageDefinitionHelper(obj, CirDependList);

出错 ros.internal.MessageParser/getDataStructure (第 356 行)
                                nestedMessageParser(obj,dataType,CirDependList);

出错 ros.internal.MessageParser/getMessageDefinitionHelper (第 160 行)
            messageDefinition = getDataStructure(obj,filePath,contentsOfFile,...

出错 ros.internal.MessageParser/getMessageDefinition (第 135 行)
            messageDefinition = getMessageDefinitionHelper(obj,CirDependList);

出错 ros.internal.pubsubEmitter (第 47 行)
    msgDefn = getMessageDefinition(parser);

出错 ros2genmsg (第 233 行)
            [genFiles, dependencies] = ros.internal.pubsubEmitter(msgFullName{end}, ...

原因是Matlab的内置ROS2中缺少geographic_msgs这个消息包。

Matlab安装路径的D:\MATLAB\R2022b\sys\ros2\win64\ros2\share文件夹中没有geographic_msgs这个消息包。

但是在Matlab的帮助文档中,Supported Messages栏目中是有列出这个消息的。

Built-In Message Support

在这里插入图片描述

这可能是一个BUG。

解决方法

解决方法就是下载geographic_msgs这个消息包,一起放到custom文件夹下进行编译。

打开官网链接进行下载,注意需要下载的是ROS2版本的。

ros-geographic-info/geographic_info

解压后将其中的geographic_msgs文件夹复制到custom文件夹下

将下载的geographic_msgs包的Zip压缩包放在PX4-ROS2-Simulink/others文件夹下。

解压,将其中的geographic_msgs文件夹放在PX4-ROS2-Simulink/custom文件夹下。

最后的结构为下列所示。

PX4-ROS2-Simulink
├─custom
|  ├─geographic_msgs
|  |   ├─include
|  |   ├─msg
|  |   ├─srv
|  |   ├─test
|  |   ├─CHANGELOG.rst
|  |   ├─CMakeLists.txt
|  |   ├─geographic_msgs_mapping_rule.yaml
|  |   ├─mainpage.dox
|  |   └─package.xml
|  └─mavros_msgs
|      ├─include
|      ├─msg
|      ├─srv
|      ├─CHANGELOG.rst
|      ├─CMakeLists.txt
|      ├─mavros_msgs_mapping_rule.yaml
|      └─package.xml
└─others
   └─mavros-ros2.zip

用Matlab打开PX4-ROS2-Simulink文件夹,再次编译即可。

folderPath = fullfile(pwd,"custom");
ros2genmsg(folderPath);

参考资料:

Generate custom messages from ROS 2 definitions

Built-In Message Support

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA基础之Swing窗体的几种布局

1、边框布局BorderLayout 特点:5个方位(东(East)南(north)西(west)北(south)中(center)) 是一种简单的布局策略。 使用时,应将其看成一个“组件”。 同样,首先应通…

VMware worksation 17 简易安装Centos8.2、Redhat8.2、Ubuntu16.04

系列文章目录 文章目录 系列文章目录前言一、VMware worksation 17 安装二、安装Centos8.2三、安装RHEL8.2四、安装Ubuntu16.04总结 前言 傻瓜式按照Linux系统,如果觉得简单,可以自定义设置,特别是配置一下磁盘空间大小,对以后排…

通过DataGrip将mysql表结构信息转存excel 复制select结果的insert插入语句

各位小伙伴们大家好,欢迎来到这个小扎扎的专栏 总结 | 提效 | 拓展,在这个系列专栏中记录了博主在学习期间总结的大块知识点,以及日常工作中遇到的各种技术点 ┗|`O′|┛ 🌆 内容速览 1 查询表结构信息,并…

我希望未来10年,人工智能可以帮我解决这4件小事

生活在一线大城市的我,现在几乎整天被大数据、人工智能、机器学习、智慧生活的词汇环绕立体包围着,让我时刻感觉到,再过10年,我们五一假期真的可以摆脱现在擦肩接踵的旅游盛况了。但我其实要求倒是没这么高,我真心希望…

AnaTraf 网络流量分析仪 - 网络性能检测与诊断(NPMD)

目录 网络流量回溯分析,快速定位故障 实时监控,洞察网络运行状况 性能分析,优化网络应用 即插即用,无需复杂配置 了解更多 近年来,随着互联网技术的不断发展,网络已经成为企业运营的基础设施。然而,复杂多变的网络环境也给企业的网络管理带来了新的挑战。如何快…

一部手机就能实现24小时AI实景自动无人直播:商业推广拓客进击的全新推广利器

随着科技的迅猛发展,AI实景自动无人直播软件正逐渐成为商家拓展业务的重要工具。其智能讲解、一键开播以及智能回复功能,使得商家能够高效地进行推广活动,而手机拍摄真实场景和自行搭建场景的灵活性,则赋予了直播画面更好的呈现效…

地下管线管网三维参数化建模软件MagicPipe3D V3.5

经纬管网建模系统MagicPipe3D(www.magic3d.net)自主安全可控,本地离线参数化构建三维管网模型(管道、接头、附属物等),输出标准3DTiles、Obj等格式,支持Cesium、Unreal、Unity等引擎可视化查询分…

10最佳数据恢复软件,用于恢复丢失的数据

有时,您无意中、无意识地或其他人故意删除了您重要且有价值的数据,这些数据可以是文档、视频或图片。或者由于某些令人毛骨悚然的软件,数据可能已损坏。避免这种令人痛苦的时刻的最好方法是定期备份您的数据,但以防万一。那该怎么…

使用XPTable控件展示多窗口数据(XPTable控件使用说明七)

我给我的应用程序找到一个新的能力,因为有DEMO程序界面有6个窗口,我使用了2个显示器,一起来显示。

Carla基础 | Carla预编译版安装与ROS联合仿真图文教程

目录 1 什么是Carla?2 Carla预编译版安装2.1 独立显卡配置2.2 安装ROS2.3 启动虚拟环境2.4 安装Carla预编译版2.5 安装carla-ros-bridge 3 测试案例常见问题 1 什么是Carla? Carla是由西班牙巴塞罗那自治大学计算机视觉中心指导开发的开源仿真模拟器&…

项目管理-项目沟通管理

项目管理:每天进步一点点~ 活到老,学到老 ヾ(◍∇◍)ノ゙ 何时学习都不晚,加油 1.项目沟通管理-主要内容 项目沟通管理过程--重点: ①ITTO 输入,输出工具和技术。 ②问题和解决方案。 ③论文…

爆火4年后,露营的风还能吹多久? | 最新快讯

五一假期你去露营了吗? 文 | 趣解商业,作者 | 刘亮 “不是说露营不火了吗?为何订个营地如此困难?”江女士疑惑地说,她原本计划“五一”期间带家人前往浙江安吉游玩,但早在4月中旬咨询时就已经无法预约。 露…

构造,CF989C. A Mist of Florescence

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 989C - Codeforces 二、解题报告 1、思路分析 题目让构造网格图…

学术咸鱼入门指南(1)

学术基础素养 一.巧用工具管理文献,形成自己的文献体系 养成习惯的第一步:文献命名 当你下载完一篇文献,应该做的第一步就是给文献重新命名。命名的逻辑可以随自己的喜好来,可以按照“发表年份作者文章标题”。 也可以使用文献…

hadoop启动后没有namenode,datanode等解决方法

之前用的是虚拟机,在虚拟机上安装的hadoop,但是后来,电脑恢复出厂设置了,什么都重新开始。就在本地安装 Linux 子系统。 但是,有时候start-dfs.sh后,jps出现错误。 像这种拒绝连接 解决办法就是如下&…

​可视化大屏C位图:3D模型,可视化大屏的画龙点睛之处

Hello,我是大千UI工场,本期可视化大屏的焦点图(C位)分享将图表作为焦点图的情形,欢迎友友们关注、评论,如果有订单可私信。 3D模型在可视化大屏中有很大的价值,以下是一些相关的优点&#xff1a…

【平时工作中的各种术语__持续更新~~~~】

中文: 1、jar包 JAR包(Java Archive Package)是一种将多个Java类文件以及与它们相关的元数据和资源(如文本、图片等)打包到一个单一文件中的归档工具。它基于ZIP文件格式。JAR文件主要用于分发和部署Java应用程序。J…

机器学习入门之模型性能评估与度量

文章目录 性能评估误差欠拟合和过拟合模型选择与数据拟合 性能度量二分类的混淆矩阵查全率查准率F1分数 P-R曲线ROC曲线AUC 性能评估 机器学习的模型有很多,我们在选择的时候就需要对各个模型进行对比,这时候就需要一个靠谱的标准,能够评估模…

Redis 实战之RDB文件结构

RDB文件结构 databases 部分key_value_pairs 部分value 的编码字符串对象列表对象集合对象哈希表对象有序集合对象INTSET 编码的集合ZIPLIST 编码的列表、哈希表或者有序集合 总结AOF持久化的实现命令追加 AOF 文件的写入与同步小结 在本章之前的内容中, 我们介绍了…

ChatGPT 4.0 直接用 !!!Code Copilot编程大模型、DALL-E AI绘图、绘制流程图、上传文件

嗨,你好呀,我是哪吒。 这一年最让人揪心的热点,就是各种层出不穷的AI技术。 原以为它只是短暂霸屏,但现实却赤裸裸展示了,什么叫AI抢走你的饭碗,连招呼都不打一声! 什么策划方案、公众号文案、营销卖点、…