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,但也只会影响视频,软件不会崩溃。

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

2.开发环境

系统:Ubuntu1804

Ros:melodic

开发工具:QtCreator

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

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

3.功能介绍

主界面

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

上方:

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

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

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

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

设置按键:

左侧:

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

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

键盘控制:

右侧:

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

RTSP视频拉取

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

单个视频双击可以最大化

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

建图与导航

支持rviz常用Tool

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

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

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

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

2D地图显示

点云显示

模型显示

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

设置选项

基础设置

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

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

视频:rtsp拉取的地址

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

rviz地图配置

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

支持基本上所有的rviz图层

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

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

视角设置

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

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

节点信息

节点信息查看

相关推荐
TechNomad14 分钟前
Qt开发:QUdpSocket的详解
qt
半青年35 分钟前
Qt读取Excel文件的技术实现与最佳实践
c语言·c++·python·qt·c#·excel
夜松云2 小时前
Qt框架核心组件完全指南:从按钮交互到定时器实现
数据库·qt·交互·信号与槽·ui组件·容器类·定时器机制
煮雪品茶2 小时前
Windows 下 Qt 项目配置 FFmpeg 简明指南
qt·ffmpeg
__ocean2 小时前
编译Qt5.15.16并启用pdf模块
开发语言·qt·pdf
m0_5557629011 小时前
Qt缓动曲线详解
开发语言·qt
若水晴空初如梦16 小时前
QT聊天项目DAY11
开发语言·qt
mahuifa21 小时前
ubuntu18.04编译qt5.14.2源码
开发语言·数据库·qt
半青年1 天前
Qt图表库推荐指南与分析
c语言·开发语言·javascript·c++·qt·信息可视化
艾米莉亚糖1 天前
解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
开发语言·qt·ssl