刘羽飞,何勇,野口伸
(1.浙江大学生物系统工程与食品科学学院,杭州310058;2.农业农村部光谱检测重点实验室,杭州310058;3.日本北海道大学农学研究院,札幌060-0808,北海道,日本)
人类社会经历了石器时代、农业时代和工业时代,现在正处于信息时代的变革中。每一次生产力的提高,世界人口数量都在快速增长。据联合国粮食及农业组织(Food and Agriculture Organization,FAO)分析预测,到2050年世界人口将达到91.5亿[1]。这意味着农产品产量到2050年需要提高70%左右。与此同时,人类还面临着气候恶化、水资源短缺、人口老龄化,以及农业从业者劳动力短缺等问题。这些都给农业生产带来前所未有的负面影响,使人类社会的可持续发展面临着重大挑战。
幸运的是,随着传感器技术、人工智能、物联网、大数据和机器人技术等的大力发展和应用,农业生产模式也在发生重大变革。特别是“精准农业”和“智慧农业”的概念提出之后,国内外许多科研院所和农机企业等开发出了一系列智能农业装备,以提高农产品产量和品质,并应对农业从业者老龄化和劳动力短缺等问题。目前,相关研究主要集中在大田农业和温室农业2个方面。在大田农业方面,智能无人化拖拉机是代表性成果之一。该类农机装备可以自行规划作业路径,自主导航完成深松、起垄、施肥和收获等作业任务,配合高精度实时动态全球定位系统(real-time kinematic-global positioning system,RTK-GPS)使用,作业精度可控制在2~5 cm范围内[2-5]。在温室农业方面,代表性成果为采摘机器人。该类机器人主要基于机器视觉识别和果实位置定位,通过机械臂完成采摘收获任务[6-8]。然而,在水田农业方面,相关研究仅涉及翻整土地、移苗插秧、收获运输的机械化和自动化研究[9-12],无法做到全过程自动化作业。尤其在水稻稻苗期的施肥和除草作业中,由于水田中水环境的特殊性,传统农用机械入田困难,且容易碾压损伤稻苗。在欠发达地区多以人工手播作业,发达地区用手持电动设备作业,但这些方法效率不高且操作繁重。近年来也有利用无人机进行施药,然而该方法负载有限,且需要专人持执照作业;此外,由于易受环境风的影响,无人机在喷施药剂过程中会出现施药不均、雾化的药剂随风扩散问题,很难实现精准作业,且药剂随风扩散对操作员的健康构成威胁。因此,开展针对水田环境的施肥和除草等作业的自动化农机研究显得尤为重要。
近年来,以日本洋马(Yanmar)农机公司为首的少数日本企业开发了一种新颖的2.4 GHz遥控无人空气动力船产品,实现了水田的远程遥控除草作业。该产品有效地提高了水田施药的效率,降低了劳动力成本。然而,由于采用人工遥控的控制方式,当面对大区块的水田区域进行远程遥控时,操作员很难在目视范围内分辨空气动力船的位置坐标和航行姿态,极易引起船只航行路径错误,造成漏施或重复施药问题,甚至发生船只碰撞等事故。基于以上问题,LIU等[13]将加拿大Hemisphere公司的定位定向传感器(GPSCompass)安装于农用无人空气动力船上,实现了无人空气动力船的自动导航,在无大风干扰情况下,导航精度可达25 cm。然而,由于各区域水田地块情况复杂,例如田边的高大树木或建筑物会对GPS信号造成重大干扰,基于GPS的自动导航也无法识别和避开田中的障碍物和水田边界等。因此,开发防撞系统对农用空气动力船自动导航的普适性和鲁棒性有着重要意义。
在本研究中,以一款日本洋马农机公司生产的遥控农用空气动力船(RB-26)为研究平台(图1),并在此基础上进行改装以适应自动导航和防撞控制的要求。该款空气动力船的吃水深度仅为3 cm,船体相关的主要性能指标如表1所示。除草剂或液体肥料可以从船底部的导管流到水田中,流速由一台小型水泵进行控制。空气动力船的航向、航速分别由尾舵舵机、螺旋桨舵机和油门舵机控制。
为了实现空气动力船的自动控制,对控制平台的改装分为船载控制系统和岸上控制系统2部分。
图1 空气动力船外观Fig.1 Overview of theairboat
表1 空气动力船的主要性能参数Table1 Main performanceparametersof theairboat
在船载控制系统上,一台运行Windows 7操作系统的船载计算机(DN2800MT,美国英特尔公司)作为中央处理器,用来进行路径规划,并与其他电子设备进行通信。一台GPS Compass定位设备(V100,加拿大Hemisphere公司)被固定在空气动力船的安全面罩上。该GPS设备内部集成有陀螺仪,可为空气动力船提供实时位置坐标和航向信息。基于Arduino Uno开发的电子控制最小系统分别与尾舵舵机、螺旋桨舵机及油门舵机连接,通过脉冲宽度调制(pulse width modulation,PWM)波控制空气动力船航行状态。发动机上固定有磁性传感器(GV-101,日本Futaba公司),用于计算发动机的实时转速,并作为反馈与油门舵机配合进行比例-积分-微分(Proportion-integration-differentiation,PID),控制航速。
在水田的堤岸上,基于一台大功率无线路由器(WXR-2533DHP,日本Buffalo公司)组建无线局域网。在本研究中,选用一台笔记本电脑(X220,中国联想公司)作为基站,通过无线局域网接收来自空气动力船的航行状态信息,包括速度、航向误差、横向误差和导航地图上的位置信息等内容。以上所有参数都将通过编写的远程监视软件显示并保存成航行日志文件,存储到计算机中。此外,在紧急情况下,远程紧急制动系统(WT-01&WR-01,美国Circuit Design公司)可直接远程制动空气动力船的发动机,避免发生危险。整个空气动力船控制平台的架构如图2所示。
图2 空气动力船的控制平台架构Fig.2 Control platform of theairboat
激光具有方向性好、反射性强、相干性优及能量密度高等特点,被广泛应用于军事、工业、娱乐等领域。在自动导航及避障领域,激光传感器被用来探测周围的环境信息。根据激光束扫描模式的不同,激光传感器可以分为二维线阵激光传感器和三维面阵激光传感器2种类型。如:SCHADLER等[14]在小型地面机器人上使用能够连续旋转的二维线阵激光传感器对崎岖路面进行三维建模和导航;NEUHAUS等[15]使用三维面阵激光传感器开发了一种机器人自动导航系统。
基于空气动力船的设计航速和成本因素,防撞系统硬件平台的搭建选用了一款具有中距离探测范围的线阵激光传感器(UTM-30LX,日本Hokuyo公司)。该激光传感器的主要性能参数如表2所示,其中最大可信测量距离为30 m,扫描角度范围为0°~270°,角分辨率为0.25°,扫描频率为40 Hz。在空气动船的前端设计定制了一个轻量的铝合金支架,用以安装和固定激光传感器。支架与激光传感器之间,通过一个二自由度的云台固定连接,以调节激光传感器的倾斜角。此外,一款惯性测量单元(inertial measurement unit,IMU)(VN100,美 国VectorNav公司)被固定在激光传感器上,用于获取在空气动力船航行中激光传感器的实时姿态角。该惯性测量单元的主要性能参数见表3。激光传感器和惯性测量单元的实时数据通过串口连接到上文提到的船载计算机上进行处理。防撞系统硬件平台的整体架构如图3所示。
表2 激光传感器的主要性能参数Table2 Main performanceparametersof thelaser sensor
表3 惯性测量单元的主要性能参数Table 3 Main performance parameters of the inertial measurement unit
由于本研究中选用的激光传感器是线阵的,为了探测到水田的边界以防止碰撞发生,云台需要保持一定的倾斜,此时IMU可以测量其倾斜角,并实时上传数据到船载计算机中。由于激光传感器存在安装高度h(图4),为了计算目标点到激光传感器的直线距离,需要计算出其相对于水平地面的投影距离,公式如下:
图3 防撞系统架构Fig.3 Structureof collision avoidancesystem
图4 激光相对于水平地面的投影距离示意图Fig.4 Schematic diagram of projection distance of the laser relativeto thehorizontal ground
其中:lground为水平地面上的投影距离;lls为激光探测距离;θ为IMU获得的倾斜角。
激光传感器输出数据以极坐标(li,ϑi)表示,其中li是参考原点与物体检测点之间的距离,ϑi是激光束的个数(i=0,1,2,…,N)。为了方便计算,将极坐标系按照公式(2)转换为x-y直角坐标系,坐标原点为激光传感器所在位置。
图5表示在x-y坐标系中水田边界与空气动力船的位置关系。假设水田侧边的矢量方向为φedge,空气动力船的行驶方向为φboat,那么航向偏差如公式(3)所示。
假设探测到的水田边界点为P(xedge,yedge),那么水田边界线可用公式(4)表示。
图5 空气动力船与水田侧边界的位置关系Fig.5 Positional relationship between the airboat and sideedge of paddy field
根据三角函数关系,空气动力船到水田边界的垂直距离dedge可由公式(5)计算得出。
确定了空气动力船到水田边界的垂直距离后,就可以按照距离信息进行相应的安全控制。因此,问题转化为如何稳定可信地获得上文提到的边界探测点P(xedge,yedge)。在理论情况下,由于水田中覆盖有深度为5~10 cm的水,根据光在不同介质中传播的折射和反射作用,激光传感器中的激光束照射到水中无法获得激光的返回信息,而照射到岸上激光会返回正常的距离信息。在这种情况下,激光束的边界点即为水田边界。然而,由于水田地势复杂,情况多变,例如高出水面的土包,也会使水田内部分激光有返回信息,这些因素将导致无法获得正确的激光束边界点。根据观察发现,一般水田的水岸和水田内存在明显的高度差,可将探测到的所有激光束分为水岸数据集和田内数据集2类。本研究利用大津法(Otsu算法)[16]辨别水田的边界点。Otsu算法通过迭代所有可能的阈值找到一个可以使类内方差最小和类间方差最大的值。类内方差由公式(6)计算得到;类间方差由公式(7)计算得到。
其中:ui是第i条激光(i=0,1,2,…,N)的返回值;u*是划分2类数据集的阈值位置点;umax是激光束的总条数(此处,umax=N);μ1和μ2分别是水岸数据集和田内数据集的平均值;μ是2类数据集的平均值。因此,基于公式(6)和公式(7),使得类内方差和类间方差的比值最大,即为最佳划分点,如公式(8)所示。
其中uopt是激光传感器的一束激光中划分水岸和田内边界的最佳阈值的位置点,其坐标即为上文提到的 P(xedge,yedge)。
结合公式(5)和公式(8),即可求出空气动力船到水田岸边的垂直距离dedge。倘若为避免空气动力船撞到水岸,可设计空气动力船沿水田边缘直线保持恒定距离ddesired前进,则横向偏差Δd由公式(9)计算得出。
将尾舵操舵角δ代入横向偏差Δd和航向偏差Δφ,利用公式(10)计算得出[17]
其中α和β是控制因子,为实验中的经验值。
整个避碰控制算法的流程如图6所示。首先,将激光传感器的原始探测返回数据投影到x-y坐标系中。然后,利用Otsu算法计算水田边界点的位置。最后,采用反馈控制方法控制操舵角,避免碰撞的发生。
以上是针对空气动力船避免碰撞到水田侧边界的算法设计。对于水田中空气动力船前方的移动障碍物,例如劳作的农民、工作中的其他农机等,根据船的尺寸和行驶速度,在船的前部设置了长5 m、宽2.78 m的矩形危险区域,如图7所示。系统首先将前方探测到的数据转换到x-y平面坐标系中,根据转换后的数据判断障碍物是否在矩形危险区域内。然后,构建结构体数组Ob[],用于记录障碍物的数量、尺寸、位置、原始激光数据及障碍物与船间的距离等。其中:规定船与不规则障碍物的最短距离为船与障碍物之间的距离,参见公式(11);障碍物尺寸是x轴上障碍物的投影宽度总和,参见公式(12);障碍物位置是障碍物中心点的位置坐标。
图6 避碰控制流程图Fig.6 Flowchart of collision avoidance system
图7 矩形危险区域Fig.7 Rectangular danger zone
其中:i是激光数据当前索引号;n是障碍物激光束的总数;0.25°是激光传感器的角分辨率。
为了证明基于Otsu算法的防撞系统能够检测出水田的边缘位置,首先在水田中进行静态试验(在北海道大学农学部水田试验场进行)。如图8所示,激光传感器和IMU固定在三脚架上,并分2次分别放置于距水田左边界3 m和4 m(人工测量得到)的测量位置点。将系统测量得到的距离与标准距离进行比较,结果如表4所示。从中可知:在3 m的距离误差中,平均距离误差、均方根误差和最大误差分别为0.01、0.02和0.05 m;在4 m的距离误差中,则分别为0.01、0.07和0.11 m。虽然岸边杂草随风摆动也会给测量带来一定的干扰,但对于防撞而言,这种精度是可以接受的。因此,可以证明在使用Otsu算法下防撞系统工作状态良好。
图8 静态试验测量位置点示意图Fig.8 Schematic diagram of static experiment measuring point
表4 静态试验测量结果Table 4 Summary of static experiment results
静态试验后,在同一稻田内进行相应的动态试验。为使试验具备对照性,在动态试验中仍以3 m和4 m作为标准距离,控制空气动力船前行,并与水田左边界保持3 m和4 m的安全距离,以防相撞。通过PID航速控制,使空气动力船的行驶速度保持在1.4 m/s左右。为了进行高精度评估,在空气动力船上安装了RTK-GPS接收机(SPS855,美国Trimble公司)。该RTK-GPS接收机可以提供均方根误差8 mm的水平定位精度。由于激光传感器与RTK-GPS接收机之间存在安装距离差,因此需要利用航向角进行位置校正。图9显示了基于激光传感器的空气动力船的防撞行进航迹(3 m标准距离),其中,红线是水田的左侧边界,蓝线是RTKGPS测量的空气动力船距离左边界3 m的行进轨迹。
图9 动态试验的行进航迹(3 m距离)Fig.9 Trajectory of dynamic experiment for referring to 3 m
虽然选用的稻田边缘处接近于一条直线,但仍存在着一些石头和杂草。因此,行进中的空气动力船每次由激光传感器获取的数据集中并非是严格意义的直线数据。针对这个问题,本研究使用移动均值滤波器来平滑边缘点的位置数据,并将实时的横向误差储存在计算机内。图10显示了标准距离为3 m时该段轨迹的横向偏差,其范围保持在-0.4和0.4 m之间。
除了上述相距水田边界3 m距离的试验外,还进行了相距水田边界4 m距离的试验,表5综合显示了这2次试验的结果。在标准3 m距离的试验中,平均误差、均方根误差和最大误差分别为-0.04、0.18和-0.41 m;在标准4 m距离的试验中,则分别为-0.28、0.13和-0.47 m。对比以上结果可以发现,动态试验的误差要大于静态试验。我们推测,行进中的空气动力船铝合金支架的振动、转向控制的效率和稻田边缘的线性度可能对试验结果造成了影响。
图10 动态试验的横向偏差(3 m距离)Fig.10 Lateral error of dynamic experiment for referring to 3 m
表5 动态试验测量结果Table5 Summary of dynamic experiment results
针对空气动力船在前方设定的矩形危险区域内移动障碍物的控制试验,同样选择了在日本北海道大学内的水田试验场内进行。在试验中,空气动力船按照既定直线路径前进,一名试验人员(障碍物)站在设定的路径上,如图11所示。
当空气动力船行进途中探测到前方危险区域内闯入障碍物,则先后进行如下4个步骤,相关探测距离信息如图12所示。
图11 针对移动障碍物的试验Fig.11 Moving obstacleexperiment
图12 空气动力船与障碍物的实时距离信息Fig.12 Real time distance between the airboat and obstacle
步骤Ⅰ:在2 s内控制螺旋桨舵机反转10º,以尽快制动空气动力船;此时,空气动力船迅速减速,制动距离约为0.6 m。
步骤Ⅱ:控制螺旋桨舵机保持在0°,控制油门舵机,使发动机置于怠速状态;此时,空气动力船停止并监视移动中的障碍物,直到障碍物离开矩形危险区域为止。
步骤Ⅲ:该障碍物开始移动并离开矩形危险区域。
步骤Ⅳ:在确定矩形危险区域内无障碍物后,空气动力船将重新启动并计算导航误差和进行既定直线自动导航。
经过多次试验,空气动力船的制动距离略有不同。由于自然风是不确定的,例如在顺风或逆风作用下,制动距离将分别延长或缩短。此外,由于空气动力船质量小、吃水深度浅,所以在风浪流的作用下,制动后仍会发生一定的漂移。在未来的工作中,需要更多地考虑上述2种情况,以进一步提高制动速度和动力定位的精度。
本文提出了一种基于激光传感器的防撞系统,配合IMU和云台工作,用于避免空气动力船在水田作业时与水田边缘及行进中的前方移动障碍物发生碰撞。该方法基于Otsu算法,将激光束数据分为水岸数据集和田内数据集2类,寻找边界位置点的最优解,进而确定空气动力船到水田边界的距离信息。针对船体前方的移动障碍物,设计了一个矩形危险区域,并构建结构体数组,用于记录危险区域中障碍物的数量、尺寸及障碍物与船间的距离等信息。相关水田防撞试验表明,该防撞系统可以有效地探测到水田边界及前方移动障碍物,从而避免碰撞的发生。