Каково содержание PointCloud2?
Что означает содержание PointCloud2 в ROS?
fields.offset
?fields.datatype
?fields.count
?point_step
?row_step
?
Его документация плохая
Вот опубликованное сообщение PointCloud2 от Velodyne LiDAR:
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 LiDAR равна единице? Я ожидал, что это будет 64.
Наконец, например, что такое 171 значение в
data
? являетсяY
или это дальность (для какой из балок)?
0 ответов
Возможно, я немного опоздал, но для тех, у кого такая же проблема:
По вопросу 1.-3. увидеть это. Также вам нужно иметь в виду, что данные хранятся как uint8, но ваши точки должны быть в float32, если я правильно вижу. Поэтому каждое значение (x,y,z, интенсивность и т. Д.) Или "поле" сохраняется как несколько байтов uint8. Итак, вам нужно 4 записи данных для представления значения x одной точки. Общая длина одной точки в байтах сохраняется как point_step, отвечая на ваш четвертый вопрос.
Смещение поля - это количество байтов от начала точки до байта, в котором это поле начинает сохраняться. Таким образом, каждая точка имеет первые 4 байта для x, затем со смещением 4 начинаются байты для y и т. Д.
и 3.: fields.datatype и fields.count: См. это
point.step - количество байтов или записей данных для одной точки
row_step: См. вашу собственную ссылку, так что это "количество точек на строку * point_step"
Возможно, ваш сканер печатает строку за строкой? На самом деле я не уверен в этом.
Нет, первые 4 записи представляют значение x, поэтому 235, 171, 190, 53 равно: 11101011 10101011 10111110 00110101, и это представляет собой значение float32. 171 не имеет прямой информации о значениях x, y или z точки.