下载Qt
- S1:
sudo apt-get install qtcreator
可能安装版本太久,所以官网安装:https://download.qt.io/archive/qt/ - S2:选择版本https://download.qt.io/archive/qt/5.9/5.9.9/: qt-opensource-linux-x64-5.9.9.run
- S3:进入安装目录下,更改执行权限:
chmod a+x qt-opensource-linux-x64-5.9.9.run
- S4:双击安装,一直next,安装组件选择
Desktop gcc 64-bit
即可,其他按需安装 - S5:然后在安装目录下双击Qtreator就可以运行了,但是为了方便,因此添加到环境变量
sudo nano /usr/bin/qtcreator
添加如下内容:#!/bin/sh export QT_HOME=/home/guyue/Qt5.9.9/Tools/QtCreator/bin $QT_HOME/qtcreator $*
ctrl+o
写入,ctrl+x
退出 - S6:添加执行权限:
sudo chmod a+x /usr/bin/qtcreator
- S7:终端运行:
qtcreator
ROS依赖
-
S1:安装依赖
sudo apt-get install ros-melodic-qt-create sudo apt-get install ros-melodic-qt-build # sudo apt-get install qtmultimedia5-dev
-
S2:创建Qt功能包
catkin_create_qt_pkg 功能包名 依赖1 依赖2 # 示例: cd ~/am_ws/src catkin_create_qt_pkg class1_ros_qt_demo roscpp rviz
-
S3.1:此时
catkin_make
会报错,进行如下修改:
# 1/ 设置包含当前目录: set(CMAKE_INCLUDE_CURRENT_DIR ON) # 2/ 添加qt库: find_package(Qt5 REQUIRED Core Widgets) set(QT_LIBRARIES Qt5::Widgets) # 3/ 删除: rosbuild_prepare_qt4(QtCore QtGui) # 4/ 更改 # QT4_ADD_RESOURCES(QT_RESOURCES_CPP) ${QT_RESOURCES}) # QT4_WRAP_UI(QT_FORMS_HPP ${QT_FORMS}) # QT4_WRAP_CPP(QT_MOC_HPP ${QT_MOC}) # 改为: QT5_ADD_RESOURCES(QT_RESOURCES_CPP) ${QT_RESOURCES}) QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS}) QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
具体在CMakeList.txt中的修改可以参考下图:
-
S3.2:此时再次编译还会报错,需要更改
~/am_ws/src/class1_ros_qt_demo/include/class1_ros_qt_demo/main_window.hpp
文件,将:#include <QtGui/QMainWindow>
,改为:#include <QtWidgets/QMainWindow>
-
S4:然后一切正常就可以进行测试了
测试
-
S1:运行下述指令,出现画面:
rosrun class1_ros_qt_demo class1_ros_qt_demo
-
S2:运行
roscore
,此时点击上述界面的connect
,即进行连接
Qt编译ROS工程
-
S1:配置Qt的ROS环境
使用Qt打开工作空间/src
下的CmakeList.txt;
配置build目录为工作空间/build
;
然后点击Configure Project
注意打开的是工作空间src下的CmakeList,而不是功能包的
-
S1.2:如果项目不能正常打开
-
S1.3:头文件都在
<Headers>
里面,点击打开头文件,按F4
键可以切换头文件和对应的cpp文件 -
S2:运行配置
点击project
,然后选择run
,在run configure
里设置需要运行的,如果为空,可以点击add
按钮添加
-
S3:然后点击绿色图标运行即可