基于LoRa的水面无人艇位姿数据远程采集及监测
2022-11-16田延飞周欣蔚温小飞王海荣陈立家
田延飞,周欣蔚,温小飞,王海荣,陈立家
(1.浙江海洋大学 船舶与海运学院,浙江 舟山 316022;2.舟山市质量技术监督检测研究院,浙江 舟山 316000;3.内河航运技术湖北省重点实验室,湖北 武汉 430063;4.武汉理工大学 航运学院,湖北 武汉 430063)
0 引 言
船舶运动姿态数据是分析船舶操纵性能、设计船舶操纵控制器、研发船舶操纵模拟器的关键[1]。精准有效、同步实时的船舶运动姿态数据能够帮助船舶操纵人员充分了解当前船舶的运动状态,对于船舶安全状况进行有效的评估,从而做出相应的决策[2],特别是对水面无人艇(Unmanned Surface Vehicle,USV)来说,船舶的运动姿态数据不仅是影响航行安全,更是对无人艇展开深入研究和开发的重要数据。但是,无人艇所处的水域环境存在一定的不确定因素,风、浪、流等诸多可变环境因素对于数据传输的稳定性、准确性等都有较大的影响,因此选择合理有效的无线通信技术,保证船舶运动姿态数据传输的稳定性和准确性是研究的关键。LoRa技术作为一种基于扩频技术的超远距离无线传输,与其他无线通信技术相比具有功耗低电池寿命长、通信距离远、成本低等优点[3-4],可有效保证复杂环境下数据传输的稳定性及准确性。葛荣等采用Lora-WiFi网关实现对无人艇的实时操控与运行状态数据监测及显示,利用LoRa技术弥补了WiFi通信传输距离短、功耗大的缺点[5]。胡奔等采用LoRa技术设计搭建水面无人船系统,实现水质检测、无人船控制等功能,并将之成功应用于实际教学工作中[6];刘培学等以4G、LoRa技术作为无线传输手段,设计小型无人船海洋养殖环境监测系统,用户可通过上位机和云平台等浏览实时数据[7]。
为实现水面无人艇位姿数据的精确采集和稳定传输,本文设计一种基于LoRa的水面无人艇位姿远程数据采集系统,利用无人艇端搭载的位姿采集模块采集相关的无人艇位姿数据,通过LoRa技术完成船端与岸基端的数据通信,从而对无人艇位姿数据进行解析、处理等,实现对无人艇运行状态的实时监测。该系统能够为USV操纵运动建模、基于运动模型的自动控制系统设计、航海仿真系统中以数据驱动目标船舶和远程岸基运动监测与指挥等提供有力的技术支持及参考,同时系统不仅集成度高,具备丰富的扩展性且整体造价较低,总体性价比高,可满足常规情况下的教学及科研需求,具有较高的推广使用价值。
1 系统构架
水面无人艇位姿远程数据采集系统主要由水面无人艇数据采集端和岸基操控端两部分组成[8]。其中无人艇数据采集端以Arduino控制板为核心,搭配有船舶运动姿态传感器、卫星定位传感器及LoRa无线通信模块,主要工作流程为船舶运动姿态传感器及卫星定位传感器将采集到的实时数据传输至Arduino控制板,经由LoRa无线通信模块传输至岸基操控端;岸基操控端主要包括上位机系统及其相关程序,其主要工作流程为通过配对的LoRa无线通信模块接收相关数据,且通过上位机系统按照协议对有效数据进行解析、显示及存储。系统构架图如图1所示。
2 系统硬件设计
系统硬件主要为无人艇数据采集端所搭载的各项设备,其主要功能为采集和传输船舶位姿信息,为岸基端的数据解析与处理提供依据。无人艇数据采集端硬件系统主要由4部分组成:主控单元模块、卫星定位传感器模块、姿态传感器模块及LoRa无线通信模块。图2为系统硬件构架。
1)主控单元模块
选择Arduino Mage 2560作为主控单元(Motor Control Unit,MCU)[9],可通过外部直流电源供电,也可通过USB接口直接供电,波特率为115 200 b/s。微控制器主要用于:通过各种接口与传感器联动读取数据,根据自编通信协议对卫星定位传感器及姿态传感器采集到的原始数据进行数据封装、打包等预处理,与LoRa发送模块连接,实现岸基端与无人艇端的数据交互。
2)卫星定位模块
卫星定位传感器型号为NEO-M8N,采用5 V供电,波特率和信息刷新频率分别设置为115 200 b/s和20 Hz。定位模块通过串口与控制器连接,经过解析后得到无人艇实时经纬度坐标及其他位置情况[10],以便实时掌握无人艇状况。
3)姿态采集模块
采用MPU6050姿态传感器作为运动姿态采集装置,采集数据包括三轴加速度、三轴角速度、磁场[11]等。此外,经过MCU解析后还可获得航向角、俯仰角、横滚角等运动姿态数据。
4)无线通信模块
无人艇采集端无线通信采用LoRa模块,在数据传输前,进行同速率、信道、目标地址参数配对设置[12]。当MCU接收到完整数据包时则采用透传模式与配对LoRa终端进行数据通信,实现无人艇采集端与岸基端数据信息流交互。
3 系统软件设计
无人艇位姿远程数据采集系统软件主要为上位机及其相关软件,基于面向对象和功能模块化的设计思想进行系统搭建[13],软件系统主要分为数据处理模块和数据显示模块两部分。系统软件构架如图3所示。
3.1 数据处理模块
数据处理模块的主要功能是对串口读取的数据进行数据类型判断[14]、数据解析等工作。以运动姿态数据处理为例,进行读取指令时串口都会读取48位数据,其中有效数据位第6~45位。执行类型判断指令时,首先对读取到串口数据的开始位、功能位、数据长度位进行辨识确认;然后进行数据检验和,检验和正确后;最后按照每4位构成一组4位的十六进制数进行数据分类提取、转换,如图4所示。执行解算指令时,按照传感器数据处理公式解算出无人艇姿态数据,将数据按类存储到各自数组。
3.2 数据显示模块
基于VS2019软件,采用C#编程语言进行数据显示程序的设计与编写。通过与上位机连接的LoRa通信模块,接收船端采集到的数据信息,上位机程序接收数据、读取指令,然后执行数据转换,将数据信息进行可视化显示,显示的信息包括运动姿态数据及位置定位信息。同时将运动姿态数据以可视化的动态折线图方式进行显示,直观易懂,实现USV运动姿态的远程监测。上位机数据显示程序如图5所示。
除上位机数据显示程序外,为便于用户使用,利用MySQL数据库建立水面无人艇位姿检测系统实时数据库。具体操作为:通过数据转换操作指令,将采集到的船舶位姿数据转换为json类型数据,采用ajax技术对数据进行动态加载并将其存储至Echarts图标,通过设定数据刷新时间,实现数据实时显示。实时数据库实际流程如图6所示。
4 测试与分析
根据上文软硬件功能设计,搭建无人艇位姿远程数据采集系统,系统实物组成图如图7所示。将搭建完毕的系统装载于无人艇实验平台进行试验测试,主要验证以下功能:
1)无人艇数据采集端的数据采集模块的正常运行;
2)船端与岸基端远距离、稳定的数据传输;
3)岸基端数据显示模块的实时数据读取与显示。
无人艇实验平台如图8所示。无人艇位姿远程数据采集系统上电后,操控无人艇试验平台进入巡航状态,待稳定后,上位机数据显示程序数据显示界面如图9所示,通过程序设计的数据可视化系统,可观测到船舶位姿数据的实时变化状态,如图10所示。
经过实际无人艇试验平台的测试与应用验证,本文设计的基于LoRa的水面无人艇位姿远程数据采集系统主要达到了如下功能和效果:
1)数据采集。系统执行数据采集功能,能够通过卫星定位模块及姿态采集模块稳定采集相关数据,包括三轴加速度、三轴角速度、横滚角、俯仰角、航向角、经纬度坐标等。
2)数据传输。基于LoRa通信技术将船端数据传输至上位机端进行数据处理,传输距离远、传输状态稳定。
3)数据处理及可视化。基于C#完成上位机数据显示程序的搭建,实现采集数据的处理及可视化显示与监测,显示内容清晰直观、通俗易懂。基于MySQL搭建的位姿监测数据库运行流畅,设置定时读取并刷新数据达到了位姿数据实时显示的功能。无人艇位姿检测数据库如图11所示。
基于无人艇试验平台的验证结果表明,本文设计的基于LoRa的水面无人艇位姿远程数据采集系统功能流畅、运行稳定,并且能通过上位机显示程序对采集到的位姿数据进行可视化显示,显示结果简单清晰、通俗易懂。能够应用于水面无人艇运动姿态数据采集与可视化监测,同时可为水面无人艇的技术发展、科研与教学实验等提供技术支持。
5 结 语
本文基于LoRa设计并实现了水面无人艇运动姿态数据采集与远程监测系统。采用Arduino控制板作为主控单元,利用LoRa模块作为无线通信工具实现无线通信功能,保障岸基端与无人艇数据采集端的实时数据通信;岸基端采用C#、MySQL进行数据可视化程序编写,对采集到的船舶位姿数据进行解析、处理及可视化显示等操作,最终实现船舶位姿数据的实时监测、直观显示等功能。最终实验结果证明,系统各项功能运行稳定,数据采集及传输功能平稳,上位机所展示的可视化界面清晰直观,能够为无人艇操纵运动建模、基于运动模型的自动控制系统设计、航海仿真系统中数据驱动目标船舶、USV远程岸基运动监测与指挥等提供数据支持,为水面无人艇的技术发展、科研与教学实验等提供技术支持,具有一定的推广使用价值。