/Ros_Qt5_Gui_App

ROS human computer interface based on Qt5(基于Qt5的ROS人机交互界面)

Primary LanguageC++GNU General Public License v2.0GPL-2.0

ROS Qt Deskotp GUI App


简体中文 | English

  • 使用qt5实现ros机器人人机界面

  • 注意!未经作者的许可,此代码仅用于学习,不能用于其他用途。

  • 本仓库以分支的形式,长期维护各种有趣的ROS Qt项目,持续更新中.....

  • 欢迎在issues提交bug

菜单

安装教程

1,首先安装ros对qt pkg的支持(非必须)

melodic需要换成自己的ROS版本号

sudo apt-get install ros-melodic-qt-create
sudo apt-get install ros-melodic-qt-build

2,安装Qtmultimedia5依赖

程序依赖Qtmultimedia实现音频功能,因此需要安装依赖

sudo apt-get install qtmultimedia5-dev

3,编译

将软件包放入ros src软件包目录下:

catkin_make

4,运行

rosrun cyrobot_monitor cyrobot_monitor

5,windows编译

分支

1. Qml版本分支(开发中)

  • ROS + QML + C++混合编程,使用qml自绘制地图,激光雷达点云等
  • qml_hmi

3. Lite branch

  • 此版本为《ROS人机交互软件开发》系列课程中实现的版本,实现了master分支的基本功能,代码易懂
  • simple

4,rviz菜单树分支

  • 使用rviz自带的菜单树,去实现添加显示图层。master分支所有的图层及菜单均需要手动去写代码实现(并且目前仅支持部分图层显示),此分支调用librviz现成api,所有图层均可以实现,不用去手动创建图层菜单和display

  • rviz_tree

  • image.png

5,ROS Qt Demo

  • cakin_create_qt_pkg 创建的原始包,cmakelist.txt已配置好改为qt5,可以直接编译运行

  • ros_qt_demo

6,android版本分支 敬请期待

7,web版本分支 敬请期待

使用说明

  • 使用前需要在菜单->设置 中进行必要设置

image.png

  • ROS_MASTER_URI: ROS多机通讯主节点地址,如果只是单机通讯填127.0.0.1即可
  • ROS_IP: 软件运行的机器的IP 如果是单机通讯填127.0.0.1即可
  • 勾选使用环境变量连接就不使用界面设置的ROS_IP与ROS_MASTER_URI,需要在环境变量文件(~/.bashrc)配置好多机通讯环境变量,否则会导致连接失败,配置多机通讯教程csdn 博客
  • 其他一些话题设置
  • 勾选自动连接会在打开软件时进行自动连接
  • 注意!保存设置后需要重启软件生效
  • 重启软件后点击连接按钮即可连接master

功能介绍

1,速度仪表盘

  • 使用前须在菜单->设置->话题设置中设置odom话题:

在这里插入图片描述 在这里插入图片描述

2, 机器人速度控制

控制方式:

  • 键盘热键控制

  • 鼠标点击控制

  • 虚拟摇杆控制

在这里插入图片描述

3, 电量显示

  • 使用前须在菜单->设置->话题设置中设置电量话题(Std_msg/Float32)

在这里插入图片描述

4, rviz模块

在这里插入图片描述

4.1 订阅map话题

在这里插入图片描述

4.2 激光雷达图层显示

在这里插入图片描述

4.3 设置导航初始点

在这里插入图片描述

4.4 设置导航目标点

在这里插入图片描述

4.5 定点返航
  • 使用前须在菜单->设置->话题设置中设置amcl话题 在这里插入图片描述
4.6 订阅图像话题
  • 提供四个图像显示窗体,可以同时显示四个图像 解决卡顿问题,在video0订阅(image_raw/compressed)即compressed后的图像即可不卡顿,且video0只能订阅压缩后的图像

加粗样式

4.7 快捷指令

在这里插入图片描述 在这里插入图片描述

4.8 显示机器人模型

在这里插入图片描述

4.9 提供六种rviz工具

在这里插入图片描述

4.10 显示话题列表

image.png .

4.11 待完善....

开源协议

GNU GPL(GNU General Public License,GNU通用公共许可证) 在这里插入图片描述

  • 只要软件中包含了遵循本协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,不能作为商用软件。

GPL 开源协议的主要特点

  • 复制自由 允许把软件复制到任何人的电脑中,并且不限制复制的数量。

  • 传播自由 允许软件以各种形式进行传播。

  • 收费传播 允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。

  • 修改自由 允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。

相关教程及交流群

本系列教程文章专栏:

ROS机器人GUI程序开发

本系列课程已上线古月学院,欢迎感兴趣的小伙伴订阅:

  1. ROS Qt开发环境搭建以及基础知识介绍
  2. ROS人机交互软件的界面开发
  3. ROS Rviz组件开发方法
  4. 如何实现ROS windows人机交互软件

在这里插入图片描述

开发交流QQ群: 797497206