0、引言

原生的 Qt 框架是无法方便快捷地开发 ROS 项目的(比如不能创建 ROS 工作空间和功能包)。为此,ROS industrial提供了一个基于 Qt Creator 的 ROS 集成开发环境插件 —— ros_qtc_plugin,可以帮助 ROS 开发人员在 Qt Creator 中更轻松地编写、调试和测试 ROS 程序。

本文将着手探讨如何在 Qt Creator 上安装该插件,为 Qt 配置 ROS 开发环境。

插件 Github 仓库地址:https://github.com/ros-industrial/ros_qtc_plugin插件维基:https://ros-qtc-plugin.readthedocs.io/en/latest/

 如果您的计算机还没有安装 Qt 环境的话,可以参考这篇文章。  如果您的计算机还没有安装 ROS 的话,可以参考这篇文章。

当然,插件的 Github 仓库的 README 文档已经提供了 ros_qtc_plugin 插件的详尽依赖、构建及安装教程,所以本文从本质上来说也只是搬运/转载:

1、本教程使用到的相关软件或产品

Ubuntu 20.04.6 LTSROS Noetic Ninjemys LTSQt 6.2.4 LTS 以及 Qt 5.14.2Qt Creator 10.0.1 以及 Qt Creator 4.11.1ros_qtc_plugin

2、 须知

插件的 Github 仓库的 README 文档提供了两种方式可以为 Qt 配置 ROS 开发环境:直接安装带插件的 Qt Creator(暂不推荐) 或者 在原生的 Qt Creator 上安装 ros_qtc_plugin 插件。

而 在原生的 Qt Creator 上安装 ros_qtc_plugin 插件 又分为了 在原生新版本 Qt Creator 上安装 ros_qtc_plugin 插件(推荐) 以及 在原生较老版本 Qt Creator 上安装 ros_qtc_plugin 插件。

 如何查看自己的 Qt 和 Qt Creator 版本?

 下面将通过三个2级标题分别展开以上三种为 Qt 配置 ROS 开发环境的办法, 读者根据自身需要选择其中一种即可:

2.1、直接安装带插件的 Qt Creator(暂不推荐)

 无论您之前是否安装过原生 Qt 环境,您都可以直接安装带插件的 Qt Creator。它与原生的 Qt Creator 是可以同时存在的,各自独立运行。

我们可以通过 snap 商店安装带 ROS 对应的插件的 Qt Creator,这样做的好处是可以确保 Qt Creator 版本和 ROS 插件版本会使用匹配的 API ,并且还能在软件新版本发布后自动更新。我们可以通过搜索软件中心或者从命令行安装:

sudo snap install qtcreator-ros --classic

安装完成后我们就能在桌面上打开带插件的 Qt Creator 了(从下图中可以看到同时有 Qt Creator 和 Qt Creator ROS 是没有任何问题的):

这样虽然方便快捷,但通过 snap 商店下载的带插件的 Qt Creator 默认语言为英文并且没有中文可选项,笔者并没有研究如何为其添加中文依赖。此外,或许是缺乏某些关键设置,目前下载下来的 Qt Creator ROS 是无法直接访问用户目录的文件的(除非手动输入文件路径),您可以查看这个 issue 了解更多情况。

2.2、在原生新版本 Qt Creator 上安装 ros_qtc_plugin 插件(推荐)

 这里所说的“新版本的 Qt Creator”是指 Qt Creator 5.0.0 及之后的版本。

 本节笔者使用的 Qt 版本为 6.2.4,Qt Creator版本为 10.0.1。 首先前往 ros_qtc_plugin 插件的 Github 仓库,下载其发布版本(请注意核对插件版本是否与您的 Qt Creator 版本匹配。比如笔者的 Qt Creator 版本为 10.0.1,那么笔者就要选择 10.0 版本的 ros_qtc_plugin 插件):

下载构建好的插件即可:ROSProjectManager-10.0-Linux-x86_64.zip

下载完成后,将其移动到自己的 Qt Creator 的安装根目录(笔者安装目录为 ~/Qt/Tools/QtCreator)下:

如果您是通过在线安装程序安装的 Qt Creator,则其安装根目录为 ~/Qt/Tools/QtCreator;如果您是通过离线安装程序安装的 Qt Creator,则其安装根目录为 ~/qtcreator-${version}。

在当前目录下打开一个终端: 使用 unzip 命令将压缩包中的内容提取到当前文件夹:

在使用 Linux 命令时,自动补全是一个很常用的技巧;提取完成后,就可以删除压缩包了

