ubuntu16.04 pcl安装教程

https://blog.csdn.net/zkj126521/article/details/80157351

pcl下载,网址https://github.com/PointCloudLibrary/pcl
    使用git命令或者直接下载zip文件即可。
    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  
    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

1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

2.编译源码

cmake  -D CMAKE_BUILD_TYPE=None  -D BUILD_GPU=ON  -D BUILD_apps=ON  -D BUILD_examples=ON .  
    make -j2  
    sudo make install

1
    2
    3

3.(可选 and 建议):如果需要PCLVisualizer。安装OpenNI、OpenNI2

sudo apt-get install libopenni-dev   
    sudo apt-get install libopenni2-dev

1
    2

安装完成。

例程测试:
例1:学习向PCD文件写入点云数据
来源于http://www.cnblogs.com/li-yao7758258/p/6435568.html

#include <iostream>              //标准C++库中的输入输出的头文件
#include <pcl/io/pcd_io.h>           //PCD读写类相关的头文件
#include <pcl/point_types.h>      //PCL中支持的点类型的头文件

int
  main (int argc, char** argv)
{
  //实例化的模板类PointCloud  每一个点的类型都设置为pcl::PointXYZ
/*************************************************
 点PointXYZ类型对应的数据结构
    Structure PointXYZ{
     float x;
     float y;
     float z;
    };
**************************************************/
  pcl::PointCloud<pcl::PointXYZ> cloud;

// 创建点云  并设置适当的参数(width height is_dense)
  cloud.width    = 5;
  cloud.height   = 1;
  cloud.is_dense = false;  //不是稠密型的
  cloud.points.resize (cloud.width * cloud.height);  //点云总数大小
   //用随机数的值填充PointCloud点云对象
  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);
  }
  //把PointCloud对象数据存储在 test_pcd.pcd文件中
  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);
}

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

cmake_minimum_required ( VERSION 2.6 FATAL_ERROR)   #对于cmake版本的最低版本的要求
project(ch2)                                        #建立的工程名,例如源代码目录路径的变量名为CH_DIR
                                                    #工程存储目录变量名为CH_BINARY_DIR
#要求工程依赖的PCL最低版本为1.3,并且版本至少包含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.3 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(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARIES_DIRS})
add_definitions(${PCL_DEFINITIONS})

#这句话告诉CMake从单个源文件write_pcd建立一个可执行文件
add_executable(write_pcd write_pcd.cpp)
#虽然包含了PCL的头文件,因此编译器知道我们现在访问所用的方法,我们也需要让链接器知道所链接的库,PCL找到库文件由
#PCL_COMMON_LIBRARIES变量指示,通过target_link_libraries这个宏来出发链接操作
target_link_libraries(write_pcd ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})

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

mkdir  build
 cd build
 cmake ..
 make

1
    2
    3
    4

结果如图所示:
这里写图片描述

例2:可视化
来源于https://blog.csdn.net/a464057216/article/details/54864591

#include <iostream>
#include <string>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
using namespace std;

