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查看包含的话题的简略信息。
回放指定话题
运行以下指令可回放指定话题
rosbag play <your bagfile name> --topics /topic_name
记录部分话题
在一个包含数百个话题的大型系统中,经常会发布诸如图像等的大量的信息,把它们都记录到一个文件里是不现实的,好在rosbag record
命令提供了仅记录部分话题的能力。
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
文件中:
rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt
3 使用rxplot画时间趋势曲线
在ROS系统中,标量数据可以根据消息中提供的时间戳作为时间序列绘制图形。
运行可以发布话题的节点后,可以通过rostopic list
查看当前的发布的话题,现在,我们不再去使用rostopic echo <topic>
,而是通过rxplot
命令就能够看到随时间变化的值的曲线。
rqt_plot /topic/data //单个话题,单个数据
rqt_plot /topic/x:y:z //单个话题,向量数据
rqt_plot /topic/x /topic/y /topic/z
或是先打开GUI界面:
rosrun rqt_plot rqt_plot
4 使用MATLAB 提取rosbag信息
需要安装ROS Toolbox。