ubuntu18.04安装pcl1.9.1所需的cmake3.14.3和vtk8.2.0
先安装Qt5,X11,OpenGL
根据VTK定制开发小程序的要求要先安装Qt5,X11,OpenGL
根据 官方文档 ,先更新qt5的依赖,python、Perl、Ruby
再进入 官网 下载Qt5:
或者进入 清华源 下载镜像
我选择了5定制开发小程序在线安装的最新版本
sudo chmod a+x 定制开发小程序然后把安装包拖到这个a+x后面直接把安装包拖到终端里
- 1
- 2
- 3
- 4
- 5
根据提示进行安装,安装完毕
2)安装x11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
- 1
3)安装OpenGL
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
- 1
4)安装libglut-dev
sudo apt-get install freeglut3-dev
- 1
5)安装metslib点云驱动包
下载地址:
tar xzvf metslib-0.5.3.tgzcd metslib-0.5.3./configuremake -j4sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
安装CMAKE
下载地址:
解压:
tar -zxvf cmake-3.16.0-rc2.tar.gz
- 1
1:安装pcl所需依赖
sudo apt-get update sudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-commonsudo apt-get install libflann1.9 libflann-devsudo apt-get install libeigen3-dev sudo apt-get install libboost-all-dev sudo apt-get install openjdk-8-jdk openjdk-8-jresudo apt-get install libvtk7.1-qtsudo apt-get install libvtk7.1sudo apt-get install libvtk7-qt-devsudo apt-get install libqhull* libgtest-devsudo apt-get install freeglut3-dev pkg-configsudo apt-get install libxmu-dev libxi-devsudo apt-get install mono-completesudo apt-get install openjdk-8-jdk openjdk-8-jre
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
linux安装eigen3
首先在终端执行命令:
sudo apt-get install libeigen3-dev
- 1
由于Eigen文件夹被默认安装到了路径:/usr/include/eigen3/Eigen,用#include<Eigen/Dense>无法通过编译,故需将Eigen文件夹放到/usr/include 下,需执行命令:
sudo cp -r /usr/include/eigen3/Eigen /usr/include
- 1
2:opengl报错
解决方案
在CMakeLists.txtS上添加以下代码
set(OpenGL_GL_PREFERENCE LEGACY)
- 1
3:Could NOT find PCAP (missing: PCAP_LIBRARIES PCAP_INCLUDE_DIRS)Could NOT find PCAP (missing: PCAP_LIBRARIES PCAP_INCLUDE_DIRS)在安装PCL时会有这样的错误:Could NOT find PCAP (missing: PCAP_LIBRARIES PCAP_INCLUDE_DIRS)
3.1下载pcap包,地址:
tar -zxvf libpcap-1.9.0.tar.gzcd libpcap-1.9.0./configuremake -j8sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
3.2:如果在./configure时出现:
configure: error: Neither flex nor lex was found.
- 1
解决办法:
sudo apt-get install flex bison
- 1
4:下载libvtk7报错
解决办法
sudo apt-get install libvtk7-dev=7.1.1+dfsg1-2
- 1
还是报错
sudo apt-get install libvtk7-java=7.1.1+dfsg1-2
- 1
- 2
还是有的话
sudo apt-get install libvtk7-jni=7.1.1+dfsg1-2
- 1
这个报错需要多试几遍才能解决
5:下载VTK-8.2.0版本
地址:
安装依赖项
sudo apt-get install cmake-curses-guisudo apt-get install freeglut3-dev
- 1
- 2
下载下面适合的包
mkdir build
cd build
machine-gun
6:配置VTK
sudo makesudo make install
- 1
- 2
7:PLC1.9.1下载地址:
展开Module和VTK,然后分别在里面配置勾选这两个:Module_vtkGUISupportQt、VTK_Group_Qt ,点击configure和generate,出错
cd pcl-pcl-1.9.1mkdir buildcd build
- 1
- 2
- 3
如添加选择
8:进行编译
make -j8
- 1
报错/usr/local/include/eigen3/Eigen/src/Core/products/Parallelizer.h:162:40:错误:“eigen_assert_exception”不是“Eigen”的成员if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
解决方案
在CMakeLists.txt上添加以下代码
include_directories("/usr/include/eigen3")
- 1
8.1:点云可视化工具
sudo make -j4 install
- 1
下载plc-tools
sudo apt-get install pcl-tools
- 1
9:验证
9.1: 在home目录下右击创建一个test_pcl文件夹,再创建一个源文件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;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 2:在test_pcl文件夹下再创建一个配置文件CMakeLists.txt
cmake_minimum_required(VERSION 2.6)project(test_pcl) find_package(PCL 1.2 REQUIRED) include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS}) add_executable(test_pcl test_pcl.cpp) target_link_libraries (test_pcl ${PCL_LIBRARIES}) install(TARGETS test_pcl RUNTIME DESTINATION bin)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
9.3:编译
在test_pcl文件夹下再建一个build文件夹,在build文件夹下打开终端。
输入 cmake …,然后输入 make进行编译。
mkdir buildcd buildcmake ..make./test_pcl
- 1
- 2
- 3
- 4
- 5