草庐IT

ubuntu18.04 安装pcl点云库(亲测有效)

3D感知巨头 2023-04-03 原文

一、pcl库简介

         PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。

         PCL起初是ROS(Robot Operating System)下由来自于慕尼黑工业大学和斯坦福大学Radu博士等人维护和开发的开源项目,主要应用于机器人研究应用领域,随着各个算法模块的积累,于2011年独立出来,正式与全球3D信息获取、处理的同行一起,组建了强大的开发维护团队,以多所知名大学、研究所和相关硬件、软件公司为主。发展非常迅速,不断有新的研究机构等加入,在Willow Garage, NVidia, Google (GSOC 2011), Toyota, Trimble, Urban Robotics, Honda Research Institute等多个全球知名公司的资金支持下,不断提出新的开发计划,代码更新非常活跃,在不到一年的时间内从1.0版本已经发布到1.7.0版本。

二、PCL的结构和内容

       如《PCL架构图》所示,对于3D点云处理来说,PCL完全是一个的模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。

       PCL利用OpenMP、GPU、CUDA等先进高性能计算技术,通过并行化提高程序实时性。K近邻搜索操作的构架是基于FLANN (Fast Library for Approximate Nearest Neighbors)所实现的,速度也是技术中最快的。PCL中的所有模块和算法都是通过Boost共享指针来传送数据的,因而避免了多次复制系统中已存在的数据的需要,从0.6版本开始,PCL就已经被移入到Windows,MacOS和Linux系统,并且在Android系统也已经开始投入使用,这使得PCL的应用容易移植与多方发布。

      从算法的角度,PCL是指纳入了多种操作点云数据的三维处理算法,其中包括:过滤,特征估计,表面重建,模型拟合和分割,定位搜索等。每一套算法都是通过基类进行划分的,试图把贯穿整个流水线处理技术的所有常见功能整合在一起,从而保持了整个算法实现过程中的紧凑和结构清晰,提高代码的重用性、简洁可读。在PCL中一个处理管道的基本接口程序是:

  1. 创建处理对象:(例如过滤、特征估计、分割等);
  2. 使用setInputCloud通过输入点云数据,处理模块;
  3. 设置算法相关参数;
  4. 调用计算(或过滤、分割等)得到输出。

       为了进一步简化和开发,PCL被分成一系列较小的代码库,使其模块化,以便能够单独编译使用提高可配置性,特别适用于嵌入式处理中:

  1. libpcl filters:如采样、去除离群点、特征提取、拟合估计等数据实现过滤器;
  2. libpcl features:实现多种三维特征,如曲面法线、曲率、边界点估计、矩不变量、主曲率,PFH和FPFH特征,旋转图像、积分图像,NARF描述子,RIFT,相对标准偏差,数据强度的筛选等等;
  3. libpcl I/O:实现数据的输入和输出操作,例如点云数据文件(PCD)的读写;
  4. libpcl segmentation:实现聚类提取,如通过采样一致性方法对一系列参数模型(如平面、柱面、球面、直线等)进行模型拟合点云分割提取,提取多边形棱镜内部点云等等;
  5. libpcl surface:实现表面重建技术,如网格重建、凸包重建、移动最小二乘法平滑等;
  6. libpcl register:实现点云配准方法,如ICP等;
  7. libpclkeypoints:实现不同的关键点的提取方法,这可以用来作为预处理步骤,决定在哪儿提取特征描述符;
  8. libpcl range :实现支持不同点云数据集生成的范围图像。

三、 PCL编译安装

1、安装基本环境

sudo apt-get update  
sudo apt-get install git build-essential linux-libc-dev libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.9 libflann-dev libeigen3-dev libboost-all-dev libvtk7-jni libvtk7-java libvtk7-dev libvtk7.1-qt libvtk7.1 libvtk7-qt-dev libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete openjdk-8-jdk openjdk-8-jre -y

2、安装cmake

      直接使用apt安装cmake,版本太低。

      在cmake官网下载cmake压缩包,然后解压缩,最后将cmake/bin/文件夹中的指令软链接到/usr/bin即可。

https://cmake.org/download/https://cmake.org/download/

3、安装VTK

      在VTK官网下载VTK最新版就行。

Download | VTKhttps://www.vtk.org/download/      解压缩VTK,在VTK目录下创建build文件夹,进入build文件夹下,执行以下命令编译。

cmake ..
sudo make
sudo make install

4、安装PCL

GitHub - PointCloudLibrary/pcl: Point Cloud Library (PCL)https://github.com/PointCloudLibrary/pcl.git      将PCL源代码git clone到本地,进入文件夹,执行以下命令编译安装PCL:

cd pcl
mkdir build
cd build
cmake ..
make -j
sudo make -j4 install

四、参考链接

  1. PCL(点云库)_百度百科
  2. Ubuntu18.04安装PCL,亲测有效_陈小媳妇儿的博客-CSDN博客_ubuntu18.04 安装pcl
  3. ubuntu18.04下pcl库的安装(绕过那些巨坑!)_CLM_Only的博客-CSDN博客

有关ubuntu18.04 安装pcl点云库(亲测有效)的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby-on-rails - Rails 3 I18 : translation missing: da. datetime.distance_in_words.about_x_hours - 2

    我看到这个错误:translationmissing:da.datetime.distance_in_words.about_x_hours我的语言环境文件:http://pastie.org/2944890我的看法:我已将其添加到我的application.rb中:config.i18n.load_path+=Dir[Rails.root.join('my','locales','*.{rb,yml}').to_s]config.i18n.default_locale=:da如果我删除I18配置,帮助程序会处理英语。更新:我在config/enviorments/devolpment

  4. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  5. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  6. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  7. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  8. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  9. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  10. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

随机推荐