Ros_Qt5_Gui_App/README.md
2020-12-18 16:00:33 +08:00

157 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## ROS Qt Deskotp GUI App
***
简体中文 | [English](./README_en.md)
- 使用qt5实现ros机器人人机界面
- 注意!未经作者的许可,此代码仅用于学习,不能用于其他用途。
- 本仓库以分支的形式长期维护各种有趣的ROS Qt项目持续更新中.....
- 欢迎在issues提交bug
## 一,安装教程
#### 1首先安装ros对qt pkg的支持非必须
melodic需要换成自己的ROS版本号
```cpp
sudo apt-get install ros-melodic-qt-create
```
```cpp
sudo apt-get install ros-melodic-qt-build
```
#### 2,安装Qtmultimedia5依赖
程序依赖Qtmultimedia实现音频功能因此需要安装依赖
```cpp
sudo apt-get install qtmultimedia5-dev
```
#### 2编译
将软件包放入ros src软件包目录下
```cpp
catkin_make
```
#### 3,运行
```cpp
rosrun cyrobot_monitor cyrobot_monitor
```
***
#### 4windows编译
- 借助 ROS windows版本编译后可在win10平板使用安装教程[古月学院 如何实现Windows ROS人机交互软件](https://class.guyuehome.com/detail/p_5fc5ab97e4b04db7c091f475/6)
## 二,分支
#### 1. Qml版本分支开发中
- ROS + QML + C++混合编程使用qml自绘制地图激光雷达点云等
- [qml_hmi](https://github.com/chengyangkj/Ros_Qt5_Gui_App/tree/qml_hmi)
#### 3. Lite branch
- 此版本为《ROS人机交互软件开发》系列课程中实现的版本实现了master分支的基本功能代码易懂
- [simple](https://github.com/chengyangkj/Ros_Qt5_Gui_App/tree/simple)
#### 4,rviz菜单树分支
- 使用rviz自带的菜单树去实现添加显示图层。master分支所有的图层及菜单均需要手动去写代码实现并且目前仅支持部分图层显示此分支调用librviz现成api所有图层均可以实现,不用去手动创建图层菜单和display
- [rviz_tree](https://github.com/chengyangkj/Ros_Qt5_Gui_App/tree/rviz_tree)
- [![image.png](https://i.postimg.cc/KY0XyzKD/image.png)](https://postimg.cc/2qL9QC71)
#### 5,ROS Qt Demo
- cakin_create_qt_pkg 创建的原始包cmakelist.txt已配置好改为qt5可以直接编译运行
- [ros_qt_demo](https://github.com/chengyangkj/ros_qt_demo)
#### 6android版本分支 敬请期待
#### 7web版本分支 敬请期待
## 三,功能介绍
#### 1,速度仪表盘
- 使用前须在菜单->设置->话题设置中设置odom话题
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200507124144542.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDQxNjky,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200405102549333.gif)
#### 2, 机器人速度控制
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200405104454149.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDQxNjky,size_16,color_FFFFFF,t_70)
#### 3, 电量显示
- 使用前须在菜单->设置->话题设置中设置电量话题(Std_msg/Float32)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200405153102508.png)
#### 4, rviz模块
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200405151916473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDQxNjky,size_16,color_FFFFFF,t_70)
##### 4.1 订阅map话题
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200408122253344.gif)
##### 4.2 激光雷达图层显示
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200408194648822.gif)
##### 4.3 设置导航初始点
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200411201723417.gif)
##### 4.4 设置导航目标点
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200411201804722.gif)
##### 4.5 定点返航
- 使用前须在菜单->设置->话题设置中设置amcl话题
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200413204212739.gif)
##### 4.6 订阅图像话题
- 提供四个图像显示窗体,可以同时显示四个图像 解决卡顿问题在video0订阅image_raw/compressed即compressed后的图像即可不卡顿且video0只能订阅压缩后的图像
![加粗样式](https://img-blog.csdnimg.cn/20200507093831130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDQxNjky,size_16,color_FFFFFF,t_70)
##### 4.7 快捷指令
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200429204153916.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDQxNjky,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200429204233788.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDQxNjky,size_16,color_FFFFFF,t_70)
##### 4.8 显示机器人模型
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200501165154149.gif)
##### 4.9 提供六种rviz工具
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200515184545845.png)
##### 4.10 显示话题列表
[![image.png](https://i.postimg.cc/Z5bGBfgk/image.png)](https://postimg.cc/svL6bJsK)
.
##### 4.11 待完善....
### 开源协议
**GNU GPLGNU General Public LicenseGNU通用公共许可证**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200408135643929.png)
- 只要软件中包含了遵循本协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,不能作为商用软件。
*GPL 开源协议的主要特点*
- 复制自由 允许把软件复制到任何人的电脑中,并且不限制复制的数量。
- 传播自由 允许软件以各种形式进行传播。
- 收费传播 允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
- 修改自由 允许开发人员增加或删除软件的功能但软件修改后必须依然基于GPL许可协议授权。