自学内容网 自学内容网

【Qt-ROS开发】使用 Qt Creator 构建和编译含 ROS 库的 Qt 项目

【Qt-ROS】使用 Qt Creator 构建和编译含 ROS 库的项目

网上大多数办法是在 Qt creator中安装 ros_qtc_plugin 插件,项目以 ROS1 工作空间的形式构建,还是使用 catkin 来构建整个项目。但是这种方式局限很大,导入 Qt 的组件反而变得很麻烦,使用 Qt Creator 的本意就是更方便开发界面,而且 ros_qtc_plugin 貌似只能适配低版本 Qt Creator(经过尝试,插件11.0版本可以对应Qt Creator 10)。此方法 ×

实际中,更多的使用场景是,在Qt 界面的主线程实例化一个ROS节点,如果还需要开启 ROS 的事件处理循环(使用订阅者和定时器回调才需要,只是发布者不需要)可以放在 QThread 启动的其他线程中。整个项目依旧以 Qt 的风格和规范来构建,只需要在 Qt Creator 中告诉构建工具(假设是 cmake,qmake是什么不知道)ROS 相关库的位置即可。ROS 编程不一定非要 catkin_make …

如果是 ROS-Noetic 版本,默认安装的路径在/opt/ros/noetic。其他版本类似。

请添加图片描述

明确了安装路径,接下来是告诉 Qt Creator(实际上是 cmake)。

请添加图片描述

找到CMAKE_PREFIX_PATH环境变量,在 gcc安装路径后面补充 ;/opt/ros/noetic。分号用来间隔,也就是%{Qt:QT_INSTALL_PREFIX};/opt/ros/noetic。之后就可以正常编译项目了。如果不补充 ROS 路径,运行到 CMakeList 中 find_package(catkin … 会报错。

请添加图片描述

另外需要解决一个隐患,在 Qt Creator 中使用 QProcess 执行 ros 相关命令时,可能无法找到该命令,即使我们已经将

source /opt/ros/noetic/setup.bash

加入了.bashrc文件。这是因为通过快捷图标启动的 Qt Creator 的终端并不是交互式终端,因此不会自动 source ~/.bashrc,当然也就不会执行 source /opt/ros/noetic/setup.bash

可以修改桌面图标文件

sudo gedit ~/.local/share/applications/org.qt-project.qtcreator.desktop

在下面Exec这行中添加bash -i -c,添加完成效果如下,注意后面的命令改为自己的安装路径。

[Desktop Entry]
Type=Application
Exec=bash -i -c "/home/XXX/Qt/Tools/QtCreator/bin/qtcreator" %F
Name=Qt Creator
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;

原文地址:https://blog.csdn.net/qq_40964267/article/details/143635876

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!