记录一下使用matlab提取ROS pointcloud2类型的数据的函数
readbag = rosbag('pcl_out.bag'); %读入.bag
bagmessage = readMessages(readbag); %提取bag文件中的信息
bagmessage是cell类型,bagmessage{1}如下:
此时的Data数据包含的的fields有:x,y, z, intensity, normal_x , normal_y, normal_z, curvature。使用如下的函数可以提取每一帧所有的对应的field信息,将readfields函数的第二个参数换为上述fields中的任一个,即可得到该项的所有点的数据。
xyz=readXYZ(bagmess{1}); %提取Data中的xyz信息,得到的结果是下xyz坐标
intensity=readField(bagmess{1},'intensity'); %提取intensity信息