QTcrateor 编译 ROS

本文详细介绍如何使用QTcreator在Ubuntu环境下编译ROS项目,包括安装配置QTcreator、设置ROS环境变量、导入并调试ros_tutorials包的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QTcrateor 编译 ROS

 



http://my.phirobot.com/blog/2013-12-ros_ide_qtcreator.html

 

QtCreator安装

QtCreator安装方式很多,本文以Qt 5.2.0为例,我直接下载离线安装程序安装。

下载安装

从http://qt-project.org/downloads下载QtCreator安装程序。对于Ubuntu 32位系统,点击 Qt 5.2.0 for Linux 32-bit (425 MB) 将下载离线安装程序( Qt Online Installer for Linux 32-bit (23 MB) 为在线安装程序,不推荐),下载后的文件名为 qt-linux-opensource-5.2.0-x86-offline.run

双击 .run 安装文件直接图形界面安装,默认安装在 /home/<user>/Qt5.2.0 下( <user> 为你的用户名,这里为 viki )。

Qt Installer

按照指示一路Next即可安装完成。

安装完成后点左上角的 Dash home,输入“qt”如果看到 Qt Creator 图标则安装成功。

Qt Creator

设置快捷方式

这一步将要修改Qt Creator快捷方式,使从快捷方式启动Qt Creator的同时加载ROS环境变量。

打开terminal,输入下面的命令:

gedit ~/.local/share/applications/DigiaQtOpenSource-qtcreator.desktop

这条命令将打开DigiaQtOpenSource-qtcreator.desktop快捷方式文件,可以看到文件内容如下:

[Desktop Entry]
Type=Application
Exec=/home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Opensource)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-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;

修改 Exec 变量一行,在中间添加 bash -i -c 即改为 Exec=bash -i -c /home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator ,保存并退出。添加 bash -i -c 是为了在通过快捷方式启动Qt Creator的同时加载ROS环境变量(ROS环境变量加载脚本配置在 ~/.bashrc 文件内)。

Warning

如果打开的文件是空,则表示没有找到DigiaQtOpenSource-qtcreator.desktop文件,可能是安装路径不在本地用户目录下,或者版本不同导致的文件名不一致。可以在 ~/.local/share/applications//usr/share/applications/ 两个路径下用 ls *qt* 命令找找看。

Tip

如果没有上述快捷方式文件,自己新建一个,只要文件内容类似上面的类容,路径正确即可。快捷方式可以放在 ~/.local/share/applications//usr/share/applications/ 两个位置。当然也可以放在任意其他位置,功能跟放在上面两个位置一样,但左边的任务栏不会正确显示图标。

用Qt Creator调试C++工程

可以自己建立包做实验,为求简洁,这里直接从GitHub下载现有的源码包,即大家熟悉的 ros_tutorials 包。

新建catkin工作空间

如果已经有自己的catkin工作空间则跳过,否则新建catkin工作空间:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

对应解释参照《配置ROS工作空间catkin+rosbuild》。关闭所有的terminal在重新打开,使环境变量生效。

向catkin工作空间添加源码包

这里添加 ros_tutorials 源码包。

cd ~/catkin_ws/src
git clone git@github.com:ros/ros_tutorials.git -b hydro-devel
ls

可以看到下面的信息,表示 ros_tutorials 已经被下载到了 ~/catkin_ws/src 目录下。

viki@ROS:~/catkin_ws/src$ ls
CMakeLists.txt  ros_tutorials

向Qt Creator里添加工程

Dash home 里启动Qt Creator,将看到下面的Welcome界面:

Qt Creator

这里我们导入 roscpp_tutorials 包,使之成为Qt Creator的C++工程。点击 Open Project 按钮,在弹出的对话框中选择 ~/catkin_ws/src/ros_tutorials/roscpp_tutorials/ 路径下的 CMakeLists.txt 文件,如下图:

Qt Creator

点击 Open,将会出现编译路径选择对话框。这里要注意了,需要 Browse 将路径修改为 ~/catkin_ws/build/ 的路径,如下图:

Qt Creator

点击 Next 后,在出现的对话框的 Arguments 一栏填入 -DCMAKE_BUILD_TYPE=Debug (不填后面将无法调试),然后点击 Run CMake 即可开始编译,结果如下图:

Qt Creator

如果没有错误信息,则点击 Finish 完成,在 Edit 界面可以看到工程结构,可以开始编辑工程了。

调试

先打开一个terminal,输入 roscore 命令启动ROS Master。

在Qt Creator的 Edit 界面工程目录中,找到 talker.cpp 文件,打开。然后找到 “hello world” 所在的位置,修改为 “hello I'm yuanboshe”,并设置断点,如下图:

Qt Creator

保存后,从左下角的工程面板里选择 talker 可执行程序项,然后按 F5 快捷键运行调试。稍等片刻,Qt Creator会需要一点时间编译所有程序,编译完成后,会运行到断点处停下来:

Qt Creator