重启 Qt Creator。重启后在新建项目对话框里就能创建 ROS 工作空间了: 同时新建文件对话框里也包含了不少 ROS 相关文件模板了:

2.3、在原生较老版本 Qt Creator 上安装 ros_qtc_plugin 插件

⚠️ 较老版本的 Qt Creator(Qt Creator 5.0.0 之前)是不支持安装插件的,所以虽然本节标题是“在原生较老版本 Qt Creator 上安装 ros_qtc_plugin 插件”,我们也是要下载更新版本的 Qt Creator 然后再安装插件的。只不过本节提供的方法无需重装 Qt。

 本节笔者使用的 Qt 版本为 5.14.2,Qt Creator版本为 4.11.1。如下图所示:

打开 Qt Creator 后,我们可以在 “帮助” ==> “关于插件” 中查看已安装的插件,但很可惜该版本的 Qt Creator 似乎并不支持安装插件。如下图所示:

但好在,插件的源码文件内提供了一个脚本可以使用该脚本下载与插件版本匹配的 Qt Creator,我们可以使用脚本下载的 Qt Creator 安装插件。当然这同时也意味着下载完成之后我们的系统内将会同时存在两个版本的 Qt Creator,不过这并不影响正常使用。下面是详细教程:

首先前往 ros_qtc_plugin 插件的 Github 仓库,下载其发布版本:

我们需要下载两个东西,构建好的插件和源码:

ROSProjectManager-10.0-Linux-x86_64.zipSource code (zip)

下载完成后,我们得到两个文件 —— “ROSProjectManager-10.0-Linux-x86_64.zip” 和 “ros_qtc_plugin-10.0.zip”。将其拷贝到我们安装 Qt 的根目录(笔者目录为 ~/Qt5.14.2)下,如下图所示: 在当前目录下打开终端并使用 unzip ros_qtc_plugin-10.0.zip 命令解压源码文件或者直接右击压缩包选择“提取到此处(E)”都可;

只需解压源码压缩包ros_qtc_plugin-10.0.zip

解压完成后就可以删除源码压缩包了,可以看到该目录多了一个名为 “ros_qtc_plugin-10.0” 的文件夹,进入该文件夹,可以看到里面有一个名为 “setup.py” 的脚本文件,如下图所示:

10.0 版本的 ros_qtc_plugin 插件默认匹配 Qt 6.4,当然我们也可以自己指定 Qt 版本。我们可以在 setup.py 旁边的名为 versions.yaml 的文件内内查看这些信息(这两个文件都可以用文本编辑器打开以查看/修改内容)。而 Qt 6.4 虽然不是 LTS 版本,但其支持的平台刚好是 Ubuntu 20.04,也就是笔者的 Ubuntu 版本。

既然要下载 Qt 6.4,那么可以创建一个空文件夹来存放它,执行下方命令或者直接界面上创建文件夹: mkdir ~/Qt6.4

若要构建插件源码,则需要安装相关依赖,但我们已经下载了构建好的插件,可以不用安装依赖。如果需要,执行下方命令以安装依赖: sudo apt install libgl1-mesa-dev ninja-build libyaml-cpp-dev libqtermwidget5-0-dev libutf8proc-dev

为了使用 setup.py 脚本,我们还需要额外的 python 依赖,执行下方命令以安装依赖: pip install pyyaml requests py7zr

如果 pip install 下载速度太慢,可以参考这篇文章。

安装完成之后,前往 setup.py 脚本所在文件夹,打开一个终端并使用下方命令执行脚本: python3 setup.py --install_path ~/Qt6.4

# 安装路径指定为我们上面创建的 “Qt6.4” 空文件夹

如果在第6步时没有安装构建脚本源码的相关依赖,则这一步在执行脚本的过程中可能会报一些 Warning,但无伤大雅无视即可。

执行脚本大概耗时1分钟,完成后打开 “Qt6.4” 文件夹可以看到新增了两个文件夹,如下图所示: 将新下载的 Qt 和 Qt Creator 路径添加到系统环境变量中: gedit ~/.bashrc

在打开的文本编辑器尾部插入如下两句代码: export PATH=$PATH:/home/xjy/Qt6.4/6.4.0/gcc_64/bin/

export PATH=$PATH:/home/xjy/Qt6.4/Tools/QtCreator/bin/

# 请根据自己的用户名称修改用户根目录

保存退出,并 source 一下: source ~/.bashrc

