建立工作空间
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,执行结果如下: