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的选择可以使视角对机器人进行跟随

节点信息

节点信息查看

相关推荐
mengzhi啊10 分钟前
QUndoView 本质是一个 Qt 界面控件(继承自 QListView),专门适配 QUndoStack
qt
编程小白202632 分钟前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
深蓝海拓41 分钟前
PySide6,QCoreApplication::aboutToQuit与QtQore.qAddPostRoutine:退出前后的清理工作
笔记·python·qt·学习·pyqt
薛定谔的猫喵喵1 小时前
天然气压力能利用系统综合性评价平台:基于Python和PyQt5的AHP与模糊综合评价集成应用
开发语言·python·qt
云中飞鸿1 小时前
linux中qt安装
开发语言·qt
少控科技2 小时前
QT第6个程序 - 网页内容摘取
开发语言·qt
stevenson_aspdotnet3 小时前
QT5.15.12 编译备忘
qt
无小道6 小时前
QT——QFIie和QFileInfo文件类
开发语言·qt·命令模式
薛定谔的猫喵喵6 小时前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
薛定谔的猫喵喵7 小时前
基于C++ Qt的唐代诗歌查询系统设计与实现
c++·qt·sqlite