图片缩略图

ROS自定义消息的ROS工具箱接口

在MATLAB和Simulink中使用自定义ROS消息和服务类型。金宝app

50个下载

更新2020年3月18日

编者按:

该支持包是金宝app目前无法下载第三方软件MATLAB R2017a及更早版本。有关详细信息和解决方法,请参阅本错误报告

MATLAB R2017b和以后的版本不受影响。

使用ROS自定义消息接口,您可以扩展Robotics System Toolbox支持的ROS消息集。金宝app您可以定义自己的自定义ROS消息和服务类型,并在MATLAB和Simulink中使用它们与ROS网络中的其他节点通信。金宝app
该接口允许您:
-生成MATLAB接口自定义消息和服务从ROS msg和srv描述
—发送和接收自定义消息,就像任何其他ROS消息一样
- 接口与任何支持ROS机器人或模拟器使用自定义消息
-与其他MATLAB用户共享生成的自定义消息接口
安装ROS自定义消息接口:
*你必须有一个版本的MATLAB R2015a与ROS工具箱已经安装
*下载提交(roscustommsg.mlpkginstall)
*双击roscustommsg。mlpkginstall从MATLAB内部或从您的操作系统
*安装过程完成后,您可以在MATLAB命令行中键入“help rosgenmsg”,以了解有关自定义消息功能的更多信息。文档将在安装后自动打开,以后可以通过快捷方式访问。

的更多信息www.tatmou.com/ROS

注意:此支持包适用于R金宝app2017a到R2020a。R2020b之后,ROS工具箱直接支持生成ROS自定义消息,而无需此支持包。

意见及评分(94

徐锦丽

凸轮扎尔茨贝格

为了澄清大家,从R2020b开始,自定义消息的支持已纳入ROS工具箱。金宝app该支持包不金宝app再需要使用rosgenmsg。请参阅澄清的变化和新要求的发行说明:
//www.tatmou.com/help/ros/release-notes.html?rntext=&startrelease=R2020b&endrelease=R2020b

斯科特·雷德福

政法叮

不支持新的MATLAB版本。金宝app

斯蒂芬妮施瓦兹

奥斯曼努里KOC

使用ros.BagSelection/deserializeMessages时出错(第641行)
Java异常发生:
org.ros.exception.RosMessageRuntimeException:java.lang.ClassNotFoundException:std_msgs.uint32


org.ros.internal.message.definition.MessageDefinitionReflectionProvider.get (MessageDefinitionReflectionProvider.java: 66)

位于org.ros.internal.message.DefaultMessageFactory.newFromType(DefaultMessageFactory.java:42)

在org.ros.internal.message.DefaultMessageDeserializer.deserialize (DefaultMessageDeserializer.java: 42)

org.ros.internal.message.field.MessageFieldType.deserialize (MessageFieldType.java: 111)

在org.ros.internal.message.field.MessageFieldType.deserialize (MessageFieldType.java: 38)

org.ros.internal.message.field.ValueField.deserialize (ValueField.java: 68)

在org.ros.internal.message.DefaultMessageDeserializer.deserialize(DefaultMessageDeserializer.java:45)

org.ros.internal.message.field.MessageFieldType.deserialize (MessageFieldType.java: 111)

在org.ros.internal.message.field.MessageFieldType.deserialize (MessageFieldType.java: 38)

org.ros.internal.message.field.ValueField.deserialize (ValueField.java: 68)

在org.ros.internal.message.DefaultMessageDeserializer.deserialize(DefaultMessageDeserializer.java:45)

抛出java.lang.ClassNotFoundException:所造成std_msgs.uint32

java.net.URLClassLoader.findClass (URLClassLoader.java: 382)

位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)

sun.misc.Launcher AppClassLoader.loadClass美元(Launcher.java: 349)

java.lang.ClassLoader.loadClass (ClassLoader.java: 357)


org.ros.internal.message.definition.MessageDefinitionReflectionProvider.get (MessageDefinitionReflectionProvider.java: 62)

...10个

