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

节点信息

节点信息查看

相关推荐
Mr_Xuhhh12 小时前
网络基础(1)
c语言·开发语言·网络·c++·qt·算法
feiyangqingyun14 小时前
Qt音视频开发技巧/推流带旋转角度/rtsprtmp推流/保存文件到MP4/拉流解析旋转角度
qt·音视频·qt旋转角度推流
清醒的兰16 小时前
Qt 基于TCP套接字编程
网络·qt·tcp
mahuifa10 天前
PySide环境配置及工具使用
python·qt·环境配置·开发经验·pyside
小灰灰搞电子10 天前
Qt PyQt与PySide技术-C++库的Python绑定
c++·qt·pyqt
Echo``10 天前
12.OpenCV—基础入门
开发语言·c++·人工智能·qt·opencv·计算机视觉
智驾10 天前
QML革命:下一代GUI开发的核心优势详解
qt·qml
五_谷_丰_登10 天前
mongoDB服务本地化部署
数据库·c++·qt·mongodb
tangchao340勤奋的老年?10 天前
Qt QMap数据清除测试(验证QMap内存正确释放方法)
开发语言·qt
攻城狮7号11 天前
【AI时代速通QT】第二节:Qt SDK 的目录介绍和第一个Qt Creator项目
c语言·c++·qt·跨平台