1-3节参考ROS学习(七)rosbag
4 节参考 MATLAB分析rosbag

1 录制与回放rosbag

录制回放

用命令rosbag record -a记录所有的话题信息。
默认的保存格式为“starttime.bag” ,
cd 到保存的文件夹下,运行rosbag info <bag_name> 查看rosbag中的消息。
用命令 rosbag play <bag_name>进行回放,可以打开另一个终端,键入rostopic list查看包含的话题的简略信息。
图片.png

回放指定话题

运行以下指令可回放指定话题

  1. rosbag play <your bagfile name> --topics /topic_name

记录部分话题

在一个包含数百个话题的大型系统中,经常会发布诸如图像等的大量的信息,把它们都记录到一个文件里是不现实的,好在rosbag record命令提供了仅记录部分话题的能力。

  1. rosbag record -O subset /turtle1/cmd_vel /turtle1/pose

-O选项指定了我们要保存的bag文件的名字(subset.bag),后面的/turtle1/cmd_vel/turtle1/pose则指定了我们要记录信息的话题。
注:rosbag record/play无法完美重现系统的状态。

2 将rosbag文件指定的话题转为txt

file_name.bag文件中topic_name话题的消息转换到Txt_name.txt文件中:

  1. rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt

3 使用rxplot画时间趋势曲线

在ROS系统中,标量数据可以根据消息中提供的时间戳作为时间序列绘制图形。
运行可以发布话题的节点后,可以通过rostopic list查看当前的发布的话题,现在,我们不再去使用rostopic echo <topic>,而是通过rxplot命令就能够看到随时间变化的值的曲线。

  1. rqt_plot /topic/data //单个话题,单个数据
  2. rqt_plot /topic/x:y:z //单个话题,向量数据
  3. rqt_plot /topic/x /topic/y /topic/z

或是先打开GUI界面:

  1. rosrun rqt_plot rqt_plot

4 使用MATLAB 提取rosbag信息

需要安装ROS Toolbox。