基于LabVIEW的水面无人艇远程监控软件系统开发及应用
2020-03-25,,,
,,,
(华中科技大学船舶与海洋工程学院,湖北 武汉 430074)
0 引言
随着科技日新月异的进步,有关水面无人艇的研究与应用已成为如今的热点[1]。作为一种拥有体积较小、目标隐蔽、航行距离远和远程操控等特点的水面无人航行器,无人艇越来越受到青睐,在海洋资源探测、水质检查和军事应用等方面具有十分广阔的应用前景[2]。近年来,大部分研究都专注于无人艇的各种控制算法[3],在实际监控系统应用方面的成熟方案展现较少[4]。事实上,除了控制算法,无人艇的监控系统也是极其重要的组成部分。作为无人艇的控制中心,监控系统需要实时接收无人艇上PLC传出的GPS数据,对数据进行处理、采集和存储,并将其显示在人机交互面板上。同时还需要下达各项控制功能的指令,如实时调速、手动控制、实时控制和规划控制等。为了完成以上的控制功能,本文专门开发了相应的监控软件,该软件基于LabVIEW程序开发环境,使用图形化编辑G语言进行软件开发。
1 无人艇监控软件设计
1.1 系统总体架构
系统总体架构如图 1所示,主要分为2个部分,分别是岸站部分和无人艇部分。
图1 水面无人艇系统结构
无人艇部分包括下位机、推进器控制器、水下电动双推进器、GPS接收器、POE交换机和无线网桥等通讯设备[5]。下位机与GPS接收器通过RS232串口进行连接,与无线网桥通过POE交换机进行数据交换,设备之间通过RJ45串口进行连接。
岸站部分包括上位机、GPS接收器、POE交换机和无线网桥等通讯设备。岸站部分的设备串口连接方式与无人艇部分相同。
由图1可知,无人艇监控软件在系统中处于重要位置,是上位机和下位机、岸站与无人艇之间沟通的桥梁。本文中,上位机监控软件基于LabVIEW开发环境,联动的地图软件基于GMap.net,下位机为西门子S7-1200PLC。上位机与下位机的数据通信方式采用无线通信,当前主流的无线通信方式主要有移动4G网络通信、无线电通信、无线局域网通信和卫星通信等,这里选择WLAN通信即无线局域网。
下位机PLC通过GPS接收器获取当前无人艇的GPS数据,与监控软件通过Modbus协议进行数据传输,上下位机的通信网络通过无线网桥组建成无线局域网。监控软件将得到的GPS信号进行处理,获得无人艇当前的各项参数,如经度值、纬度值、航向和航速,并显示在LabVIEW程序的交互面板中供操作员进行查看。除此之外,监控软件会响应操作员的各项交互动作给下位机PLC传输控制命令,下位机PLC根据接收的数据对推进器控制器输入相应模拟量值,以实现对水下电动双推进器的控制,如正转、反转和调速控制等。在上位机中,监控软件将获取的经纬度值通过TCP协议传输给地图软件,地图软件根据传输的坐标值,实时更新无人艇在地图上的位置。
1.2 监控软件系统结构设计[6]
为了满足监控软件在系统中的功能和定位,软件系统主要划分为交互面板和后台管理,如图2所示。其中,交互面板主要用于实现无人艇各项参数显示以及无人艇操控,后台管理主要进行数据采集与处理及数据通信。
图2 水面无人艇监控软件结构
1.2.1 无人艇参数设置显示
交互面板上需要输入设置无人艇的IP地址、艇号和PID值等基本参数,导入无人艇操控路径规划功能的路径文件。当监控软件与下位机通信连接完成时,交互面板上有关无人艇的各项参数将实时更新,如无人艇经纬度值、无人艇航向、无人艇航速和下一目标点的经纬度值。当使用不同操控模式时,软件会实时更新当前轨迹点序号以及离下一轨迹点的距离等。
1.2.2 无人艇远程操控
在交互面板上,操作员可以选择不同的操控模式。手动控制模式可以手动控制无人艇前进、后退、左转和右转。实时模式下,通过与地图软件联动实现对无人艇定点航行控制。操作员首先在地图软件上确定航行目的点,监控软件获取该点坐标,控制无人艇航行至该点。路径规划模式下,监控软件读取导入的路径文件,根据文件中路径规划点的经纬度值,控制无人艇按路径规划点顺序依次航行。在3种控制方式中,操作员可以随时手动改变水下电动双推进器的转速。
1.2.3 数据采集与处理
监控软件作为数据交换的枢纽,需要对输入和输出的各项数据进行采集和处理。监控软件接收地图软件传入的数据包,经过数据处理将数据包字符串转换和分解为单个的数据。同时,将无人艇当前的各项参数数据打包成数据帧传输给地图软件。
同上,监控软件读取下位机的各项数据,将其处理并转换成方便交互面板显示和后台处理计算的数据格式。同时,将各项操作指令转换成数据形式发送给下位机,实现对无人艇的控制。
1.2.4 数据通信
监控软件数据通信分为2部分,分别是与地图软件通信、与下位机PLC通信。地图软件和监控软件通过TCP协议进行数据包的传输和接收。下位机PLC和监控软件通过Modbus协议进行数据交互。
2 无人艇监控软件开发实现
无人艇监控软件基于LabVIEW进行开发,该开发平台通过框图和节点形式代替文本进行编程,使得程序开发过程更加直观便于理解。
由于本监控软件在系统中的数据通信分为2部分,所以这里采用并行循环[7]的设计方式,将与地图软件和下位机PLC的数据通信在并行的循环中进行编程。2个并行运行的循环定时器设定为200 ms运行1次。其他事件处理交由具体事件循环结构体进行处理,比如界面数值初始化等事件。
在与地图软件通信的循环结构中,监控软件主要完成对该部分的数据处理并将相应参数显示在交互面板上。监控软件把从下位机得到的处理后的无人艇经纬度值、航向值和航速值数据,与数据包长度值、标志位值和命令类型值一起打包传给地图软件。对接收到的地图软件的数据包进行解包,根据标志位值,获取航行目的点的经纬度值,并赋值给交互界面的显示控件。
在与下位机通信的循环结构中,监控软件与下位机通过LabVIEW封装好的Modbus控件建立通信,读取下位机保持寄存器中的无人艇经纬度值、无人艇航向和航速等航行信息。由于保持寄存器传输到上位机的数据格式是字,所以需要经过数据处理之后再赋值给对应的显示控件,并同时将这些值写入本地的文件中,记录无人艇运行时的各项基本参数。
监控软件将当前选择的控制模式、艇号、PID参数和水下电动双推进器转速等值写入下位机。同时,根据不同的控制模式,选择不同的控制循环结构。
手动控制模式下,操作员根据手动按钮的选择写入控制指令值到下位机的多个线圈,进而控制无人艇的前进、后退、左转和右转。
实时控制模式下,监控软件会在相应的控制循环结构中计算航行目的点与当前位置的距离值,并赋值给交互界面上对应的显示控件。如图3所示。同时,监控软件会将目的点经纬度处理后传递给下位机PLC,控制无人艇自动航行到该点。
图3 实时控制框图代码(部分)
路径规划控制模式下,监控软件会在对应的控制循环结构中读取本地路径文件中的路径点经纬度值,同时计算当前位置与下一路径点距离值,赋值给相应的显示控件。如果当前距离值小于5,则会自动切换至下一路径点。如图4所示。最终控制无人艇沿规划好的路线航行,直至最后一个路径点。
图4 路径规划控制框图代码(部分)
3 无人艇监控软件应用
最终开发出的无人艇监控软件如图5所示。由图5可知,无人艇监控软件的交互面板主要分为3部分,分别是参数输入控件、参数显示控件和控制控件。
图5 无人艇监控软件交互面板
参数输入控件主要有无人艇IP地址、艇号、PID参数输入以及路径规划文件导入。操作员在使用本监控软件时,首先需在输入控件中输入 IP地址和艇号,以便与地图软件以及下位机完成通信连接。同时,在使用路径规划功能前,需要提前导入相应的路径规划文件,否则监控软件会报错。
当操作员设置好各项参数并启动后,监控软件会实时读取当前无人艇的经纬度、航向和航速,并显示在对应的控件中。软件默认的控制方式是手动模式。
当操作员拖动控制方式滑块至手动挡位时,此时可以点击右下角的手动操控按钮,实时控制无人艇的前进、后退、左转和右转。
当滑块处于实时控制挡位时,操作员在配套的地图软件中选择航行目的点,此时监控软件通过与地图软件的通信获取该点的经纬度值,计算当前位置与目的点的距离,并显示在当前交互面板。此时无人艇将会根据两点的位置,进行自动航行,直至到达标记的目的点。
当滑块处于路径规划控制挡位时,操作员需要提前导入路径规划文件,否则软件无法正常运行。当路径规划控制成功运行时,无人艇会根据路径规划文件中的路径点经纬度值,按顺序进行航行,直至到最后一点。在此过程中,监控软件也会实时计算离下一点的距离,显示在交互面板的控件中。
监控软件正常运行的时候,能够随时对无人艇的水下电动双推进器转速进行调整。操作员通过移动转速滑块至所需转速值,实现对无人艇航速的实时控制。同时,监控软件实时采集无人艇的各项参数,保存至本地文件,以供后续数据分析。
4 调试及无人艇航行试验
4.1 岸上调试
为了验证本软件的可用性,首先在岸上对整个系统进行调试。经过基本调试后,监控软件与地图软件和下位机PLC的通讯正常,能够进行数据交互,实现基本的定位、状态显示、调速和手动控制功能。而实时控制和路径规划控制功能需要下水试验,才能判断监控软件的控制功能是否满足系统需求。
4.2 无人艇航行试验
调试结束后,本系统首先在华中科技大学喻家湖湖区进行水面航行试验。经测试,监控软件的实时控制功能与路径规划功能都能满足系统需求,能够成功远程控制无人艇航行到目的点或者沿多个路径点航行。试验现场如图6所示。
为了进一步验证海上航行情况下该软件的实用性,本无人艇参与了2019中国智能船艇“海上争霸”挑战赛的A/B组——自主绕标赛。此比赛场地位于山东日照东港区万平口泻湖附近海域,能够验证本软件的各项控制功能以及通讯是否正常。试验照片如图7所示。
图6 喻家湖水面航行试验
图7 山东日照海上航行试验
a.无人艇系泊试验。参赛无人艇处于系泊状态,此时监控软件的各项通讯功能良好,能够实时显示当前无人艇所处的位置、航向和航速,经地图软件验证,航向正确,位置误差小于1 m。此时可以对无人艇进行手动控制,点击监控软件的手动控制按钮,能够遥控无人艇实现前进、后退、左转和右转的基本操作。
b.无人艇实时控制试验。解除当前无人艇的系泊状态,手动控制无人艇离港。操作员移动控制方式滑块至实时控制挡位,在地图上选定目的点,监控软件成功获取该点的经纬度坐标,并自动向该点航行。此时交互面板上的无人艇经纬度、航向、航速和实时点距离都会在无人艇航行过程中改变。操作员拖动转速滑块,能够明显观测到无人艇航速发生变化。当实时点距离小于设定的5 m距离时,无人艇减速至停止航行。
c.无人艇路径规划控制试验。提前导入路径规划文件,在手动控制无人艇离港后设置控制挡位为路径规划控制。此时无人艇自动航行至路径规划文件中的第1个点,当规划点距离控件的值小于设定值5 m时,自动切换下一路径点的经纬度值,并显示在交互面板的目的经纬度控件中。此时当前轨迹点的数字自动加2,表示切换至下一组经纬度。在航行过程中,手动拖动转速滑块,能够实时改变无人艇航速。
整个试验过程中,无人艇监控软件各项控制功能正常,通讯正常,验证了其在海面环境下的控制可靠性。
由于比赛中需要穿越桥墩,而无人艇在桥下无法正常接收到GPS信号,因此监控软件的实时控制和路径规划控制无法正常使用。因为在桥下GPS信号会随机跳转或者接收到无效GPS信号。如果GPS信号随机跳转,在路径规划控制过程中,恰好跳转到下一目的点5 m内的距离,此时判定已经到达该点则会自动切换至下一点,导致路径规划控制失败。如果接收到无效信号,监控软件进行处理后得到的目的点坐标值为该区域的基准点坐标即为(119,35)。此时计算出的离下一点距离与监控软件设定最大航行距离发生冲突,监控软件会判断无人艇即将超出控制距离并使其停止航行。因此,调整监控软件的GPS信号处理部分,使其只有接收到正常GPS信号时才改变当前无人艇位置经纬度值。
经过程序改进之后的监控软件采用实时与路径规划双工控制方式,实现了无人艇的绕桥墩航行,成功沿着要求路径实现变速航行,最终完成竞赛,并且实时采集了航行过程中的无人艇经纬度值、航速与航向(部分数据如表1所示)。
表1 监控软件采集的无人艇GPS信息
提取该数据的经纬度值部分,剔除GPS信号误差较大的无效值,生成散点图如图8所示。
图8 无人艇航行轨迹
将图8和比赛参考路径图9相比较,可知轨迹基本相同。由于在桥下无法获得GPS信号,所以桥下并没有采集到经纬度坐标值。由上文试验实际情况与采集的数据可知,本监控软件对无人艇的实时状态观测和远程控制良好,能够实现各项基本的控制功能,与地图软件以及下位机通讯正常,实时采集和存储数据功能正常。
图9 比赛参考轨迹图
5 结束语
本文设计并开发了一种无人艇监控软件系统,对该软件系统的设计、开发实现以及应用进行了详细阐述。通过湖面以及海面的各项试验,结果证明了该软件对无人艇具有可靠的监控能力和良好的通讯效果,能够实现手动控制、实时控制、路径规划控制和适时调速等多种控制功能。
随着研究的深入,将在已有的软硬件架构上继续完善控制系统。对当前无人艇监控软件进行扩展,从单艇监控至双艇甚至多艇监控。最后实现对无人艇集群系统的监控功能。