PointCloud2的内容是什么?
What are the contents of PointCloud2?
PointCloud2的内容在ROS中是什么意思?
fields.offset
?
fields.datatype
?
fields.count
?
point_step
?
row_step
?
这是 Velodyne LiDAR 发布的 PointCloud2 消息:
header:
seq: 1071
stamp:
secs: 1521699326
nsecs: 676390000
frame_id: "velodyne"
height: 1
width: 66811
fields:
-
name: "x"
offset: 0
datatype: 7
count: 1
-
name: "y"
offset: 4
datatype: 7
count: 1
-
name: "z"
offset: 8
datatype: 7
count: 1
-
name: "intensity"
offset: 16
datatype: 7
count: 1
-
name: "ring"
offset: 20
datatype: 4
count: 1
is_bigendian: False
point_step: 32
row_step: 2137952
data: [235, 171, 54, 190, 53, 107, 250, ...
为什么Velodyne-HDL64e激光雷达的高度等于1?我预计它是 64.
最后,比如data
中的171值是多少?是 Y
还是一个范围(针对哪个光束)?
也许我来晚了一点,但对于遇到同样问题的任何人:
对于问题1.-3。参见 this。另外你需要记住的是,数据存储为 uint8,但你的点应该在 float32 中,如果我没看错的话。因此,每个值(x、y、z、强度等)或 "field" 都存储为多个 uint8 字节。所以你需要4个数据条目来表示一个点的x值。一个字节的总长度存储为"point_step",回答你的第四个问题。
Field Offset是从该点开始到开始存储该字段的字节的字节数。所以每个点都有 x 的前 4 个字节,然后以 4 的偏移量开始 y 等的字节。
和 3.:fields.datatype 和 fields.count:参见 this
point.step是一个点的字节数或数据条目数
row_step:看自己的link,所以是"number of points per row * point_step"
可能您的扫描仪逐行发布?我其实不太确定这个。
不是,前4个条目代表x值,所以235、171、190、53等于:
11101011 10101011 10111110 00110101 这表示一个 float32 值。 171 没有关于该点的 x、y 或 z 值的直接信息。
PointCloud2的内容在ROS中是什么意思?
fields.offset
?fields.datatype
?fields.count
?point_step
?row_step
?
这是 Velodyne LiDAR 发布的 PointCloud2 消息:
header:
seq: 1071
stamp:
secs: 1521699326
nsecs: 676390000
frame_id: "velodyne"
height: 1
width: 66811
fields:
-
name: "x"
offset: 0
datatype: 7
count: 1
-
name: "y"
offset: 4
datatype: 7
count: 1
-
name: "z"
offset: 8
datatype: 7
count: 1
-
name: "intensity"
offset: 16
datatype: 7
count: 1
-
name: "ring"
offset: 20
datatype: 4
count: 1
is_bigendian: False
point_step: 32
row_step: 2137952
data: [235, 171, 54, 190, 53, 107, 250, ...
为什么Velodyne-HDL64e激光雷达的高度等于1?我预计它是 64.
最后,比如
data
中的171值是多少?是Y
还是一个范围(针对哪个光束)?
也许我来晚了一点,但对于遇到同样问题的任何人:
对于问题1.-3。参见 this。另外你需要记住的是,数据存储为 uint8,但你的点应该在 float32 中,如果我没看错的话。因此,每个值(x、y、z、强度等)或 "field" 都存储为多个 uint8 字节。所以你需要4个数据条目来表示一个点的x值。一个字节的总长度存储为"point_step",回答你的第四个问题。
Field Offset是从该点开始到开始存储该字段的字节的字节数。所以每个点都有 x 的前 4 个字节,然后以 4 的偏移量开始 y 等的字节。
和 3.:fields.datatype 和 fields.count:参见 this
point.step是一个点的字节数或数据条目数
row_step:看自己的link,所以是"number of points per row * point_step"
可能您的扫描仪逐行发布?我其实不太确定这个。
不是,前4个条目代表x值,所以235、171、190、53等于: 11101011 10101011 10111110 00110101 这表示一个 float32 值。 171 没有关于该点的 x、y 或 z 值的直接信息。