ROS中的常用组件(六)——rosbag数据记录与回放

ROS中的常用组件(六)——rosbag数据记录与回放

总述

为了方便调试测试,ROS提供了数据记录与回放的功能包——rosbag,可以帮助开发者收集ROS系统运行时的消息数据,然后在离线状态下回放。
通过乌龟例程介绍rosbag数据记录和回放的实现方法。

一、记录数据

首先启动键盘控制乌龟例程所需的所有节点:

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

启动成功后,可以看到界面中的小乌龟,此时可以在终端中通过键盘控制乌龟移动。
查看当前ROS系统中的话题:

rostopic list -v

接下来使用rosbag抓取这些话题的消息,并且打包成一个文件放置到指定文件夹中:

mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a

rosbag record就是数据记录的命令,-a(all)参数意为记录所有发表的消息。现在,消息记录已经开始,我们可以在终端中控制小乌龟移动一段时间,然后在数据记录运行的终端中按下“Ctrl+C”,即可终止数据记录。新生成的数据记录文件保存在新建的~/bagfiles文件夹中。

二、回放数据

数据记录完成后,可以使用该数据记录文件进行数据回放。rosbag功能包提供了info命令,可以查看数据记录文件的详细信息,命令的使用格式如下:

rosbag info <your bagfile>

使用该info命令来查看之前生成的数据记录文件。
从信息中可以看到,数据记录包中包含的所有话题、消息类型、消息数量等信息。终止之前打开的turtle_teleop_key控制节点并重启turtlesim_node,使用如下命令回放所记录的话题数据:

rosbag play <your bagfile>

在短暂的等待时间后,数据开始回放,小乌龟的运动规矩应该与之前数据记录的状态完全相同。

猜你喜欢

转载自blog.csdn.net/weixin_45661757/article/details/112794669