1. ROS中点云消息格式(sensor_msg::PointCloud2)
1 | std_msgs/Header header |
std_msgs/Header header
由以下组成:1
2
3uint32 seq
time stamp
string frame_idheight
与width
是指点云数据的高和宽,一般无序点云的高为1,宽为点云中激光点的个数;结构化点云的高和宽均大于1。sensor_msgs/PointField[] fields
由以下组成,其中name
是指点云包含的域的名称,如“x”、“y”、“z”、“intensity”、“ring”等;offset
是指在data
的每个数据中该域的偏移量;datatype
是指以上1~8的数据类型;count
是指该域有多少个元素,一般为1。每一帧点云均有该项数据。1
2
3
4
5
6
7
8
9
10
11
12uint8 INT8=1
uint8 UINT8=2
uint8 INT16=3
uint8 UINT16=4
uint8 INT32=5
uint8 UINT32=6
uint8 FLOAT32=7
uint8 FLOAT64=8
string name
uint32 offset
uint8 datatype
uint32 countis_bigendian
数据是大端存储还是小端存储的标志。pointstep
表示每个点的字节长度,常见的为32。rowstep
表示每行的字节长度。data
表示所有的点的数据,以字节存储。uint8[] data
代表vector
类型,有size、push_back、clear等操作。is_dense
若是true
,代表点云数据中不包含无效点(nan点);若是false
,代表点云中包含无效点。
2. PCL中点云消息格式(pcl::PointCloud)
1 | pcl::PCLHeader header |
pcl::PCLHeader header
是pcl格式的header,包括:1
2
3pcl::uint32_t seq;
pcl::uint64_t stamp;
std::string frame_id;points
是pcl点云中所有点的vector。height
与width
是指点云数据的高和宽。is_dense
若是true
,代表点云数据中不包含无效点(nan点);若是false
,代表点云中包含无效点。pcl点云可以使用的函数参考(pcl::PointCloud)[http://docs.pointclouds.org/trunk/common_2include_2pcl_2point__cloud_8h_source.html]。常用的包括size、clear、insert、resize、