Matlab 讀取 ROS bag 文件指定消息數據


近期在接觸Ros的時候遇到了一些問題,如何將rosbag中的信息提取出來進行進一步處理呢?

如三維點位置信息,視頻信息(如果有的話)等等。

我采用的是MATLAB

讀取bag信息

  1. filepath=fullfile('F:','Leon Files','MH_01_easy.bag')  
  2. bag=rosbag(filepath)  

對matlab中讀取文件不熟悉的朋友可以參考我之前看到的一片不錯的博文:

http://blog.sina.com.cn/s/blog_632947d60102uxo4.html

@亮亮的博客

點擊工作區的bag,得到如下信息(針對我所使用的bag文件)

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

我要提取的是信息4,空間幾何位置信息。所以我們要對信息進行選擇。

  1. geometry_message=select(bag,'MessageType','geometry_msgs/PointStamped')  
完成后讀取geometry_message中的信息
  1. data=readMessages(geometry_message)  
至此,我已將bag中的幾何信息讀取到data中了,如下圖所示。發現共有3099條信息。

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

接下來我將建立一個三維數組,將所有數據讀入position數組。

[plain] view plain copy
  1. position=zeros(3099,3);  
  2. for i=1:3099  
  3.     position(i,1)=data{i,1}.Point.X;  
  4.     position(i,2)=data{i,1}.Point.Y;  
  5.     position(i,3)=data{i,1}.Point.Z;  
  6. end  
顯示
[plain] view plain copy
  1. for i=1:3099  
  2.     plot3(position(i,1),position(i,2),position(i,3),'r.','markersize',5);  
  3.     hold on  
  4. end  
結果如下圖所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM