环境:Ubuntu16.04+ROS Kinetic


2018.8更新:经测试在安装ros_qtc_plugin时,会同时安装Qt5.9,因此可以直接安装ros_qtc_plugin,然后进行第一步的(5)进行配置,而不需要额外安装Qt。

2018.9更新:修改ros工作空间的导入方式

目录

一、安装Qt5.10.1
<https://blog.csdn.net/Kalenee/article/details/81153978#%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85Qt5.10.1>

二、配置ros_qtc_plugin
<https://blog.csdn.net/Kalenee/article/details/81153978#%E4%BA%8C%E3%80%81%E9%85%8D%E7%BD%AEros_qtc_plugin>

三、安装配置ros-kinetic-qt-ros
<https://blog.csdn.net/Kalenee/article/details/81153978#%E4%B8%89%E3%80%81%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AEros-kinetic-qt-ros>

四、配置qt5版本
<https://blog.csdn.net/Kalenee/article/details/81153978#%E5%9B%9B%E3%80%81%E9%85%8D%E7%BD%AEqt5%E7%89%88%E6%9C%AC>

一、安装Qt5.10.1

下载链接:http://download.qt.io/archive/qt/ <http://download.qt.io/archive/qt/>



(1)选择qt-opensource-linux-x64-5.10.1.run
<http://download.qt.io/archive/qt/5.10/5.10.1/qt-opensource-linux-x64-5.10.1.run>
下载。

(2)前期准备,安装GNU开发工具集和OpenGL开发库。
sudo apt-get install build-essential libgl1-mesa-dev libevent-pthreads-2.0.5
doxygen xorg-dev
(3)打开终端,cd到qt-opensource-linux-x64-5.10.1.run的路径下,并输入下面命令安装,可根据版本不同修改命令:
chmod+x qt-opensource-linux-x64-5.10.1.run sudo
./qt-opensource-linux-x64-5.10.1.run
(4)按提示安装,选上需求项。

(5)修改系统配置文件,选择新版Qt Creator
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
 修改内容如下,根据自己安装的qt路径进行修改,如果文件空白,可以直接添加。
/opt/Qt5.10.1/5.10/gcc_64/bin /opt/Qt5.10.1/5.10/gcc_64/lib
(6)修改Qt启动器

找到qtcreater的快捷方式并找到其路径,打开终端,cd到该路径下并用gedit打开快捷方式,在绝对路径前增加内容:bash -i
-c。这步必须完成,否则无法编译ROS工程。

图标路径(通常)
/usr/share/applications
 修改前
Exec=/opt/qt59/bin/qtcreator %F
 修改后
Exec=bash -i -c /opt/qt59/bin/qtcreator %F
 

二、配置ros_qtc_plugin

(1)下载安装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
安装成功后,在新建项目的其他项目中可以看到ROS Workspace(注意Qt的版本要求最低为Qt 5.5.0)



修改构建套件,新建套件并配置为自己的套件,同时删除CMake
Configuration里的 CMAKE_PREFIX_PATH,防止覆盖系统中与其同名的值,完成设置后需将新建的套件设置为默认套件。

删除内容:
CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
(2)新建工程

注意:不建议直接采用qt creator创建工作空间,容易产生无法导入所有文件的情况

1、qt creator中选择其他项目中的ROS Workspace来新建工作空间。

2、新建工作空间为空,可以在src目录下选择新建文件,创建包(注意:需要在Catkin里填写依赖包)。

3、在新建功能包中可以通过添加新文件创建节点。

(3)导入工程

手段二为常用导入手段,较手段一简单,但经验证无法导入所有文件,造成在程序编写中出现问题。因此建议采用手段一。

手段一(推荐)

1、qt creator中选择其他项目中的ROS Workspace来新建工作空间。

2、工作空间的名字与需要导入的工作空间同名,然后选择需要导入工作空间的路径。



3、进入 Projects,修改Build设置,删除默认Build Steps和Clean
Steps,然后新建自定义steps,填写内容参考如下。选择bulid文件目标下该功能包的目录。



4、修改Run设置,新建自定义Executable,选择执行目录和执行文件,根据需要执行的节点选择对应执行文件。 



