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

节点信息

节点信息查看

相关推荐
ytttr87316 小时前
Qt 数字键盘实现
开发语言·qt
hoiii18717 小时前
Qt 实现屏幕截图功能
开发语言·qt·命令模式
满天星830357718 小时前
【Qt】信号和槽(三) (断开连接和lambda函数)
qt
fpcc18 小时前
C++编程实践—C++实现类似Qt的信号槽机制
c++·qt
郝学胜_神的一滴18 小时前
Qt 高级开发 030:QListWidget 右键菜单全解,从策略配置到精准删除的优雅实现
c++·qt
海天鹰18 小时前
图片去黑边算法
qt·算法
走好每一步21 小时前
5、VTK刚体变换
qt·vtk·三维图像
宏笋1 天前
QT 隐式共享/写时复制详解
qt
San813_LDD1 天前
[QT]Qt对象树笔记:父子关系与内存管理
开发语言·qt
luoyayun3611 天前
Qt/QML 音频波形图模块实现:从 PCM 数据到可缩放波形
qt·音视频·波形图绘制