• Stars
    star
    905
  • Rank 50,477 (Top 1.0 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

ROS Qt Desktop GUI App

GitHub last commit GitHub stars GitHub forks GitHub issues GitHub issues closed Gitter

How To Contribute

欢迎提交Issues与bug的pull resquest


简体中文 | English

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

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

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

  • 欢迎在issues提交bug

image.png 022.png

注意!主分支(master)已不再维护librviz功能,使用Qt自行绘制实现一些图层显示,如需librviz功能请切换分支rviz_treeCSDN及古月居课程例程版本

一,菜单

二,安装教程

1,安装项目依赖

程序依赖Qtmultimedia实现音频功能,因此需要安装依赖(命令中melodic换成自己的ROS发行版本)

sudo apt-get install qtmultimedia5-dev
sudo apt-get install ros-melodic-move-base-msgs

3,编译

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

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/chengyangkj/Ros_Qt5_Gui_App
cd ~/catkin_ws
catkin_make

4,运行

source  ~/catkin_ws/devel/setup.bash
rosrun ros_qt5_gui_app ros_qt5_gui_app

5,windows编译

常见问题及解决方法见wiki

三,分支

友链名 支持平台 功能
master Win10 Ubuntu ROS + QWidget + QGraphicsview自绘制可视化界面显示
qml_hmi Win10 Ubuntu ROS + QML + C++混合编程,qml自绘制地图,激光雷达可视化显示等demo
simple Win10 Ubuntu ROS + QWidget + Librviz进行可视化显示,为《ROS人机交互软件开发》系列课程中实现的版本,CSDN博客例程版本
rviz_tree Win10 Ubuntu ROS + QWidget + Librviz原生图层Api实现图层管理,不需手动创建图层
ros_qt_demo Win10 Ubuntu cakin_create_qt_pkg 创建的原始包,cmakelist.txt已配置好改为qt5,可以直接编译运行
ros2_qt_demo ROS2 在ROS2平台上运行的qt demo包,cmakelist.txt已配置好改为qt5,可以直接colcon build 编译使用
ROS2_Qt5_Gui_App ROS2 在ROS2平台上实现自绘制话题消息显示的功能包,近期上线....
Flutter App 基于flutter实现多平台运行 逐步推进.....

四,使用说明

1,连接主节点

  • 使用前需要在连接界面连接rosore主节点

024.png

  • 主节点地址:即ROS_MASTER_URI ROS多机通讯主节点地址,如果只是单机通讯填127.0.0.1即可
  • 本机IP:即ROS_IP 软件运行的机器的IP 如果是单机通讯填127.0.0.1即可 注意 此ip填错 会导致只能单向通讯 导致收不到远程小车的话题信息 却有话题列表的现象
  • 勾选使用环境变量连接就不使用界面设置的ROS_IP与ROS_MASTER_URI,需要在环境变量文件(~/.bashrc)配置好多机通讯环境变量,否则会导致连接失败,配置多机通讯教程csdn 博客
  • 其他一些话题设置
  • 勾选自动连接会在打开软件时进行自动连接
  • 点击检测IP会自动检测本机IP并填入ros ip与ros master ip

2,设置

点击连接界面右下角,进行相关必要设置

2.1 话题设置

可视化相关的订阅与发布话题的设置

  • 025.png

  • 速度控制话题:界面上的速度控制按钮,发布出去的话题名称

  • 导航目标点话题:导航时界面上发布导航目标点的话题

  • 导航初始点话题:导航时界面上选点发布的导航初始点话题

  • 转向灯亮起阈值:主界面速度仪表盘旁的转向灯,收到的角速度大于这个阈值时开始亮

  • 里程计话题:订阅里程计话题,以实现速度仪表盘与转向灯功能

  • 电池电量话题:电池电量显示的依据,订阅此话题,注意此话题的消息类型为sensor_msgs/BatteryState

  • 机器人的坐标话题:订阅此话题,以实现在自绘制地图上动态显示机器人实时坐标

2.2 图层设置

在使用librviz与自绘制地图等进行可视化显示时的一些图层属性信息

026.png

2.3 video设置

界面上进行视频话题进行可视化显示时订阅的话题,其中video0订阅为compressed后的图像话题,以减轻卡顿问题

image.png

2.4 通用设置

image.png

  • 机器人模型图:主界面左侧显示的机器人图片
  • 显示模式:机器人端(只保留主要功能,简化显示) 控制端:所有功能均显示
  • 话题订阅线程数:话题订阅时所用的线程数,如遇到话题卡顿,提高此参数
  • FrameRate:循环Rate

2.5 坐标系设置

此设置是自绘制地图坐标系能否正常显示的必要设置,通过设置的坐标系Frame进行tf坐标变换:

image.png

查看坐标系的Frame方法:

rosrun rqt_tf_tree rqt_tf_tree:

image.png

功能介绍

1,速度仪表盘

  • 使用前须在连接界面->设置->话题设置中设置odom话题:

image.png

2, 机器人速度控制

  • 使用前需在连接界面->设置->话题设置中设置速度控制话题:

  • 控制方式:

    • 键盘热键控制

    • 鼠标点击控制

    • 虚拟摇杆控制

002.png

3, 电量显示

  • 使用前须在在连接界面->设置->话题设置中设置电池电量话题:

在这里插入图片描述

4, 地图等信息可视化显示

使用前需在连接界面->设置->图层设置中进行启用与停用等必要图层设置:

026.png

4.1 qt自绘制显示

注意使用前需要在连接界面->设置->坐标系设置中进行图层Frame设置:

022.png

image.png

4.2 librviz显示

目前librviz显示待优化,闪退问题严重

开源协议

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