Ubuntu16.04安装PCL库的python实现python-pcl,并且通过pcl加载pcd文件验证python-pcl是否安装成功
?1. 安裝PCL庫
使用如下指令安裝PCL庫。
sudo apt install libpcl-dev如果提示“Unable to locate package libpcl-dev”,那么需要添加pcl倉庫并更新下載源,指令如下。
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt update2. 安裝python-pcl模塊
可以通過終端輸入如下指令下載python-pcl包,也可以自己去github下
git clone https://github.com/strawlab/python-pcl.git下載后,進入python-pcl文件夾,執行如下指令進行編譯。
python setup.py build_ext -i編譯依賴于cython模塊,如果沒有安裝,會報錯如下。
?我們使用 pip install cython 安裝cython即可,如下。
?編譯完成后,我們執行如下指令進行安裝。
sudo python setup.py install如果不使用sudo權限執行,則會報錯:“Permission denied:‘/usr/locallib’”,如下圖。
安裝的最后是處理python-pcl的依賴,需要“mock”?,但是提示找不到合適的mock版本"error: Could not find suitable distribution for Requirement.parse('mock')",如下圖。
此時,我們手動通過 pip install mock 安裝mock模塊卻已經安裝完成了,如下圖。
?此時,我們再執行 sudo python setup.py install 指令則成功安裝,如下圖。
?最終,我們在python終端內,也可以使用pcl模塊,如下。
3. 驗證python-pcl
我這邊使用的是深度圖像得到的點云數據,并且依賴于ROS,因此在加載機器人環境后,通過以下指令保存點云數據得到pcd文件,如下。
rosrun pcl_ros pointcloud_to_pcd /input:=/xtion/depth_registered/points ./編寫如下python代碼,即可加載pcd文件并且對點云數據進行顯示,如下圖。
import pcl import numpy as np import pcl.pcl_visualizationif __name__ == "__main__":points = pcl.load_XYZRGB('test.pcd')viewer = pcl.pcl_visualization.CloudViewing()viewer.ShowColorCloud(points, b'cloud')v = Truewhile v:v = not(viewer.WasStopped())??
4.?自己使用ROS下的point_cloud2包讀取點云數據
from sensor_msgs.msg import PointCloud2 from sensor_msgs import point_cloud2 import rospydef callback_pointcloud(data):dat = point_cloud2.read_points(data, field_names=("x", "y", "z"), skip_nans=True)print(type(dat))for d in dat:print(" x: {:.3f}, y: {:.3f}, z: {:.3f}".format(d[0], d[1], d[2]))if __name__ == "__main__":rospy.init_node('pcl_read', anonymous=True)rospy.Subscriber('/camera/depth/points', PointCloud2, callback_pointcloud) #訂閱的話題根據你自己的修改rospy.spin()總結
以上是生活随笔為你收集整理的Ubuntu16.04安装PCL库的python实现python-pcl,并且通过pcl加载pcd文件验证python-pcl是否安装成功的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dex-net再次复现
- 下一篇: ROS安装配置相关问题