ubuntu20.04下安装pcl_ubuntu安装pcl

本文详细描述了在Ubuntu20.04环境下安装PCL1.12.1版本及其依赖VTK7.1.1,包括解决安装过程中的问题和提供测试代码示例,旨在帮助读者顺利安装并验证PCL库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pcl点云数据库,用来进行3D信息的获取与处理,和opencv相比较,opencv是用来处理二维信息,他是学术界与工业界针对点云最全的库,且网络上相关的资料很多。以下是pcl的安装步骤以及遇到的问题。

提前说明,本人用的是ubuntu20.04+pcl1.12.0+vtk7.1.1,使用源码编译的方式,Vtk用来完成点云的可视化。

之前安装过pcl1.12.0+vtk9.1.1,最后pcl安装可视化闪退,所以还是Vtk下载的vtk7.1.1

网络上有说pcl1.8.0+vtk7.1.1是标配,但是在安装pcl1.8.1时出现过错误。

所以本文选择安装 pcl1.12.1 + vtk7.1.1 +qt5.12(在此不做安装说明)

ubuntu18.04_pcl安装

1. 首先安装pcl各种依赖

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 # ubuntu20.4对应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 libopenni-dev

sudo apt-get install libopenni2-dev

可能问题:

(1) sudo apt-get install libflann1.9 libflann-dev 显示无法定位包libflann,

首先去查看系统对应的版本   查看地址:Ubuntu – Package Search Results – libflann

搜索libflann 选择ubuntu20.04对应的codename代号:focal  :
 打开终端,执行以下命令:

lsb_release -a

可以看到ubuntu20.04对应libflan1.9

(2) 安装过程中遇到无法连接的问题,考虑更换源

参考文章:Ubuntu更换软件源_寥廓长空的博客-优快云博客_ubuntu源

2. 安装VTK

下载地址:Download | VTK

本人下载:VTK-7.1.1.zip

2.1   首先安装vtk各种依赖:

# 首先安装VTK的依赖:X11,OpenGL;cmake和cmake-gui在安装pcl依赖的时候安装过了的话可以跳过

# 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

# cmake && cmake-gui

sudo apt-get install cmake cmake-gui

2.2   安装Vtk

2.2.1   解压到准备好的安装目录。在目录下新建build文件夹

打开终端输入:

cmake-gui

where is the source code: 路径为VTK目录

where to build the binaries:路径为VTK目录下build的路径

如下图:

点击:configure,显示“Configuring done”。

再勾选“VTK-Group-Qt”,点击“Configure”;完成后,显示“Configuring done”;

最后点击“Generate”;显示“Generating done”,完成。

2.2.2  在build目录下,打开终端输入:

make -j8 # 要是8核处理器还比较着急看结果的话,可以:make -j16

sudo make install

3. 安装pcl

下载地址: Release PCL 1.12.0 · PointCloudLibrary/pcl · GitHub

打开pcl目录,新建build文件夹

在build文件中,打开终端,输入:

cmake -DCMAKE_TYPE=None ..

make -j8 // 选择8个进程同时处理,如果机子比较差,可以选择make -j4 或者 make

sudo make install

到此pcl下载完成,时间会比较长。

4. pcl测试

以下使用两段代码进行测试

4.1   文件构成

cmakelist.txt

cmake_minimum_required(VERSION 2.6)

project(pcl_test)

find_package(PCL 1.12 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

add_executable(pcl_test pcl_test.cpp)

target_link_libraries (pcl_test ${PCL_LIBRARIES})

install(TARGETS pcl_test RUNTIME DESTINATION bin)

pcl_test.cpp

#include <iostream>

#include <pcl/io/pcd_io.h>

#include <pcl/point_types.h>

int

main (int argc, char** argv)

{

pcl::PointCloud<pcl::PointXYZ> cloud;

// Fill in the cloud data

cloud.width = 5;

cloud.height = 1;

cloud.is_dense = false;

cloud.points.resize (cloud.width * cloud.height);

for (size_t i = 0; i < cloud.points.size (); ++i)

{

cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);

cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);

cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);

}

pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);

std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;

for (size_t i = 0; i < cloud.points.size (); ++i)

