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.9 libflann-dev #这里改成1.9
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-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
# 安装OpenNI,OpenNI2
sudo apt-get install libopenni-dev
sudo apt-get install libopenni2-dev
# 安装metslib
wget https://www.coin-or.org/download/source/metslib/metslib-0.5.3.tgz
tar xzvf metslib-0.5.3.tgz
cd metslib-0.5.3
./configure
make -j`nproc`
sudo make install
以上依赖正常情况下可以顺利安装
2、安装QT5
# 安装QT5:
sudo apt install qtcreator
sudo apt install qt5-default
本人在安装sudo apt install qt5-default时,发生了如下:
解决办法:以下命令即可安装
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator
3、vtk安装
安装依赖:
#安装x11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
#安装opengl
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
#安装libglut-dev
sudo apt-get install freeglut3-dev
很多经验贴里会如下命令安装vtk,但是本人这里在执行以下命令时,发生如下情况:
sudo apt-get install libvtk7.1-qt libvtk7.1 libvtk7-qt-dev

解决办法就是需要到官网手动下载安装(https://vtk.org/download/)这里下载VTK-7.1.1.tar.g版本(本人看来很多帖子都是建议装7.1版本,暂不清楚原因)
tar -xzvf vtk-7.1.1.tar.gz //解压
cd vtk-7.1.1 //cd进解压好的文件目录中
下载完后进入下载好的VTK文件夹,创建build文件夹,在build文件夹下终端打开cmake-gui
cmake-gui
配置VTK所在目录及VTK的build所在目录,根据自己的下载目录进行配置

点击“Configure”,出现如下选择即可

点击finish
配置完成后,显示“Configuring done”。勾选 VTK-Group-Qt 再点击“Configure”;配置完成后,显示“Configuring done”;
但是在点击勾选VTK-Group-Qt后配置,会出现如下报错

这里要把TK_QT_VERSION改成5 ,再次点击configuring done即可
如果还是报错,可能时缺少配置文件导致的,安装以下命令可以解决
sudo apt-get install qttools5-dev
sudo apt install libqt5x11extras5-dev
解决完以上报错后,点击“Generate”;显示“Generating done”
完成后关闭cmake-gui,打开vtk的build文件夹,进入终端
cmake ..
make
sudo make install
4、下载pcl库
git clone https://gitee.com/mirrors/pcl.git
进入pcl文件夹,创建build文件夹,编译,安装,执行以下命令
cd pcl
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu \
-DFREETYPE_LIBRARY=/usr/lib/x86_64-linux-gnu/libfreetype.so \
-DBUILD_GPU=ON \
-DBUILD_apps=ON \
-DBUILD_simulation=ON \
-DBUILD_examples=ON
make -j`nproc
sudo make install
5、测试
建立一个test_pcl文件夹,后在test_pcl文件夹下创建一个源文件pcl_version_check.cpp,CMakeLists.txt,代码如下:
CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(pcl_version_check)
# 设置C++标准
set(CMAKE_CXX_STANDARD 14)
# 查找PCL包
find_package(PCL REQUIRED)
# 添加PCL的头文件路径
include_directories(${PCL_INCLUDE_DIRS})
# 添加PCL的库路径
link_directories(${PCL_LIBRARY_DIRS})
# 添加编译选项
add_definitions(${PCL_DEFINITIONS})
# 添加可执行文件
add_executable(pcl_version_check pcl_version_check.cpp
pcl_version_check.cpp)
# 链接PCL库
target_link_libraries(pcl_version_check ${PCL_LIBRARIES})
pcl_version_check.cpp
#include <iostream>
#include <pcl/pcl_config.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#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>
int main() {
std::cout << "PCL version: " << PCL_VERSION_PRETTY << std::endl;
// 创建一个简单的点云对象来测试基本功能
pcl::PointCloud<pcl::PointXYZ> cloud;
std::cout << "Test PCL !" << std::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 = 0.5 * cosf (pcl::deg2rad(angle));
point.y = sinf (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 ("test");
viewer.showCloud(point_cloud_ptr);
while (!viewer.wasStopped()){ };
// 如果代码执行到这里没有错误,说明PCL基本功能正常
std::cout << "PCL basic functionality test passed." << std::endl;
return 0;
}
在test_pcl文件夹下再建一个build文件夹,在终端中进入build文件夹下。
进行编译
cmake ..
make
编译成功后,输入./pcl_version_check运行可执行文件,运行成功!
出现如上,安装成功。
6、参考来源
Ubuntu20.04.3&& PCL1.12+VTK7.1.1&&多版本PCL安装
Ubuntu18.04安装PCL 1.9.1(图文详解,附踩坑和测试)
&spm=1001.2101.3001.5002&articleId=145340354&d=1&t=3&u=b9e837208caa49cf9bf6b600295a8b22)
3407

被折叠的 条评论
为什么被折叠?