手段二(不推荐)

打开终端,cd到工作空间的src目录下,运行下面命令,修改CMakeList.txt状态。
cd ~/catkin_ws/src ls -l # Take note of the actual symlink target sed -i ''
CMakeLists.txt ls -l # The symlink should have gone away
qt creator中选择打开文件,选择CMakeList.txt即可导入。









 

三、安装配置ros-kinetic-qt-ros


ROS自带功能包可以直接创建带有Qt界面的package,方法为通过catkin_create_qt_pkg命令创建,然后导入Qt中进一步修改为适合自己的GUI节点。

安装命令: 
sudo apt-get install ros-kinetic-qt-ros
功能包创建命令:
cd qt_gui_ws/src/ catkin_create_qt_pkg gui_node
 

补充:修复qtcreator无法输入中文问题

安装fcitx
sudo apt-get install fcitx-libs-qt fcitx-libs-qt5
获取libfcitxplatforminputcontextplugin.so并移动到qt目录下platforminputcontexts中
#获取 sudo find / -name "libfcitxplatforminputcontextplugin.so" cp -a <file
address> ~/ chmod +x ~/libfcitxplatforminputcontextplugin.so #移动 cp
libfcitxplatforminputcontextplugin.so /opt/qt59/plugins/platforminputcontexts
 

四、配置qt5版本


通过catkin_create_qt_pkg命令创建的功能包默认采用qt4版本,但后续开发需要改用qt5的话,或者需要整合rviz(kinetic版本之后的rviz基于qt5版本),只需要修改CMakeList.txt文件即可。

(1)删除qt4配置信息
##############################################################################
# Qt Environment
##############################################################################
# this comes from qt_build's qt-ros.cmake which is automatically # included via
the dependency call in package.xml rosbuild_prepare_qt4(QtCore QtGui) # Add the
appropriate components to the component list here
##############################################################################
# Sections
##############################################################################
# ${CMAKE_CURRENT_SOURCE_DIR}:/home/robot/ros_workspace/robot_ws/src/robot_gui
file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui) file(GLOB
QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resources/*.qrc)
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS
include/robot_gui/*.hpp) QT4_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT4_WRAP_UI(QT_FORMS_HPP ${QT_FORMS}) QT4_WRAP_CPP(QT_MOC_HPP ${QT_MOC})
(2)添加qt5配置信息,并修改kit为Qt5版本
##############################################################################
# Qt Environment
##############################################################################
## This setting causes Qt's "MOC" generation to happen automatically. ##
CMAKE_AUTOMOC: pre build set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC
ON) # this comes from qt_build's qt-ros.cmake which is automatically # included
via the dependency call in package.xml find_package(Qt5 COMPONENTS Core Gui
Widgets REQUIRED) include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
##############################################################################
# Sections
##############################################################################
file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui) file(GLOB
QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resources/*.qrc)
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS
include/robot_gui/*.hpp) QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES}) QT5_WRAP_CPP(QT_MOC_HPP
${QT_MOC})
(3)给执行文件添加依赖
target_link_libraries(node ${QT_LIBRARIES} ${catkin_LIBRARIES} Qt5::Widgets)
(4)修改kit为qt5



 

参考:


https://github.com/Levi-Armstrong/ros_qtc_plugins/wiki/Setup-Qt-Creator-for-ROS#section1.6(最为详细)

<https://github.com/Levi-Armstrong/ros_qtc_plugins/wiki/Setup-Qt-Creator-for-ROS#section1.6>

https://www.ncnynl.com/archives/201701/1277.html
<https://www.ncnynl.com/archives/201701/1277.html>

https://blog.csdn.net/u013453604/article/details/52186375
<https://blog.csdn.net/u013453604/article/details/52186375>


https://ros-industrial.github.io/ros_qtc_plugin/_source/How-to-Install-Users.html

<https://ros-industrial.github.io/ros_qtc_plugin/_source/How-to-Install-Users.html>

https://blog.csdn.net/wyy626562203/article/details/79300593
<https://blog.csdn.net/wyy626562203/article/details/79300593>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信