取消断点,按 F5 继续运行,在弹出的 Application Output 界面能够看到修改后的信息,如下:

Qt Creator

回到桌面,再开一个terminal窗口,输入 rosrun roscpp_tutorials listener 命令,可以看到正确的监听消息,如下图:

Qt Creator

关于Debug问题

如果之前在CMake的时候没有填写 -DCMAKE_BUILD_TYPE=Debug 参数,则编译出来的程序不可用于调试。按下调试快捷键 F5 的时候,可能会出现下面的警告信息:

This does not seem to be a "Debug" build.
Setting breakpoints by file name and line number may fail.

Section .debug_info: Not found.
Section .debug_abbrev: Not found.
Section .debug_line: Not found.
Section .debug_str: Not found.
Section .debug_loc: Not found.
Section .debug_range: Not found.
Section .gdb_index: Not found.
Section .note.gnu.build-id: Found.
Section .gnu.hash: Found.
Section .gnu_debuglink: Not found.

可以通过左边的"Projects"->"Run CMake"重新设置参数,并make,如下图:

ROS debug

<think>好的,我现在需要帮助用户解决在VSCode中配置和编译ROS工程的问题。根据用户提供的引用内容,我需要整合这些信息,并按照用户的要求结构化回答。 首先,用户提到了四个引用,其中引用[1]讨论了修改tasks.json文件来集成catkin_make命令,引用[2]提到使用快捷键启动ROS,引用[3]涉及创建cpp文件和配置CMakeLists.txt,引用[4]则关于使用colcon build编译ROS2工程。因此,我需要区分ROS1和ROS2的不同配置步骤,因为两者的编译工具不同,ROS1用catkin_make,ROS2用colcon。 接下来,我需要确保回答结构清晰,分步骤说明。可能分为准备工作、配置编译任务(包括ROS1和ROS2)、编译步骤、调试配置等。同时,要注意用户是否需要同时了解ROS1和ROS2,或者是否需要分开说明。根据引用内容,用户的问题可能同时涉及两者,所以需要分别处理。 另外,用户要求生成相关问题,我需要考虑与VSCode配置、编译问题、调试、常见错误等相关的问题。例如,如何处理编译错误,如何配置调试环境,或者如何管理多个ROS工作空间等。 需要检查是否有遗漏的步骤,例如CMakeLists.txt的配置是否正确,环境变量是否设置,或者是否需要安装特定插件如ROS扩展。引用[3]提到配置CMakeLists.txt,因此需要详细说明这部分内容,确保用户正确添加可执行文件和依赖。 还要注意使用正确的中文术语,避免技术术语翻译错误,比如“工作空间”、“功能包”、“节点”等。同时,代码块和命令需要正确格式化,使用用户指定的LaTeX格式行内表达式,但在此问题中可能更多是代码块和命令行指令,所以需要正确使用代码块的格式。 最后,确保每个引用在适当的位置标注,例如在讲解tasks.json时引用[1],配置CMakeLists.txt时引用[3],colcon build时引用[4]。同时,回答要自然,不显突兀地插入引用标记。</think>以下是在 VSCode 中配置和编译 ROS 工程的分步指南(支持 ROS1/ROS2): ### 一、准备工作 1. 安装 VSCode 的 ROS 扩展插件 - 搜索并安装 `ROS` 和 `C/C++` 扩展[^2] 2. 创建工作空间(以 ROS1 为例) ```bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws && catkin_make ``` ### 二、配置编译环境 #### ROS1 (Catkin) 1. **配置 tasks.json** 按 `Ctrl+Shift+P` → 输入 `Tasks: Configure Task` → 创建如下配置: ```json { "version": "2.0.0", "tasks": [{ "label": "catkin_make", "type": "shell", "command": "catkin_make", "args": ["-DCMAKE_BUILD_TYPE=Release"], "group": {"kind": "build", "isDefault": true}, "problemMatcher": "$gcc" }] } ``` 按 `Ctrl+Shift+B` 即可触发编译[^1] 2. **CMakeLists 配置** 在功能包目录的 `CMakeLists.txt` 中添加: ```cmake add_executable(helloROS src/helloROS.cpp) target_link_libraries(helloROS ${catkin_LIBRARIES}) ``` #### ROS2 (Colcon) 1. **配置编译命令** 在终端执行: ```bash cd ~/ros2_ws && colcon build --symlink-install ``` 可绑定到快捷键 `Ctrl+Shift+T`[^4] ### 三、编译执行流程 1. 编写代码文件 在 `src` 目录创建 `helloROS.cpp`(参考 ROS 节点模板)[^3] 2. 触发编译 - ROS1:`Ctrl+Shift+B` - ROS2:终端执行 `colcon build` 3. 运行节点 按 `Ctrl+Shift+P` → 输入 `ROS: Start` 启动核心[^2] ### 四、调试配置 1. 创建 `launch.json` 配置调试器 2. 设置断点后按 `F5` 启动调试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值