ubuntu16.04下安装pcl1.8遇到的各种问题
系统是Ubuntu16.04。记录一下最近遇到的各种坑
在接手师兄的code时,catkin_make失败,说是需要用到libpclcommon.so。查了一下是因为没有安装pcl,所以研究了一下
首先是PCL的安装
这个真是坑比较多,网上的方法基本上都是千篇一律。主要是版本的问题。之前安装ROS的时候,自带的有PCL1.7。但是因为版本低,缺少很多有用的东西。
后来是选择使用了pcl1.8,都说是比较稳定好用。再高版本的可能各种bug比较多。
安装pcl的方法主要分为两类:
-
各种指令一顿输入,啥也不管,最后完事。看似安装好了,结果不能用。(不推荐)
-
老老实实下载了pcl,然后解压,make,make install等。
下面介绍这种方法:(亲测可用)
-
先安装各种依赖,这些网上一搜也一大堆:
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 libboost-all-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
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev
sudo apt-get install libxmu-dev libxmuu-dev
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
-
将两个安装包都解压缩:
网上有很多是:sudo unzip VTK-7.1.1.zip和sudo unzip pcl-1.8.1.zip。但是我unzip之后,文件就在/下载 的目录下了,后来make出现了问题。所以我选择使用了右键提取此处,然后剪切到了/home路径下,再进行的后列操作。
-
编译安装VTK
cd VTK-7.1.1
mkdir build && cd build
cmake …
cmake-gui ###操作见下面文字###
make
sudo make install
勾选“VTK_GROUP_QT”,改“VTK_QT_VERSION” = 5(图中绿色的部分),点击Configure,generate
(图中蓝色部分是点击generate后生成的,就是因为勾选了QT,又有VERSION=5,所以生成了QT5,在后面安装pcl的时候会用到)
“VTK_QT_VERSION” = 5的操作是:点Add_Entry,然后有下图的操作
-
编译安装PCL
cd pcl-1.8.1
mkdir build && cd build
cmake …
cmake-gui ###操作见下面文字###
make -j4
sudo make install
检查Qt5的路径,检查vtk版本,选择openni2,点击Configure,generate
主要参考链接:https://www.jianshu.com/p/548234bb88fc
======后续问题=
上面pcl1.8确实安装完毕了。但是后来catkin_make的时候,又出现了,没有pcl_ros和pcl_conversion
查了一下,都说是pcl1.7的有,但是pcl1.8的没有,高版本的也没有。不太懂为啥,明明很有用。但是我在本机上查了一下,也没有找到pcl1.7里带有这两个文件。无奈只好再单独安装下载了
下载链接:https://github.com/ros-perception/perception_pcl
解压后发现文件里有pcl_ros和pcl_conversion两个文件。经查询处理方式如下:
在/home文件夹下又新建了一个ros_ws文件夹,在该文件夹下创建src,将pcl_ros和pcl_conversion两个文件复制到src里。
然后在ros_ws路径下,打开终端,执行以下命令:
- sudo su
- source /opt/ros/kinetic/setup.bash
- catkin_make install --cmake-args -DCMAKE_INSTALL_PREFIX=/opt/ros/kinetic
主要参考链接:https://blog.csdn.net/u010838619/article/details/108422040
备注:
在搜到的各种解决方案中,描述的都很复杂,要进行各种操作,反正我现在这么搞,编译什么的是都通过了,也不知道以后会不会遇到什么问题。等有了再更新,大家有遇到什么问题,可以一起在讨论区讨论。我也是小白,刚开始接触这些东西