第一步 下载 QT 并安装

1 1 官网( http://download.qt.io/archive/qt/5.13/5.13.0/)下载 qt 安装包
qt-opensource-linux-x64-5.13.0.run

1 2 给安装 run 文件增加执行权限并运行,安装选项全选,路径默认

sudo chmod +x qt-opensource-linux-x64-5.13.0.run 2. ./qt-opensource-linux-x64-5.13.0.run

1.3 修改 bashrc 文件,配置 qtcreator 的快捷访问名为 qt ,在文件末尾添加

alias qt=/opt/Qt5.13.0/Tools/Qtcreator/bin/qtcreator
第二步 安装 ROS 的 QT 相关功能包
sudo apt-get update 5. sudo apt-get install ros-kinetic-qt-create ros-kinetic-qt-build
第三步 测试 QT 功能包

3.1 新建工作空间,并新建一个 qt 功能包

mkdir -p qt_ws/src 7. cd qt_ws/src 8. catkin_create_qt_pkg [packname] 9. cd .. & catkin_make

3.2 运行节点

source devel/setup.bash 11. rosrun [packname] xxx

出现以下软件弹窗证明 Q T 功能包测试成功
在这里插入图片描述

第四步 配置 qtcreator 并运行

4 1 在终端中输入 qt 打开 qtcreator 5.13.0
在这里插入图片描述
4 2 左上角选择文件 打开项目,选择 qt_ws/src 目录下的 CmakeList.txt
在这里插入图片描述4 3 左侧选择 Desktop QT5.13.0 GCC 64 bit ,点击加号,选择 Build

在这里插入图片描述
在这里插入图片描述
4 4 配置 C MAKE 参数,将 CMAKE_PREFIX_PATH 的 value 改为 opt/ros/kinetic ,回车
后点击下方的 Apply Configuration Changes
在这里插入图片描述
4 5 配置 QT 参数,共修改一处地方,增加四处地方(增加方法,右方 Add-directory)
在这里插入图片描述
在这里插入图片描述
4 6 点击下方 Apply Configuration Changes 左下角小锄头编译,绿色三角形运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五步 控制代码功能包树形结构图介绍

ROS 的控制代码主要集中在一个 robot GUI 的 ROS 功能包中,它在
qtcreator 的编译下可以得到 robot GUI ver 1.0 的控制软件。控制软件的源码 层级关系图如下:

|- cv_bridge <!--依赖功能包cv_bridge --> 
|- robotGUI <!--核心功能包robotGUI--> 
    |- include <!--头文件放置文件夹,在这里我们已修改此层下的CMakeLists,定义头文件的放置位置与cpp一样,均在src文件夹下--> 
    |- robotGUI 
        |- main_window.hpp 
        |- qnode.hpp 
    |- resources <!--程序资源文件,即图标、背景、logo图片等--> 
    |- src <!--程序源文件--> 
        |- drawpicture.h 
        |- main_window.hpp 
        |- qnode.hpp 
        |- btn_control.cpp 
        |- button.cpp 
        |- drawpicture.cpp 
        |- main.cpp 
        |- main_window.cpp 
        |- pose_button.cpp 
        |- qnode.cpp 
        |- relay_button.cpp 
    |- ui <!--程序界面布置文件--> 
        |- main_window.ui
        |- CMakeLists.txt <!--Cmakelist文件,定义编译规则--> 
    |- CmakeLists.txt.user 
    |- mainpage.dox 
    |- package.xml <!—robotGUI功能包的简洁描述--> 
|- CMakeLists.txt <!--Cmakelist文件,定义编译规则--> 
|- CMakeLists.txt.user

需要特别注意的是,我们使用的cv_bridge 需要 OpenCV3.4.1 作为依赖, ubuntu 16.04 自带 OpenCV2.4.9 ,安装的 ROS kinectic 版本自带 Open CV3.3.1 ;但这些版本均不适用,虽然可以在修改 CMakeLists 后编译成功,但程序将无法正常运行。所以我们需要安装Opencv并使用set添加动态链接库。

set(OpenCV_DIR /home/xxx/opencv-3.4.1/build)
第六步 软件编译以及发布

修改 qt creator 中该项目的 release 模式配置,与 4.4 中配置 Default 类
似,将 C MAKE_PREFIX_PATH 的 value 改为 opt/ros/kinetic
在这里插入图片描述
在这里插入图片描述

6 2 修改完成后点击下方的 A pply Configuration Changes ,并点击左下角的小锄头
重新编译该项目。注意,此时小锄头上方的电视应提示处于 Release 模式。

6.3 在此路径下打开终端,检查该执行文件的动态链接库是否全部找到

ldd neobotGUI

出现这样的情况则表示全部找到
在这里插入图片描述
6.3 打包导出软件,下载 linuxdeployqt ,得到一个 appimage 文件

6.4 下载 patchelf

解压后进入该文件夹,并在终端中执行

./configure 
make 
sudo make install

将 linuxdeployqt-continuous-x86_64.AppImage 与可执行文件 robot GUI 放在
一个新的文件夹(如 robotGUI_release)中,并执行

./linuxdeployqt-continuous-x86_64.AppImage robotGUI -appimage

在这里插入图片描述

等待程序执行完毕,此时文件夹内将增加了几个文件夹,里面包含了必需的动态链接库,
此时将整个文件夹压缩,即可在任意电脑中解压并通过以下命令运行.