不知道你們有沒有遇到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導入畫圖即可。