Ubantu22.04安装pcl1.14.1(个人经验总结,问题及解决)

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、参考来源

 Ubuntu 18.04 安装 PCL 1.14.1

 Ubuntu20.04.3&& PCL1.12+VTK7.1.1&&多版本PCL安装

ubuntu 18.04 安装PCL 1.12.1

Ubuntu18.04下的PCL安装(摸爬滚打)

Ubuntu18.04安装PCL 1.9.1(图文详解,附踩坑和测试)

Ubuntu20.04安装VTK

ubuntu16.04 安装Qt5 + VTK7.1.1 + PCL1.8.0

Ubuntu22.04安装qt

VTK安装中出现Qt5UiPlugin配置文件找不到的错误

【问题解决】编译VTK时CMAKE中找不到Qt5X11Extras

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值