ubuntu16.04安装pcl1.8.1(清晰易懂,亲测有效,包括安装了ros后再安装pcl1.8.1教程)

ubuntu16.04安装pcl1.8.1

1、首先为大家讲述的是不要直接通过git clone下载pcl库,因为git clone会为你下载最新的pcl版本即pcl1.11,这就会导致安装错误进而让大家不知所措,所以需要登录到官网下载对应的pcl1.8.1版本,链接如下:https://github.com/PointCloudLibrary/pcl/releases
在这里插入图片描述
进入链接往下滑动就可看到对应的pcl版本。

2、安装依赖的库

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

3、需要PCLVisualizer 安装OpenNI、OpenNI2

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

4、 编译并安装

 cd pcl(你的pcl文件夹名称)或者直接进入pcl文件夹中
 mkdir release(创建release文件夹)
 cd release
 cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \
       -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \
       -DCMAKE_INSTALL_PREFIX=/usr ..
 make

sudo make install

5、测试
main.cpp

#include <pcl/io/pcd_io.h>
#include <pcl/filters/voxel_grid.h>

int
main(int argc, char** argv)
{
	// Objects for storing the point clouds.
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	pcl::PointCloud<pcl::PointXYZ>::Ptr filteredCloud(new pcl::PointCloud<pcl::PointXYZ>);

	// Read a PCD file from disk.
	if (pcl::io::loadPCDFile<pcl::PointXYZ>(argv[1], *cloud) != 0)
	{
		return -1;
	}

	// Filter object.
	pcl::VoxelGrid<pcl::PointXYZ> filter;
	filter.setInputCloud(cloud);
	// We set the size of every voxel to be 1x1x1cm
	// (only one point per every cubic centimeter will survive).
	filter.setLeafSize(0.01f, 0.01f, 0.01f);

	filter.filter(*filteredCloud);
	pcl::io::savePCDFile("test1.pcd", *filteredCloud);	

}

CMakeLists.txt文件如下:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 
# rgb_depth_saver为工程的名字 
project(main) # PCL 
find_package(PCL 1.8 REQUIRED) 

include_directories(${PCL_INCLUDE_DIRS}) 
link_directories(${PCL_LIBRARY_DIRS}) 
add_definitions(${PCL_DEFINITIONS}) # 运行主程序 
add_executable(main main.cpp) # 链接库 
target_link_libraries(main ${PCL_LIBRARIES})

mkdir build
cd build
cmake ..
make
./main test.pcd   (我的博客里有test.pcd,也可以选择用自己的pcd测试,test.pcd放在build下)

6、如果使用不了,需要卸载libvtk5.10-qt4 libvtk5.10 libvtk5-dev,然后安装VTK7.1.1版本链接如下:https://vtk.org/download/

下滑找到对应版本:
在这里插入图片描述然后进入VTK7.1.1文件夹下,进行如下操作:

mkdir build(创建build文件夹)
cd build
cmake ..
make
sudo make install

如果已经安装了ros,再安装pcl1.8.1,那么就不进行sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev这一步的依赖安装,因为和ros冲突,安装完依赖之后就直接安装VTK 7.1.1,再安装pcl。

关于pcl/io/openni2_grabber.h: No such file or directory,或者显示未定义pcl/io/openni2_grabber.h。 是需要先安装openni2再安装pcl,这个问题在只装pcl没有装ros下按照上述操作不会存在这个问题,如果安装了ros,再安装pcl出现这个问题,先

sudo apt-get install openni2-utils

再重新安装pcl,先删除pcl中的安装release文件,再安装,如下:

cd pcl-pcl-1.8.1 && mkdir release && cd release
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j2
sudo make -j2 install

关于kinect2没有设备连接,请看我的另一篇博客关于Ubuntu kinect2 no device connect 的解决办法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码1号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值