基于QT开发的水下航行器监控系统

2022-09-12 版权声明 我要投稿

AUV是一种自带能源,依靠其自治能力来管理和控制自身以完成预定任务的水下航行器。当AUV出海任务时,需要监测AUV状态信息,并且在监测信息的同时,还需要给AUV下发命令,所以设计一个有效的监控系统来实现对AUV的监控是十分必要的。

一、系统需求分析

(一)系统实时显示AUV数据

AUV出海任务时,需要人工监测AUV状态信息,包括AUV传感器状态信息、AUV姿态信息、AUV位置信息、AUV告警信息等。所以系统需要实现实时监测AUV数据,从AUV到监控系统的数据流为图1所示。

(二)系统可以给AUV发指令

AUV出海任务时,需要人为下发任务,比如传感器控制指令、路径规划指令、参数配置指令等任务。所以监控系统必须具备下发任务的功能,其下发指令数据遵循图2所示。

二、监控系统的具体实现

(一)岸基整体布局的实现

岸基系统初始框架是基于QT Creator平台采用C++语言设计而成,并辅以JavaScript语言完成其地图功能,消息打包和解析是基于MOOS-IvP开源软件设计的。

(二)QT与JavaScript交互设计与实现

首先用QT中的QWidget类首先将离线谷歌地图加载到监控系统中,然后通过QT提供的QWebChannel类实现QT和JavaScript数据互传,以此来实现在监控系统中显示离线地图并可通过地图规划路径传给AUV,同时接受AUV位姿信息显示在地图中。

(三)传感器数据监测功能实现

采用qt库中的qcustomplot库,实现对各传感器采集数据的图线化显示,具体做法是下载qcustomplot.cpp和qcustomplot.h文件,将其放入工程目录中,然后在用qt的QWidget类设计的小窗口中显示各个图表。

(四)AUV应急显示功能实现

采用qt库中的QTableWidget库,实现对AUV的所有应急消息图表化显示,具体做法是从AUV的MOOSDB中订阅应急显示包,界面接收到应急包后把消息交给应急显示解析,然后对解析后的消息列表显示。

三、软件测试

AUV上电后,监控系统的主窗口如图3所示,可以看到显示出了告警信息,传感器状态和舱内数据等。其中告警信息块中有告警时则对应标签显示红色,无告警显示绿色。设备监测块如果相应传感器正常则对应标签显示绿色,否则显示红色,并且标签后面文本框显示传感器具体状态。数据监测块显示AUV当前各种数据。地图模块显示通过监控系统发送指令后的AUV当前运动轨迹。

四、总结

从测试结果可以看出该监控系统满足基本的功能需求,具体包括告警信息显示、设备状态监测、舱内环境数据监测、实时定位、传感器菜单控制、底层控制、路径规划、舱内应急显示、传感器数据监测和手柄控制等基本功能。

摘要:水下航行器监控系统需要完成对水下航行器(AUV)指令控制以及AUV位姿、AUV舱内信息等显示。在此以MOOS-IvP开源软件为基础平台,主要以C/C++语言并辅以JavaScript语言进行开发,涉及到的编程技术主要有QT界面编程。

关键词:AUV,监控系统,QT编程

上一篇:移动通信工程项目风险管理研究下一篇:科学选材的概论