简体中文 | [English](./README_en.md)
## 轻量级ROS1/ROS2移动机器人人机交互软件
![GitHub last commit](https://img.shields.io/github/last-commit/chengyangkj/Ros_Qt5_Gui_App?style=flat-square)
![GitHub stars](https://img.shields.io/github/stars/chengyangkj/Ros_Qt5_Gui_App?style=flat-square)
![GitHub forks](https://img.shields.io/github/forks/chengyangkj/Ros_Qt5_Gui_App?style=flat-square)
![GitHub issues](https://img.shields.io/github/issues/chengyangkj/Ros_Qt5_Gui_App?style=flat-square)
<a href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=mvzoO6tJQtu0ZQYa_itHW7JrT0i4OCdK&authKey=exOT53pUpRG85mwuSMstWKbLlnrme%2FEuJE0Rt%2Fw6ONNvfHqftoWMay03mk1Qi7yv&noverify=0&group_code=797497206">
<img alt="Static Badge" src="https://img.shields.io/badge/QQ%e7%be%a4-797497206-purple">
</a>
![humble](https://github.com/chengyangkj/Ros_Qt5_Gui_App/actions/workflows/ros_humble_build.yaml/badge.svg)
![foxy](https://github.com/chengyangkj/Ros_Qt5_Gui_App/actions/workflows/ros_foxy_build.yaml/badge.svg)
![noetic](https://github.com/chengyangkj/Ros_Qt5_Gui_App/actions/workflows/ros_noetic_build.yaml/badge.svg)
![galactic](https://github.com/chengyangkj/Ros_Qt5_Gui_App/actions/workflows/ros_galactic_build.yaml/badge.svg)
![melodic](https://github.com/chengyangkj/Ros_Qt5_Gui_App/actions/workflows/ros_melodic_build.yaml/badge.svg)
<!--
<a href="https://www.bilibili.com/video/BV14h4y1w7TC">
<img alt="Static Badge" src="https://img.shields.io/badge/%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-208647">
</a>
<a href="https://www.bilibili.com/video/BV11h4y1y74H">
<img alt="Static Badge" src="https://img.shields.io/badge/Linux%E9%83%A8%E7%BD%B2%E8%A7%86%E9%A2%91-208647">
</a>
-->
本项目基于Qt5开发,基于CMake进行构建,可以实现一套代码同时在ROS1/ROS2系统中使用(本项目已接入CI,保证多ROS版本/系统版本可用性)
软件在编译时会自动识别环境变量中的ROS1/ROS2环境并进行构建,实现ROS通信与界面隔离
软件所有功能均为自行绘制实现,因此可以轻松运行在一些性能比较低的边缘设备
功能/TODO:
| 功能 | 状态 | 备注 |
| --------------------------- | ---- | ---- |
| ROS1/ROS2通信 | ✅ | |
| 全局/局部地图显示 | ✅ | |
| 机器人实时位置显示 | ✅ | |
| 机器人速度仪表盘 | ✅ | |
| 机器人手动控制 | ✅ | |
| 机器人重定位 | ✅ | |
| 机器人单点/多点导航 | ✅ | |
| 机器人全局/局部规划轨迹显示 | ✅ | |
| 机器人拓扑地图功能 | ✅ | |
| 电池电量显示 | ✅ | |
| 地图编辑功能 | ✅ | |
| 机器人导航任务链 | ✅ | |
| 地图加载 | ✅ | |
| 地图保存 | ✅ | |
| 基于rosbridge的通信 | ✍ | |
| 鹰眼视图 | 🏷️ | |
| 3D图层显示 | 🏷️ | |
| 相机图像显示 | ✍ | |
| 拓扑点位的路径规划 | 🏷️ | |
大家如果有什么有意思的界面/功能性需求,可以提在[此处](https://github.com/chengyangkj/Ros_Qt5_Gui_App/issues/29),如有Bug请提在[issues](https://github.com/chengyangkj/Ros_Qt5_Gui_App/issues),必将尽快修复!请在也欢迎大家发起Merge Request一起参与项目建设~
此仓库国内加速镜像链接:[gitee](https://gitee.com/chengyangkj/Ros_Qt5_Gui_App)
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=chengyangkj/Ros_Qt5_Gui_App&type=Timeline&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=chengyangkj/Ros_Qt5_Gui_App&type=Timeline" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=chengyangkj/Ros_Qt5_Gui_App&type=Timeline" width="75%" />
</picture>
## 项目截图
![image.png](./doc/images/main.png)
![image.png](./doc/images/main.gif)
<!-- TOC -->
## 目录
- [一,Release 版本下载使用](#一release-版本下载使用)
- [二,编译](#二编译)
- [1,环境安装](#1环境安装)
- [2,克隆/下载本项目:](#2克隆下载本项目)
- [3,编译项目](#3编译项目)
- [4,运行项目](#4运行项目)
- [三,IDE配置说明(QtCreator/Vscode)](#三ide配置说明qtcreatorvscode)
- [3.1 QtCreator打开项目教程](#31-qtcreator打开项目教程)
- [四,使用说明](#四使用说明)
- [4.1,多机通信配置](#41多机通信配置)
- [4.2,配置文件](#42配置文件)
- [4.3,重定位位姿态发布](#43重定位位姿态发布)
- [4.4,地图编辑](#44地图编辑)
- [4.4.1 拓扑地图(机器人导航点设置)](#441-拓扑地图机器人导航点设置)
- [4.4.2 橡皮擦](#442-橡皮擦)
- [4.4.3 画笔](#443-画笔)
- [4.4.4 线段绘制](#444-线段绘制)
- [4.4.5 地图保存](#445-地图保存)
- [4.4.6 地图加载](#446-地图加载)
- [4.5,手动控制机器人](#45手动控制机器人)
- [4.6,速度仪表盘](#46速度仪表盘)
- [4.7,电池电量显示](#47电池电量显示)
- [4.8 多点连续导航](#48-多点连续导航)
- [五,相关链接](#五相关链接)
- [六,相关教程及交流群](#六相关教程及交流群)
<!-- /TOC -->
# 一,Release 版本下载使用
如果您只想使用本软件,并不想了解具体的代码实现,用户可以选择下载编译好的Release版本,不用自行手动编译,下载即用
使用Release版本的前提:==系统ROS环境已安装,并且source到环境变量中==
本仓库使用CI自动生成各平台的Release版本(目前只有X86_64版本,Arm环境需要自行编译),在项目的[Release页面](https://github.com/chengyangkj/Ros_Qt5_Gui_App/releases)下载最新对应ROS版本的Release版本,理论上解压后即可使用。
使用方法:
在终端进入解压后的文件夹路径,执行如下命令:
```
sudo chmod a+x ./ros_qt5_gui_app
./ros_qt5_gui_app
```
如果Release版本下载后使用不了,可以参考[二,编译](#二编译)进行自行编译使用
# 二,编译
>💡 注意,为了保证此项目同时兼容ROS1与ROS2,此项目不使用ROS1/ROS2的catkin_make/colcon构建系统进行够建,而是使用标准CMake进行构建,这也就意味着,本项目不会被ROS自动识别为功能包
可以参考以下教程从0开始构建/运行此项目:
## 1,环境安装
理论上只需要安装如下基础包就可以编译此项目:
```
sudo apt-get update
sudo apt-get install qtbase5-private-dev libqt5svg5-dev -y
```
如果以上安装后还不行,可以执行如下指令安装全部依赖:
```
sudo apt-get install qtbase5-dev qt5-qmake qtbase5-dev-tools libqt5svg5-dev qtbase5-private-dev libeigen3-dev libgtest-dev -y
```
## 2,克隆/下载本项目:
```
mkdir -p ~/qt_ws
cd ~/qt_ws
git clone https://github.com/chengyangkj/Ros_Qt5_Gui_App
```
note:如果github下载过慢,可以使用以下指令从gitee拉取
```
git clone https://gitee.com/chengyangkj/Ros_Qt5_Gui_App
```
## 3,编译项目
可以手动执行如下命令进行编译(会根据环境变量自动识别ROS1还是ROS2环境):
```
cd ~/qt_ws/ROS2_Qt5_Gui_App
mkdir -p build
cd build
cmake ..
make
```
或者执行如下脚本手动指定ROS版本并进行一键编译:
```
cd ~/qt_ws/ROS2_Qt5_Gui_App
```
ROS1:
```
sh ./build_ros1.sh
```
ROS2
```
sh ./build_ros2.sh
```
## 4,运行项目
```
cd ~/qt_ws/ROS2_Qt5_Gui_App/build
./ros_qt5_gui_app
```
软件配置文件路径(运行一次软件后会自动生成在可执行程序相对路径下):
```
~/qt_ws/ROS2_Qt5_Gui_App/build/config.json
```
# 三,IDE配置说明(QtCreator/Vscode)
>💡 此部分为针对新手做的温馨提示,如果你�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip 【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Qt5的ROS人机交互界面源码+项目说明+示例图片.zip (916个子文件)
BUILD.bazel 15KB
BUILD.bazel 6KB
BUILD.bazel 3KB
BUILD.bazel 574B
MODULE.bazel 345B
BUILD.bazel 262B
.bazelignore 18B
CMakeDetermineCompilerABI_CXX.bin 9KB
CMakeDetermineCompilerABI_C.bin 9KB
CMakeCCompilerId.c 24KB
gmock-matchers_test.cc 277KB
gtest_unittest.cc 254KB
gtest.cc 243KB
easylogging++.cc 119KB
gtest_pred_impl_unittest.cc 76KB
gmock-spec-builders_test.cc 73KB
googletest-printers-test.cc 61KB
gtest-death-test.cc 61KB
gmock-more-actions_test.cc 52KB
gmock-actions_test.cc 50KB
googletest-death-test-test.cc 47KB
gtest-port.cc 47KB
googletest-param-test-test.cc 40KB
googletest-port-test.cc 39KB
googletest-output-test_.cc 35KB
gmock-function-mocker_test.cc 33KB
gmock-spec-builders.cc 33KB
gmock-internal-utils_test.cc 26KB
googletest-listener-test.cc 24KB
googletest-filepath-test.cc 22KB
gmock-matchers.cc 18KB
gtest-printers.cc 17KB
gmock-nice-strict_test.cc 15KB
gtest-typed-test_test.cc 14KB
gtest-filepath.cc 14KB
gtest-unittest-api_test.cc 13KB
gmock-cardinalities_test.cc 12KB
gtest_stress_test.cc 9KB
sample6_unittest.cc 9KB
gmock-pp-string_test.cc 9KB
gmock_output_test_.cc 8KB
googletest-catch-exceptions-test_.cc 8KB
gmock.cc 8KB
googletest-test-part-test.cc 8KB
googletest-options-test.cc 8KB
gmock-internal-utils.cc 7KB
gtest_repeat_test.cc 7KB
gmock_stress_test.cc 7KB
sample5_unittest.cc 6KB
gtest_environment_test.cc 6KB
gmock_test.cc 6KB
gtest_xml_output_unittest_.cc 6KB
sample8_unittest.cc 6KB
sample9_unittest.cc 6KB
googletest-failfast-unittest_.cc 5KB
sample3_unittest.cc 5KB
googletest-message-test.cc 5KB
gmock-cardinalities.cc 5KB
config_manager.cc 5KB
sample1_unittest.cc 5KB
sample10_unittest.cc 5KB
googletest-list-tests-unittest_.cc 5KB
sample7_unittest.cc 5KB
gtest_premature_exit_test.cc 4KB
gtest-test-part.cc 4KB
sample2_unittest.cc 4KB
gtest_assert_by_exception_test.cc 4KB
gtest-typed-test.cc 4KB
gtest_test_macro_stack_footprint_test.cc 4KB
gtest-matchers.cc 4KB
googletest-env-var-test_.cc 4KB
googletest-death-test_ex_test.cc 4KB
gmock-pp_test.cc 3KB
googletest-filter-unittest_.cc 3KB
gtest_throw_on_failure_ex_test.cc 3KB
gmock_ex_test.cc 3KB
googletest-break-on-failure-unittest_.cc 3KB
gmock_leak_test_.cc 3KB
googletest-shuffle-test_.cc 3KB
gtest_list_output_unittest_.cc 3KB
googletest-throw-on-failure-test_.cc 3KB
channel_manager.cc 3KB
gmock_main.cc 3KB
googletest-param-test2-test.cc 3KB
googletest-color-test_.cc 2KB
sample1.cc 2KB
gtest_no_test_unittest.cc 2KB
gmock_all_test.cc 2KB
googletest-global-environment-unittest_.cc 2KB
sample2.cc 2KB
gtest_all_test.cc 2KB
gtest_sole_header_test.cc 2KB
gtest-all.cc 2KB
gtest_prod_test.cc 2KB
googletest-param-test-invalid-name2-test_.cc 2KB
sample4.cc 2KB
gmock-all.cc 2KB
gtest_help_test_.cc 2KB
gtest_skip_in_environment_setup_test.cc 2KB
googletest-param-test-invalid-name1-test_.cc 2KB
共 916 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
- H.X.D.2024-07-03资源和描述一致,质量不错,解决了我的问题,感谢资源主。
龙年行大运
- 粉丝: 1385
- 资源: 3960
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- FeiQ.rar 局域网内通信服务软件
- 172.16.100.195
- 光储并网simulink仿真模型,直流微电网 光伏系统采用扰动观察法是实现mppt控制,储能可由单独蓄电池构成,也可由蓄电池和超级电容构成的混合储能系统,并采用lpf进行功率分配 并网采用pq控制
- python编写微信读取smart200plc的数据发送给微信联系人
- 光储并网VSG系统Matlab simulink仿真模型,附参考文献 系统前级直流部分包括光伏阵列、变器、储能系统和双向dcdc变器,后级交流子系统包括逆变器LC滤波器,交流负载 光储并网VSG系
- file_241223_024438_84523.pdf
- 质子交膜燃料电池PEMFC Matlab simulink滑模控制模型,过氧比控制,温度控制,阴,阳极气压控制
- IMG20241223015444.jpg
- 模块化多电平变器(MMC),本模型为三相MMC整流器 控制策略:双闭环控制、桥臂电压均衡控制、模块电压均衡控制、环流抑制控制策略、载波移相调制,可供参考学习使用,默认发2020b版本及以上
- Delphi 12 控件之FlashAV FFMPEG VCL Player For Delphi v7.0 for D10-D11 Full Source.7z
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功