linux安装pcl1.10
2022/2/23 7:24:52
本文主要是介绍linux安装pcl1.10,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PCL官方教程:http://pointclouds.org/documentation/tutorials/
PCL官方github库: https://github.com/PointCloudLibrary/pcl.git
github库太慢了,使用国内镜像码云库
Gitee.com 码云库: https://gitee.com/mirrors/pcl
背景
Ubuntu16.04 + pcl-1.10
安装
1、 安装依赖
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.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
注意这里libvtk的版本需要与pcl匹配,如安装的pcl是1.9以上,需要使用 vtk6.2
pcl>1.9 则使用 sudo apt-get install libvtk6.2 libvtk6.2-qt libvtk6-dev
否则,会在运行测试demo时,会报错,下文会给出解决办法
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-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 qt-sdk openjdk-8-jdk openjdk-8-jre
sudo apt-get install libopenni-dev libopenni2-dev
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
vtk介绍:(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。
2、 下载源码
https://github.com/PointCloudLibrary/pcl.git
git clone https://gitee.com/mirrors/pcl
git checkout pcl-1.10.0
1
2
3
gitee 国内镜像 每天同步一次github数据
3、编译源码
cd pcl
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON
-DCMAKE_INSTALL_PREFIX=/usr …
make
1
2
3
4
5
6
7
4、安装
sudo make install
1
5、测试
创建test/test_pcl.cpp文件
#include
#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 pcl;
int main(int argc, char const *argv[])
{
std::cout << “Test Pcl !” << std::endl;
PointCloud::Ptr point_cloud_ptr(new PointCloud);
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){
PointXYZRGB point;
point.x = 0.5 * cosf (deg2rad(angle));
point.y = sinf (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; 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
42
创建test/CMakeList.txt
cmake_minimum_required(VERSION 2.6)
project(pcl_test)
#要求工程依赖的PCL最低版本为1.2,并且版本至少包含common和IO两个模块 这里的REQUIRED意味着如果对应的库找不到 则CMake配置的过程将完全失败,
#因为PCL是模块化的,也可以如下操作:
一个组件 find_package(PCL 1.6 REQUIRED COMPONENTS io)
多个组件 find_package(PCL 1.6 REQUIRED COMPONENTS commom io)
所有组件 find_package(PCL 1.6 REQUIRED )
find_package(PCL 1.2 REQUIRED)
#下面的语句是利用CMake的宏完成对PCL的头文件路径和链接路径变量的配置和添加,如果缺少下面几行,生成文件的过程中就会提示
#找不到相关的头文件,在配置CMake时,当找到了安装的PCL,下面相关的包含的头文件,链接库,路径变量就会自动设置
PCL_FOUND:如果找到了就会被设置为1 ,否则就不设置
PCL_INCLUDE_DIRS:被设置为PCL安装的头文件和依赖头文件的目录
PCL_LIBRARIES:被设置成所建立和安装的PCL库头文件
PCL_LIBRARIES_DIRS:被设置成PCL库和第三方依赖的头文件所在的目录
PCL_VERSION:所找到的PCL的版本
PCL_COMPONENTS:列出所有可用的组件
PCL_DEFINITIONS:列出所需要的预处理器定义和编译器标志
include_directories(
P
C
L
I
N
C
L
U
D
E
D
I
R
S
)
l
i
n
k
d
i
r
e
c
t
o
r
i
e
s
(
{PCL_INCLUDE_DIRS}) link_directories(
PCLINCLUDEDIRS)linkdirectories({PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test pcl_test.cpp)
#虽然包含了PCL的头文件,因此编译器知道我们现在访问所用的方法,我们也需要让链接器知道所链接的库,PCL找到库文件由
#PCL_COMMON_LIBRARIES变量指示,通过target_link_libraries这个宏来出发链接操作
target_link_libraries (pcl_test ${PCL_LIBRARIES})
install(TARGETS pcl_test RUNTIME DESTINATION bin)
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
编译test_pcl.cpp
cd test
mkdir build
cd build
cmake …
make
1
2
3
4
5
报如下错误:
Scanning dependencies of target pcl_test
[ 50%] Building CXX object CMakeFiles/pcl_test.dir/pcl_test.cpp.o
/home/bing/Study/pcl/test/pcl_test.cpp:4:46: fatal error: pcl/visualization/pcl_visualizer.h: No such file or directory
1
2
3
关键报错信息pcl/visualization/pcl_visualizer.h
打开pcl的安装目录,查看是否存在该include目录,前门编译pcl时,设置的安装目录在/usr/
进入/usr/include/pcl-1.10/pcl/,发现果真没有visualization目录,安装时出了问题。
解决思路:从pcl的CMakeLists文件可知,需要安装高版本的vtk依赖库,很多教程中的VTK5.10版本
重新安装VTK76.2版本。无需卸载旧版本,再重新cmake+make编译,再make install安装pcl,可以解决该问题。
打开cpl的 CMakeList.txt 搜索一下关键字vtk,发现需要6.2版本的
安装vtk6.2
sudo apt-get install libvtk6.2 libvtk6.2-qt libvtk6-dev
进入删除原来编译的pcl
cd pcl/build
sudo rm -rf *
重新编译
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON
-DCMAKE_INSTALL_PREFIX=/usr …
make
重新安装,无需要删除原来安装的pcl,直接再次安装即可
sudo make install
1
2
3
4
5
6
7
8
9
10
11
12
完成后,再次编译test_pcl
cd test/build
cmake …
make
运行
./test_pcl
1
2
3
4
5
运行结果如下
————————————————
版权声明:本文为CSDN博主「丰色木夕」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/youlinhuanyan/article/details/104123740
这篇关于linux安装pcl1.10的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法