Ubuntu18.04安装PCL 1.9.1(图文详解,防止入坑,亲自实践)

下面是安装pcl之前需要安装的相关依赖,将近30个依赖,一定确保没有遗漏,还是按顺序把每条执行一遍(当然也可以再执行一遍看是否遗漏)

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 libpcap-dev
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 vtk6 libvtk6.3 libvtk6-dev libvtk6.3-qt libvtk6-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 libopenni-dev libopenni2-dev

2 下载源码:
git clone https://github.com/PointCloudLibrary/pcl.git 
编译安装:
cd pcl
# 切换到指定版本v1.9.1再编译
git checkout pcl-1.9.1
(如果安装不了,去官网手动下载源码包,解压后cd进入源码文件夹内)

3 执行cmake:
# 创建目录
mkdir release
# 进入目录
cd release
# 配置cmake
cmake -DCMAKE_BUILD_TYPE=None \
      -DCMAKE_INSTALL_PREFIX=/usr/local \
      -DBUILD_GPU=ON \
      -DBUILD_apps=ON \
      -DBUILD_examples=ON ..

# 编译
make -jn(n为内核数,例如"make -j11"其中11为内核数)

4 安装:
sudo make install

5 测试:
pcl_viewer ../test/pcl_logo.pcd#相关文件夹下打开终端

通常前面的安装不会出什么问题,真正出问题实在make编译阶段,主要存在两个问题:

1、反复出现 c++ internal compiler error

        出错的原因是(虚拟机)运行内存不足,而大量template的扩展需要足够的内存。

方法1:

若是在虚拟机上,关掉虚拟机,可直接调节虚拟机内存大小,然后重新启动即可。

方法2:

可以通过临时使用交换分区来解决:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16   
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB
sudo mkswap /swapfile                               
#把刚才空间格式化成swap格式
sudo swapon /swapfile                               
#使用刚才创建的swap空间

在编译完成后,一定要关闭(释放)交换空间,否则之后开不了机

sudo swapoff /swapfile
sudo rm /swapfile

之后继续执行你的相关操作就可以了。。。

注意:如果创建了临时空间之后仍提示“c++: internal compiler error: Killed (program cc1plus)”,可能是因为分配的空间不够大,可以继续分配更大的空间。过程中可以使用free -m命令来查看交换空间使用情况。

2、error:static assertion failed:YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIXEIGEN_STATIC_ASSERT_VECTOR_ONLY

解决方法参考:Use fixed-size Eigen block expressions in `FrustumCulling` by caselitz · Pull Request #2786 · PointCloudLibrary/pcl · GitHub具体操作:打开报错文件(pcl/filters/include/pcl/filters/impl/frustum_culling.hpp),把所有看到.block()的(x,y,3,1)改写为<3,1>(x,y),如果有.head(),可以按照官网那改,如果没有,改动同样位置的.block()
顺带一提,根据github上pcl库里的搜索结果,这个问题应该在1.10以上版本被解决了

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是在Ubuntu 18.04上安装PCL 1.9.1的步骤: 1. 打开终端并更新软件包列表: sudo apt-get update 2. 安装依赖项: sudo apt-get install git build-essential linux-libc-dev cmake cmake-gui libusb-1.--dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.9 libflann-dev libeigen3-dev libboost-all-dev libvtk6-dev libvtk6-qt-dev libvtk6.3 libvtk6.3-qt libvtk6.3-dev libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete qt-sdk openjdk-8-jdk openjdk-8-jre 3. 下载PCL 1.9.1源代码: git clone https://github.com/PointCloudLibrary/pcl.git 4. 创建一个build目录并进入: mkdir pcl/build && cd pcl/build 5. 运行cmake: cmake .. 6. 编译PCL: make -j4 7. 安装PCL: sudo make install 8. 更新动态链接库: sudo ldconfig 现在,您已经成功地在Ubuntu 18.04上安装PCL 1.9.1。 ### 回答2: PCL(Point Cloud Library)是一套处理点云数据的开源软件库。在ubuntu18.04安装PCL1.9.1可以按照以下步骤进行操作。 1. 更新Ubuntu软件源 在终端中输入以下命令: sudo apt-get update 2. 安装依赖库 在终端中输入以下命令: 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 libvtk6.3 vtk6.3-qt sudo apt-get install libvtk6-dev libvtk6-qt-dev 3. 下载PCL1.9.1源码 在终端中输入以下命令: cd ~ git clone https://github.com/PointCloudLibrary/pcl.git 4. 编译安装PCL1.9.1 在终端中输入以下命令: cd pcl mkdir build cd build cmake .. make sudo make install 5. 配置环境变量 在终端中输入以下命令: sudo gedit /etc/ld.so.conf.d/pcl.conf 将以下内容复制到文本文件中并保存: /usr/local/lib 在终端中输入以下命令更新配置: sudo ldconfig 6. 测试安装是否成功 在终端中输入以下命令: pcl_test_search 如果出现以下结果,说明PCL1.9.1安装成功: [init] command line: pcl_test_search [init] loading default parameter settings from "" [console] Press ‘q’ to exit Using 8 threads Performing race search against 1228800 random points Total time: 0.734613 sec Race distance: 0.000000 以上是在Ubuntu18.04安装PCL1.9.1的步骤,按照以上步骤操作即可成功安装。 ### 回答3: ubuntu 18.04是一款非常优秀的操作系统,而pcl1.9.1也是一款非常优秀的库文件,安装pcl1.9.1的过程需要我们注意一些问题,下面我将对这个过程进行详细的介绍。 1.安装依赖库 首先,我们需要安装一些依赖库,包括CMake、Boost、Eigen、FLANN、VTK、Qt和OpenNI等库。在Ubuntu 18.04中,可以通过以下命令来安装这些库: sudo apt-get install cmake libboost-all-dev libeigen3-dev libflann-dev libvtk6-dev libqt4-dev openni-dev 2.下载PCL1.9.1 在安装依赖库之后,我们需要下载PCL 1.9.1。可以从PCL官方网站下载最新版本,也可以直接使用以下命令从GitHub上获取: git clone https://github.com/PointCloudLibrary/pcl.git pcl-trunk 3.编译PCL1.9.1 下载完成后,我们需要进行编译。首先进入下载的PCL目录中,然后新建一个build文件夹,并在该文件夹下运行cmake命令: cd pcl-trunk mkdir build cd build cmake .. 这个过程大概需要10分钟左右,编译完成后我们就需要进行安装,通过以下命令进行安装: sudo make install 4.测试PCL1.9.1 安装完成后,我们需要测试PCL是否能够成功安装。可以通过新建一个C++源文件,并添加下面的代码进行测试: #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> int main () { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); if (pcl::io::loadPCDFile<pcl::PointXYZ> ("test_pcd.pcd", *cloud) == -1) //* load the file { PCL_ERROR ("Couldn't read file test_pcd.pcd \n"); return (-1); } std::cout << "Loaded " << cloud->width * cloud->height << " data points from test_pcd.pcd with the following fields: " << std::endl; for (size_t i = 0; i < cloud->points.size (); ++i) std::cout << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << std::endl; return (0); } 将代码保存为test.cpp,然后通过以下命令进行编译: g++ test.cpp -o test -l pcl_common 运行test文件进行测试: ./test 如果输出了点云数据,说明PCL1.9.1已经成功安装。 总结: 安装PCL1.9.1的过程需要注意安装依赖库、下载PCL、编译以及测试等。只有当这些步骤都正确完成后,才能保证PCL1.9.1能够顺利运行,并且在接下来的开发过程中发挥最大的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值