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