【问题标题】:Convert pcd files to pointcloud2将 pcd 文件转换为 pointcloud2
【发布时间】:2022-08-17 17:41:42
【问题描述】:

我有很多 pcd 文件,这些文件是在激光雷达的每次扫描中收集的。我想将我的 pcd 文件转换为 pointcloud2 格式以将它们用作 rosbag。我从点云库中看到了 pcd_to_pointcloud,但它仅适用于单个 pcd 文件。如何为多个 pcd 文件迭代此代码?

rosrun pcl_ros pcd_to_pointcloud <file.pcd> [ <interval> ]

文件类似于 scan1.pcd scan2.pcd scan3.pcd 等。

谢谢

    标签: ros lidar


    【解决方案1】:

    你可以在你的shell中做循环。例如,bash 命令如下所示:

    for F in my_pcd_directory/*.pcd; do rosrun pcl_ros pcd_to_pointcloud ${F} 0; done
    

    此循环将所有 pcd 文件一一发布。

    在另一个 shell 中启动 rosbag record --all 或 rosbag record cloud_pcd 会记录发布的点云并将它们存储在当前工作目录的包中。当然,您需要在运行 for 循环之前开始录制。

    【讨论】:

      【解决方案2】:

      Python中的一些解决方案

      import os
      from os import listdir
      from os.path import isfile, join
      
      path = "/your/path/to/pcd_files/"
      
      pcd_files = [f for f in listdir(path) if isfile(join(path, f))]
      
      for file in pcd_files:
          cmd = "rosrun pcl_ros pcd_to_pointcloud " + path+file
          os.system(cmd)
      

      【讨论】:

        猜你喜欢
        • 2021-11-14
        • 2018-10-06
        • 1970-01-01
        • 2015-06-26
        • 2023-01-14
        • 2022-07-31
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多