面向城市内河水面漂浮物清理的无人船系统设计
2021-08-31张馨雨那睿奇黄宁远王亚炜
张馨雨,那睿奇,黄宁远,王亚炜
(东北林业大学机电工程学院,黑龙江哈尔滨,150040)
0 引言
目前,城市内河河道垃圾泛滥的问题日益严重,由于城市内河河道往往位于居民区附近,居民区的生活垃圾、水边的旅游垃圾和建筑垃圾等极易进入河道,并漂浮在河面上,影响市容的同时也给城市排水系统带来了挑战,因此清理城市内河水面漂浮物成为城市环境治理的一个重要环节[1]。虽然国内外已经开发出比较先进的水面垃圾清理装置,但是其设备大多针对海洋垃圾和大型湖泊垃圾,而由于城市内河与海洋、湖泊之间的差异,在进行城市内河水面漂浮物清理时,设备需要更加注意噪声和污染问题,因此这些设备对城市河道的实用价值较小[2]。现如今,对于城市内河河道等小面积水域,水面漂浮物的清理多采用人工打捞,清理效率低的同时,人工成本也较高。
而随着近年来移动物联网技术、大数据技术的飞速发展,无人船作为一种智能化、自动化、网络化的水面工具也开始广泛应用于各个领域。无人船可以配合水面漂浮物清理装置,利用GPS导航、互联网远程控制和航迹控制等技术,为城市水面的环境治理提供一种新型的装备[3]。使用无人船清理城市内河水面漂浮物,既能满足清理需求,又节省了人工成本,还提高了清理效率。
虽然如今市面上已经拥有了云洲系列[4]和欧卡系列[5]等小型智能无人清理船,但其垃圾清理装置和功能等还较为单一,以此该领域还有较大的研究前景。
1 无人船结构设计
1.1 无人船船体结构设计
该无人船的结构部分主要由船体、漂浮物清理系统、航迹控制机构和控制系统组成,如图所示为无人船结构设计图。
图1 无人船结构设计图
船体主要由两侧船身以及将两侧船身连接起来的铝架构成。船型上选择双体船设计,不仅有效地增加了上层建筑层次,给控制系统以及垃圾传输清理机构留下更多的空间,还明显地降低了兴波阻力,减少了船波[6]。因此,该无人船能有效减少无人船在内河进行清洁工作时船波对内河两岸的冲击与噪声。
同时在制造样机时,我们使用泡沫材质制造船体,由于泡沫本身密度较小,浮力较大,在降低成本的同时我们还能有效增加样机的浮力。在船体后方架设有平台,能够放置单片机、控制系统的各种模块、摄像头以及电池等设备,能够有效利用船体面积。
1.2 无人船漂浮物清理系统结构设计
无人船漂浮物清理系统主要由垃圾收集箱,输送装置和辅助收集装置组成。图2为漂浮物清理系统结构设计图。
图2 漂浮物清理系统结构设计图
该漂浮物清理系统的收集方式为传送带式收集。如图输送带斜插人水中适当深度,系统前部配合着小型的引导板和网状的阻挡板,能够在输送带前端聚集起漂浮物。同时输送带电机带动输送带运转,随着无人船的移动,传送带将前端聚集的水面垃圾传送到后方的垃圾收集箱内,收集漂浮物的效率相对较高,同时成本较为低廉。输送带两端支座和输送带两侧可以通过螺纹配合调节输送带的角度,在不同条件下的水域,可以通过调节角度调节装置,改变传送带的传送角度及入水深度,方便在各种河道水域下执行清理任务,实现更好的清理效果。
辅助收集方面,双体船两侧还安装有压力水枪,能够在垃圾聚集时,使漂浮物分散便于收集。船体两侧还会添加有小型引导板,将水面漂浮的垃圾更好的通过传送带运送到垃圾收集箱内。细节方面,输送皮带和收集箱里都留有渗水孔,带上的挡板也采用镂空设计,能有效减少传送带传送垃圾时水面的阻力,同时还能沥干水分减轻传送带压力和船体的重量,垃圾收集箱位于船尾,底部安装有滚轮,近岸时能轻松完成搬运工作。
1.3 无人船航迹控制机构结构设计
图3为该无人船航迹控制机构结构设计图。
图3 航迹控制机构结构设计图
该无人清理船使用电力驱动,水下的推进器主要由防水电机和螺旋桨叶组成,防水电机带动螺旋桨旋转,推动无人船前进。通过舵机来控制推进器的偏转,改变无人船推进的矢量方向,从而控制其行驶方向,以此实现无人船的运动控制。
2 无人船控制系统设计
2.1 控制系统总体方案设计
本系统以STM32F409作为主控板,通过电力驱动,并配合多种模块,实现无人船的运动控制。同时利用基于LabVIEW开发的上位机软件,来实现航迹的规划和数据处理,并对无人船进行远程控制。借助服务器,该系统以GPRS远程通信为传播媒介,能够完成上下位机的通信,实现上下位机间的数据传输,图4所示为该无人船控制系统总体方案设计图[7]。
图4 无人船控制系统总体方案设计图
无人船控制系统主要由上位机系统和下位机系统组成。其中上位机系统主要包括上位机软件和电脑PC端,下位机系统主要包括主控制板、驱动模块、GPS与无线通信模块和超声模块。通过上位机与下位机的配合,无人船能够实现以下功能:
(1)远程通信功能:实现上位机和船载下位机系统的无线通信;(2)航迹规划功能: 实现对无人船船体运动进行自主控制,自动规划航迹;(3)自主避障功能:利用传感器信息,实现自主避障;(4)人机交互功能:向无人船发送控制命令,实现操作人员对无人船进行远程操作;(5)监测显示功能:能够对无人船船体位置和速度信息进行定时监测并将轨迹图和航行状态在上位机软件中显示。
2.2 下位机系统设计
2.2.1 下位机控制核心设计
下位机船载系统以STM32F409开发板为核心,GPS与无线通信模块、超声模块以及驱动模块通过串口与主控板进行通信,船载下位机的系统框图如图5。
图5 船载下位机系统框图
船载下位机系统中需要主控制板对各模块进行控制,并对各个模块不断进行读取,同时需要不断与超声波模块进行数据交互,并持续通过GPS与无线通信模块和上位机进行数据传输。下位机通过串口收集原始GPS数据,并将数据进行处理后,处理后的数据通过GPRS网络传输到上位机,上位机发出控制命令后,下位机计算出无人船的偏角,并通过控制推进器电机和舵机转过的角度来实现无人船运动控制功能,下位机控制程序流程图如图6所示。
图6 无人船下位机控制程序流程图
2.2.2 超声波避障设计
无人船在进行自主航行时,为避免河道中障碍物影响无人清理船的正常工作,我们通过进行超声波避障设计来实现无人船的自主避障功能。
该自主避障设计的原理是在无人船在行驶的过程中,利用位于船体前端的超声模块,循环测量与前方障碍物的距离。如果检测到与障碍物之间的距离小于一定的值,则单片机对主控制板中初始自动控制程序进行中断,开始运行避障程序,避开障碍物后,又重新进入自动控制的程序,并按照初始自动控制程序继续行驶[8]。
因为无人船在自主航行时遇到障碍物前优先于执行避障程序,所以超声模块需要使用较高的优先级中断中断0。数据初始化后,通过检测串口0是否接收到来自单片机的超声数据来进行判断,并根据是否收到避障信号并做出不同的处理。若收到避障信号则进行对舵机和推进器的控制,否则执行串口1的判断,根据发送的指令进行数据的采集或无人船的控制。下图为主控制板避障程序设计流程图。
图7 无人船主控制板避障程序设计流程图
2.2.3 运动控制
为实现无人船的运动控制,下位机需要与上位机进行连接,上下位机连接后,上位机向下位机发送规划航迹的目标点GPS数据,船载控制系统接收到数据后,开始驱动电机转动,并定时通过无线通信模块使用AT指令获取当前的GPS数据信息,通过分割字符串的方法得到当前位置的经纬度、速度和航向角,然后定时计算当前位置与目标点的距离以及当前点到目标点的连线与正北方向的夹角。根据船的航向角和所求的偏角可以计算驱动机转向机构中螺旋桨电机矢量推进时所需转过的角度。
图8 角度偏转示意图
当前位置与目标点位置的距离和无人船偏角计算公式如下:
公式中的6371.004为地球的平均半径;(N0, E0)和(N,E)分别为目标点和当前位置的经纬度;110.947为纬度跨越1度时对应的公里数;同理111.3195为经度跨越1度时对应的公里数。此外由于公式计算出的偏角为弧度制,需在单片机中将其转化为角度制。
求得驱动机转向机构中螺旋桨电机矢量推进时所需转过的角度之后,下位机通过控制舵机转过的角度来使螺旋桨电机转过相应的角度,控制各目标段中无人船的行驶方向,以此来实现无人清理船的运动控制。
2.3 上位机系统设计
上位机系统软件利用LabVIEW进行编写,该软件主要实现上位机与船载系统的远程通信、控制命令的发送、GPS数据格式的解析与处理以及纠偏和电子地图显示的功能[9]。
2.3.1 航迹规划
无人船在河道行驶时,由于河道本身的弯曲程度和河面情况,航迹规划过程中上位机会根据河道形状以及河面情况,从始点到终点形成曲线型线路。实际沿规划路径前进时,上位机将该曲线航迹划分成多个直线段,并记录每个直线段的起始和终止点,将无人船沿河道的曲线运动转化为多个直线段内的直线运动[10],如图9所示。
图9 航迹规划示意图
在无人船航行过程中,当到达规划点位置时,上位机收到无人船的反馈信息,并发送下一规划点的位置坐标,无人船开始沿下一段规划路径继续行驶,最终到达终点区域,完成规定航迹内的漂浮物清理任务。
2.3.2 GPS数据格式的解析和处理
GPS模块采集到GPS数据后,上位机利用SIM7600CE通过AT指令来获取GPS数据,获取到 SIM7600CE返回的字符串后,我们从字符中提取GPS信息,并从中分离出经度、纬度、航向角和速度信息,得到纠偏前的GPS数据。
表1 SIM7600CE的部分AT指令
AT+CGPSINFO正常返回字符串格式为+CGPSINFO:[
其中各段字符串表示的含义及输出格式如表2。根据各段字符串表示的含义和输出格式,通过字符串分割命令可以从中分离出GPS模块采集的GPS数据。
表2 返回字符串各段的表示含义
2.3.3 纠偏与百度地图显示
此外由于下位机通过GPS模块得到的坐标是在WGS-84系下的经纬度坐标,而为了保障国家安全,电子地图产品使用的是WGS-84坐标系加上偏移量后的坐标系,如百度地图中使用的就是BD-09坐标系。因此在对获得的GPS坐标进行百度地图中的显示时,由于这两种坐标系的偏移,直接用百度地图显示解析后的坐标偏差较大,所以我们需要对其进行纠偏。
我们利用百度地图开放平台提供的转换服务,在服务地址的对应位置处后面输入自己想要转换的GPS 坐标,即可将输入的GPS坐标转换为BD-O9坐标系下的坐标,从而得到正确的经纬度,同时利用开放平台提供的服务,我们还能将GPS数据在上位机软件中,通过百度电子地图显示出来,如图10为纠偏和百度地图显示的程序图。
图10 纠偏和百度地图显示的程序图
3 上位机与无人船的通信
上下位机的主要通信网络为GPRS网络,并通过服务器建立连接。上位机导入路径规划文件后,发送规划信息给无人船,并对下位机发送过来的GPS数据进行纠偏,并在上位机软件当中,通过电子地图和监测界面显示船体所在的地理位置以及速度航向角等信息。
3.1 上位机无线通信
上位机无线通信的实现方式为提前设置好域名和端口,并使用花生壳创建内网穿透建立服务器,通过输入域名分配端口,上位机侦听远程服务器的IP和端口号,根据IP和端口号寻找远程服务器,并通过远程服务器获取发送到远程服务器的GPS数据[11]。
侦听到数据后,上位机循环读取获得的TCP数据,并对数据的有效性进行判断。如果读取到的数据有效,则对其进行数据处理,将该字符串分割,得到当前经度、纬度、航向角和速度信息,获得纠偏前的GPS数据,接着借用百度地图开放平台提供的转换服务对该GPS数据进行纠偏处理,纠偏后,再次将字符串分割得到纠偏后的经度和纬度,并将最后输出的经纬度在百度地图中显示,而如果判断读取的数据有误,则直接进行报错,及时提醒监测人员。
3.2 下位机无线通信
配置下位机无线通信时,首先需要设置APN并查询注册GPRS网络状态,确定网络状态良好后设置TCP/IP模式,设置完后打开套接字,并以多套接字方式建立连接,如图12所示。
图11 上位机无线通信流程图
图12 下位机无线通信流程图
4 基于LabVIEW的人机交互界面设计
最终开发出的基于LabVIEW的人机交互界面如图13所示。
图13 人机交互界面示意图
基于LabVIEW的人机交互界面主要分为两部分,分别为参数输入界面和参数显示界面[12]。
参数输入界面主要有远程地址、远程端口、网络端口以及路径规划文件导入框。使用该交互界面时时,首先需在输入控件中输入远程地址、远程端口和网络端口,并导入相应的路径规划文件,以便与地图软件以及下位机完成通信连接。
参数显示界面主要有百度电子地图显示界面、航向角显示界面、经纬度显示界面和船速显示界面。当设置好各项参数并启动后,监控软件会实时读取当前无人艇的经纬度、航向和航速,并显示在对应的控件中。
5 结论
本文提供了一种面向城市内河水面漂浮物清理的无人船系统设计,对该无人船机械结构的设计、控制系统的设计、上下位机间的通信以及上位机软件的开发实现进行了详细介绍,并对该无人船系统设计的有效性进行了验证,结果表明船体载荷能力较强,船体结构具有较强的稳定性,能够有效完成水面漂浮物的清理任务且自动化效率高。
然而该无人船距离真正投入商用还需要进一步完善和测试,进一步的研究任务是继续提高船体自身定位的精确性,使得该无人船能够适应更加弯曲复杂的航道环境。并无人船上添加新的装置,实现垃圾清理、水质监测等多方面的任务,同时继续完善无人船的控制系统,将其上位机软件的监测范围由单独的无人船拓展到整个无人船集群系统。