ubuntu18.04安装PCL点云库踩坑指南

注意:在安装pcl之前一定要将ubuntu的源切换到国内源,不然大概率成功不了!!!!!!!!!
#一、安装PCL
1.安装依赖包:

sudo apt-get update 
sudo apt install make 
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

2.下载pcl安装包,官网地址下载,这样可以自己选择需要的版本。我选择的1.8,也可以通过以下命令下载:

git clone https://github.com/PointCloudLibrary/pcl.git 

3.编译:
将下载好的安装包解压到指定文件夹,在终端中打开该文件夹。
创建编译包并进入:

mkidr release
cd release

cmake:

cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \
 	  -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ 
      -DCMAKE_INSTALL_PREFIX=/usr ..

make:
使用以下命令查看CPU进程数,为的是下面make的更快:

nproc

我的进程数是4,所以我后面的数字是4,根据自身情况选择。

sudo make -j4

这个编译要一段时间,编译过程中可能会出现警告,不过不影响使用,我目前还没有遇到什么问题。
4.安装

sudo make install

#二、测试PCL
在桌面新建一个pcl_test文件夹,文件夹的名字一定要和我的一致,不然还需要修改CMakeLists.txt文件。
注意:在测试之前需要确保自己在ubuntu上配置了C++环境,也就是安装g++,gcc。

sudo apt install gcc
sudo apt install g++

1.在pcl_test文件夹下新建一个文件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>
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 ("test_pcl");

  viewer.showCloud(point_cloud_ptr); 
  while (!viewer.wasStopped()){ };
  return 0;
}

2.建立配置文件:CMakeLists.txt,并写入:

cmake_minimum_required(VERSION 2.6)
project(test_pcl)
 
find_package(PCL 1.2 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)

3.在pcl_test文件夹下新建文件夹build并进入:

mkdir build
cd build

4.编译
依次在终端中输入:

cmake ..
make 

等待编译完成。。。

5.显示点云数据
编译完成后,会在build文件夹下生成一个可执行文件,运行它:

./pcl_test

滚动鼠标能够放大缩小点云数据,可以看到完整的点云数据。

最近入门三维点云的配准和语义分割,后续会更新一些这些方面的文章,希望可以一起学习、进步。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值