【发布时间】:2021-11-15 17:24:20
【问题描述】:
我是 ROS 新手,但遇到问题。
我正在尝试使用 pcl 库来可视化点云。 首先,我启动我的 ros-realsense 相机,在终端中输入“roslaunch realsense2_camera rs_camera.launch filters:=pointcloud” 然后,我制作了一个 catkin 包,其中有一个 listener.py 脚本,我在其中订阅了 realsense,并获得了我想要的点云信息。到目前为止,一切都很好! 现在我想使用 PCL 库来可视化这个点云,但是当我运行我的包“rosrun pcl listener.py”时,我得到了错误
import pcl ImportError: No module named pcl
所以我的问题是我想念什么? 如何在 ros 包中导入 pcl? 我是否必须在 CMakeLists.txt 或/和 package.xml 上添加一些内容?
我包含了我的 listener.py 脚本。
#!/usr/bin/env python
import rospy
import pcl
import ros_numpy
import sensor_msgs.point_cloud2 as pc2
from sensor_msgs.msg import PointCloud2
def callback_ptclud(ptcloud_data):
pc = ros_numpy.numpify(data)
points=np.zeros((pc.shape[0],3))
points[:,0]=pc['x']
points[:,1]=pc['y']
points[:,2]=pc['z']
p = pcl.PointCloud(np.array(points, dtype=np.float32))
def listener():
rospy.Subscriber("/camera/depth/color/points", PointCloud2, callback_ptclud)
rospy.spin()
if __name__ == '__main__':
rospy.init_node("realsense_subscriber", anonymous=True)
listener()
提前谢谢你 任何帮助表示赞赏
【问题讨论】:
-
不是答案,但我建议将 C++ 用于 PCL 库。如果你坚持用Python,就用Open3D,它有更好的python+pointcloud支持
标签: python-3.x ros