ROS学习之消息包

一个包是ROS中用于存储ROS 消息数据的文件格式。包 的扩展名为.bag - 在ROS中具有重要作用,并且已经编写了各种各样的工具来允许您存储,处理,分析和可视化它们。

 在线计算图中使用

包通常由诸如rosbag的工具创建,该工具订阅一个或多个ROS 主题,并且将序列化的消息数存储在接收到的文件中。这些包文件也可以在ROS中回放到与他们记录的相同的主题,甚至重新映射到新的主题。

使用ROS计算图中的包文件与ROS节点发送相同的数据通常没有区别,尽管您可能遇到存储在消息数据内的时间戳数据的问题。因此,rosbag 工具包括一个发布与数据记录在文件中的时间对应模拟时钟的选项

包文件格式对于记录和播放都非常有效,因为消息以与ROS的网络传输层中使用的相同的表示形式存储。

 

离线使用和数据迁移

消息包是数据记录在ROS中的主要机制,这意味着它们具有各种离线功能。研究人员使用包文件工具链来记录数据集,然后可视化,标记它们并存储以供将来使用。Bag文件也被用于执行PR2机器人的长期硬件诊断记录。

rqt_bag这样的工具可让您可视化包文件中的数据,包括绘制字段和显示图像。您还可以使用rostopic命令从控制台快速检查包文件数据rostopic支持列出包文件主题以及回显数据到屏幕。

rosrecord软件包中也有程序化的API,使C ++和Python软件包能够迭代存储的消息。为了更快地操作bag文件,rosbag工具支持重新包装一个bag文件,这样可以将匹配特定过滤器的消息提取到一个新的包文件。

存储在包文件中的数据通常非常有价值,所以袋子文件也被设计为在更新msg文件时容易地迁移包文件格式存储相应消息数据msg文件,并且像rosbagmigration这样的工具可以让您编写规则,以便在包装文件过期时自动更新。

 

包工具

  • rosbag:用于录制,播放和其他操作的统一控制台工具。

  • rqt_bag:用于可视化包文件数据的图形工具。

  • rostopicecholist命令与bag文件兼容。

 

较旧的工具

以下工具已被rosbag 取代,但仍然支持:

 

包格式

包文件基本格式不应与普通用户相关。它可以更改,但向后兼容性将由程序化访问库或自定义转换库维护。

 

 

原文地址:https://www.cnblogs.com/qixianyu/p/6670045.html