std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;

return (0);

}

运行:进入build,打开终端输入:

cmake ..

make

./pcl_test.cpp

得到结果:

4.2   另一个测试代码为

pcl_test.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>

int main(int argc, char **argv) {

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()){ };

return 0;

}

运行结果:

如果以上结果没问题,pcl就安装成功了。

5. cloudcompare软件安装

推荐snap安装方式

sudo apt-get update

sudo apt install snap

sudo snap install cloudcompare
cloudcompare.CloudCompare

loudcompare.ccViewer
<think>好的,我需要帮助用户在Ubuntu 20.04安装Point Cloud Library (PCL)。首先,我要查看用户提供的引用内容,看看有哪些安装方法。引用1提到克隆仓库、编译安装的步骤,引用3提到两种方法,一种是源码安装,另一种是直接安装。引用2和4提到版本选择,比如PCL1.12.1和VTK的版本搭配。 用户的需求是安装PCL,但可能对具体步骤不熟悉。我需要整理出清晰的步骤,确保用户能顺利操作。首先,可能需要安装依赖项,这是编译源码的基础。然后,用户可以选择源码安装或者直接通过apt安装。源码安装可能更灵活,适合需要特定版本的情况,但步骤较多。直接安装可能更快,但版本可能较旧。 需要检查引用中的步骤是否正确。比如引用1中的git clone命令是否正确,以及编译选项是否合适。引用3中的环境变量配置是否有必要。另外,用户可能遇到依赖问题,需要确保所有依赖都正确安装。例如,VTK、Boost等库是否安装正确。 还要注意版本兼容性,如引用2提到的PCL1.12.1+VTK7.1.1,在Ubuntu 20.04上是否适用。如果用户选择源码安装,可能需要指定这些版本。此外,安装后的验证步骤也很重要,比如引用1中的apt-cache命令是否正确,或者是否有其他验证方法,如运行示例程序。 最后,用户可能需要知道如何解决常见问题,比如编译错误或依赖缺失。需要提醒用户注意错误信息,并根据情况安装缺失的包。总结起来,步骤应包括安装依赖、选择安装方法(源码或直接)、编译安装(如果选择源码)、配置环境变量(如果需要)、验证安装,以及常见问题处理。</think>### Ubuntu 20.04 安装 Point Cloud Library (PCL) 的步骤 #### 一、安装依赖项 首先安装编译和运行 PCL 所需的依赖库: ```bash sudo apt update sudo apt install -y git build-essential cmake libboost-all-dev libeigen3-dev libflann-dev libvtk7-dev libqhull-dev libopenni2-dev ``` #### 二、选择安装方式 ##### 方法1:源码编译安装(推荐) 1. **克隆仓库** 使用官方仓库源码编译可适配最新特性: ```bash cd ~ git clone https://github.com/PointCloudLibrary/pcl.git cd pcl git submodule update --init --recursive # 同步子模块 ``` 2. **编译安装** 通过 CMake 配置并编译: ```bash mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_VTK=ON .. # 启用VTK支持 make -j$(nproc) # 使用多核加速编译 sudo make install # 安装到系统目录 ``` ##### 方法2:APT直接安装 若无需最新版本,可通过预编译包快速安装: ```bash sudo apt install -y libpcl-dev pcl-tools ``` #### 三、验证安装 1. **检查版本** ```bash pcl_version.h 文件路径:/usr/include/pcl-1.10/pcl/pcl_config.h ``` 或通过命令行: ```bash apt-cache show libpcl-dev | grep Version # 显示安装版本[^3] ``` 2. **运行示例测试** 编译一个简单的点云处理程序,包含头文件: ```cpp #include <pcl/point_types.h> #include <pcl/io/pcd_io.h> ``` #### 四、常见问题 - **VTK 兼容性问题** Ubuntu 20.04 默认 VTK 版本为 7.1,若编译报错可尝试安装 VTK 9: ```bash sudo apt install -y libvtk9-dev ``` - **依赖缺失** 若出现 `Could NOT find Boost` 等错误,需补充安装对应库: ```bash sudo apt install -y libboost-system-dev libboost-filesystem-dev ``` ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值