rosbag数据解析

背景:

        rosbag的数据需要解析才能可视化,故本文借助Helios_5515激光雷达录制XYZIRT格式的rosbag,以研究以XYZIRT储存的数据。

1.pcd头文件含义

        以下是录制的rosbag转成的pcd,PCD文件必须用ASCII字符编码。文件格式头(file format header)说明文件中存储的点云数据的格式。每个格式声明及点云数据之间用\n字符隔开。

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7//PCD文件版本
FIELDS x y z intensity ring timestamp//每个点包含哪些维度,xyz表示XYZ三维坐标,intensity表示激光反射强度,ring表示线号,timestamp表示时间戳
SIZE 4 4 4 4 2 8//每个维度的数据占用字节大小
TYPE F F F F U F//每个维度的数据类型,I表示有符号类型int8(char)、int16(short)、int32(int),U表示无符号类型uint8(unsigned char)、uint16(unsigned short)、uint32(unsigned int),F表示浮点型,包括float,double,long double
COUNT 1 1 1 1 1 1//每个维度含有多少个元素(如果未提供COUNT属性,默认值为1)
WIDTH 32//用点的数量表示点云数据集的宽度。有两种含义:1.无序数据集的点云中点的数量 2.有序点云数据集的宽度(一行中点的数量),有序点云数据集中,点云类似图片或矩阵的结构,分为行和列,这种数据通常来自于立体摄像机(stereo camera)、时间飞行摄像机(Time Of Flight camera,使用红外线或者光脉冲来估计光线从发射到检测到的时间延迟来测量距离),知道点的相邻关系,使算法计算更高效。
VIEWPOINT 0 0 0 1 0 0 0//指定数据集合中点的采集视点。可以用来后续可能的坐标转换,或者求平面法线坐标。格式是平移(tx ty tz) + 四元数(qw qx qy qz),默认是0 0 0 1 0 0 0。
POINTS 57600//点云中点的总数(冗余字段)
DATA binary//点云数据的存储类型,0.7版本支持两种存储方式:ascii和binary

2.字节,位

  1. 1字节(byte) = 8位(bit)
  2. 在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)

整型:

        包括char,short,int,long和long long。short至少16位,int至少与short一样长,long至少32位,且至少与int一样长,long long至少64位,且至少与long一样长。

浮点数:

        float至少32位,double至少48位,且不少于float,long double至少和double一样多。通常float为32位, double为64位,long double为80、96或128位。

由有无符号以及字节大小可以确定数据类型 :
 

xyzirt
floatfloatfloatfloatunsigned shortdouble

3.改写代码

        原代码是以提取geometry_msgs/Vector3Stamped类型话题中的时间和x,y到三个不同的txt文件,需要改成将XYZIRT输出到同一个txt文件。

C++提取rosbag中的数据到txt文件_rosbag数据提取-CSDN博客

 无人驾驶汽车系统入门(二十四)——激光雷达的地面-非地面分割和pcl_ros实践-CSDN博客

4.使用代码

roscore
source devel/setup.bash
rosrun get_data_node get_data_node
rosbag play t.bag

5.结论

雷达工作在10Hz下,转速为600rmp,雷达每转一圈为1雷达帧。

一个ROS帧包括32*1800=57600点云。32值32通道雷达的一组垂直切片;1800指激光发射器旋转一周发射的次数,也就是0.2°发射一次.

故(其实是假设,目前没办法证明):1雷达帧等于1ROS帧。

ROS帧的信息:(如下图)
ROS的Header的stamp=此帧最后一个点云的timestamp;

第一组:从编号31到0依次排列;

第二组:同上

6.展望

每帧的垂直切片起始位置可能在0°,或者其他位置。如果是固定的,那将会很有研究价值。

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值