ros.BagSelection/readMessages中出错(第278行)
msgs = obj.deserializeMessages(obj.MessageList, rows);
解决了这个问题

EMRAH凹地

毛建良

如果第三方软件安装失败,该如何修复?

Jiyo Palatti

急需更新。不可能更新内置的ROS msg类型使用这种方法。

Mihael Simonic

这个插件使MATLAB中的ROS支持可用,并且应该已经与官方金宝app的ROS工具箱一起发布,因为ROS工具箱中包含了大量的消息定义。

然而,在当前的状态消息的生成过程是越野车,并应采用标准柳絮建设过程中得到更好的集成。它涉及几个黑客和解决方法由于不完全支持package.xml中格式V2的。金宝app此外,建立消息的定义是更换了过期与ROS工具箱鞭打定义似乎被打破。请在这里看到我的问题://www.tatmou.com/matlabcentral/answers/539627-updating-ros-controller_manager_msgs-to-melodic

金属氧化物半导体

哪位有下好的文件给个云盘链接吧,感激不尽! lingyu96@hrbeu.edu.cn

雪约翰

我需要它

何彤

解决了 !!无法下载的第三方包(在Ubuntu)
由于jdk没有完全下载!!
您需要将“jdk-7u60-linux-x64.zip”下载到支持包中。对我来说,路径是“/home/use金宝appr/Downloads/MathWorks/SupportPackages/R2017b/archives/3p/”

只要复制它,然后你可以安装它!

平方钟

我试图下载,但在3个版本失败:r2014b、r2016b、r2018a。“Bug报告”中的解决方案也不起作用。

显通道

装了三天了,一到第三方支持就装不上,宽带正常下东西都是慢速

云波的太阳

无法下载第三方软件包

诚招剑

在下载第三方插件时总是报错,可能是网络的问题

阿披实

ROC贾斯汀

在下载第三方插件时总是报错,可能是网络的问题

马克Tappe

好了,我解决了我的问题-我只是可以给建议,双重检查您的依赖,并添加在您的xml文件。
所以请更新文档:
https://de.mathworks.com/help/ros/ug/ros-custom-message-金宝appsupport.html
因为只提到了

一旦建立了罐子,添加它们就没有问题了。

所以,是让我们说这个包工作得很好,如果你得到它的运行 - 否则它可能是一个有点沮丧。
(运行在Ubuntu 16.04与Matlab 2019b fine)

马克Tappe

不幸的是,它目前无法在Ubuntu 16.04上的M2019b下工作。
运行rosmsggen(folderpath)命令时的错误…Matlab无法链接mavros_msgs与std_msgs或geometry_msgs内容…但这些是matlab已知的。
也许java有问题?
——>:mavros_msgs:compileJavawarning: [options] bootstrap类路径没有与-source 1.6一起设置

我创建了以下问题,我的问题-任何帮助是感谢的:
https://de.mathworks.com/matlabcentral/answers/492190-how-to-setup-ros-communication-with-custom-messages-in-current-2019b

扎gharaybeh

张洁篪

尼古拉Lissandrini

凌云山胡

您好,我无法再下载此软件包:
“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”
第三方软件下载失败:
用于ROS自定义消息的Gradle

这是以下要求:
ROS自定义消息的机器人系统工具箱接口

要解决此问题,请参阅本MATLAB答案。
""""""""""""""""""""""""""""""""""""""""""""""""
我试过了,没修好
请在此帮助

Volker加布勒

k·斯莱姆英格

任何人在获取rosmsg列表中的消息类型时遇到问题,请参阅:
//www.tatmou.com/matlabcentral/answers/329662-unable-to-access-rosbag-topics

如果你在你的ROS包味精目录,功能rosgenmsg将生成包和消息类型的prefdir下添加路径.jar文件javaclasspath.txt后,将可里面matlab_gen文件夹。

马丁·赫尔曼

我不能自定义消息在Linux下工作,任何想法?我跟着指示,但该消息没有在“rosmsg列表”中。

Dhonghun李

ykyk

迈克尔Heyers

有办法自动安装这个包吗?通常我安装Matlab的当前版本在几台机器上,因此使用'installer_input.txt'自动化这个任务。可以把包裹包括在内吗?

