小编use*_*435的帖子

如何有效地将ROS PointCloud2转换为pcl点云并在python中将其可视化

我正在尝试对ROS中的kinect中的pointcloud进行一些分段.截至目前我有这个:

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()
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但因为for循环而非常慢.我的问题是:

1)如何有效地将PointCloud2消息转换为pcl pointcloud

2)我如何可视化云.

python point-clouds kinect ros

7
推荐指数
1
解决办法
5215
查看次数

标签 统计

kinect ×1

point-clouds ×1

python ×1

ros ×1