近期在接触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. 剑指Offer_编程题_18

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  2. 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  3. Map_占位符(嗨没想好怎么起名字)

    Map 是很好的集合,为我们带来了在其他语言(比如 Perl)中经常可见的好用的键/值对集合.JDK 以 HashMap 的形式为我们提供了方便的 Map 实现,它在内部使用哈希表实现了对键的对应值的 ...

  4. java多线程api

    Object类相关api(相关的方法一定是当前线程在获取了对应的锁对象才能调用,否则会抛出异常) o.wait() :锁对象调用该方法使当前线程进入等待状态,并立刻释放锁对象,直到被其他线程唤醒进入等 ...

  5. layui(三)——laypage组件常见用法总结

    laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染.核心方法: laypage.render(options)  来设置基础参数. 一.laypag ...

  6. redis安全问题【原】

    前提 假设redis安装在 IP 地址为 192.168.0.123 的linux服务器 . 我的本机Win10操作系统 IP地址为 192.168.0.45 , 有一套java客户端代码可调用lin ...

  7. Elasticsearch学习笔记——安装、数据导入和查询

    到elasticsearch网站下载最新版本的elasticsearch 6.2.1 ? 1 https://www.elastic.co/downloads/elasticsearch 中文文档请参 ...

  8. 细说logback之简介

    官网:https://logback.qos.ch/https://logback.qos.ch/manual/index.html logback手册1.下载logback是slf4j的原生实现,所 ...

  9. UML图的使用

    UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法. 类之间的关系 在 ...

  10. Extjs 设置GridPanel单元格可选择高兼容写法

    网上大部分都是这种 <style type= "text/css" > .x-selectable, .x-selectable * { -moz-user-selec ...