Shreyas Chaudhari

我用Matlab 2017A - 我通过在错误报告的指示去了,那些使我ATLEAST下载该文件。但是,如果我开始安装,我得到一个加载屏幕很长一段时间,它似乎并没有工作时。有没有人在过去的这些问题?是否有一个容易解决这个?

卡洛杰罗城堡酒店

嗨。
我在用Simulin金宝appk验证四旋翼飞机的控制系统。现在我想用Erle Copter模型在ROS/Gazebo环境中模拟我的控制,但是,matlab不支持"mav_msgs/ "消息类型。金宝app我试着用这个工具创建一个自定义消息,但它不工作。
有什么办法能解决我的问题吗?
谢谢。

弗雷德里克·科瓦奇

“有安装支持包有问题。要解决此问题,请联系技术支持”金宝app
-
我用的2017B,下载工作正常,但当我尝试安装支持包有其他人experiened这和它周围的工作,我总是得到这个错误?金宝app

安德烈亚斯·汉森

您好,的支持金宝app状态如何?必须说,为了让rosgenmsg运行,“package.xml”必须被降级,这是非常恼人的。

弄堂里黄

您好,我在使用rosgenmsg时遇到了自定义MSG的问题。这里是我的自定义味精定义:raw_imu.msg
int32周
float64第二
uint32 imu_状态
int32 z_acc
int32 y__acc
int32 x_acc
INT32 z_gyro
int32 y__gyro
int32 x_gyro
rosgenmsg无法为这条消息的MATLAB代码,但它为其他自定义短信息,我发现它有问题,“INT32 y__acc”和“INT32 y__gyro”,如果我改变了两个字段为“INT32 y_acc”和“INT32 y_gyro” rosgenmsg作品。

Vinay Reddy

发生了意外的错误。如何纠正错误?

莉莉刘

有一个下载的问题,当我试图安装自定义该工具箱工作message.Could你的任何人请给另一个下载链接像百度yunpan,谢谢?

穆斯塔法

我正在使用MATLAB R2017b,但收到此错误消息

下载第三方软件失败。处理步骤

马提亚Domnik

在以前的版本中工作得很好。现在我得到了和Jan Verhaegh一样的错误。一颗星是实际版本,五颗星是工作版本……

Jan Verhaegh

我正在使用MATLAB R2017b,但收到此错误消息

第三方软件下载失败:
Rosjava Gradle插件

有什么解决办法吗?

阮ZH

塔伦Uday

迈克尔·弗里德曼

迈克尔·弗里德曼

我遇到了与Andre相同的问题(未定义变量“hwconnectinstaller”或类“hwconnectinstaller”)。PackageInfo”等)-这是最近的一个bug还是什么,有没有修复?

安德烈·米其林

你好,
我工作在OS X,我尝试了样品包,并遵循指示。我收到此错误信息,任何想法?

>>rosgenmsg(folderpath)
未定义变量hwconnectinstaller或类hwconnectinstaller. packageinfo。
robotics.ros.custommsg.internal.SupportPa金宝appckage误差
robot .ros.custommsg.internal.setup. registermessagecatalog错误(第9行)
spPkg=robotics.ros.custommsg.internal.Su金宝apppportPackage;
rosgenmsg中的错误(第33行)
robotics.ros.custommsg.internal.setup.registerMessageCatalog;

谢谢

Ilya Boyur

你好,创造者,
是否有开发action .msg / .srv文件生成支持的计划?金宝app如果你对此感兴趣,我们能期待什么时间?

列维Voicu

我试图建立一个自定义消息,我得到的错误:

输出参数“msgFolder”(可能还有其他)没有分配
在调用
“robotics.ros.custommsg.internal.CustomMessageLoader / loadMessages”。

由rosgenmsg()中的异常发布。什么好主意吗?

迈克尔的Heidingsfeld

它是否计划很快支持Format 2金宝app package.xml文件?

@Richard。通过MATLAB下载是获得附加组件最方便的方式,但我们意识到一些网络/互联网配置可能导致安装失败。请联络我们的客户服务中心(金宝app//www.tatmou.com/金宝appsupport/contact_us.html),我们的一名安装技术人员可以带您了解一些替代方案。

理查德Stroman

有没有其他方法可以下载这个附加组件?每次我试图通过MATLAB界面下载它时,它都会挂起。对于我们这些经常使用不允许直接访问internet的计算机的人来说,通过web浏览器进行简单下载更为可取。

亚历山大

我和@Alexandre有同样的问题。它工作得很好,但几天后,它停止工作,重新输入rosgenmsg(folderpath)给我一个“未定义的函数或变量'rosgenmsg'”,就像插件不见了。我已经不得不卸载,重新安装,并遵循相同的程序好几次了。

Florian Kraemer

对于linux安装脚本:必须指定matlab的根目录而不带尾随斜杠

@Sudipta。感谢您尝试这个附加组件。
如果你已经有一个现有的ROS包,你可以直接使用rosgenmsg。如果您想从头开始创建一个新包,我建议您查看以下示例://www.tatmou.com/help/robotics/ug/create-custom-messages-from-ros-package.html. 您还可以查看我们附带的示例包:cd(fullfile(fileparts)(which('rosgenmsg'),'examples','packages'))。最后,请查看描述package.xml、msg和srv文件结构的ROS教程:http://wiki.ros.org/Packages

Sudipta

你好,
我想准备一些定制邮件。我已经安装了这个插件。然而,创建新味精的步骤对我来说并不清楚。谁能提供一些详细信息,告诉我如何以及在package.xml中放入什么,在*中。SRV飞行和*。味精文件?它们之间的关系是什么。如果你能分享任何演示自定义消息,那将是非常有帮助的。提前谢谢。

@Usman,我很抱歉听到你关于自定义消息生成的问题。该附加组件应该在所有版本的MATLAB从15a到17a,包括您的16b版本。由于自定义消息文件夹是空的,似乎有一个问题阻止了文件的生成。请再次检查包文件夹名称是否与package.xml中的标记匹配,并确保消息和服务文件位于" msg "和" srv "子文件夹中。当调用rosgenmsg时,你看到任何错误消息了吗?您使用的是什么ROS包?

乌斯曼arif

发生在我身上,我正在使用2016b版本的matlab和这个添加是不工作的

Erich东布罗夫斯基

对不起,我的意思是我的最后一个职位@詹姆斯,不是@Daniel。

Erich东布罗夫斯基

我与@Umer和@Daniel有相同的问题。我使用的是2016b版本。这个工具箱接口是否可能与2015a之后的版本不兼容?或者我遗漏了什么?

谢谢,埃里希

艾德里安·鲍尔

亚历山大

为我创建一个自定义消息。然而,当我回去工作的时候,罗斯根msg就不见了。我看到工具箱安装了,但所有与它相关的文档都丢失了。有人有同样的问题吗?

欧麦尔Huzaifa

我试图安装naoqi_driver_msgs自定义消息的支持。金宝app我的问题是一样的用@詹姆斯。当我去完成所有的步骤如下rosgenmsg,我../matlab_gen/msggn/+ros/.../+msggen保持为空。
任何线索,有的可能会错过我。
谢谢,
乌默尔

@Dennis,现在只解析包格式1,但我们正在积极地增加对包格式2的支持。金宝app一旦该支持存在,我们将更新该FileExchange条目。金宝app

我知道这并不理想,但作为一个临时解决方案,您可以将XML文件中的标记更改为,并且自定义消息生成应该运行(自定义消息生成完成后不需要包XML文件)。

丹尼斯·埃勒里

我遇到一个错误,使用被写在一个package.xml中<包格式=“2”>
http://docs.ros.org/indigo/api/catkin/html/howto/format2/index.html
工具箱不会生成它的依赖项消息。

为例。
编写一个使用std/msg Vector3作为其一部分的自定义消息。

在格式1中,它在package.xml中声明为:
< build_depend > std_msgs < / build_depend >

而格式2是:
<依赖> std_msgs

在这里,该工具将不会构建一个so,也不会找到std_msgs。

这是否会实现/固定?

(使用R2015b运行Ubuntu 14.04 -学生)

谢谢
丹尼斯·埃勒里

詹姆斯中士

不确定那里发生了什么……让我再试一次。

我在生成定制消息和服务方面遇到了困难。我准确地按照说明去做(并且已经做了很多次了)。我的…/matlab_gen/msggen/+robotics/+ros/+custom/+msggen文件夹是空的,我假设这里应该有一些文件?当我运行rosmsg list我的消息不出现。我使用的是Ubuntu 14.04 64位R2016a。谢谢你,詹姆斯

詹姆斯中士

抱歉,我应该在下面的帖子中提到我使用的是Ubuntu 14.04 64位R2016a。

这篇MATLAB Answers文章描述了如何更新内置ROS消息类型的版本(这解决了Daniel的问题):

//www.tatmou.com/matlabcentral/answers/283695-updating-existing-custom-message-types-with-rosgenmsg

@Daniel,很抱歉,您在更新leap_motion包的消息定义时遇到了麻烦。你应该能够做到这一点,我们将与你联系,以寻求解决方案。

丹尼尔Strassberg

我正在尝试更新一个消息类型的leap_motion控制器,但不能找出它。机器人工具箱加载了该控制器的消息类型,但它们已经被ROS发布的新文件过时了。

我从git下载了这些文件,并使用rosgenmsg工具创建了matlab_gen。当我查看创建的文件夹时,邮件遵循旧文件的格式,而不是新文件的格式。

然后我找到matlab存储它的消息信息和删除文件夹的leap_motion。我重新运行了rosgenmsg工具,消息类型仍然引用旧的消息类型。

然后我将文件夹重命名为leap_motion_test,并更改package.xml以反映这一点。当我这次运行rosgenmsg工具时,消息信息是正确的。然后我遍历matlab_gen文件夹,将leap_motion_test的所有引用都更改为leap_motion,并导入jar文件,更新matlab路径信息以反映这一更改。当我加载matlab并检查消息信息时,它再次恢复到旧的消息类型。

这是为什么呢?如何更新机器人工具箱中预装的消息类型。这已经变得非常令人沮丧,浪费了我的时间,因为我尝试了每一个我能想到的解决方案。

谢谢你的帮助

法比安-拜尔

礼萨Javanmard

我已经完全安装了自定义消息包。然后尝试创建我的自定义服务服务器消息,所以我创建了一个文件夹包含:package.xml和srv文件夹与x.srv文件组成:
int32 robotid
int32 r1np
int32 r2np
int32 r3np
---
int32响应

应用命令>>rosgenmsg(folderpath)…,它创建新的消息类型,我可以在>>rosmsg列表中看到它。
但是当我想用它的时候:
> > custommsg = rosmessage(“newmessagetype”);
>>server = rossvcserver('/call_matlab', custommsg, @servercallback)

错误提示此类型无效。似乎新的消息类型应该在“rostype”中。getServiceList",但它在"rosmsg list"中,这是用于发布和订阅的普通消息,与服务类型消息不同。
我怎样才能解决这个问题?

爱丽丝

它可以很好地与旧的“包清单格式1”一起工作,但它不支持新的“格式2”,这是当前的标准:金宝apphttp://wiki.ros.org/catkin/package.xml#Format_2_.28Recommended.29.将其设置为5星。

福雷斯特莱恩

在catkin_ws中生成的文件使您无法在不显著修补autogen文件的情况下“catkin_make”您的目录。此外,最好使用自定义消息作为消息类型,比如在初始化订阅者以接收类型为'custom_msg'的消息的上下文中。否则伟大的附加组件。

@QUT HPC。是的,可以在没有互联网接入的情况下安装接口。

请通过以下方式与我们联络//www.tatmou.com/matlabcentral/profile/contact/4365922-mathworks-robotics-team我们可以把步骤发给你。

@Tobias。如果大小写差异给您带来问题,请谅解。一般来说,我们试图在MixedCase中保留对象中的所有属性名,这样会对ROS中的消息变量造成轻微的差异。请让我们知道,如果这是阻止您使用我们的工具。

QUT HPC

Linux主机在没有互联网接入的情况下,下载/安装方法是什么?

托比亚斯Rehder

为什么在自定义消息中强制工具箱变量以大写字母开头,例如。“测试”的风俗。msg导致一个变量名'Test'在Matlab?希望保持变量名不变,以防止混淆。

Rachana Agrawal

安装Okula,软件包安装顺利!
谢谢你!

Rachana Agrawal

谢谢您的回复。
在执行命令时,它会给出一个错误:
加载共享库时出错:libfreetype.so。6:从共享对象映射段失败:权限被拒绝

@Rachana, evince可执行文件可能在MATLAB中不可见。您可以尝试不同的PDF阅读器,因为安装检查evince、okular、kpdf和xpdf。

在安装之前,您可以通过在MATLAB中执行以下命令来验证PDF阅读器是否可见:

!了Evince --help

如果MATLAB可以使用evince,你应该看到解释evince用法的帮助文本。如果它不可用,您应该看到一条错误消息,说明没有找到命令。您可以对kpdf、okular或xpdf尝试相同的验证步骤。

很抱歉给您带来不便。

Rachana Agrawal

安装时我遇到了与@Inkyu Sa相同的错误。我使用64位Ubuntu 14.04,Matlab 2015a试用版(未安装所有工具箱,希望尝试机器人系统工具箱)。Envice已安装并更新。但它无法解决问题。Matlab未安装在默认文件夹中。
我尝试安装adobe reader作为默认的pdf阅读器,但也没有工作。

@Inkyu,很抱歉你遇到了错误。您的系统中似乎没有找到PDF阅读器。在安装结束时,会显示文档,这会导致您看到的错误。

你可以尝试安装PDF阅读器?在Ubuntu中,默认的读者“了Evince”,你可以用它安装

Sudo apt-get安装evince

之后,请尝试重新安装自定义消息界面。

Inkyu Sa

我使用64位Ubuntu 14.04.02, MATLAB R2015a。

Inkyu Sa

我在安装时遇到了一个错误。
Error with post-install command for package roscustommsg: Error executing command "robotics.ros.custommsg.internal.setup.postInstallCmd;"
在调用"robotics.ros.custommsg.internal.help.openDoc>GetPDFReader"期间没有分配输出参数"reader"(可能还有其他参数)。

@Gerold,你安装过以前版本的支持包吗?金宝app如果是,请卸载它(通过调用“roboticsSupportPackages”),然后再次尝试安装金宝app。

Gerold Huber

我碰到一个错误,而支持包安装程序会尝试下载工具箱界面:金宝app
"打开zip文件时出错"

还有人有问题吗?

布莱恩Goldfain

前面的评论是我的错误,这个包在64 biy Ubuntu14.04和R2015a中运行良好

布莱恩Goldfain

当我尝试在64位Ubuntu 14.04中安装R2015a时,我得到了错误信息('computer'的输出是GLNXA64):

无法在此系统上安装ROS自定义消息的Robotics系统工具箱接口。
它要求:

基本产品:机器人系统工具箱
主机平台:Win32、Win64 Mac64 Linux64

@Brian和@Rajan:我们刚刚发布了一个更新,扩展了自定义消息支持到Linux和Mac系统。金宝app如果你遇到什么问题就告诉我。

布莱恩Goldfain

我的研究实验室也对这个接口的Linux版本感兴趣。是否有关于Linux可用性的更新信息?

@Rajan:我们正在积极研究如何将自定义消息支持扩展到其他平台,包括Linux和Mac。任何未来的更新都会在这里发布。金宝app

艾哈迈德·萨伯

伟大的工作。但是我认为你需要在文档中添加。srv文件应该在srv子目录下,否则它不会从它读取任何消息。

拉詹

请问一个Linux版本的即将发布?

MATLAB版本兼容性
使用R2017a创建
兼容R2017a到R2020a
平台的兼容性
窗户 马科斯 Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!