我使用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库。
发布于 2019-02-19 14:14:49
有一个称为"open3D“的python库,它为点云处理提供了一个稳定的平台。在这里阅读文档:http://www.open3d.org/docs/
要使它与ROS一起工作,您需要使用pip来安装open3D的旧版本
pip install open3d-python==0.3.0.0我一直在使用这个库进行点云注册,没有任何问题。
由于ROS还不支持这个库,所以您必须编写自己的代码,以便在PointCloud2到Opend3D.PointCloud之间进行转换。这可以很容易地用numpy来完成。参见示例这里。
https://stackoverflow.com/questions/54761250
复制相似问题