## ROS Qt Deskotp GUI App(librviz分支 使用librviz的菜单栏实现图层管理功能)
- Use qt5 to implement the ros robot human-machine interface
- 使用qt5实现ros机器人人机界面
- Attention! This code is for learning purposes only and cannot be used for any other purpose without the author's permission.
- 注意!未经作者的许可,此代码仅用于学习,不能用于其他用途。
- Continuously updating.....
- 持续更新中.....
- Welcome to submit bugs in issues
- 欢迎在issues提交bug
***
## 分支
**rviz menu tree branch rviz 菜单树分支**
- With the rviz menu interface, there is no need to encapsulate the menu yourself.
- 采用rviz菜单接口,无需自己封装菜单
- Through the menu interface, all the Display functions of rviz can be implemented.
- 通过菜单接口,可以实现rviz所有的Display功能
- Supports the import and export of configured Display items for quick and easy.
- 支持导入导出已配置好的Display项,方便快速
[Go back master 回到主分支](https://github.com/chengyangkj/Ros_Qt5_Gui_App)
**警告:此页面上的所有图片都较大,加载较慢**

***
### 一,Features
### 一,功能介绍
#### 1,Add Display
#### 1,新增显示
- The new display can provide a series of functions such as drawing, sweeping, etc.
- 新增显示后可以提供建图、扫图等一系列功能。


#### 2,Displays import or derive
#### 2, 显示列表的导入导出

##### 3 To be perfected....
##### 3 待完善....
***
### 二,安装教程
### 二,Installation tutorial
#### 1,首先安装ros对qt pkg的支持
#### 1,first install ros support for qt pkg
``` bash
sudo apt-get install ros-melodic-qt-create
```
``` bash
sudo apt-get install ros-melodic-qt-build
```
``` bash
sudo apt-get install qtmultimedia5-dev
```
#### 2,Git code
#### 2,获取源码
Git code
获取源码
``` bash
git clone https://github.com/chengyangkj/Ros_Qt5_Gui_App
```
Go to the branch
转到分支
``` bash
cd Ros_Qt5_Gui_App
git checkout rviz_tree
```
#### 3,Compile
#### 3,编译
Put the package in the ros src package directory:
将软件包放入ros src软件包目录下:
``` bash
catkin_make
```
#### 4,run
#### 5,运行
``` bash
rosrun cyrobot_rviz_tree cyrobot_rviz_tree
```
***
### LIENSE
### 开源协议
**GNU GPL(GNU General Public License,GNU通用公共许可证)**

- As long as the software contains products or code that follow this Agreement, the software must also comply with the GPL License Agreement, i.e. it must be open source free, not charged from a closed source, and not commercial software.
- 只要软件中包含了遵循本协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,不能作为商用软件。
*Key features of GPL open source protocol*
*GPL 开源协议的主要特点*
- Copy Freedom allows software to be copied to anyone's computer without limiting the number of copies.
- 复制自由 允许把软件复制到任何人的电脑中,并且不限制复制的数量。
- Freedom of communication Allows software to be disseminated in various forms.
- 传播自由 允许软件以各种形式进行传播。
- Fee-based communication allows the software to be sold in a variety of media, but buyers must be made aware in advance that the software is free to be obtained;
- 收费传播 允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
- Fee-based communication allows the software to be sold in a variety of media, but buyers must be made aware in advance that the software is free to be obtained;
Freedom of modification allows developers to add or remove the functionality of the software, but the software must still be licensed on a GPL license agreement after modification.
- 修改自由 允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。
Ros_Qt5_Gui_App.zip
需积分: 0 70 浏览量
更新于2023-06-09
收藏 5.75MB ZIP 举报
在本项目中,“Ros_Qt5_Gui_App.zip”是一个包含使用ROS(Robot Operating System)和Qt5开发的图形用户界面应用的压缩包。ROS是一个开源操作系统,专门用于机器人技术,提供了一组软件库和工具,使开发者能够方便地创建机器人应用程序。而Qt5则是一个跨平台的C++图形用户界面应用程序开发框架,广泛用于构建美观且功能丰富的GUI应用。
我们需要了解ROS的基本概念。ROS主要由几个核心组件组成,包括节点(Node)、消息(Message)、服务(Service)、参数(Parameter)和图(Graph)。节点是ROS系统中的基本执行单元,它们处理数据并进行计算。消息是节点间通信的数据结构,服务是一种请求-响应机制,允许节点间请求特定的服务并获取结果。参数服务器用于存储和共享系统参数,而图则是描述整个系统中节点、话题和参数的连接。
在这个项目中,开发者可能创建了一个ROS节点,该节点使用Qt5库来构建GUI。Qt5提供了丰富的组件库,如按钮、文本框、表格视图等,使得开发人员可以轻松设计和实现用户交互界面。通过集成Qt5与ROS,开发者可以创建一个用户友好的界面,用户可以通过这个界面与ROS系统进行交互,例如发送命令到机器人、监控机器人的状态或接收传感器数据。
在实际开发过程中,开发者可能使用了ROS的qtbindings包,它提供了将Qt与ROS集成的API。这使得可以在Qt环境中创建ROS节点,并使用Qt的信号和槽机制来处理ROS的消息和服务。例如,一个按钮的点击事件可能触发一个服务调用,向ROS系统发送控制指令。
此外,可能还包含了QML(Qt Meta Language),这是Qt5的一种声明式UI编程语言,允许开发者以更直观的方式定义界面布局和行为。QML结合JavaScript,可以实现复杂的动态效果和交互逻辑。
在“Ros_Qt5_Gui_App”这个子目录下,我们可能找到以下文件和目录:
1. `main.cpp` - 应用程序的主入口点,通常包含初始化ROS节点和Qt应用的代码。
2. `ros_node.cpp/hpp` - ROS节点的实现,负责处理ROS消息和服务。
3. `mainwindow.cpp/hpp` - Qt的主窗口类,定义了GUI的结构和行为。
4. `ui/mainwindow.ui` - 使用Qt Designer创建的UI文件,描述了窗口的布局和组件。
5. `qrc`目录 - 可能包含资源文件,如图标、图片等。
6. `CMakeLists.txt` - CMake构建系统的配置文件,用于编译和链接项目。
在构建和运行这个应用时,首先需要安装ROS和Qt5的开发环境,然后使用CMake来配置和编译项目,最后通过运行生成的可执行文件启动GUI应用。这个应用可能需要连接到运行中的ROS master,以便与其他ROS节点通信。
“Ros_Qt5_Gui_App.zip”项目展示了如何利用ROS的强大功能和Qt5的图形界面设计能力,创建一个机器人控制系统。通过这种方式,开发者可以为用户提供直观的交互界面,使得机器人操作更加便捷和高效。

tang_tang_20
- 粉丝: 0
最新资源
- 电子竞赛-模拟数字电路设计基础
- 电力电子领域图腾柱PFC电路仿真:电压电流双闭环PI控制及参数设计
- 基于SMIC 180nm工艺的10bit 20MHz SAR ADC设计详解:原理解读、电路设计与实践演练 - Matlab
- 基于博途1200 PLC与HMI六层电梯控制系统的全面仿真与实现 教程
- 学习平台代码code.zip
- 路径规划中二维RRT算法与贝塞尔曲线平滑路径的应用及优化
- 电动汽车永磁同步电机电磁设计与最优控制研究:从有限元分析到ETRR优化策略 永磁同步电机
- 基于Simulink平台的永磁同步风力发电机仿真模型研究:动态参数调整与响应分析
- LCL三相并网逆变器:仿真与说明文件中的准PR比例谐振控制
- 机械故障诊断领域中基于Matlab的轴承内圈故障信号模拟及图像生成 - 噪声模拟 详细版
- 永磁同步电机无差预测电流控制解析
- 基于dq坐标电压电流双闭环PI控制的三相PWM整流器仿真模型及SVPWM调制的应用研究
- 电力电子领域MMC两种调制策略(NLM与CPS-PWM)实现3000V-5000V整流仿真及性能评估
- 基于博途1200 PLC与HMI的电梯控制系统仿真与实现:三层电梯的智能运行与管理
- 基于STM32F405的高频方波注入方案:永磁同步电机无感FOC控制及直接闭环启动技术
- 基于博途1200 PLC与HMI的四层电梯控制系统仿真设计与实现