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运行我们的程序

在这里插入图片描述

到此大功告成。

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通。 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip 基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip基于QT开发ROS人机交互界面项目C++源码+使用说明(课程设计).zip
【资源说明】 基于qtC++ROS 人机交互界面源码+运行使用说明+效果图.zip基于qtC++ROS 人机交互界面源码+运行使用说明+效果图.zip ROS qt 人机交互界面 - 实现图像显示,可以自动刷新图像类型画图 - 实现GPS显示,速度显示,速度控制,不同平台的切换 - 不同预定轨迹的跟踪(纯跟踪算法) - Karto建图,保存地图,调用远程主控机程序 - move base 导航,调用远程主控机程序 *** 安装依赖 ```bash sudo apt-get install ros-noetic-urg-node ``` 运行方式 ```bash rosrun robot_hmi robot_hmi ``` 支持Ubuntu与Windows平台,设计主要是为了window平板 界面大致介绍 开机界面,上面一栏是车辆状态显示,可以显示连接状态、车辆速度、GPS位置与电池电量信息。 中间位置是显示车辆的平台选择、图像显示、路径类型选择、激光雷达与地图。最下面是车辆控制按钮,左边是速度控制,右边是转型控制,用于平板操作。 * 点击移动平台1,如果未开启roscore,会自动启动roscore。其中图像与激光雷达会自动切换都平台1的消息画图。 * 左边是图像,点击刷新可以自动获取图像画图; * 图中间是小车采用纯跟踪算法跟随S型曲线的轨迹 建图与导航 [远程调用主控机运行程序与关闭程序] * 点击开始建图,调用远程主控机karto建图 * 点击导航,远程调用move base规划路径 * 添加全屏模式,方便对地图操作 改进 由于rviz不支持触屏手势,无法放大与平移,后续加入触屏手势 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值