写在前面:csdn上的大部分安装教程,采用自行编译的安装方式,需要安装一系列依赖库,但本人在编译成功后,使用的过程中一直报pcl_visualization相关的错误,尝试多次无果后,找到了有效的安装方法,
一、Ubuntu18.04安装PCL并测试
PCL
官网给了安装方式,一行命令直接搞定,具体步骤如下:
1、更新
sudo apt-get update
2、安装VTK
,想运行pcl
的视觉模块,必须安装它。我安装的7.1.1版本:VTK官网下载压缩文件
下载完解压、安装、编译:创建build
文件夹,在build
目录下:
cmake ..
sudo make
sudo make install
3、安装pcl
:
sudo apt-get install libpcl-dev pcl-tools
4、安装OpenGL
相关的包
sudo apt-get install freeglut3-dev
5、此时安装完成,可以看到安装的版本为pcl1.8.1
6、测试
示例:test_pcl.cpp
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
using namespace std;
int main(int argc, char **argv) {//柱型点云测试
cout << "Test PCL !" << endl;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
uint8_t r(255), g(15), b(15);
for (float z(-1.0); z <= 1.0; z += 0.05) {//制作柱型点云集
for (float angle(0.0); angle <= 360.0; angle += 5.0) {
pcl::PointXYZRGB point;
point.x = cos (pcl::deg2rad(angle));
point.y = sin (pcl::deg2rad(angle));
point.z = z;
uint32_t rgb = (static_cast<uint32_t>(r) << 16 | static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
point.rgb = *reinterpret_cast<float*>(&rgb);
point_cloud_ptr->points.push_back (point);
}
if (z < 0.0) {//颜色渐变
r -= 12;
g += 12;
}
else {
g -= 12;
b += 12;
}
}
point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
point_cloud_ptr->height = 1;
pcl::visualization::CloudViewer viewer ("pcl—test测试");
viewer.showCloud(point_cloud_ptr);
while (!viewer.wasStopped()){ };
return 0;
}
建立配置文件:CMakeLists.txt,写入:
cmake_minimum_required(VERSION 2.6)
project(test_pcl)
find_package(PCL 1.8 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
add_executable(test_pcl test_pcl.cpp)
target_link_libraries (test_pcl ${PCL_LIBRARIES})
install(TARGETS test_pcl RUNTIME DESTINATION bin)
测试结果:
二、安装python-pcl
1、安装Anaconda,便于环境管理
bash Anaconda3-2021.05-Linux-x86_64.sh
2、修改profile文件
sudo vi /etc/profile
在文件的末尾加上anaconda环境:
#Anaconda
export PATH=$PATH:/home/software/anaconda3/bin
保存:
source /etc/profile
3、创建环境
conda create -n name python=3.8
也可以直接将已有的环境直接拷贝到/anaconda3/envs
文件夹中,也能直接使用,注意将/anaconda3/envs/crfnet/bin
文件中python
、python3
权限改成可执行的,否则直接激活这个环境之后,python
仍然用的是系统的版本。
4、安装pcl
git clone https://github.com/strawlab/python-pcl.git
cd python-pcl
修改setup.py,将https://github.com/strawlab/python-pcl/blob/1d83d2d7ce9ce2c22ff5855249459bfc22025000/setup.py#L729这几行 (安装的 pcl 版本为1.8,所以需要修改 pcl1.8版本相应的if分支)。
elif pcl_version == '-1.8':
# pcl 1.8.0/1?(Ubuntu 18.04)(melodic)
vtk_version = '7.0'
# pcl 1.8.1?
# vtk_version = '8.0'
vtk_include_dir = os.path.join('/usr/include/vtk-' + vtk_version)
vtk_library_dir = os.path.join('/usr/lib')
修改为:
elif pcl_version == '-1.8':
# pcl 1.8.0/1?(Ubuntu 18.04)(melodic)
vtk_version = '7.1' #改成7.1,安装的vtk版本为7.1
# pcl 1.8.1?
# vtk_version = '8.0'
# 改下边这两个路径
vtk_include_dir = os.path.join('/usr/local/include/vtk-' + vtk_version)
vtk_library_dir = os.path.join('/usr/local/lib')
然后开始编译:
python setup.py build_ext -i
python setup.py install
sudo apt-get install pcl-tools