zoukankan      html  css  js  c++  java
  • 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数组。

    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  
    显示
    1. for i=1:3099  
    2.     plot3(position(i,1),position(i,2),position(i,3),'r.','markersize',5);  
    3.     hold on  
    4. end  
    结果如下图所示:
  • 相关阅读:
    Oracle序列使用:建立、删除
    struts1.x入门
    SQL的四种连接-左外连接、右外连接、内连接、全连接
    eclipse更改文件编码方式
    使用links方式安装Eclipse插件
    JAVA:Eclipse代码自动提示
    MyEclipse注释配置
    全面理解SQL
    一秒去除Win7快捷方式箭头
    Eclipse快捷键大全(转载)
  • 原文地址:https://www.cnblogs.com/lvchaoshun/p/9090865.html
Copyright © 2011-2022 走看看