Bootstrap

Ubuntu 18.04 配置ROS melodic 配置qt包并且建立基础pub界面

建立工作空间

mkdir -p ros_gui_demo/src
cd ros_pkg/src
sudo apt-get install ros-melodic-qt-create
sudo apt-get install ros-melodic-qt-build
catkin_create_qt_pkg ros_gui_pub roscpp

编译

cd ..
catkin_make

出现报错为

Unknown Cmake command "QT4_ADD_RESOURCES"

进入src下的CMakelists.txt文件,增加

set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5 REQUIRED Core Widgets)
set(QT_LIBRARIES Qt5::Widgets)

注释掉或者删掉内容如下

#rosbuild_prepare_qt4(QtCore QtGui)

修改内容如下

#Qt4_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
Qt5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
#Qt4_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
Qt5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
#Qt4_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
Qt5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})

#将注释内的内容一一改为下方的非注释内容

还需要打开main_window.hpp,将其中的头文件<QtGui/QMainWindow>改成<QtWidgets/QMainWindow>

保存后继续执行

catkin_make

如果出现问题为 

ui_main_window.h file not found

问题出在没有正常产生ui_main_window.h(如果文件夹ui下有ui文件)

在ui文件夹下打开终端并执行

uic main_window.ui -o ui_main_window.h

我在这里还出现一个问题是uic执行不成功,我利用指令

sudo find / -name "uic"

查找到跟qt5相同目录的uic,利用下列指令更改链接

sudo rm /usr/bin/uic
#添加与qt5相同目录的uic为所需uic
sudo ln -s /usr/lib/aarch64-linux-gnu/qt5/bin/uic /usr/bin/uic

然后最终形成ui_main_window.h文件复制到include文件夹内,与其他hpp文件相同目录下

再次执行

catkin_make

即可成功创建

创建完之后输入下列指令更新

source devel/setup.bash

在另一个终端打开

roscore

回到之前的终端,输入运行指令

rosrun ros_gui_pub ros_gui_pub

成功运行界面,注意界面选择回环地址127.0.0.1,点击connect,执行结果如下:

;