ROS记录和回放数据
记录数据
打开3个终端,分别执行
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
检查一下当前系统中发布的所有话题。打开一个新终端:
rostopic list -v
现在我们将记录发布的数据。打开一个新终端:
mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a
控制小海龟一段时间,关闭rosbag record
窗口,然后去~/bagfiles
目录里寻找以时间为名臣的.bag
文件,就是刚刚记录下来的文件
检查和回放数据
检查数据
在终端中打开.bag
文件所在的文件夹,运行
rosbag info <your bagfile>
就可以看到.bag
文件里储存的所有信息
回放数据
在终端中打开.bag
文件所在的文件夹,运行
rosbag play <your bagfile>
默认模式下,rosbag play命令在公告每条消息后会等待一小段时间(0.2秒)才真正开始发布bag文件中的内容。等待一段时间是为了可以通知订阅者,消息已经公告且数据可能会马上到来。如果rosbag play在公告消息后立即发布,订阅者可能会接收不到几条最先发布的消息。等待时间可以通过-d选项来指定。
最终/turtle1/cmd_vel话题将会被发布,同时在turtuelsim中乌龟应该会像之前用turtle_teleop_key控制它那样开始移动。从运行rosbag play到乌龟开始移动时所经历时间应该近似等于开始部分运行rosbag record后到开始按下键盘发出控制命令时所经历时间。可以通过-s参数选项让rosbag play不从bag文件的开头开始,而是从某个指定的时间开始。-r选项,允许通过设定一个参数来改变消息发布速率。如果执行
rosbag play -r 2 <your bagfile>
会两倍速播放
录制数据
rosbag record -O subset /turtle1/cmd_vel /turtle1/pose
上述命令中的-O参数告诉rosbag record将数据记录到名为subset.bag的文件中,而后面的topic参数告诉rosbag record只能订阅这两个指定的话题。
通过此方法可以实现只记录想要的数据
本文来自博客园,作者:不想要名字,转载请注明原文链接:https://www.cnblogs.com/xuwithbean/articles/17809841.html