王海荣,许克荣,厉 梁,温小飞,卢芳芳
(1.舟山市质量技术监督检测研究院,浙江 舟山 316000;2.浙江海洋大学 船舶与海运学院,浙江 舟山 316022)
随着现代自动化技术和计算机应用技术的迅速发展,无人水面艇(Unmanned Surface Vessel,USV)作为一种集智能感知、人工智能和云计算等新技术为一体的全新智能船舶,引起国内外学者[1-2]的密切关注。与传统船舶不同,USV必须借助大量传感器和设备,实现对其自身状态信息和周围环境信息的全面感知,并利用物联网和大数据等技术[3]对信息进行分析和评估,辅助USV更安全和更智能化地航行。由于USV感知系统涉及的多源异构异步传感器数据融合技术存在信号种类多、精度要求高和数据量大等问题[4],影响数据使用效率和数据共享化,因此如何搭建高效的USV航行信息数据共享[5]系统,提供数据存储、快速查询和信息可视化等是关键技术问题。
国内外学者针对USV数据共享问题开展诸多研究。乔大雷等[6]基于Android平台开发和物联网技术,设计并实现用户通过岸基支持中心可实时共享无人船航行信息的控制系统。周庆宏[7]基于阿里云数据库与虚拟可视化技术,用于岸基端实时监测无人船航行状态信息。目前仅依靠岸基站形式的监测系统存在可移动性差、监测站工作量大、应用场景单一、通用性与扩展性不强和数据共享性差等缺点。GARUGLIERI等[8]通过云平台搭建USV监测系统,可实时共享数据,弥补岸基站移动性差和共享性差等缺陷。USV性能测试与分析系统数据库的研究和设计是一个重要的课题,与船舶智能化水平息息相关[9]。利用数据库技术[10]实现大量数据的有效管理,设计一种基于数据库技术、适用于USV性能测试与分析需求的数据系统,结合PC端监测站和云服务平台实现多点监测和性能数据的统一存储和管理,提升系统智能化水平,实现对USV航行状态全程追踪。
USV性能测试与分析系统包括USV采集端、云服务器、云平台终端和PC端监测站等4部分,系统架构如图1所示。USV采集端以嵌入式处理器为核心,搭载具有信号传输和智能感知等功能的多源异构异步传感器,通过无线数传电台模块与PC端监测站进行数据通信,在接收数据采集控制指令后开始航行参数采集任务。云服务器包括监测服务器和数据库,数据库主要负责数据转存,将PC端监测站接收的解析数据上传至云服务器,实现系统信息交互、存储和计算。PC端监测站采用串口通信实现与USV信息流的交互,承担USV航迹监测、状态监测、数据存储和数据共享等所有基础核心功能;通过网络通信,PC端监测站与云服务器建立通信桥梁,将USV信息流载入云服务器平台的数据资源池,实现云端数据存储、共享和处理分析等。远程用户通过云平台终端申请USV的远程监测管理权限,在得到授权后可对USV使用状态监测、航迹查询、数据获取等服务功能。
图1 USV性能测试与分析系统架构
USV性能测试与分析数据库设计包括数据预处理、数据库整体设计和数据表结构设计,其中:数据预处理主要分析不同传感器存在的数据率和时间等问题并提出解决方法;数据库整体设计主要解决USV姿态信息和定位信息等数据的存储、处理和维护问题。
USV通常搭载感知模块、全球定位系统(GPS)/北斗卫星导航系统(BeiDou Navigation Satellite System,BDS)模块和风速/风向传感器等获取数据信息。不同传感器获得的数据率不同,时间跨度较长,例如:GPS数据更新周期与船舶状态有关,收集的原始数据为零散状态或无法直接利用。由于可能造成数据记录出现错误,因此在构建数据库前需要对不同传感器测量值采取规范化处理,进行数据率规范、时间同步、数据清洗、数据剔除和数据整理等操作,实现数据的高效管理。
USV采集端微控制器在数据率处理方面确定数据标准间隔,选择2种传感器数据间隔的公倍数作为新序列时间间隔,规范数据传输速率;在时间处理方面进行时间同步,利用过拟合压缩方法,对处于同一时间间隔内的原始数据进行预处理,形成标准间隔的规范序列。在保证不降低原始数据信息量和精度的同时,生成一串具有输出时间同步和等间隔的预处理后数据。PC端监测站进行数据的解析、清洗和剔除等,清除不合常理与异常的数据,提高系统的可靠性。
经数据分析后了解数据需求、构建数据库,构建数据库一般包括系统设计、应用和维护过程,以实际应用为目的。从开发角度出发,数据库分为3个部分:PC端显示平台作为基础界面,MySQL数据库作为云数据库,云平台终端作为云服务端;从应用角度出发,数据库提供大量详实可靠的数据以便PC端和云平台终端进行分析与决策。数据库整体设计如图2所示,主要包括航行信息查询、气象信息查询、航迹信息查询和历史数据查询等模块。
图2 数据库整体设计
USV航行测试需要采集大量数据,由于数据来源不同,因此在存储时不可避免地出现失效和重复。若直接存储所有数据,不仅浪费存储空间,而且严重降低存储效率,影响后期数据挖掘与分析运算的效率。需要对数据库进行设计,将USV各监测数据以数据表形式存储,彼此间以树形逻辑关系呈现。数据表结构作为数据库设计核心,应具备优良交互性和布局规范化等优点[11],便于维护、节约资源、提高软件运行速度、减少软件故障,保证在部分节点出现故障时系统仍可正常运行。由于MySQL数据库具有性能卓越、服务免费、开放源代码和支持多种操作系统等优点[12],因此选用MySQL数据库并结合Python语言的Tkinter模块的Treeview控件实现可视化的数据表显示。根据监测系统需求设计多个数据表对数据进行管理和操作,常用信息数据表如下:
(1)采集控制命令信息表(data_info),用于存储USV采集控制命令信息,如表1所示。
表1 采集控制命令信息表
(2)姿态信息表(zitai_info),用于存储USV姿态参数,包括三轴加速度、角速度和横滚角等,如表2所示,其中:ID为标识符。
表2 姿态信息表
(3)定位/艇速信息表(position_info),用于存储USV定位和艇速的信息,如表3所示。
表3 定位信息表
(4)风向/风速信息表(fengxiang_info),用于存储气象信息,包括风向角、风向方位和风速等,如表4所示。
表4 风向/风速信息表
(5)转速/舵角信息表(zhuansu_info),用于存储USV转速和舵角的信息,如表5所示。
表5 转速/舵角信息表
数据库结合可视化功能为PC端和云平台终端提供一个直观、生动和人性化的界面,仅在可视化界面上进行简单操作即可查询需要的数据信息。USV性能测试与分析系统主界面如图3所示。
图3 USV性能测试与分析系统主界面
点击相应按钮弹出相应界面实现如下功能:
(1)无线通信。PC端与USV采集端的数据交互通道采用无线数传电台实现双向通信,USV采集端可接收PC端发送的控制指令。
(2)数据可视化。包括图形用户界面(Graphical User Interface,GUI)显示和云端界面显示。GUI显示是将USV实时姿态和艇速等信息与系统界面的显示控件绑定,对接收数据的数值进行实时显示与更新。云端界面显示是基于Flask框架的页面可视化,通过实时折线图和饼图等更直观的形式展示数据。USV运行状态数据监测界面如图4所示。云端监测界面如图5所示。
图4 USV运行状态数据监测界面
(3)数据分析。根据分析需求选定某一监测参数如横摇进行单独分析,以折线图形式显示在过去一段时间内该参数的变化曲线,并通过文本形式保存分析结果进行导出(见图5)。
图5 云端监测界面
(4)船舶航迹。包括实时航迹和历史航迹。实时航迹是根据最新经纬度进行0.5 m级误差精度的定位;历史航迹是根据某一段时间内的经纬度进行航迹绘制,同时具备地图选点与标记和航迹信息查询与输出等功能。USV航迹监测界面如图6所示。
图6 USV航迹监测界面
(5)历史数据查询。包括整体查询与分段查询。整体查询是根据全时刻USV某一航行参数需求,PC端将历史数据以列表形式进行显示;分段查询是根据某时刻的USV某一航行参数需求,PC端将历史数据以列表形式进行显示,同时可直接以Excel格式导出数据。历史数据查询界面如图7所示。
图7 历史数据查询界面
应用数据库技术对PC端和云端的数据管理部分进行优化,分为实时数据管理优化、历史数据管理优化和权限管理优化。实时数据管理优化主要实现参数回溯功能,利用数据库以不同形式实现在某时间范围内或某时间点前所有参数最新数值的显示,减轻本地监测站的计算和存储压力。历史数据管理优化包括离线参数加载和历史信息管理。离线参数加载通过文件实现预加载功能,例如:JavaScript对象表示法(JavaScript Object Notation,JSON)离线地图在使用时直接调用即可,避免在访问时地图数据缓慢,影响使用效率。历史信息管理利用云服务器存储完整工况的USV航行数据、访问记录和下发命令时间等,数据需求用户无须访问本地监测站即可实时获取数据,减轻本地监测服务器访问和存储压力。权限管理优化主要在于管理人员可通过云服务器授权USV操作权限,大幅扩展传统监测系统使用范围,提高数据共享性和使用效率。
结合MySQL数据库技术优势,搭建高效便捷且共享的USV性能测试与分析数据库,可实现无线通信、数据可视化、船舶航迹、历史数据查询等功能,为基于大数据的USV航行性能综合评价工作奠定基础。后续将运用大数据技术对基于MySQL数据库存储的USV航行数据进行深入挖掘分析,进一步开展USV航行性能综合评价研究工作。