主要内容

ROS日志文件(rosbags)

介绍

rosbag或袋是一种文件格式存储活性氧ROS消息数据。这些包通常是由订阅一个或多个ROS的话题,并将接收到的消息数据存储在一个有效的文件结构。MATLAB®可以阅读这些rosbag文件和帮助筛选和提取消息数据。下面的章节详细rosbags在MATLAB的结构®为提取数据和工作流。

MATLAB rosbag结构

当访问rosbag日志文件、电话rosbag并指定文件路径对象。MATLAB然后创建一个BagSelection对象,该对象包含一个索引rosbag的所有消息。

BagSelectionrosbag相关对象具有以下属性:

  • FilePath:一个特征向量rosbag文件的绝对路径。

  • 开始时间:一个标量表示第一个消息的时间被记录

  • EndTime:一个标量表示时间的最后一条消息被记录

  • NumMessages:一个标量表示有多少消息中包含的文件

  • AvailableTopics:一个列表的主题和消息类型被记录在袋子里。这是存储为表数据,列表消息的数量、消息类型和消息定义为每个主题。表数据类型的更多信息,参见访问数据表。下面是一个示例输出这个表:

    ans = NumMessagesMessageTypeMessageDefinition⒈______________________ _________________ /时钟12001 rosgraph_msgs /时钟[1 x185 char] /露台/ link_states 11999 gazebo_msgs / LinkStates [1 x1247 char] /奥多姆11998 nav_msgs /测程法[1 x2918 char] /扫描965 sensor_msgs /提升[1 x2123 char]
  • MessageList:每条消息的列表行按时间戳排序的袋子当消息被记录。这个列表可以被索引,你可以选择一个列表的一部分。调用选择允许您选择基于时间戳的子集,主题或消息类型。

另外,请注意BagSelection对象包含一个索引的所有消息。然而,你仍然必须使用函数来提取数据。提取这些信息,请参阅readMessages基于指数作为一个单元阵列获取消息或看到timeseries阅读指定属性的数据作为时间序列。

工作流rosbag选择

在处理rosbags时,有一种普遍的程序应该如何提取数据。

  • 加载一个rosbag:叫rosbag加载文件和文件路径和创造BagSelection

  • 检查可用的信息:检查BagSelection属性(AvailableTopics,NumMessages,开始时间,EndTime,MessageList)来决定如何选择一个子集的信息进行分析。

  • 选择消息:叫选择创建一个消息的选择根据你所需的属性。

  • 提取消息数据:叫readMessagestimeseries得到消息数据单元阵列或时间序列数据结构。

  • 可视化分析或过程数据为您的特定应用程序:使用提取的数据。你可以画出数据或开发算法来处理数据。

下面的图还显示了工作流。

rosbag选择的工作流。

限制

有一些局限性在MATLAB中的rosbag支持:万博1manbetx

  • MATLAB只能解析未压缩的rosbags。看到ROS维基为一个工具解压压缩rosbag。

  • 只有rosbags v2.0格式支持。万博1manbetx看到ROS维基在不同的包格式的更多信息

  • 的文件路径rosbag必须访问。因为消息选择过程不检索任何数据,可用的文件需要阅读访问消息数据时。

另请参阅

||

相关的话题