基于Ubuntu16.04的激光雷达工作环境搭建(Qt5.12.3+VTK7.1.1+PCL1.8.0+ROS_kinetic)
首先安装VTK和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
一、安装Qt5
① 下载Qt5安装包
安装包下载网址:Qt5下载链接
选择需要下载的版本,我这里选择的版本是5.12.3,选择对应的Linux安装包。
② 运行安装包
下载好之后赋予可执行权限
chmod +x qt-opensource-linux-x64-5.12.3.run
然后执行安装命令
sudo ./qt-opensource-linux-x64-5.12.3.run
这里需要注册并登录Qt账号:
这里默认是不勾选的,这里一定要勾选上:
安装完成。
③ 配置qtcreator-ros
没有配置qtcreator-ros时,新建工程是没有ROS WORKSPACE选项的。
安装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
测试使用qt-ros
qtcreator-ros
可以看到此时新建ROS工程
(卸载Qt5)
如果前面的步骤出现问题,可以卸载Qt5然后重新安装。
二、安装VTK
采用源码安装的方式(apt安装会出现.so文件缺失的情况)VTK下载链接
① 安装依赖项X11,OpenGL,CMake-gui
X11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
OpenGL
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
cmake
sudo apt-get install cmake cmake-gui
② 下载VTK7.1.1版本
下载完成后放到home目录下并解压
tar -xzvf vtk-7.1.1.tar.gz //解压
③ 本地编译
在文件目录下打开cmd窗口,输入cmake-gui打开cmake图形界面:
配置“where is the source code”的路径为vtk-7.1.1所在的目录
在vtk-7.1.1目录新建build文件夹,配置“where to build the binaries”为build文件夹
点击Configure,配置完成后提示configure done
选择“VTK_group_qt”再次点击configure
配置完成后点击generate按钮,会在build文件夹下生成工程文件
切换文件目录到vtk-7.1.1文件夹下的build文件夹,然后打开cmd窗口,输入:
sudo make
sudo make install
完成安装
三、安装PCL
采用本地编译的方式安装PCL
① 下载PCL源码
去GitHub下载PCL源码PCL下载地址,我使用的是1.8.0版本。
② 编译安装
tar -xzvf pcl-pcl-1.8.0.tar.gz
cd pcl-pcl-1.8.0 && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install
③ 测试
测试代码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)
把pcl_test.cpp和CMakeLists.txt发在同一个文件夹后
再在该文件夹下新建build文件夹并在终端打开
执行如下命令:
cmake .
make
./pcl_test
看到一个漂亮的3D模型,说明PCL库安装成功。
四、安装ROS
① 添加sources.list
这一步配置将镜像添加到Ubuntu系统源列表中,建议使用国内或镜像源,这样能够保证下载速度。建议使用中国科技大学的源
sudo sh -c 'echo "deb https://mirrors.ustc.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
② 添加keys
公钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分。初学者可以先不用理解,照做就行。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
③ 系统更新
更新系统,确保自己的软件包和索引是最新的。
sudo apt-get update && sudo apt-get upgrade
④ 安装ROS
ROS中有很多函数库和工具,官网提供了四种默认的安装方式,当然也可以单独安装某个特定的软件包。这四种方式包括桌面完整版安装、桌面版安装,基础版安装、单独软件包安装。推荐安装桌面完整版安装(包含ROS、rqt、rviz、通用机器人函数库、2D/3D仿真器、导航以及2D/3D感知功能)
Ubuntu 16.04安装Kinetic版本
sudo apt-get install ros-kinetic-desktop-full
这一步约需要30min。
⑤ 配置ROS
配置ROS是安装完ROS之后必须的工作。
初始化rosdep,这一步初始化rosdep,是使用ROS之前的必要一步。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo rosdep init
rosdep update
这时候可能会出现如下错误:
此时采用终极方案
#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再尝试
问题即可解决
ROS环境配置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
注意: ROS的环境配置,使得你每次打开一个新的终端,ROS的环境变量都能够自动配置好,也就是添加到bash会话中,因为命令source /opt/ros/kinetic/setup.bash 只在当前终端有作用,即具有单一时效性,要想每次新开一个终端都不用重新配置环境,就用echo语句将命令添加到bash会话中。
到此,ros已经配置完毕。
⑥ 测试
roscore // 启动ROS
rosrun turtlesim turtlesim_node //启动小乌龟节点
rosrun turtlesim turtle_teleop_key //启动“使用键盘控制小乌龟”功能节点