主要内容

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

自定义消息的概述

自定义消息是用户定义的消息,您可以使用扩展的消息类型目前支持万博1manbetxROS工具箱。如果你是发送和接收消息类型的支持,您不需要使用自定义消息。万博1manbetx看到一个支持的消息类型列表,电话万博1manbetxrosmsg列表在MATLAB®命令窗口。

创建自定义消息需要ROS包,这是详细的在ROS Wiki。确保你有有效的ROS包后自定义消息,电话rosgenmsg与文件路径包含自定义消息包文件夹的位置生成必要的MATLAB代码使用自定义消息。例如如何在MATLAB生成活性氧自定义消息,明白了从活性氧包创建自定义消息

如果这是你第一次使用ROS自定义消息,检查ROS工具箱系统需求

自定义消息内容

活性氧ROS中指定自定义消息包文件夹,其中包含味精,深水救生艇,行动目录。

请注意

在任何时候,只能有一个自定义消息文件夹在MATLAB的道路。这个文件夹可以包含多个包。建议你把它们保存在一独特的文件夹。

味精文件夹包含所有您的自定义消息类型定义。您还应该将所有自定义服务类型定义深水救生艇文件夹,添加所有自定义的动作类型定义行动文件夹中。例如,包custom_robot_msgs这个文件夹和文件结构。

自定义消息文件夹结构。顶层包custom_robot_msgs包含三个文件夹。味精、深水和行动包含生成的自定义消息,分别服务和行动。

包中包含一个自定义的消息类型RobotTopic.msg和一个定制的服务类型RobotService.srv,一个自定义的动作类型RobotAction.action。MATLAB使用这些文件来生成所需的文件使用自定义消息包含在包中。有关创造的更多信息味精深水救生艇文件,请参阅创建一个ROS味精和深水救生艇定义自定义消息ROS Wiki。这些文件的语法描述的特定页面味精深水救生艇。ROS操作的更多信息,请参阅ROS行为概述

请注意

  • 你必须写访问自定义消息文件夹。

  • 在任何时候,只能有一个自定义消息文件夹在MATLAB的道路。这个文件夹可以包含多个包。建议你把它们保存在一独特的文件夹。

从消息字段属性命名

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

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

转换后的MATLAB属性是:

头高度宽度编码IsBigendian步骤数据

这也反映在仿真软件中使用ROS的消息万博1manbetx®。ROS消息总线使用相同的属性名称是MATLAB。

自定义消息创建工作流

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

rosgenmsg函数接受您的自定义消息文件(.msg,.srv,.action),将每个消息类型转换为MATLAB代码工作。的rosgenmsg函数查找.msg文件味精文件夹,.srv文件深水救生艇文件夹,.action文件行动文件夹中。这段代码是一组类,定义消息属性当您创建新的自定义消息。然后创建所需的MATLAB M-files功能不同的消息类。

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

  1. MATLAB路径添加类文件的位置:使用目录添加新文件的位置与MATLAB的m扩展路径和使用savepath保存这些更改。

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

    清晰的重新处理toolboxcache

  3. 验证信息是可用的:使用rosmsg列表或者是rosmessage函数来检查新的自定义信息是可用的。

这个过程的一个例子,看到从活性氧包创建自定义消息。这个示例使用示例自定义消息在MATLAB文件创建自定义消息。

您需要完成这个过程只有一次为一组特定的自定义消息。之后,您可以使用新的自定义消息和其他ROS消息在MATLAB和充分利用ROS功能ROS工具箱提供了。重复这一代过程当你想更新或创建新的消息类型。

你必须保持MATLAB包含文件目录的路径。确保MATLAB路径只有一个文件夹,其中包含自定义消息构件。

代码生成自定义消息

自定义消息、服务和操作类型可以用于ROS仿真软件生成c++代码块为一个独立的ROS节点。万博1manbetx生成的代码(. tgz档案)将包括模型定义自定义消息,但它不会包括万博1manbetxROS自定义消息包。当构建生成的代码在目的地的Linux系统,预计可用的自定义消息包上的柔荑花序工作区或ROS_PACKAGE_PATH。确保您安装或自定义消息包复制到您的Linux系统在建筑生成的代码。

取代内置的定义与自定义消息定义

MATLAB提供了大量的内置ROS消息类型。您可以定义的消息类型替换为新定义使用相同的自定义消息创建工作流详细。当你更换一个内置的消息包的定义,您必须确保自定义消息包文件夹包含新定义(.msg文件)的所有消息类型在相应的内部消息包。

另请参阅

|

相关的话题