【发布时间】:2017-02-07 21:42:50
【问题描述】:
我正在尝试从 ROS 中的 kinect 对点云进行一些分割。截至目前,我有这个:
import rospy
import pcl
from sensor_msgs.msg import PointCloud2
import sensor_msgs.point_cloud2 as pc2
def on_new_point_cloud(data):
pc = pc2.read_points(data, skip_nans=True, field_names=("x", "y", "z"))
pc_list = []
for p in pc:
pc_list.append( [p[0],p[1],p[2]] )
p = pcl.PointCloud()
p.from_list(pc_list)
seg = p.make_segmenter()
seg.set_model_type(pcl.SACMODEL_PLANE)
seg.set_method_type(pcl.SAC_RANSAC)
indices, model = seg.segment()
rospy.init_node('listener', anonymous=True)
rospy.Subscriber("/kinect2/hd/points", PointCloud2, on_new_point_cloud)
rospy.spin()
这似乎可行,但由于 for 循环而非常慢。 我的问题是:
1) 我如何有效地将 PointCloud2 消息转换为 pcl 点云
2) 我如何可视化云。
【问题讨论】:
标签: python kinect ros point-clouds