先是编译的PCL1.7.2,结果发现没有GPU模块,1.8.0以后的版本应该都是有的。
安装PCL之前需要先安装一些环境依赖:
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
sudo apt-get install libopenni-dev
sudo apt-get install libopenni2-dev
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install cmake cmake-gui
然后就是安装PCL:
git clone --recursive https://github.com/PointCloudLibrary/pcl
git checkout (pcl version)
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_GPU=ON -DBUILD_apps=ON -DPCL_QT_VERSION=4 -DBUILD_examples=ON -DCMAKE_INSTALL_PREFIX=/usr/local/pcl1.8.0 -DCUDA_ARCH_BIN=6.2 -DCUDA_ARCH_PTX=6.2 -DCUDA_NVCC_FLAGS=-arch=sm_62 ..
make -j2
sudo make install
在编译的过程中遇到的一些问题:
1.
[ 57%] Building CXX object features/CMakeFiles/pcl_features.dir/src/our_cvfh.cpp.o
[ 57%] Building CXX object features/CMakeFiles/pcl_features.dir/src/crh.cpp.o
[ 57%] Building CXX object features/CMakeFiles/pcl_features.dir/src/don.cpp.o
[ 58%] Building CXX object features/CMakeFiles/pcl_features.dir/src/fpfh.cpp.o
c++: internal compiler error: Segmentation fault (program cc1plus)
解决:将make -j2换成make 或者是 make VERBOSE=1
2. 使用PCL GPU加速分割速度不如CPU的速度,可能的原因在于计算量不大,其GPU的优势没有体现出来,反而花费过多时间在数据向显存中传递的过程(内存->显存)。
Inference: https://blog.youkuaiyun.com/zhou_x11/article/details/99560680