我正在尝试通过 python 中的 open3d 可视化来自 rostopic 的 pointcloud2 流。
这是我的代码:
import sensor_msgs.point_cloud2 as pc2
import open3d
...
def callback(self, points):
#self.pc = pcl.VoxelGridFilter(self.pc)
self.pc = self.convertCloudFromRosToOpen3d(points)
if self.first:
self.first = False
self.vis.create_window()
rospy.loginfo('plot')
self.vis.add_geometry(self.pc)
self.vis.update_geometry()
self.vis.poll_events()
self.vis.update_renderer()
self.vis.run()
else:
rospy.loginfo('update')
self.vis.update_geometry()
self.vis.poll_events()
self.vis.update_renderer()
self.vis.run()
def listener(self):
rospy.init_node('ui_config_node', anonymous=True)
rospy.Subscriber('/kinect2/sd/points', PointCloud2, self.callback)
rospy.spin()
如果我启动这段代码,我只会得到一张冻结的图片。
我使用此脚本将 pointCloud2 转换为 open3d 格式。
如果有人有另一个想法来可视化 rospy 中的 pointcloud2,我会很高兴听到它。
感谢您的帮助和建议!