Я пытаюсь визуализировать поток pointcloud2 из rostopic через open3d в python.
Это мой код:
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.
Если у кого-то есть другая идея визуализировать pointcloud2 в rospy, я был бы радчтобы услышать это.
Спасибо за помощь и предложения!