QT搭建的Ros/librviz的GUI软件

1.前言

学习的文章

ROS Qt5 librviz人机交互界面开发一(配置QT环境)-CSDN博客r

软件参考的开源项目

GitHub - chengyangkj/Ros_Qt5_Gui_App at simple

想要开发相关软件的肯定也都发现网上关于RosQT编程的学习资料很少,librviz的资料更少,而且很多也都是复制粘贴别人的。编写这个软件花了很多功夫,包括如何导入ros库,写cmake,看rviz源码。前期想把一个RosQT工程编译出来都花了很长时间。

当前程序运行稳定不会崩溃,各种用户瞎操作的情况都考虑到了,只有rtsp拉取可能有一点小bug,但也只会影响视频,软件不会崩溃。

代码写的很垃圾,但是功能实现了,垃圾代码可以后期规范,其实也不想去规范,能跑就行。

项目地址:

按照网盘文件进行安装

通过网盘分享的文件:ros_qt
链接: https://pan.baidu.com/s/1jiq0H4w5_8Y1-fSmE74yRQ?pwd=rvbs 提取码: rvbs 
--来自百度网盘超级会员v5的分享 

GitHub - hou080146/Ros_Qt_Rviz_GUI at Branche1

2.开发环境

系统:Ubuntu1804

Ros:melodic

开发工具:QtCreator

QT版本:5.14.1 (没有用ros官方提供的ros_plugin插件,插件只支持5.9好像)

FFmpeg:4.4(各个版本接口不一样,所以不同版本的代码会出错)

3.功能介绍

主界面

软件所有设置支持关闭前自动保存,再次打开时恢复上次关闭前状态

上方:

        状态:与Ros主节点连接状态

        延迟:与机器人之间的延迟,通过ping实现

        电量:完整动画效果,低于20%呈现红色,还有黄色和绿色,通过ros节点实现

        电压:电量是通过计算电压得出

        设置按键:

 左侧:

        仪表盘:显示速度,有一些其他接口没用到,例如挡位等,因为用的是汽车仪表盘控件

        基本设置:角速度/线速度/等

        键盘控制:

右侧:

        可以后续增加其他功能控件

Note:状态栏坐标和返航点double需要过滤一下位数

RTSP视频拉取

        支持四路RTSP协议的视频流拉取,每个视频是一个单独线程

        单个视频双击可以最大化

        可以设置单个视频分辨率,下图该功能代码没合进去

建图与导航

        支持rviz常用Tool

        支持设置返航点并且一键返航

        支持rviz插件功能,在工作空间中编译好插件后,需要在代码里给插件编写界面,如图中的3D Nav Goal

        支持视角改变,当前只支持第三人称和俯视

        支持显示rviz常用图层,只需在设置里进行选择配置

 2D地图显示

点云显示

模型显示

        可以实时显示机器人状态,例如有机械臂时可以实时显示机械臂姿态 

设置选项

基础设置

话题设置:基于Ros的一些功能的话题设置

连接:与Ros主节点连接设置,可以设置成打开软件自动连接

视频:rtsp拉取的地址

主题:包括黑色/灰色/蓝色主题

rviz地图配置

配置过程与rviz一样,可以进行增删改

支持基本上所有的rviz图层

支持保存配置到文件,和读取配置配件功能

支持打开软件自动读取上次配置

 

视角设置

        当前支持第三人称和俯视,并进行如下配置

        TargetFrame的选择可以使视角对机器人进行跟随

节点信息

        节点信息查看

4.分支

 更改ros节点的图像显示,右下加视角的平移和缩放

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
ROS2是一个开源的机器人操作系统,其目的是为机器人开发提供一种灵活且可扩展的平台。在ROS2中,QT(即Qt GUI)被用作创建用户图形界面的工具。 QT是一个跨平台的GUI开发框架,它提供了丰富的功能和工具,可以帮助开发者快速构建专业且美观的用户界面。在ROS2中,我们可以使用QT来创建各种类型的图形界面,如控制面板、监视器和调试工具等。 使用ROS2和QT结合开发GUI的好处主要有以下几点: 1. 跨平台:QT可以在多种操作系统上运行,包括Windows、macOS和Linux等,这意味着我们可以在不同平台上使用相同的代码来创建GUI。 2. 功能丰富:QT提供了大量的UI组件和功能,可以满足各种需求。无论是需要创建复杂的控制面板还是简单的数据可视化界面,QT都能提供相应的解决方案。 3. 易于集成:QTROS2可以很好地集成在一起。我们可以使用QT来访问ROS2中的数据和服务,从而实现机器人的控制和监测。此外,QT还支持ROS2的通信机制,如话题和服务,可以方便地与ROS2节点进行通信。 4. 可扩展性:由于ROS2和QT都是开源的,我们可以根据需要定制和扩展它们。我们可以使用QT的插件机制来添加自定义组件,也可以扩展ROS2的功能,以满足特定的需求。 总之,ROS2和QT结合使用可以为机器人开发提供强大的图形界面工具。借助QT的跨平台性和丰富的功能,我们可以更方便地实现机器人的控制、监测和数据可视化等任务。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值