ubuntu22.04+ROS2 humble+Qt5.12.9+QtCreator11.0环境下,ROS搭配Qt进行GUI界面开发配置过程

ubuntu22.04+ROS2 humble+Qt5.12.9+QtCreator11.0环境下,ROS搭配Qt进行GUI界面开发配置过程

1、下载QtCreator11.0和配置ROSProjectManager,如果Ubuntu上有其他版本的QtCreator也没关系,直接进入QtCreator11.0/bin下在终端输入命令./qtcreator

在这里插入图片描述

2、成功运行QtCreator11.0之后配置好ROSProjectManager具体配置过程直接百度。 3、新建ROS Workspace

在这里插入图片描述

点击选择,然后选择路径,注意提前在工作空间下创建src文件夹

在这里插入图片描述

重点是选Colcon,不然会编译不成功。点击下一步

在这里插入图片描述

点击完成。

在这里插入图片描述

鼠标选中src,选择添加新文件

在这里插入图片描述
在这里插入图片描述

点击选择,这时你会发现选择了Ros package但是src下仍旧没有文件,这可能是因为我安装了两个QtCreator可能有冲突,也可能是我没配置好相关环境,我们可以通过其他办法解决。点击底部菜单栏的Terminal,如图:

在这里插入图片描述

进入ROS工作空间文件夹,输入colcon build编译一下,然后输入cd src进入src文件再输入命令ros2 pkg create --build-type ament_cmake <package_name>创建包,这就和在VScode上创建功能包的步骤一样了。创建好功能包后配置CMakeLists.txt文件这是连接QtGUI组件和ROS2的关键,首先打开CMakeLists.txt文件,加入一些内容,完整的一个DEMO如下

在这里插入图片描述
在这里插入图片描述

这里注意自己的Qt版本。重点就是find_package(Qt5 REQUIRED COMPONENTS Widgets) 和target_link_libraries(ros_qtGUI Qt5::Widgets),就是这两句把ROS和Qt的GUI组件联系起来。

cmake_minimum_required(VERSION 3.8)
project(cpp_gui_test_01)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)
# uncomment the following section in order to fill in
# further dependencies manually.
# find_package(<dependency> REQUIRED)

if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # comment the line when a copyright and license is added to all source files
  set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # comment the line when this package is in a git repo and when
  # a copyright and license is added to all source files
  set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

find_package(rclcpp REQUIRED)
find_package(moveit_ros_planning_interface REQUIRED)
find_package(moveit_visual_tools REQUIRED)
find_package(Qt5 REQUIRED COMPONENTS  Widgets)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)


add_executable(ros_qtGUI
src/main.cpp
src/ros_qtgui.cpp
src/ros_qtgui.h
src/ros_qtgui.ui
)

target_include_directories(ros_qtGUI
  PUBLIC include)

ament_target_dependencies(ros_qtGUI
    "moveit_ros_planning_interface"
      "rclcpp"
      "moveit_visual_tools")

target_link_libraries(ros_qtGUI Qt5::Widgets)

install(TARGETS ros_qtGUI
    DESTINATION lib/${PROJECT_NAME})

ament_package()

到此CMakeLists.txt基本配置完成,package.xml文件就和VScode中的配置方法一样了,比加rclcpp这些都一样。 4、4、接下来就是往刚刚配置好的ros功能包中添加Qt GUI组件 (1)选中包下的src文件选择添加新文件

在这里插入图片描述

(2)选择Qt->Qt设计器界面类

在这里插入图片描述

(3)选择界面模板,看自己需求选就行

在这里插入图片描述
在这里插入图片描述

(4)点击下一步,然后就可以看见src文件夹下多出的

在这里插入图片描述

(5)再次选中src文件夹,同样添加新文件

在这里插入图片描述
在这里插入图片描述

点击下一步,这就创建好了main函数了。在main.cpp中添加代码

在这里插入图片描述

到此,代码文件配置完毕,点击编译或者构建及运行

在这里插入图片描述

成功运行之后你会发现没有界面出现,这是因为我们是通过手动修改CMakeLists.txt文件去配置ROS及引入Qt组件的,解决办法就是在终端先Source一下让我们刚刚生成的可执行文件加入到环境中,然后就是输入命令ros2 run cpp_gui_test_01 ros_qtGUI运行我们的程序

在这里插入图片描述

到此大功告成。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值