完成后,我们就可以打开新的 Qt Creator 10.0.0 了,使用如下命令启动。 ~/Qt6.4/Tools/QtCreator/bin/qtcreator

打开后如下图所示:

可以看到下方有三条提示信息:

第一个信息是询问我们要不要开始软件使用引导,相当于问我们要不要过一遍新手教程。第二个信息是询问我们是否希望将 Qt Creator 与 Qt 安装链接起来,以便自动注册 Qt 版本和工具包;如果不链接,可以后面手动添加 Qt 版本。第三个信息是在告诉我们我的系统可能无法满足 clangd 的内存需求,因此禁用了 clangd 作为 C/C++ 代码模型的后端。当启用 clangd 时,Qt Creator 在高亮显示代码、完成符号等方面完全支持现代 C++。与内置代码模型相比,这在 CPU 负载和内存使用方面的成本更高,因此在较旧的机器和/或遗留代码上,内置代码模型可能是更好的选择。

对于上一步提到的三条提示信息的第一条,我们可以直接忽略;而第二条如果我们在这里忽略了,那么后续我们就需要前往 “编辑(E)”>“Preferences”>“构建套件(Kit)”>“Qt 版本” 手动添加或者链接到 Qt;第三条可以忽视,影响不大,后续可以前往 “编辑(E)”>“Preferences”>“C++”>“Clangd” 选择是否启用 clangd: 但是!我们可以选择不忽略第二条提示信息,直接点击提示栏给的 “Link with Qt” 按钮,此时会弹出对话框要我们链接 Qt 安装,我们直接链接之前安装的那个老版本 Qt 的安装目录即可:

链接完成之后会提示“重启 Qt Creator 以改动生效”,我们点击“立刻重启”就行

当然,完成上面所有步骤后,我们通过 Qt Creator 的应用程序图标打开的 Qt Creator 仍然是之前那个版本的 Qt Creator,毕竟这个图标在之前就存在了:我们有两个解决办法(选择其中一种解决办法即可):

创建符号链接,以后在终端中通过命令来启动新的带 ros_qtc_plugin 的 Qt Creator:首先我们通过以下命令创建符号链接: sudo ln -sn ~/Qt6.4/Tools/QtCreator/bin/qtcreator /usr/local/bin/qtcreator-ros

随后就可以在终端中使用如下命令启动带插件的 Qt Creator了: qtcreator-ros

直接修改 Qt Creator 应用程序图标的启动文件路径:首先我们前往以下路径找到名称中带“qtcreator”的 .desktop 文件,用文本编辑器打开: /usr/share/applications

# 如果上面这个路径没有,再去下面这个

~/.local/share/applications

修改其中的 Exec 字段的值为我们期望启动的 Qt Creator 可执行文件的路径(以本文为例就是修改为 Qt Creator 10.0.0 可执行文件路径 /home/xjy/Qt6.4/Tools/QtCreator/bin/qtcreator)。重启 Ubuntu,再点击 Qt Creator 图标运行的就是带插件的 Qt Creator 了。 以上任选一个解决办法后,就能很方便地启动新安装的 Qt Creator 了。到这一步,我们就能安装插件了:

打开新安装的 Qt Creator,前往 “帮助”==>“关于插件” 打开插件对话框:点击 “Install Plugin…” 按钮;找到我们下载好的插件压缩包 ROSProjectManager-10.0-Linux-x86_64.zip 然后一路 “下一步” 就行了:完成后点击插件对话框的 “确定” 按钮,此时会提示让我们重启 Qt Creator,点击 “Restart Now”。重启后在新建项目对话框里就能创建 ROS 工作空间了:

3、查看自己的 Qt 和 Qt Creator 版本

3.1、查看 Qt 版本

您可以前往您的 Qt 安装目录,其中第一个文件夹名称即您的 Qt 框架版本号:(图中 Qt 的版本为 6.2.4)还有个方法是:打开 Qt Creator,前往 “编辑”>“Preferences” 打开首选项对话框;在 “构建套件(Kit)”>“Qt 版本” 可以查看 Qt 版本号:(图中 Qt 的版本为 6.2.4)

3.2、查看 Qt Creator 版本

打开 Qt Creator,前往 “帮助”==>“About Qt Creator…” 可以查看 Qt Creator 的相关信息(包括 Qt Creator 的版本号):(图中 Qt Creator 的版本为 10.0.1)

返回 须知

4、后续文章

在 Qt Creator 上创建 ROS 项目并新建/导入 ROS 包

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: