ROS自定义消息支持万博1manbetx

自定义消息的概述

自定义消息是用户定义的消息,可以使用它们扩展当前支持的消息类型集万博1manbetxROS工具箱. 如果您正在发送和接收支持的消息类型,则不需要使用自定义消息。要查看万博1manbetx支持的消息类型列表,请调用rosmsg列表在MATLAB®命令窗口。

自定义消息创建需要ROS包,有关详细信息,请访问ROS Wiki. 确保您拥有用于自定义邮件的有效ROS包后,请致电rosgenmsg使用自定义消息包的文件路径生成必要的MATLAB代码以使用自定义消息。有关如何在MATLAB中生成ROS自定义消息的示例,请参见创建自定义ROS包消息

如果这是您第一次使用ROS自定义消息,请检查ROS系统要求

自定义消息内容

ROS自定义消息在包含味精深水救生艇目录。

笔记

在任何时候,MATLAB路径上都应该只有一个自定义消息文件夹。此文件夹可以包含多个包。建议将它们全部保存在一个唯一的文件夹中。

这个味精文件夹包含所有自定义消息类型定义。还应该将所有自定义服务类型定义添加到深水救生艇文件夹例如,包定制机器人具有此文件夹和文件结构。

中包含一个自定义消息类型RobotTopic.msg和一个自定义服务类型RobotService.srv. MATLAB使用这些文件生成必要的文件,以使用包中包含的自定义消息。有关创建的详细信息,请参见味精深水救生艇文件,请参阅创建ROS msg和srv定义自定义消息在roswiki上。这些文件的语法在特定于味精深水救生艇

笔记

  • 您必须具有对自定义邮件文件夹的写入权限。

  • 在任何时候,MATLAB路径上都应该只有一个自定义消息文件夹。此文件夹可以包含多个包。建议将它们全部保存在一个唯一的文件夹中。

  • ROS操作不受支持,在自定义消息生成过程万博1manbetx中将被忽略。

从消息字段命名属性

当将ROS消息定义转换为MATLAB时,字段名被转换为消息对象的属性。对象属性总是以大写字母开头,且不包含下划线。修改字段名以适应这种命名约定。下划线后的第一个字母和第一个字母都大写,去掉下划线。例如,sensor_msgs /形象消息在ROS中包含以下字段:

头高度宽度编码is_bigendian步长数据

转换后的MATLAB属性为:

收割台高度宽度编码为Bigendian步长数据

在Simulink中使用ROS消息时也反映了这一点万博1manbetx®. ROS消息总线使用与MATLAB相同的属性名称。

自定义邮件创建工作流

如前一节所述,设置好自定义消息结构后,就可以创建使用这些自定义消息所需的代码。首先,你叫rosgenmsg用您已知的自定义消息文件路径创建MATLAB代码。

这个rosgenmsg函数获取自定义消息文件(味精.srv)并将每种消息类型转换为可工作的MATLAB代码。这个rosgenmsg函数查找味精文档中的文件味精文件夹和.srv文档中的文件深水救生艇文件夹此代码是一组类,用于在创建新的自定义消息时定义消息属性。然后,该函数为不同的消息类创建所需的MATLAB M文件。

之后rosgenmsg函数创建这些文件时,必须将类文件添加到MATLAB路径。这些步骤在MATLAB命令窗口中作为提示给出。

  1. 将类文件的位置添加到MATLAB路径:使用目录要将扩展名为.m的文件的新位置添加到MATLAB路径,请使用savepath以保存这些更改。

  2. 刷新所有消息类定义,这需要清除工作区:

    清晰的班级重新处理toolboxcache

  3. 验证消息是否可用:使用rosmsg列表或者是罗斯梅瑟函数检查新的自定义消息是否可用。

有关此过程的示例,请参阅创建自定义ROS包消息。此示例使用示例自定义消息文件在MATLAB中创建自定义消息。

对于一组特定的自定义消息,您只需完成此过程一次。在此之后,您可以像使用MATLAB中的任何其他ROS消息一样使用新的自定义消息,并充分利用所提供的完整ROS功能ROS工具箱提供。如果要更新或创建新的邮件类型,请重复此生成过程。

必须维护包含文件目录的MATLAB路径。确保MATLAB路径一次只有一个包含自定义消息工件的文件夹。

使用自定义消息生成代码

自定义消息和服务类型可以与ROS Simulink块一起使用,用于为独立ROS节点生成c++代码。万博1manbetx生成的代码(. tgz将包括定制消息的Simulink定义,但不包万博1manbetx括ROS定制消息包。当在目标Linux系统中构建生成的代码时,它期望自定义消息包可以在catkin工作区中或在ROS_包_路径.在构建生成的代码之前,请确保安装或复制自定义消息包到Linux系统。

另见

|

相关的话题