Ubuntu 22.04 + ROS2 Humble 环境下设计图形化交互界面
在 Ubuntu 22.04 ROS2 Humble 环境下设计图形化交互界面有多种选择从快速搭建原型到深度定制应用。以下是几种主流方法及其具体安装和使用步骤。1. rqt – ROS2 官方图形化工具框架rqt 是基于 Qt 的插件化 GUI 框架允许您通过拖拽插件快速构建界面也支持开发自定义插件。安装sudoaptupdatesudoaptinstallros-humble-rqt*# 安装所有常用 rqt 插件使用启动 rqtsource/opt/ros/humble/setup.bash rqt加载插件通过菜单栏Plugins选择所需插件如话题监视、参数动态配置等。开发自定义插件创建 ROS2 包Pythonros2 pkg create my_rqt_plugin --build-type ament_python--dependenciesrqt_gui rqt_gui_py编写插件类继承rqt_gui_py.Plugin并实现setup方法。在setup.py中添加entry_points例如entry_points{console_scripts:[my_rqt_plugin my_rqt_plugin.my_module:main,],}编译并运行colcon build --packages-select my_rqt_pluginsourceinstall/setup.bash rqt --force-discover# 重新扫描插件之后在 Plugins 菜单中即可找到您的插件。2. RViz2 – 3D 可视化工具RViz2 是 ROS2 的 3D 可视化工具主要用于显示机器人模型、传感器数据、地图等。您可以通过配置文件定制界面也可以开发自己的显示插件。安装sudoaptinstallros-humble-rviz2使用启动 RViz2source/opt/ros/humble/setup.bash rviz2加载显示项点击左下角Add按钮选择要显示的数据类型如 RobotModel、LaserScan 等。保存配置通过File - Save Config As保存.rviz文件下次可直接加载。开发自定义显示插件需要 C 开发参考 ROS2 RViz 插件教程。3. Foxglove Studio – 现代跨平台可视化工具Foxglove Studio 是一款功能强大的可视化工具支持 ROS2 桥接界面现代支持布局定制、实时数据回放、扩展开发等。安装AppImage 方式推荐免安装从 Foxglove 官网 下载 Linux AppImage。赋予执行权限并运行chmodx Foxglove-Studio-*.AppImage ./Foxglove-Studio-*.AppImage通过 apt 安装Ubuntu 22.04 可用sudoaptinstall-ysoftware-properties-commonsudoadd-apt-repository ppa:foxglove/studiosudoaptupdatesudoaptinstallfoxglove-studio使用启动 Foxglove Studio。连接 ROS2确保 ROS2 环境已 sourcesource /opt/ros/humble/setup.bash。在 Foxglove 中点击 “Open connection”选择 “Rosbridge” 或 “ROS2”。如果选择 Rosbridge需先在终端启动 rosbridgeros2 run rosbridge_server rosbridge_websocket然后在 Foxglove 中输入ws://localhost:9090连接。添加面板通过左侧面板库拖拽各种面板如 3D、Plot、Image 等并订阅相应话题。保存布局可将布局保存为 JSON 文件方便复用。4. Qt ROS2C – 自定义 GUI 应用如果您需要完全定制化的界面可以使用 Qt5/Qt6 结合 ROS2 C 库开发独立应用。安装依赖sudoaptinstallqtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools\libqt5svg5-dev libqt5websockets5-dev# 确保 ROS2 Humble 已安装桌面完整版创建 ROS2 包并集成 Qt创建功能包ros2 pkg create my_qt_app --build-type ament_cmake--dependenciesrclcpp std_msgscdmy_qt_app修改CMakeLists.txtfind_package(Qt5 REQUIRED COMPONENTS Core Widgets) set(QT_LIBS Qt5::Widgets) add_executable(my_qt_app src/main.cpp) target_link_libraries(my_qt_app ${QT_LIBS} rclcpp::rclcpp) ament_target_dependencies(my_qt_app rclcpp std_msgs) install(TARGETS my_qt_app DESTINATION lib/${PROJECT_NAME})编写 Qt 界面代码如src/main.cpp#includeQApplication#includeQPushButton#includerclcpp/rclcpp.hppintmain(intargc,char*argv[]){rclcpp::init(argc,argv);QApplicationapp(argc,argv);QPushButtonbutton(Hello ROS2);button.show();autonodestd::make_sharedrclcpp::Node(qt_node);// 添加 ROS2 逻辑例如定时器、订阅等returnapp.exec();}编译与运行colcon build --packages-select my_qt_appsourceinstall/setup.bash my_qt_app5. PyQt5 / PySide2 rclpy – Python 快速开发使用 Python 和 Qt 绑定库可以快速开发界面并通过rclpy与 ROS2 交互。安装 PyQt5 和 ROS2 Python 依赖sudoaptinstallpython3-pyqt5# 或 pip install PyQt5# ROS2 Humble 的 Python 客户端已默认安装编写示例应用创建 Python 脚本如my_gui.pyimportsysfromPyQt5.QtWidgetsimportQApplication,QMainWindow,QPushButtonimportrclpyfromstd_msgs.msgimportStringclassMainWindow(QMainWindow):def__init__(self):super().__init__()self.noderclpy.create_node(gui_node)self.pubself.node.create_publisher(String,chatter,10)buttonQPushButton(Publish Hello)button.clicked.connect(self.publish_hello)self.setCentralWidget(button)defpublish_hello(self):msgString()msg.dataHello from GUIself.pub.publish(msg)defmain():rclpy.init()appQApplication(sys.argv)windowMainWindow()window.show()# 需要定期调用 rclpy.spin_once 处理 ROS 事件timerapp.startTimer(100)# 每100ms触发一次defprocess_ros():rclpy.spin_once(window.node,timeout_sec0)app.timerEventlambdaevent:process_ros()sys.exit(app.exec_())rclpy.shutdown()if__name____main__:main()运行source/opt/ros/humble/setup.bash python3 my_gui.py同时可启动一个订阅者查看消息ros2 topicecho/chatter补充说明环境设置使用任何 ROS2 命令前务必 source ROS2 环境source /opt/ros/humble/setup.bash。工作空间若开发自定义包建议创建工作空间如~/ros2_ws并在其中构建。调试可使用ros2 run或直接运行可执行文件。

