将二进制激光雷达数据 (.bin) 转换为点云数据 (.pcd) 格式

ugu*_*ros 3 binary point-clouds lidar

我有一个使用 Velodyne-128 收集的 .bin 格式的激光雷达数据。我需要将其转换为pcd格式。我使用 NVIDIA Driveworks 进行数据操作,但没有工具可以将激光雷达二进制数据转换为 PCD。

那么,有没有一种方法可以将二进制激光雷达数据转换为pcd格式呢?

Vic*_*ler 5

这是将激光雷达数据(.bin 格式)转换为 .pcd 格式的代码片段

with open ("lidar_velodyne64.bin", "rb") as f:
    byte = f.read(size_float*4)
    while byte:
        x,y,z,intensity = struct.unpack("ffff", byte)
        list_pcd.append([x, y, z])
        byte = f.read(size_float*4)
np_pcd = np.asarray(list_pcd)
pcd = o3d.geometry.PointCloud()
v3d = o3d.utility.Vector3dVector
pcd.points = v3d(np_pcd)
Run Code Online (Sandbox Code Playgroud)

根据这里的示例,您可以将其保存为文件,如下所示:

import open3d as o3d
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)
Run Code Online (Sandbox Code Playgroud)