不知道你们有没有遇到rosbag数据包查看数据困难的问题,用rosbag play看不到数据,用rviz订阅也不太好,用rqt_bag插件查看也不是很友好,无奈之下,还是用我擅长的matlab实现数据查看,因为matlab也支撑ROS。如果大家有好的方法可以跟我说说。现在就介绍用matlab查看步骤:
1.首先你当然要用rosbag录制数据
2.有了数据,就要导入matlab里面,指令如下:
filepath=fullfile('D:','PID','laser1_2018-07-14-17-31-41.bag');
>> bag=rosbag(filepath);
其中fullfile就是合并文件名称。这里我的rosbag文件是放在D盘PID文件夹下
3.点击工作区里面的bag可以看到如下信息:
4.点击bag.AvailableTopics即可看到如下信息:
5.选择要显示的内容,如我的数据有两个话题的数据,一个是编码器的,一个是激光雷达的
通过指令 data=select(bag,'MessageType','sensor_msgs/LaserScan')
6.
接下来你可以看见里面的数据,你也可以通过maltab指令plot画图了。
第二种方法就是把rosbag包文件转为txt文件然后导入matlab里面,这种方法感觉更简单:
1.通过下面指令既可以包rosbag中的指定话题转为txt文件。
rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt
首先,我们通过rosbag record -a 记录一个数据包,然后通过rosbag info 2018-12-27-04-06-12.bag查看数据包的信息:如下我的数据包2018-12-27-04-06-12.bag
然后通过上面的指令
rosbag echo -b 2018-12-27-04-06-12.bag -p /imu/data > imu_data.txt
即可把数据包里面的话题/imu/data数据转化为imu_data.txt文件,然后用matlab导入画图即可。