1.字段解释
header-----头文件,包含消息的序列号,时间戳(系统时间)和坐标系id,其中secs为秒,nsecs为去除秒数后剩余的纳秒数
height-----点云的高度,如果是无序点云,则为1,例子中的点云为有序点云
width-----每行点云的宽度
fields-----每个点的成员变量,其中name为对应成员变量的名字,offset为该变量的内存的起点相对于这个点的内存的起点的偏移字节数,比如变量x的内存地址起点与这个点的内存地址起点一致,所以offset为0,因为存储x的内存占用4个字节,所以变量y的内存地址起点相对于这个点的内存地址起点至少需要偏移4个字节,这里是连续存储的,所以offset为4,而后面的intensity与前一个z的内存并不是连续的,datatype为变量的数据类型,具体对应关系如下
比如,例子中x的datatype为7,表示其数据类型为FLOAT32,timestamp的datatype为8,表示其数据类型为FLOAT64
is_bigendian-----数据的大小端存储模式
point_step-----每个点占用的字节数,一般point_step为点的最后一个变量的偏移量与该变量占用字节数的和,这里就是32=24+8
row_step-----每一行占用的字节数
data-----为序列化后的数据,直接获is_dense,序列化是为了方便信息传输和交换,使用时需要反序列化,总字节大小为row_step x height
is_dense-----是否有非法数据点,true表示没有
参考:
https://blog.csdn.net/weixin_40826634/article/details/108767704