朱衍明,林九根,余景锋,王天昊
(中国船舶集团有限公司 系统工程研究院,北京 100094)
进入21世纪以来,随着全球各国特别是海洋大国对海洋资源开发的逐步深入,以及各海洋军事强国在海洋上的对抗加剧,自主水下航行器(AUV,autonomous underwater vehicle)在越来越多的场合被用作水下资源开发和对抗的关键平台,AUV的研制和发展也随之步入快车道[1-3]。
AUV的研制过程通常会有室内水池测试和野外湖水测试阶段,并且这两个阶段都会首先进行水面测试[4]。AUV在进行水面测试时通常会配套有AUV手柄遥控模式,即采用类似消费级无人机遥控器遥控的方式来操作AUV。AUV手柄遥控模式是AUV地面指控台遥控模式的有利补充,通过人工手柄遥控的方式可进行AUV水面机动操作,特别是在近岸、近船或入港等需要人工就近观察并进行精细操作的场合,AUV手柄遥控模式能够提供显著的便利[5-6]。
市面上常见的消费级无人机遥控器解决方案由两部分组成——遥控器和接收机,遥控器和接收机之间为无线电通信,但是各厂商的无线电通信协议是非公开且互不兼容的。接收机的输出一般是业内标准的PPM或者SBUS协议,这对于消费级无人机的飞控系统来说有许多成熟的配套方案可选,但是AUV的控制系统一般不会用到消费级无人机的飞控系统[7]。因此对于AUV手柄遥控模式来说,开发一套低成本、易实现、全透明且自定义的无线遥控系统显得十分具有实用意义和价值。
单独的AUV平台无法完成工作,通常需要配套对应的地面指控台。地面指控台作为上位机通过无线或者有线的方式对AUV进行岸基任务分配、数据导入导出、下位机升级维护等操作。在AUV处于水面时,地面指控站可以通过无线电指令方式对AUV进行遥控和路径重规划等操作。所以AUV平台自身是携带无线电通信设备的。因此,如果AUV手柄遥控模式能够利用或者共用已有的这套无线电通信硬件设备,而不是在AUV上再加一套无线电接收器,将会节省AUV有限的载荷空间和重量、规避潜在的电磁兼容问题,进而简化AUV设计的同时提高系统可靠性。
AUV指控台通常部署在岸边或者母船,并且由于其体积、重量、无线电通信天线和全球导航卫星系统(GNSS,global navigation satellite system)天线等因素限制,指控台一旦部署完毕就很难临时挪动,因此,在需要AUV指控台操作员对AUV进行水面上近距离观察操作时,操作员通常会把AUV切换到手柄遥控模式后,手持遥控手柄对AUV进行近距离观察和精细手工遥控。
由于操作员一般不能在开机状态下离开指控台,且AUV手柄遥控模式也是近距离操作,因此设计方案如图1所示,遥控手柄通过近距离(数十米量级)无线电通信把操作指令发送给指控台,指控台在AUV处于手柄遥控模式时把收到的遥控手柄指令通过AUV已有的远距离(几千米量级)无线电通信通道发送给AUV,进而间接实现AUV的手柄遥控。
图1 AUV手柄遥控方案设计图
根据图1的AUV手柄遥控方案设计,完整的通信链路由近距离无线电和远距离无线电通信两部分。无线电通信频段是公共资源不能够随意选用,依据中华人民共和国无线电频率划分规定,ISM(industrial scientific medical)波段开放给工业、科学和医学机构免费使用,无需申请,但是必须满足一定的射频能量要求[8-9]。因此本方案中的AUV遥控手柄对地面指控台的近距离无线电通信设备需要满足ISM波段要求。同理,地面指控台到AUV的无线电通信设备也需要满足ISM波段要求。因此,为了AUV手柄遥控系统的低成本和易实现,选用商用现货(COTS,commercial off-the-shelf)无线电通信技术和设备无疑是最有效的途径。
市面上常见的近距离无线电通信技术有WiFi、蓝牙、UWB、ZigBee、NFC等,其信号的覆盖范围一般都在几十厘米和几百米,其最大传输速度在几百kbps到几百Mbps之间不等,对于近距离遥控这种数据传输量不大的应用场合都能满足需求[10-12]。其中WiFi是一种人们生活中最常见的无线局域网接入技术,具有传输速度快、通信带宽较大等优点,广泛应用于人员密集的室内环境;蓝牙(Bluetooth)技术则是无线数据和语音通信的全球开放规范,其传输频带为2.4 GHz的ISM频段。且WiFi和蓝牙目前在智能手机和笔记本电脑上都是标配,无需另行采购硬件设备。因此本文WiFi和蓝牙技术二选一,选用了蓝牙作为近距离遥控手柄向AUV指控台的无线电通信方式。
市面上常见的远距离无线电通信技术有GPRS/CDMA、数传电台、卫星通信、LoRa等,其信号的最远传输距离一般可达几千米到几百千米,其最大传输速度在几十kbps到几百kbps之间不等,对于远距离遥控这种数据传输量不大的应用场合都能满足需求[16-17]。GPRS(通用无线分组业务)是由中国移动开发运营的一种基于GSM通信系统的无线分组交换技术,CDMA(码分多址)由中国电信运行的一种基于码分技术和多址技术的无线通信扩频技术。数传电台是数字式无线数据传输电台的简称,其工作频段通常采用ISM频段。卫星通信是指利用人造地球卫星作为中继站来转发无线电信号,从而实现在多个地面站之间进行无线电通信的一种技术。LoRa(long range radio)的名字即为远距离无线电,其工作频率为ISM 频段[18]。GPRS/CDMA和卫星通信都需要向运营商购买服务,采用ISM频段工作的数传电台和LoRa作为成熟的低成本解决方案,非常适合AUV平台远距离指控应用场景的需求。因此本文数传电台和LoRa二选一,选用了LoRa远距离无线电通信技术作为AUV的指控通信方式。
根据图1的AUV手柄遥控方案设计,AUV的遥控手柄需要同时具备手持遥控能力和近距离无线电发送能力。而当今的智能手机几乎都具备WiFi和蓝牙无线功能,且在中国几乎做到了人手一部甚至多部智能手机。因此,如果能直接在个人智能手机上实现遥控手柄功能,通过调用智能手机自身的WiFi或者蓝牙进行无线电发射,这便实现了遥控手柄的功能。
在智能手机市场,安卓(Android)系统的市场占有率在八成以上,因此,基于安卓智能手机开发遥控手柄APP软件,在手机触摸屏上实现遥控手柄的各种操作,能够节省遥控手柄和近距离无线传输的硬件研制成本,且能轻松实现遥控手柄的各种自定义。
遥控手柄APP软件需要运行在安卓智能手机平台上,因此需要对平台软硬件环境提出一定的要求。考虑到APP软件的需要具备一定的通用性以适配不同的安卓手机,因此APP软件不能仅仅适配最新的安卓系统和蓝牙技术[19]。因为安卓系统和蓝牙技术一般具有向下兼容的技术特点,因此本文基于较老一些的安卓系统4.0版本和蓝牙技术2.0标准来设计APP软件。
消费级无人机遥控器一般提供两个摇杆,两个摇杆共有四个控制通道,分别用来控制方向舵、升降舵、副翼和油门。同时还会提供若干个开关,主要用来完成飞行模式的选择和任务载荷的操作等。因此遥控手柄APP软件需要在手机触摸屏上模拟出两个摇杆和多个自锁按钮开关。
遥控手柄APP软件应该首先进行蓝牙连接设置,开起软件后进入第一个操作界面,蓝牙控制器如图2所示,在此界面选择需要进行蓝牙配对连接的设备[20]。
图2 蓝牙连接控制界面
如果此时手机蓝牙尚未开启,则如图3所示,需要弹出对话框请求开启手机蓝牙。
图3 蓝牙使用请求对话框
在完成蓝牙连接设置后,软件进入手柄界面,如图4所示,该界面从上到下由三部分组成。界面最上层为蓝牙连接的设备名称以及其连接状态,如果蓝牙连接因某些原因没有连接成功或者在连接成功后又因某些原因断连,操作人员可以根据显示的连接状态判断蓝牙通信是否正常。图4中即显示蓝牙连接对象为“nova8”,连接状态为“连接失败”。
图4 遥控手柄操作界面
手柄界面的中间层为两组共16个开关,开关设计成小灯珠的样式,由灯珠的亮灭来表示开关的闭合状态。每点击一下灯珠,其亮灭状态便翻转一次。软件开启后灯珠默认为全灭,对应开关状态位全关,用数字信号表示即为全0;灯珠亮起表示开关闭合,对应数字信号1。两组开关从左到右对应的无符号八位十六进制数的最高位到最低位,并将其显示在其两组开关的右侧。图4中第一组开关的值为0x05,对应第一组开关的第零和第二位为1,即表明这两个开关为闭合状态。
手柄界面的最下层为左右两个摇杆,左侧定义为摇杆1,右侧定义为摇杆2,每个摇杆以平面坐标系X、Y轴为独立的两个通道。左边的摇杆从左下角开始到右上角X1、Y1轴数值从零开始逐渐增大。右边的摇杆从右下角开始到左上角X2、Y2轴数值从零开始逐渐增大。如图5所示的右摇杆在左上角时X2、Y2对应的数值分别是位置2所示的255和255。
在图5中显示的“位置:1回中”,表示此时操作员并未操作摇杆1,摇杆1自动回到中间位置,以此来模拟真实的摇杆复位回中操作。由于AUV执行机构的惯性及其系统响应速度这些真实物理条件限制,回中操作不能过快,因此需要在一段时间内完成相对缓慢的回中操作,而不能是瞬间回中。这就需要对摇杆的回中时长参数进行设置。
点击图4遥控手柄操作界面的右上角即可进入遥控手柄APP软件的设置界面,设置界面如图6所示,在该界面可进行数据发送模式的设置、数据帧头帧尾的自定义设置和摇杆值域的设置。
图6 软件的设置界面
数据发送的模式可以设置为定时发送模式,操作员可以根据系统需求自行定义合适的定时发送时间间隔。如果不使用定时发送模式,则默认为触发发送模式,即当遥控手柄界面有任何数值改变时就会触发数据发送。
蓝牙通信数据帧也可以加入帧头和帧尾,以便进行帧校验,增加通信的可靠性。通过开启数据帧头帧尾即可,并且可以自定义帧头帧尾。帧头帧尾各占一个字节,设置数值为十六进制数。
摇杆设置包括X1、X2、Y1、Y2四个轴向值域的设置,因为这四个数值在通信帧中各占一个字节,因此对应十进制最大设置为255,表示该轴向从0到255共有256个数值,也就相当于摇杆在该轴向被细分为255段,如此精密的细分对很多应用场合来说足够满足需求。并且基于手机触屏的数字式细分比真实摇杆的滑动变阻器式细分会有更好的线性度和一致性。
通信数据帧在不开启帧头帧尾时数据帧总长为6个字节,帧格式发送顺序为:X1,Y1,X2,Y2,Z1,Z2。X1、Y1表示左侧摇杆1轴向数值,X2、Y2表示右侧摇杆2轴向数值,Z1、Z2表示上下两组开关的值,传输时均用十六进制表示。开启帧头帧尾后即在数据帧前增加自定义的帧头和帧尾,详细数据帧格式如表1所示。
表1 遥控手柄APP软件数据帧格式
AUV从外观上看大体可分为矢量推进控制和舵面控制两种,但无论哪种,其运动模型一般可以采用大地坐标系E-ξηζ加随体坐标系G-xyz来表示,这与无人机十分相似[21]。
图7 AUV的坐标系
但是水下机器人和空中无人机的运动控制也有明显的不同,那就是无人机的大规模转向需要通过横滚来配合实现,而AUV一般不需要如此操作。前文说到消费级无人机遥控器一般提供两个摇杆,两个摇杆共有四个控制通道,分别用来控制无人机的方向舵、升降舵、副翼和油门。方向舵对应固定翼无人机的垂直尾翼,用来改变机头的左右朝向,即偏航操作。升降舵对应固定翼无人机的水平尾翼,用来实现机身的抬头和低头,即俯仰动作。副翼对应固定翼无人机的两片副翼,用来实现机身的横滚动作。油门顾名思义是用来控制无人机的动力输出大小的。因AUV与无人机本质上的不同,所以,AUV在手柄遥控模式下一般只需要实现偏航、俯仰和油门操作,且极少需要手动进行横滚操作。
无论是矢量推进控制式AUV还是舵面控制式AUV,其航向的改变都是通过舵机或者电机带动推进器或者舵面转动来实现的。因此试验设计以遥控手柄APP软件上左侧摇杆1的X轴进行偏航控制Y轴进行俯仰控制,分别对应控制十字型舵AUV的上下和左右舵机。以遥控手柄APP软件上右侧摇杆2的Y轴进行油门杆操作,对应控制AUV推进器的正反推进功率。
遥控手柄APP软件上的开关对AUV控制系统来说正是开关量(或者称为数字量)输入,对开关量的试验验证可以简单得通过LED灯的亮与灭来进行。所以本文设计在遥控手柄APP软件上第一组开关全0状态时LED1熄灭,非全0状态时LED1亮起。第二组开关对应LED2,第二组开关全0状态时LED2熄灭,非全0状态时LED2亮起。
所有试验内容条目以及预期的效果如表2所示。摇杆1在回中位置时对应AUV方向舵和俯仰舵也在中位,轴向数值0~255变化时,映射到方向舵和俯仰舵的舵角即为从最小值转到最大值。摇杆2的Y轴在回中位置时对应AUV的推进器转速为0,当其数值从0~255变化时,对应推进器从反转最大功率逐渐减小到零然后再从零逐渐增大到正转最大功率,此时需要注意的是AUV的推进器应当在水中测试,以免推进器电机在空气中高速空转而过热烧坏。
表2 遥控手柄APP软件试验内容
根据试验内容的设计,设计搭建完整的通信测试链路如图8所示。
图8 通信测试链路
测试链路中以开发板代替真实指控台,并搭配蓝牙模块和LoRa模块,蓝牙模块实现接收手机遥控手柄APP软件通过无线蓝牙发送来的遥控数据帧,LoRa模块实现对遥控数据帧的转发。
AUV端的通信和运动控制模块负责LoRa无线通信数据的接收,并对收到的遥控数据帧进行解析和执行,实现LED灯的点亮控制、舵机的舵角控制和推进器的功率控制。
蓝牙模块选用正点原子的ATK-HC05型蓝牙模块,这是一款高性能的主从一体式的蓝牙串口模块,能够同各种手机、电脑等带蓝牙功能的终端进行匹配。通信速率可配置为4 800~1 382 400 bps,且其接口兼容3.3 V和5 V电平,可以适配3.3 V或者5 V接口电平标准的单片机开发板。
LoRa模块选用骏晔科技的DL-RTS1278M型无线串口LoRa透传模块,该模块采用扩频调制和循环交织纠检错编码,有多个通信频段可选,具有较高的灵敏度和较好的抗干扰能力。接口速率为1 200~115 200 bps,0.81 kbps传输速率下的传输距离可达3 000米,非常适合工业远程控制。
开发板选用Arduino Mega 2560开发板,这是一款基于8位微控制器ATmega2560的开发板,能够提供多达4个USART硬件串行接口,结合蓝牙串口模块和LoRa串口透传模块可快速完成简易指控台的搭建。再通过Arduino IDE软件提供的库函数能够方便地进行软件功能编写,实现蓝牙串口数据的接收和LoRa串口透传模块的数据发送。
AUV端的通信和运动控制模块为基于嵌入式系统STM32的嵌入式开发板,主要负责无线电通信的收发,以及AUV运动执行机构的(包括舵机和推进器)控制。STM32通过2个GPIO完成板载LED1和LED2的亮灭控制,通过改变PWM输出占空比完成4个舵机的控制,通过CAN总线通信完成推进器推进正反转和推进功率的控制[22-23]。图9为AUV端的通信和运动控制模块在控制推进器时完成摇杆2的Y轴的数值从全功率反转(-100%)到全功率正转(+100%)的等比例映射。摇杆数值到舵机舵角的映射关系与此类似。
图9 从摇杆2的Y轴数值到推进器输出功率的映射
根据表2的测试内容以及图8的测试链路,首先进行了APP遥控手柄软件开关的测试,测试结果表明第一组开关中任意一个开关闭合即可点亮LED1, 第二组开关中任意一个开关闭合即可点亮LED2。其次进行了摇杆1的测试,实物测试如图10所示,测试结果显示AUV方向舵和俯仰舵能够跟随摇杆1的操作进行相应的打舵操作。
图10 舵机打舵测试 图11 推进器正反转测试
最后进行了摇杆2的测试,实物测试如图11所示。测试结果显示随着摇杆2在Y轴的缓慢上推和缓慢下推,推进器能够跟随操作进行加力正推和加力反推,水中实测过程如图11所示,左侧图中水波纹显示水流从推进器前端吸入后端喷出,因此左图为推进器正推;右侧图中水波纹显示水流从推进器后端吸入前端喷出,因此右图为推进器反推。
通过以上试验,验证了遥控手柄APP软件的设计合理性,证明了基于LoRa、蓝牙和安卓手机的AUV手柄遥控系统设计方案可行。
本文设计了一种AUV手柄遥控模式的间接实现方案,即在安卓手机上开发APP软件来模拟遥控手柄,通过手机蓝牙对指控台实现近距离无线通信,指控台通过蓝牙接收到手柄操作信息后再通过远距离LoRa无线通信实现对AUV的手柄遥控信息的发送。本方案全过程透明,通信协议可自定义,且近距离和远距离无线电通信硬件设计有备选方案,以较低的成本和较强的通用性实现了AUV的手柄遥控系统设计,为AUV的开发和调试提供了有力保障。