我正在尝试通过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()
如果我启动此代码,只会得到冻结的图片。
我使用this脚本将pointCloud2转换为open3d格式。
如果有人有另一个想法可以使rospy中的pointcloud2可视化,我将很高兴听到它。
感谢您的帮助和建议!