近期在接觸Ros的時候遇到了一些問題,如何將rosbag中的信息提取出來進行進一步處理呢?
如三維點位置信息,視頻信息(如果有的話)等等。
我采用的是MATLAB
讀取bag信息
- filepath=fullfile('F:','Leon Files','MH_01_easy.bag')
- bag=rosbag(filepath)
對matlab中讀取文件不熟悉的朋友可以參考我之前看到的一片不錯的博文:
http://blog.sina.com.cn/s/blog_632947d60102uxo4.html
@亮亮的博客
點擊工作區的bag,得到如下信息(針對我所使用的bag文件)

點擊AvailableMessages可以看到bag中存在的信息,如下所示

我要提取的是信息4,空間幾何位置信息。所以我們要對信息進行選擇。
- geometry_message=select(bag,'MessageType','geometry_msgs/PointStamped')
- data=readMessages(geometry_message)



這里的point信息里面有x,y,z信息,下圖顯示的是X的信息。注意下圖中4.7823上面的一行字:data{1,1}.Point.X,表示的是X的讀取方式。

接下來我將建立一個三維數組,將所有數據讀入position數組。
- position=zeros(3099,3);
- for i=1:3099
- position(i,1)=data{i,1}.Point.X;
- position(i,2)=data{i,1}.Point.Y;
- position(i,3)=data{i,1}.Point.Z;
- end
- for i=1:3099
- plot3(position(i,1),position(i,2),position(i,3),'r.','markersize',5);
- hold on
- end
