有没有办法从 PointCloud 数据流中推断距离读数?

Is there a way to extrapolate a distance reading from a PointCloud data stream?

我目前正在使用 Livox Avia LiDAR,我正在利用 ROS 访问其 PointCloud2 格式的数据流。 激光雷达主要用于测量视轴内物体到激光雷达的距离。

有谁知道如何从 PointCloud2 读取距离?

提前致谢

您需要更具体地说明“读取距离”的含义,因为在谈论 PC2 数据时可以使用多个距离。我假设你在谈论从传感器到单个测量点的距离。如果是这种情况,您可以使用以下方法从点云数据中提取更多有用的信息 生成器函数 read_points() 得到 (x, y, z) 然后直接计算距离。您可以像这样获取 x、y、z 格式的所有点:

from sensor_msgs import point_cloud2
def pc2_callback(msg):
    generator = point_cloud2.read_points(msg, skip_nans=True, field_names=("x", "y", "z"))