int main (int argc, char** argv){
typedef pcl::PointXYZRGB PointT;
pcl::PointCloud<PointT>::Ptr cloud (new pcl::PointCloud<PointT>);

std::string dir = "";//自行修改路径
std::string filename = "sample.pcd";

if (pcl::io::loadPCDFile<PointT> ((dir+filename), *cloud) == -1){
//* load the file
PCL_ERROR ("Couldn‘t read PCD file \n");
return (-1);
}
printf("Loaded %d data points from PCD\n",
cloud->width * cloud->height);

pcl::visualization::PCLVisualizer viewer("Cloud viewer");
viewer.setCameraPosition(0,0,-3.0,0,-1,0);
viewer.addCoordinateSystem(0.3);

viewer.addPointCloud(cloud);
while(!viewer.wasStopped())
viewer.spinOnce(100);
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

运行结果如下:
这里写图片描述
参考博客:https://blog.csdn.net/dantengc/article/details/78446600
https://blog.csdn.net/xs1102/article/details/74736298
---------------------  
作者:POFEI_IS_SHIT  
来源:CSDN  
原文:https://blog.csdn.net/zkj126521/article/details/80157351  
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/shuimuqingyang/p/10246648.html

时间: 2024-10-31 17:25:07

ubuntu16.04 pcl安装教程的相关文章

Ubuntu16.04 Caffe 安装步骤记录(超详尽)

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Ubuntu16.04 Caffe 安装步骤记录(超详尽) - yhao的博客 - 博客频道 - CSDN.NET yhao的博客 最怕庸碌无为,还安慰自己平凡可贵 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Pyt

ubuntu16.04 ,安装最新版本docker

环境:ubuntu16.04 ,安装最新版本docker 1.  添加GPG key: sudo apt-key adv--keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys58118E89F3A912897C070ADBF76221572C52609D 2. 添加源 新建文件:/etc/apt/sources.list.d/docker.list, 在里面添加内容: debhttps://apt.dockerproject.or

在ubuntu16.04上安装有道词典

参考来源:http://www.cnblogs.com/scplee/archive/2016/05/13/5489024.html 在ubuntu16.04上安装有道词典主要是解决依赖问题,我们在配置文件中把依赖文件删除,就行了 第一步:下载有道词典的.deb包 第二步:创建youdao文件,然后把有道的源文件解压到这个包里 sudo dpkg -X sudo dpkg -X ./youdao-dict_1.1.0-0-ubuntu_amd64.deb youdao 第二步:解压deb包中的c

VMware下Ubuntu16.04的安装、可能出现的问题的解决办法及基本配置

安装VMware 1.下载VMware Workstation Pro 12.1.0 for Windows,安装. 2.VMware永久证书秘钥:5A02H-AU243-TZJ49-GTC7K-3C61N 添加新磁盘分区 1.磁盘管理 -> 选择剩余空间较大的磁盘(D) -> 压缩卷(40960M ≈ 39.9G,最好大于20G) 2.新建简单卷 -> 更改盘符(E, up2u)和名称(Ubuntu,up2u) 创建虚拟机 1.创建虚拟机 -> 自定义(高级) 2.稍后安装操作系

ubuntu 14.04 lts安装教程:u盘安装ubuntu 14.04 lts步骤

绿茶小编带来了ubuntu 14.04 lts安装教程,下文详细讲解了u盘安装ubuntu 14.04 lts的步骤,很简单,只需要一个工具就能够轻松使用u盘安装ubuntukylin 14.04系统. 第一步.下载安装 U 盘操作系统安装工具" Universal USB Installer"最新版,安装后打开. 第二步.在 Setp 1 选择 Ubuntu,绿茶小编胖胖选择的是32位的. 第三步.在 Setp 2 选择 ubuntu-14.04-desktop-i386.iso 文

ubuntu16.04 lts 安装freeswitch

ubuntu16.04 lts 安装freeswitch: 0.安装一堆依赖包. 1.使用root权限  su root , FSfile=$(curl -s https://files.freeswitch.org/releases/freeswitch/ | sed -n 's/.*"\(freeswitch\-[0-9]*\.[0-9]*\.[0-9]*\.tar\.gz\)".*/\1 /p' | tail -n 1) && echo Downloading $

ubuntu16.04 python3 安装selenium及环境配置

环境 ubuntu16.04 python3 安装selenium sudo pip3 install seleium 默认安装完是支持firefox,但是更新得太慢对于较新的firefox已经不支持了,需要安装geckodriver,地址 https://github.com/mozilla/geckodriver/releases/ 下载完后解压然后在终端中cd到下载文件路径下,下面以路径为下载为例 依次执行以下命令: 安装xvfb sudo apt-get install xvfb 安装p

Ubuntu16.04下安装redis

Ubuntu16.04下安装redis 保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6: sudo wget http://download.redis.io/releases/redis-3.2.6.tar.gz  解压该文件: sudo tar -zxvf redis-3.2.6.tar.gz 会在当前目录下生成文件夹redis-3.2.6,我把它移动到了/usr/redis目录下: sudo mv redis-3.2.6 /usr/redis 如果没有安装gcc,

Ubuntu16.04下安装oracle客户端

在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到Oracle数据库 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载如下所需的三个包. oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1