主要内容

ros2genmsg.

从ROS 2定义生成自定义消息

描述

ros2genmsg(FOLDERPATH.生成matlab.®ros 2自定义消息的接口。指定包含自定义消息定义的父文件夹的路径.msg.文件。

例子

ros2genmsg(FOLDERPATH.名称,价值使用一个或多个名称值对参数指定其他选项。

笔记

生成ROS 2的自定义消息时,必须构建ROS包。这需要您为您的平台拥有CMake和C ++编译器。有关更多信息,请参阅ROS系统要求

您必须在系统上安装以下内容:

例子

全部收缩

自定义消息是用户定义的消息,可以用于扩展当前在ROS 2中支持的消息类型集。如果要发送和接收支持的消息类型,则无需使用自定义消息。金宝app要查看支持的消息类型列表,请调用金宝appros2 msg列表在MATLAB®命令窗口中。有关支持ROS 2消息的更多信息,请参阅金宝app使用基本的ROS 2消息

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

自定义消息内容

ROS 2自定义消息在ROS 2包文件夹中指定,包含a味精目录。这味精文件夹包含所有自定义消息类型定义。例如,包装example_b_msgs.,内在风俗文件夹,具有以下文件夹和文件结构。

包包含一个自定义消息类型,独立.msg.。MATLAB使用这些文件来生成使用包中包含的自定义消息的必要文件。有关消息命名约定的更多信息,请参阅ROS 2接口定义

在此示例中,您可以通过在MATLAB®中创建ROS 2自定义消息的过程。您必须拥有包含所需的ROS 2包味精文件。

确保自定义邮件包正确后,请注意文件夹路径位置,然后调用ros2genmsg.使用指定的路径。以下示例提供了三条消息example_package_a,example_package_b., 和example_package_c.那有依赖关系。此示例还示出了您可以使用包含多个消息的文件夹并同时生成它们。

要在MATLAB中设置自定义消息,请在新会话中打开MATLAB。将自定义消息文件夹放入位置并记下文件夹路径。在此示例中,自定义消息接口文件夹存在于当前目录中。如果要在单独的位置创建自定义消息包,请为包含自定义消息包的文件夹提供适当的路径。

folderpath = fullfile(pwd,“风俗”);拷贝文件(“示例_ * _ msgs”,folderpath);

指定自定义消息文件和调用的文件夹路径ros2genmsg.为matlab创建自定义消息。

ros2genmsg(folderpath)
识别文件夹'u:/documents/matlab/examples/ros-ex44405863/custom'.done中的消息文件。在文件夹'u:/documents/matlab/examples/ros-ex44405863/custom'.done中验证消息文件。[3/3]为自定义消息包生成MATLAB接口......完成。在文件夹'U:/ documents / matlab / examples / ros-ex44405863 / scate / matlab_msg_gen / win64'中运行colcon构建。建立进步。这可能需要几分钟...构建成功.Build日志

称呼ros2 msg列表验证创建新的自定义消息。

您现在可以使用以上创建的自定义消息作为标准消息。有关发送和接收消息的更多信息,请参阅与ROS 2发布商和订阅者的交换数据

创建一个发布者使用example_package_b / stortalone.信息。

node = ros2node(“/ node_1”);pub = ros2publisher(节点,“/ example_topic”“example_b_msgs / stortalone”);

在同一主题上创建一个订阅者。

sub = ros2subscriber(节点,“/ example_topic”);

创建消息并发送消息。

custom_msg = ros2message(“example_b_msgs / stortalone”);custom_msg.int_property = uint32(12);custom_msg.string_property =.'这是ROS 2自定义消息示例';发送(PUB,Custom_msg);暂停(3)%允许邮件到达的几秒钟

最新消息领域要知道订户收到的最近消息。

sub.latestmessage.
ans =.结构与字段:INT_PROPERTY:12 String_Property:'这是ROS 2自定义消息示例'

删除已创建的ROS对象。

清除节点酒吧

输入参数

全部收缩

ROS接口文件夹的路径,它是ROS消息包的父文件夹,指定为字符串标量或字符向量。父文件夹应包含一个package.xml.文件和包文件夹。这些文件夹包含一个/ msg.文件夹.msg.消息定义的文件。有关更多信息,请参阅关于ROS 2界面

例子:“/选择/ ros2 /粉碎/分享”

数据类型:char|细绳

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'buildconfiguration','fasterruns'

构建配置,指定为逗号分隔对组成'buildconfiguration'和包含的字符矢量或字符串标量'越来越雄厚或者'fasterRuns'

  • '越来越雄厚- 构建带有编译器优化的消息库,以获得更短的构建时间。

  • 'fasterRuns'- 使用编译器优化构建消息库,以便更快执行。

例子:ROS2GENMSG(“/ opt / ros2 / dashing / share”,'buildconfiguration','fasterruns')

数据类型:char|细绳

限制

重新启动节点

  • 生成自定义消息后,重新启动任何现有的ROS 2节点。

代码生成具有自定义消息:

  • 自定义邮件和服务类型可以与ROS 2功能一起使用,用于为独立ROS 2节点生成C ++代码。生成的代码(.tgz存档)将包括自定义消息的定义,但它不会包含ROS 2自定义消息包。当生成的代码内置在目标中时,它将预期自定义消息包在Colcon工作区中可用,该数据库应该是当前工作目录。在构建生成的代码之前,请确保将自定义消息包安装或复制到系统。

MATLAB编译器

  • ROS 2自定义消息和ros2genmsg.功能不支持金宝appMatlab Compiler™

在R2019B中介绍