前备知识
查看sensor_msgs.msg.PointCloud2的类结构,重点关注几个参数:
看官方的英文注释的应该能理解个大概,个人唯一不好理解的可能是 is_bigendian 的参数,这部分博客 讲的不错:
对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:
- 将低序字节存储在起始地址,这称为小端(little-endian)字节序;
- 将高序字节存储在起始地址,这称为大端(big-endian)字节序。
言归正传
言归正传,我们的任务就是如何把上面PointCloud2里的data转为np.array?
uint8[]型的data在python里的类型是bytes,16进制形式存储。而python中灵活读取bytes的常用方法是