Python的处理和可视化PCL库替代方案

3

我正在使用 rospy 接收点云数据。为了处理这些点云数据,有一个名为 python-pcl 的包,但是我无法运行它,因为它非常不稳定且无法正常工作,在Github上有很多问题。

我想知道是否有另一个Python库可以用于处理点云数据?我通过ROS接收点云如下:

self.pointcloud_sub = rospy.Subscriber("/nerian_stereo/point_cloud", PointCloud2, self.pointcloud_cb) # get the pointcloud

def pointcloud_cb(self, scan):
        # just to test, if we receive anything
        points_list = []
        # loop and show points
        for data in pc2.read_points(scan, skip_nans=True):
            points_list.append([data[0], data[1], data[2], data[3]])
        print(points_list)

从这一点开始,介绍如何使用ICP处理、可视化或注册Pointcloud,而无需使用PCL库。
1个回答

4

有一个名为“open3D”的Python库,它提供了一个稳定的点云处理平台。在此处阅读文档:http://www.open3d.org/docs/

要使其与ROS配合使用,您需要使用pip安装较旧版本的open3D:

pip install open3d-python==0.3.0.0

我一直在使用这个库进行点云配准,没有遇到任何问题。

由于这个库目前还没有被ROS支持,你需要编写自己的代码来实现PointCloud2和Opend3D.PointCloud之间的转换,可以使用numpy轻松完成。查看例子请点击这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接