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)

从现在开始,如何在不使用 PCL 库的情况下使用 ICP 处理、可视化或注册点云。

4

1 回答 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 轻松完成。请参阅此处的示例。

于 2019-02-19T14:14:49.520 回答