PCL(Point Cloud Library)学习指南&资料推荐(2022版) - 知乎
安装前UBUNTU最好安装分屏器:
$ sudo apt-get install terminator
本文参考上述文献,,,
PCL点云 专栏收录该内容
1 篇文章 2 订阅
订阅专栏
安装教程
1、安装分析
2、安装pcl所需依赖
3、安装vtk
4、安装pcl
5、测试pcl
1、安装分析
Ubuntu版本 pcl版本 vtk版本
18.04 1.91 8.2.0
通过源代码安装,安装pcl前需要下载相关依赖,还有安装vtk,而且版本问题非常非常非常重要,千万要保持一致,否则出现问题也找不到。上面表格就是本文要安装的pcl版本和vtk版本,同时也会在下面的步骤中给出下载链接和安装方法,如果你是ubuntu18.04的,完全放心跟随此教程,其他版本的ubuntu不能保证是否有依赖存在环境问题。
2、安装pcl所需依赖
下面是安装pcl之前需要安装的相关依赖,将近30个依赖,不过我在安装OpenCV的时候这些依赖基本上都已经安装过了。但是确保没有遗漏,还是按顺序把每条执行一遍(当然也可以复制一遍)。如果这个依赖已经安装了,系统会自动跳过;没有安装则帮你安装好。
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.9 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7.1-qt
sudo apt-get install libvtk7.1
sudo apt-get install libvtk7-qt-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install openjdk-8-jdk openjdk-8-jre
如果安装过程中出现未满足依赖问题,可以参考这篇博客
3、安装vtk
视觉化工具函数库(VTK,Visualization Toolkit)是一个开源、跨平台的系统,主要用于三维计算机图形学、图像处理和可视化等。
1. 先安装cmake 和vtk 的依赖项
sudo apt-get install cmake-curses-gui
sudo apt-get install freeglut3-dev
2.下载VTK-8.2.0库
进入vtk官网下载8.2.0的压缩包
在这里插入图片描述
点击Download the previous release (8.2.0),然后选择下载下面任意一种类型的压缩包。因为zip和tar.gz都可以在ubuntu中手动解压。
在这里插入图片描述
3.解压VTK-8.2.0
进入压缩包的下载目录,然后右击【提取到此处】,当然也可以命令行解压,这里怎么简单怎么来。然后打开终端,进入VTK-8.2.0文件夹。
在这里插入图片描述
创建build文件夹,然后cd到build中, 使用可视化的cmake进行工程分析
mkdir build
cd build
cmake-gui
4.配置VTK-8.2.0
选择文件路径,并勾选Grouped和Advanced, 如果看不到红色部分的内容,可以先点击底下的configure按钮,就可以出现红色部分的内容。
在这里插入图片描述
展开Module和VTK,然后分别在里面配置勾选这两个:Module_vtkGUISupportQt、VTK_Group_Qt
在这里插入图片描述
如果一切正常,可以发现红色部分全都变为了白色,若发现有部分红色内容,则将文件夹build中内容删除后,重新点击configure就ok了。这里其实就相当于进行了cmake分析。
5.编译安装VTK-8.2.0
Ctrl+Z或者手动关闭cmake-gui界面。然后输入sudo make进行编译,过程会比较漫长。
在这里插入图片描述最后输入sudo make install进行安装,大概5s不到,至此VTK-8.2.0安装成功。
4、安装pcl
1、下载pcl 1.10
https://github.com/PointCloudLibrary/pcl/releases?page=2
首先进入pcl的下载官网,没错,它官网没有源代码,都在github: https://github.com/PointCloudLibrary/pcl.git
在这里插入图片描述
然后点击右侧中间的Release,进入历史版本界面:
在这里插入图片描述
我只能说官方是不是不想让我们下载历史版本呢,找到了1.91,然后源代码在哪里呢?
蓦然回首,原来它在下面的Assets目录下,就是Source code,这里依然自由选择压缩包格式。
在这里插入图片描述
2、编译安装pcl 1.9.1
解压下载的压缩包,然后打开终端,进入解压的目录,输入下面命令:
cd pcl-pcl-1.9.1
mkdir release
cd release
1
2
3
就像这样:
在这里插入图片描述
然后复制下面命令回车,用cmake分析整个源代码
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr ..
1
如果cmake过程中出现下面这些找不到包的Warning,不要担心,博主查了很多资料都说可以忽略。只要没报错,显示Generating 100%就行。
Could NOT find FZAPI (missing: FZAPI_LIBS FZAPI_INCLUDE_DIRS)
– Fotonic camera support: not building because FZAPI not found
– Could NOT find ENSENSO (missing: ENSENSO_LIBRARIES ENSENSO_INCLUDE_DIRS)
– IDS-Imaging Ensenso camera support: not building because Ensenso not found
– Could NOT find davidSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR)
– David Vision Systems SDK support: not building because davidSDK not found
– Could NOT find DSSDK (missing: DSSDK_LIBRARIES DSSDK_INCLUDE_DIRS)
– DepthSense SDK support: not building because DSSDK not found
– Could NOT find RSSDK (missing: RSSDK_LIBRARIES RSSDK_INCLUDE_DIRS)
– RealSense SDK support: not building because RSSDK not found
接着输入make进行编译,过程也比较漫长,可以做其他事情。
在MAKE的过成中,若出现
undefined reference to `uuid_unparse_lower@UUID_1.0' 等,
如果安装ANANDA,则转到ANANDA文建夹中,将LIB文件夹命名为LIB3,反正不是LIB,则再次MAKE,将陈宫。
在这里插入图片描述
最后输入sudo make install 进行安装,安装过程非常快!
在这里插入图片描述
5、测试pcl
1、创建一个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;
}
2、在test_pcl文件夹下再创建一个配置文件CMakeLists.txt,代码如下:
————————————————
版权声明:本文为CSDN博主「振华OPPO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42257666/article/details/124574029