ROS human computer interface based on Qt5(基于Qt5的ROS人机交软件)
本项目基于 Qt5 与 CMake 构建,采用统一代码基线同时支持 ROS1/ROS2。构建阶段会根据环境变量自动识别目标 ROS 运行时,实现通信层与界面层解耦,降低跨版本适配成本。
图形渲染基于 Qt Graphics View 体系实现,在保证交互能力的同时兼顾资源占用,适用于算力受限的边缘设备屏幕部署场景。项目已接入 CI 流水线,持续验证多 ROS 版本与多系统组合的可用性。当前已支持 Windows(通过 RosBridge 通信),可在项目 Releases 页面获取可用版本。
软件提供丰富的地图编辑功能:
本仓库通过 CI 预编译了固定版本的二进制软件包。你可以在 release 页面下载对应系统版本的压缩包并直接运行,当前提供以下两个版本:
.tar.gz 压缩包,解压后参考 Linux 方法 3: 安装后运行 运行程序.zip 压缩包,解压后参考 Windows 方法 3: 安装后运行 运行程序首次运行前,请确保:
详细配置说明请参考 功能使用指南
如果想要进行二次开发或编译安装,参考如下教程
** 提示:** 点击下方标签切换查看不同平台的编译与使用说明
Linux 平台
sudo apt-get update
sudo apt-get install -y \
qtbase5-dev \
qtbase5-private-dev \
libqt5svg5-dev \
qtbase5-dev-tools \
libeigen3-dev \
libgtest-dev \
libsdl2-dev \
libsdl2-image-devUbuntu 20.04及以下的系统自带的CMake版本过低,需要升级到 3.16+ 版本。Ubuntu 22.04 及以上可跳过此步骤。
wget https://cmake.org/files/v3.16/cmake-3.16.4-Linux-x86_64.sh -O cmake-install.sh
chmod +x cmake-install.sh
sudo ./cmake-install.sh --prefix=/usr/local --skip-license# 克隆仓库
git clone https://github.com/chengyangkj/Ros_Qt5_Gui_App.git
cd Ros_Qt5_Gui_App# 创建构建目录
mkdir build && cd build
# 配置和编译
cmake ..
make -j$(nproc)./build.sh将拉取的三方库位置替换为 Gitee 镜像,加速编译:
./build_cn.sh或者手动指定镜像:
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-Ddockwidget_GIT_REPOSITORY=https://gitee.com/kqz2007/qt-advanced-docking-system_github.git \
-Dnlohmann_json_GIT_REPOSITORY=https://gitee.com/athtan/json.git \
-Dyaml-cpp_GIT_REPOSITORY=https://gitee.com/dragonet_220/yaml-cpp.git \
-Dwebsocketpp_GIT_REPOSITORY=https://gitee.com/open-source-software_1/websocketpp.git
make -j$(nproc)构建完成后,启动脚本会自动复制到 build 目录:
cd build
./start.sh启动脚本会自动设置库文件路径并启动程序。
cd build
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
./ros_qt5_gui_appcd build
make install
cd ./install/bin
./start.shWindows 平台
Windows 平台构建环境请自行准备(Visual Studio C++ 工具链、CMake、vcpkg 等),并根据本机配置执行构建脚本 ./build.bat。详情参考 CI 中的构建过程:windows build
构建完成后,启动脚本会自动复制到 build 目录:
cd build
.\start.bat启动脚本会自动设置库文件路径并启动程序。
cd build
.\ros_qt5_gui_app.execd build
cmake --install . --config Release
cd .\install\bin
.\start.batRos_Qt5_Gui_App/
├── src/ # 源代码目录
│ ├── core/ # 核心模块(主程序入口)
│ ├── mainwindow/ # 主窗口和界面
│ ├── common/ # 公共库
│ ├── basic/ # 基础数据结构
│ ├── channel/ # 通信通道(ROS1/ROS2/ROSBridge)
│ └── plugin/ # 插件系统
├── install/ # 安装脚本
│ ├── linux/bin/ # Linux 启动脚本
│ └── windows/bin/ # Windows 启动脚本
├── doc/ # 文档目录
├── cmake/ # CMake 模块
└── CMakeLists.txt # 主 CMake 配置文件欢迎提交 Issues 和 Pull Requests!
如果有什么想法或者建议,欢迎提交 心愿/需求单,说不定哪天就实现了呢!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)详情请访问 ROS_Flutter_Gui_App
支持地图编辑
详情请访问 ROS_Web_Gui_App
| 分支 | 支持平台 | 功能说明 |
|---|---|---|
| master | Win10 Ubuntu | ROS + QWidget + QGraphicsView 自定义可视化界面显示 |
| qml_hmi | Win10 Ubuntu | ROS + QML + C++ 混合编程,QML 自绘制地图、激光雷达等可视化 demo |
| simple | Win10 Ubuntu | ROS + QWidget + Librviz 可视化显示,CSDN 博客《ROS 人机交互软件开发》课程实现版本 |
| rviz_tree | Win10 Ubuntu | ROS + QWidget + Librviz 原生图层 API 管理图层,无需手动创建图层 |
| ros_qt_demo | Win10 Ubuntu | 使用 catkin_create_qt_pkg 创建的原始包,CMakeLists.txt 配置到 Qt5,可直接编译运行 |
| ros2_qt_demo | ROS2 | 运行在 ROS2 平台的 Qt demo 包,CMakeLists.txt 配置到 Qt5,可使用 colcon build 编译使用 |
| ROS2_Qt5_Gui_App | ROS2 | 与本仓库相同/不再维护 |
| Flutter App | 多平台 (Flutter) | 已实现 |
本项目采用 MIT 开源协议。
感谢所有贡献者和使用者的支持!
暂无开放 Issues,或尚未同步最近议题。