前言
小白借鉴不少大神的博客经验,中间也遇到了不少新问题,总算还好,一路上过关斩将,升级打怪,终于完成了PCL安装。特来记录一下,源码安装我将下载的压缩包放在/home,sudo扩大权限(解决permission denied)。
一、安装ceres
安装借鉴此文章 ,此包可不用先安装,等有需要时,再安装。小白仅仅记录一下安装步骤。
(1)卸载原有的eigen3
$ sudo updatedb
$ locate eigen3
$ sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
(2) 依赖项
$ sudo apt-get install libopenblas-dev
$ sudo apt-get install --no-install-recommends libboost1.58-all-dev
$ sudo apt-get install libx11-dev
$ sudo apt-get install libgl1-mesa-dev
$ sudo apt-get install libglu1-mesa-dev
$ sudo apt-get install freeglut3-dev
$ sudo apt-get install doxygen
$ sudo apt-get install cmake
$ sudo wget https://nchc.dl.sourceforge.net/project/glew/glew/2.1.0/glew-2.1.0.tgz --no-check-certificate
$ sudo tar -zxvf glew-2.1.0.tgz
$ cd glew-2.1.0/
$ sudo make
$ sudo make install
$ sudo ldconfig -v
(3)下载安装eigen3.3.7 ,并调整映射路径
$ sudo tar -zxvf eigen-3.3.7.tar.gz
$ cd eigen-3.3.7
$ sudo mkdir build && cd build
$ sudo cmake ..
$ sudo make
$ sudo make install
$ sudo ldconfig -v
$ sudo cp -r /usr/local/include/eigen3 /usr/include/eigen3
$ sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
(4)添加源,安装相应依赖
$ sudo gedit /etc/apt/sources.list
将下面源加入source.list 文件最上方,save并退出
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe
依赖项
$ sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev
$ sudo apt-get install libgoogle-glog-dev libgtest-dev
(5)下载安装ceres 1.14.0
$ sudo tar -xzvf ceres-solver-1.14.0.tar.gz
$ cd ceres-solver-1.14.0
$ sudo mkdir build
$ cd build
$ sudo cmake ..
$ sudo make
$ sudo make install
二、安装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 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
sudo apt-get install libopenni2-dev
1.下载安装Qt5.12.3
chmod +x qt-opensource-linux-x64-5.12.3.run
sudo ./qt-opensource-linux-x64-5.12.3.run
(1)注册并登录Qt帐号,安装全部内容。
(2)安装ros_qtc_plugin 插件
sudo add-apt-repository ppa:levi-armstrong/qt-libraries-xenial
sudo add-apt-repository ppa:levi-armstrong/ppa
sudo apt-get update
sudo apt-get install qt57creator-plugin-ros
(3)修改系统文件并测试
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
/usr/lib/x86_64-linux-gnu/qt4/bin
/usr/lib/x86_64-linux-gnu
将上面内容根据自己的qt安装路径修改为如下所示:
/opt/Qt5.12.3/5.12.3/gcc_64/bin
/opt/Qt5.12.3/5.12.3/gcc_64/lib
qtcreator-ros
(4)查看安装qt版本
qmake -v
(5)若想删除qt,才使用该步骤
进入自己qt安装路径,输入
sudo ./MaintenanceTool
2.VTK安装
(1)安装依赖项
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
sudo apt-get cmake-gui
(2)下载 安装VTK7.1.1
sudo tar -zxvf vtk-7.1.1.tar.gz
cd vtk-7.1.1
mkdir build && cd build
sudo cmake ..
sudo cmake-gui #此后按照参考博客操作
sudo make
sudo make install
(3)添加QVTK控件
sudo cp /usr/local/plugins/designer/libQVTKWidgetPlugin.so /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/plugins/designer/
3.PCL安装
(1)下载PCL1.8.1并安装
sudo tar -zxvf pcl-pcl-1.8.0.tar.gz
cd pcl-pcl-1.8.0
mkdir build
cd build
sudo cmake -DCMAKE_BUILD_TYPE=Release ..
sudo make
sudo make install
(2)测试(sudo gedit 文件名称)
pcl_test.cpp
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
int main(int argc, char **argv) {
std::cout << "Test PCL !!!" << std::endl;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
uint8_t r(255), g(15), b(15);
for (float z(-1.0); z <= 1.0; z += 0.05)
{
for (float angle(0.0); angle <= 360.0; angle += 5.0)
{
pcl::PointXYZRGB point;
point.x = 0.5 * cosf (pcl::deg2rad(angle));
point.y = sinf (pcl::deg2rad(angle));
point.z = z;
uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
point.rgb = *reinterpret_cast<float*>(&rgb);
point_cloud_ptr->points.push_back (point);
}
if (z < 0.0)
{
r -= 12;
g += 12;
}
else
{
g -= 12;
b += 12;
}
}
point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
point_cloud_ptr->height = 1;
pcl::visualization::CloudViewer viewer ("test");
viewer.showCloud(point_cloud_ptr);
while (!viewer.wasStopped()){ };
return 0;
}
CMakeLists.txt文件
cmake_minimum_required(VERSION 2.6)
project(pcl_test)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test pcl_test.cpp)
target_link_libraries (pcl_test ${PCL_LIBRARIES})
install(TARGETS pcl_test RUNTIME DESTINATION bin)
新建文件夹,新建build,将上述文件放入同一个文件夹里
进入目录执行
sudo cmake .
sudo make
sudo ./pcl_test
总结
欢迎交流呀。