基于Ubuntu16.04的激光雷达工作环境搭建(Qt5.12.3+VTK7.1.1+PCL1.8.0+ROS_kinetic)

基于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 //启动“使用键盘控制小乌龟”功能节点

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值