近期在接触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

结果如下图所示:

Matlab 读取 ROS bag 文件指定消息数据的更多相关文章

  1. 从ROS bag文件中提取图像

    从ROS bag文件中提取图像 创建launch文件,如下: export.launch <launch> <node pkg="rosbag" type=&qu ...

  2. Matlab读取txt中用空格分隔的数据文件到矩阵

    转载...哪儿 忘记了 由于要做的项目中涉及到数据处理,初涉及到matlab.今天需要把一组只用空格分开的数据读取到一个三维矩阵,然后对这个矩阵进行处理. 思路是:首先用importdata读入txt ...

  3. 用Matlab的.m脚本文件处理实验室数据

    找到相应的文件 findfile %1 打开文件夹 %2 拷贝第一个文件 %3 关闭当前文件,再次拷贝新的文件,直到文件末尾结束 clc clear DST_PATH_t = 'C:\Users\Ma ...

  4. Linux c读取任意大小文件的所有数据

    代码如下,执行完之后被分配的动态内存的指针会保存到result中.由于是动态分配内存,读取内容不再使用之后注意用free 释放掉,如不明白,请多搜索以下动态内存分配的资料. #include < ...

  5. node 读取超大Excel 文件,提取数据

    之前是用 node-xlsx 来处理excel文件,主要是读取数据或者根据数据生成excel文件.不过,node-xlsx 似乎无法处理超大的excel(100MB以上),例如: var xlsx = ...

  6. 在服务端中,读取properties资源文件中的数据

    1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...

  7. matlab读取txt文档中的数据

    ps:文件中只有数字! format long fp=fopen('文件路径','打开方式(r)') [num,count]=fscnaf(fp,'%f')

  8. 利用ROS工具从bag文件中提取图片

    bag文件是ROS常用的数据存储格式,因此要从bag文件中提取数据就需要了解一点ROS的背景知识. 1. 什么是ROS及其优势 ROS全称Robot Operating System,是BSD-lic ...

  9. C#选择多个文件并读取多个文件数据

    原文:C#选择多个文件并读取多个文件数据 版权声明:本文为博主原创文章,转载请附上链接地址. https://blog.csdn.net/ld15102891672/article/details/8 ...

随机推荐

  1. 【知名的3D造型设计软件】犀牛 Rhinoceros 5.5.2 for Mac

    [简介] 今天和大家分享最新的3D设计软件 犀牛 Rhinoceros for Mac 5.5.2 版本,支持中文界面,这是一款Mac上知名的3D造型软件,犀牛可以广泛地应用于三维动画制作.工业制造. ...

  2. python中字符编码及unicode和utf-8区别

    ascii和unicode是字符集,utf-8是编码集 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) 编码规则:将「码位」转换为字节序列的规则(编码/ ...

  3. vmware centos7 网络配置

    1. 在vmware创建centos虚拟机 2. 在cmd下看一下本机所处的网段,并对一下vmware上的配置 如果同样处于同一网段(192.168.aaa.bbb,aaa处一致就行),就可以直接开机 ...

  4. urllib 学习一

    说明:Urllib 是一个python用于操作URL的模块   python2.x    ----> Urillib/Urllib2 python3.x    ----> Urllib  ...

  5. Windows下的包管理工具-Scoop

    关于scoop的介绍 https://www.jianshu.com/p/bb0ba62b519c https://blog.csdn.net/fcymk2/article/details/86653 ...

  6. zookeeper安装(单机版)

    1:查看当前服务器IP: # ifconfig 情况1:直接可以看到自己的IP:192.168.164.130 情况2:看不到自己的IP(但是能看到ifcfg-开头的东西,如:ifcfg-eno167 ...

  7. VS2015快捷键大全

    Ctrl+E,D —-格式化全部代码 Ctrl+E,F —-格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SH ...

  8. jQuery获取相同元素下标

    如题:经常搞混淆,index()获取的是下标,而eq(下标值)获取的是元素对象 var list=$(".toos");//获取class为toos的元素集合$('.toos'). ...

  9. putty-psftp

    putty-psftp putty文上传下载 open hostname cd directory lcd directory put file get file Example: open 192. ...

  10. flask 文件转为pdf并添加二维码

    背景: 宝安区需求,企业会下载表格,打印后填报.填报后收上表格,统一录入PDA.因为某台PDA只能录某个地方的表格,所以他们希望纸质表上有个二维码,扫描出现填报公司的一些信息,以及统计(好像是这样,没 ...