相关新闻

格式总出错?AI论文工具 千笔ai写作 VS speedai,本科生专属高效神器!

格式总出错?AI论文工具 千笔ai写作 VS speedai,本科生专属高效神器!

随着人工智能技术的迅猛迭代与普及,AI辅助写作工具已逐步渗透到高校学术写作场景中,成为本科生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生,开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时,市场…

2026/7/5 4:12:38 阅读更多 →
基于Python的旅游出行必备商城设计与实现毕业设计

基于Python的旅游出行必备商城设计与实现毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一款基于Python的旅游出行必备商城,以满足现代旅游者在出行前对各类旅游资源的综合需求。具体研究目的如下:首先&am…

2026/5/17 11:10:16 阅读更多 →
Mail2Shell漏洞利用机制与FreeScout补丁绕过深度剖析

Mail2Shell漏洞利用机制与FreeScout补丁绕过深度剖析

摘要 开源帮助台系统FreeScout因其轻量级架构与易用性,在全球范围内被广泛应用于企业客户服务与工单管理。然而,近期披露的Mail2Shell漏洞(CVE-2024-xxxx系列)揭示了该系统在处理邮件内容解析与命令执行逻辑时存在的严重安全缺陷。…

2026/7/3 3:56:20 阅读更多 →

最新新闻

InGate进阶技巧:10个提升Kubernetes流量管理效率的实用配置

InGate进阶技巧:10个提升Kubernetes流量管理效率的实用配置

InGate进阶技巧:10个提升Kubernetes流量管理效率的实用配置 【免费下载链接】ingate InGate - an Ingress & Gateway API Controller 项目地址: https://gitcode.com/gh_mirrors/in/ingate InGate作为一款功能强大的Kubernetes Ingress和Gateway API控制…

2026/7/5 17:13:10 阅读更多 →
PyTorch-Segmentation-Detection损失函数深度解析:Dice Loss、Cross Entropy与Focal Loss

PyTorch-Segmentation-Detection损失函数深度解析:Dice Loss、Cross Entropy与Focal Loss

PyTorch-Segmentation-Detection损失函数深度解析:Dice Loss、Cross Entropy与Focal Loss 【免费下载链接】pytorch-segmentation-detection Image Segmentation and Object Detection in Pytorch 项目地址: https://gitcode.com/gh_mirrors/py/pytorch-segmentat…

2026/7/5 17:13:10 阅读更多 →
Opslane开发者指南:如何扩展和自定义你的多会话管理器

Opslane开发者指南:如何扩展和自定义你的多会话管理器

Opslane开发者指南:如何扩展和自定义你的多会话管理器 【免费下载链接】opslane Run multiple Claude Code sessions in parallel 项目地址: https://gitcode.com/gh_mirrors/op/opslane Opslane(GitHub 加速计划)是一款强大的多会话管…

2026/7/5 17:09:09 阅读更多 →
3分钟掌握B站下载神器:BiliTools跨平台工具箱终极使用指南

3分钟掌握B站下载神器:BiliTools跨平台工具箱终极使用指南

3分钟掌握B站下载神器:BiliTools跨平台工具箱终极使用指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 17:09:09 阅读更多 →
Jellyscrub 2.0新特性:从Trickplay到原生格式,一文读懂版本升级亮点

Jellyscrub 2.0新特性:从Trickplay到原生格式,一文读懂版本升级亮点

Jellyscrub 2.0新特性:从Trickplay到原生格式,一文读懂版本升级亮点 【免费下载链接】jellyscrub Smooth mouse-over video scrubbing previews for Jellyfin. 项目地址: https://gitcode.com/gh_mirrors/je/jellyscrub Jellyscrub 2.0版本带来了…

2026/7/5 17:09:09 阅读更多 →
Awesome Login Pages深度解析:现代登录页面设计的7个核心要素

Awesome Login Pages深度解析:现代登录页面设计的7个核心要素

Awesome Login Pages深度解析:现代登录页面设计的7个核心要素 【免费下载链接】awesome-login-pages This repository consist of many login page example, whch can be used for any web or hybrid app developement. 项目地址: https://gitcode.com/gh_mirrors…

2026/7/5 17:07:08 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