下午好,亲爱的读者们!本文是非同寻常的系列。它可以被视为对文章的有用补充。在这里,我将谈谈ROSbag中的ROS这样有用的工具。请有兴趣的人在猫下。什么是rosbag?
rosbag允许您将ROS主题中发布的数据保存到具有bag扩展名的特殊文件中。然后,可以使用相同的rosbag播放这些文件。数据将在最初发布的相同主题中发布。例如,这允许在不存在传感器的情况下模拟来自传感器的数据接收。将主题中的数据写入bag文件
例如,我们将记录来自Raspberry Pi相机的数据。如果你还记得的文章,我们收到了来自摄像机的视频流,并在主题image_raw公布。现在,我们将仅使用相同的ROS节点来接收记录数据。我们将录制从主题image_raw到rosbag文件raspicam_image_raw.bag的视频流,然后播放它,而无需使用相机即可接收原始流。因此,启动raspi_cam_ros节点:rosrun raspi_can_ros capture
显示活动主题列表:rostopic list
其中的主题是我们的主题image_raw。现在,我们将使用rosbag记录主题:rosbag record /image_raw -o raspicam_image_raw
我们将录制几分钟的视频流。最好不要写很长的流,因为bag文件在内存中占据着相当的位置。例如,我在一分钟半的录音中花费了90 MB。首先,让我们看看我们的包文件包含什么:rosbag info < >
path: 2016-05-07-13-00-23.bag
version: 2.0
duration: 55.1s
start: May 07 2016 15:00:24.86 (1462626024.86)
end: May 07 2016 15:01:19.96 (1462626079.96)
size: 89.7 MB
messages: 102
compression: none [102/102 chunks]
types: sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics: /image_raw 102 msgs : sensor_msgs/Image
突破袋文件数据
现在停止我们的节点并播放记录:rosbag play raspicam_image_raw.bag -r 1 --loop
我们在rqt_image_view窗口中显示来自image_raw主题的数据:rosrun rqt_image_view rqt_image_view
在视频中可以看到Raspberry Pi 2上bag文件的回放。rosbag游戏团队也有几个有用的选项:- -r FACTOR确定速度因子(帧速率乘以该值)
- -hz = HZ确定以Hz为单位的帧频(默认为100)
- --loop循环播放(到达录音结尾时“倒退”到开头)
有一个特殊的工具rqt_bag用于记录和处理bag文件。在官方页面上,您可以了解有关此实用程序的更多信息。目前,这只不过是关于rosbag。我认为您会发现rosbag实用程序有许多用途。这是一个功能强大的实用程序,如果完全使用ROS,则很难没有它。使用ROS在您的项目中好运!