如何在MATLAB查找消息类型

描述

消息是ROS中交换数据的主要容器。主题和服务使用消息在节点之间传输数据。为了标识其数据结构,每条消息都有一个消息类型。

例如,来自激光扫描仪的传感器数据通常以sensor_msgs/LaserScan类型的消息发送。

每种消息类型标识消息中包含的数据元素。每个消息类型名称都是一个包名称。

机器人

MATLAB支持在机器人应用程序中经常遇到的许多ROS消息类型。这个例子展示了在MATLAB中创建、探索和填充ROS消息的一些方法。

1. 查找消息类型

初始化ROS主节点和全局节点

rosinit
Launching ROS Core…




Done in 0.37599 seconds.






Initializing ROS master on 


http://172.29.217.11:53161.




Initializing globalnode /matlab_global_node_29455 with NodeURI 


http://dcc083455glnxa64:37683/






 and MasterURI http://localhost:53161.

使用exampleHelperROSCreateSampleNetwork使用另外三个节点以及示例发布者和订阅者填充ROS网络。

网络上有各种节点,它们都有一些主题和关联的发布者和订阅者。

您可以通过调用rostopic list查看可用主题的完整列表。

rostopic list
/pose
/rosout
/scan
/tf

如果您想了解更多关于通过/scan主题发送的数据类型的信息,请使用rostopic info命令来检查它。

/scan的消息类型为sensor_msgs/LaserScan

rostopic info /scan
Type: sensor_msgs/LaserScan




Publishers:


/node_3 (http://dcc083455glnxa64:36623/)




Subscribers:
/node_1 (http://dcc083455glnxa64:42445/)


/node_2 (http://dcc083455glnxa64:39859/)

命令输出还告诉您哪些节点正在发布和订阅主题。要了解有关发布者和订阅者的信息,请参见调用和提供ROS服务。

若要了解有关主题消息类型,rosmessage支持消息类型的TAB补全。若要完成消息类型名称,请键入要完成的名称的前几个字符,然后按Tab键。

scandata = rosmessage("sensor_msgs/LaserScan","DataFormat","struct")
scandata = struct with fields:
MessageType: ‘sensor_msgs/LaserScan’
Header: [1x1 struct]
AngleMin: 0
AngleMax: 0
AngleIncrement: 0
TimeIncrement: 0
ScanTime: 0
RangeMin: 0
RangeMax: 0
Ranges: [0x1 single]
Intensities: [0x1 single]

要查看主题和服务可用的所有消息类型的完整列表,请使用rosmsg list

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分