2. 山东理工大学农业工程与食品科学学院, 山东 淄博 255000
2. School of Agricultural Engineering and Food Science, Shandong University of Technology, Zibo 255000, China
我国作为水果生产大国,水果种植面积与产量均为世界第一。但是果树种植过程中存在着自动化水平低、管理不规范和采摘效率低等问题。针对这一系列问题,加大对果园智能装备的发展力度,尤其是加大对丘陵山区果园管理装备的改造已迫在眉睫。提高果园生产作业的自动化水平,不仅可以提高水果产量,还能够减少人工劳动力,降低生产成本,对我国许多水果种植地区具有比较重要的现实意义,因此研究出一款应用于果园的自主作业机器人势在必行[1-5]。
智慧农业是农业信息化发展从数字化到网络化再到智能化的高级阶段,对农业发展具有里程碑意义,已成为世界现代农业发展的趋势。为进一步提高生产效率和水果品质,农业机械装备的智能化是未来发展的必然趋势。随着智慧农业的不断发展,智能化机器人技术被广泛应用于果园除草、剪枝、采摘等作业环节,有效地减轻了果农的劳动强度,提高了作业效率与质量[6-9]。机器人在果园等非结构化的环境下行间行驶的安全性是研究重点,合理、可靠、安全的导航路径规划方法是保证机器人安全行驶的重要手段之一[10-11]。传统的GPS导航方案,在果园中由于受到果树遮挡,卫星信号弱,无法进行高精度定位[12]。激光雷达作为一种新兴的导航定位传感器,具有精度高、扫描速度快和抗干扰能力强等特点,在果园环境感知中得到了越来越广泛的应用[13-15]。
本文提出一种果园机器人导航技术,基于三维激光雷达和惯性测量单元(Inertial measurement unit,IMU)等传感器,采集果园三维点云数据,利用改进的随机采样一致性(Random sample consensus,RANSAC)算法,拟合推算得到导航线。根据三维点云信息,提出换行策略,实现换行作业。基于果园机器人的差速转向结构和纯追踪模型进行轨迹跟踪,实现果园机器人在非结构化环境下的自主导航。
1 果园导航方法首先使用16线激光雷达采集果园点云数据,在经过点云滤波处理后,降低了点云密度。然后进行地面点云的分割,去除地面点云后通过改进的RANSAC拟合出果树行直线,根据平行直线之间的关系,进一步推算得到导航线,结合横向偏差、航向偏差以及激光雷达IMU融合定位数据,通过纯跟踪控制算法调整机器人位姿。在行驶到行末触发换行判定程序,确定机器人是否需要换行,完成换行后继续执行果树行内导航程序。如此,便实现果园机器人的自主导航,主要导航技术框架如图1所示。
|
图 1 果园机器人导航技术框架 Fig. 1 Framework of orchard robot navigation technology |
果树行直线提取的方法通常是在获取当前帧的果树点云后,将该帧点云投影到世界坐标系中,然后将该帧点云分割成左右两树行的点云集,再从左右树行点云集中拟合出两侧果树行的直线,常用的获取方法有RANSAC算法和最小二乘法(Least squares method,LSM)。
LSM算法是一种被普遍使用的数学优化方法,该方法通过最小误差平方和来求解点云数据中的最佳函数参数[16]。采用LSM算法拟合果树行直线,当点云坐标满足f(Q)取到最小值,即:
| $ f({\boldsymbol{Q}}) = \min {({{\boldsymbol{X}}'}{\boldsymbol{Q}} - {\boldsymbol{Y}})^{\rm{T}}}({{\boldsymbol{X}}'}{\boldsymbol{Q}} - {\boldsymbol{Y}}) , $ | (1) |
式中,Q=[k b]T为果树行直线的参数矩阵,
1981年有学者提出RANSAC算法,最初用于解决定位的问题,用迭代法求解含有局部点的观测数据的数学模型参数[17-18]。RANSAC算法通过对观测值随机抽样估算参数,该算法的简要步骤为:
1)随机从数据集中选取n个样本数据,建立参数模型M;
2)计算数据集中所有数据与参数模型M的误差,若误差小于阈值,加入内点集;
3)如果当前内点集元素个数大于最优内点集,则更新最优内点集,同时更新迭代次数
| $ h = \dfrac{{\lg (1 - \eta )}}{{\lg (1 - {\lambda ^m})}} \text{,} $ | (2) |
式中,
4)如果迭代次数大于
RANSAC算法较LSM算法具有较大的优势,尤其是在行距较大的果园中导航精度更高,鲁棒性更好。本文基于传统RANSAC算法,结合果园机器人的实际应用场景,提出一种基于点云密度自适应的RANSAC算法,即使存在部分点云缺失的情况,也能较好地拟合出果树行直线。传统的RANSAC算法固定阈值,在拟合点云较为稀疏的地方可能会出现较大偏差。改进后的RANSAC算法具体步骤为:
1)将当前帧的左右两侧果树行点云ξi进行聚类分割,并去除地面和杂草点云的干扰,得到左右两侧点云集合ξli和ξri;
2)一般果园都是按照平行直线种植,本文设定左、右2条平行直线分别为Ll和Lr:
| $ L_1 = {k_{\text{l}}}x + {b_{\text{l}}} \text{,} $ | (3) |
| $L_{\rm{r}} = {k_{\text{r}}}x + {b_{\text{r}}} \text{,} $ | (4) |
式中,kl、kr为果树行直线斜率,bl,br为果树行直线截距;
3)分别从左右两侧点云集合ξli和ξri中随机选取2点,确定构成果树行直线的参数;
4)根据点云密度设定不同初始阈值Ri,从而分割出内外点,选取出内点集合,将最大内点集合的阈值设为最佳阈值Rbest,将其他内点集合的阈值更新为Rbest,进而确定与直线Li的几何距离不大于Rbest的点云集合ξ(Li),即为L的最大一致集合。设定内点(xi,yi),拟合直线Ax+By+C=0,则有:
| $ {d_i} = \dfrac{{|A{x_i} + B{y_i} + C|}}{{\sqrt {{A^{\text{2}}}{\text{ + }}{B^2}} }},$ | (5) |
| $ {d_i} \leqslant {R_i},$ | (6) |
| $ {R_{{\text{best}}}} = \max {\xi _i}\{ {R_1},{R_2},\cdots ,{R_i}\} ;$ | (7) |
5)重复
6)确定最大一致集合,将最大一致集合中的点拟合成一条直线即为最佳直线
7)在获取到左右两侧果树行最佳直线后,根据平行直线关系,进一步提取出导航线Lc,果园机器人通过纯跟踪算法沿导航线行驶,完成果树行内的自主导航。其中,Lc的计算公式为:
| $ L_{\rm{c}} = kx + \dfrac{{{b_{\rm{l}}} + {b_{\rm{r}}}}}{{\rm{2}}} 。$ | (8) |
由于Ll、Lr和Lc为三条平行直线,故k=kl=kr。
1.2 行末换行策略一般果园的树行两端的特征很明显,即行首和行末都不存在果树,因此存在一定的转向空间。当激光雷达检测到果园机器人两侧大片点云数据缺失的时候,可以判定机器人已到达换行区域,工控机下发换行指令,给定机器人底盘特定的速度指令,保证每次换行转弯动作的准确性,默认左转,可根据果园实际情况进行调整。完成换行动作后,继续向前行驶一段距离
|
图 2 果园机器人换行策略 Fig. 2 Line breaking strategy of orchard robot dts:换行后直线行驶距离;Rt:转弯半径;v:线速度; |
设定转弯半径为Rt,换行时的路径为Sth,则
| $ {S_{{\text{th}}}} = {\text{π}} {R_{\text{t}}} + {d_{{\text{ts}}}}。$ | (9) |
本试验采用的是差速转向机器人底盘,同侧两车轮通过链传动共用一个电机来驱动,故同侧前后两轮轮速大小相等。可直接接收来自工控机发送的线速度
|
图 3 运动模型 Fig. 3 Motion model v:线速度;vr:右侧轮速度;vl:左侧轮速度; |
| $ v = \dfrac{{{v_{\text{l}}} + {v_{\text{r}}}}}{2} \text{。} $ | (10) |
机器人主要有3种运动状态:
1)
| $ \omega = \dfrac{{{v_{\text{r}}} - {v_{\text{l}}}}}{\textit{£}} \text{;} $ | (11) |
2)
3)
在驱动轮与地面接触运动为纯滚动的情况下,机器人的运动学模型可以表示为:
| $ \left[ {\begin{array}{*{20}{c}} v \\ \omega \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\cos \theta }&0 \\ 0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {\dfrac{1}{2}}&{\dfrac{1}{2}} \\ {\dfrac{1}{{\textit{£}}}}&{ - \dfrac{1}{{\textit{£}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{v_{\text{r}}}} \\ {{v_{\text{l}}}} \end{array}} \right]。$ | (12) |
IMU以100 Hz的频率输出加速度和角速度数据,激光雷达以10 Hz的频率输出点云数据。每收到一帧点云数据,系统首先扩增一个代表当前激光雷达位姿初始估计的状态向量,然后使用优化后的点云观测模型对特征进行提取和跟踪;每收到一帧IMU数据,根据运动模型对IMU状态进行估计,同时更新系统状态的协方差矩阵;最终通过扩展卡尔曼滤波算法融合IMU与激光雷达的观测数据更新位姿状态,以100 Hz的频率输出结果。相邻测量时刻间的状态量定义如下:
| $ \left\{ {\begin{array}{*{20}{l}} {S = [{S_{{{{\rm{{u}}}0}}}},{S_{{{{\rm{{u}}}1}}}}, \cdot \cdot \cdot ,{S_{{{{\rm{{u}}}i}}}}]}, \\ {{S_{{{{\rm{{u}}}t}}}} = [{p_{{{{\rm{{wu}}}t}}}},{v_{{{{\rm{{wu}}}t}}}},{q_{{{{\rm{{wu}}}t}}}},{u_{{\rm{{a}}}}},{u_{{\rm{{g}}}}}]}, \end{array}} \right. $ | (13) |
式中:w表示世界坐标系;u表示IMU坐标系;
本文提出的以激光雷达为主,融合IMU信息的定位方案,可实现果园机器人的厘米级定位,对非结构化环境下的导航十分重要。
2.3 轨迹跟踪果园机器人通过纯跟踪算法结合传感器数据确定前视距离,最终将机器人位姿信息上传至工控机,通过对比当前帧与前一帧位姿变化,确定横向偏差和航向偏差是否超过设定阈值,工控机下发速度指令给单片机,驱动左右两侧电机,保证机器人能够按照预定导航线轨迹行驶,完成树行跟踪的目标。
纯追踪算法是一种模拟人类驾驶习惯的几何追踪模型,根据车辆的行驶速度和路径信息设定轨迹上的一个路径点,计算车辆当前位置距离预设目标点所需转过的角度,控制车辆向路径点行驶[19]。具体跟踪方法是:在目标轨迹K上选择一个点B作为跟踪点,则机器人从当前位置到达点B的轨迹可以视为一段半径为R的圆弧轨迹,对点B跟踪的关键在于对圆弧轨迹半径R的求解,图4中
|
图 4 果园机器人轨迹跟踪示意图 Fig. 4 Orchard robot trajectory tracking diagram K:目标轨迹;B:目标点; |
具体计算步骤为:
| $ \dfrac{f}{{\sin (2\alpha )}} = \dfrac{R}{{\sin \Bigg(\dfrac{{\text{π}} }{2} - \alpha \Bigg)}} ,$ | (14) |
| $ \dfrac{f}{{2\sin \alpha \cos \alpha }} = \dfrac{R}{{\cos \alpha }},$ | (15) |
| $ R = \dfrac{f}{{2\sin \alpha }},$ | (16) |
| $ \sin \alpha = \dfrac{d}{f} ,$ | (17) |
| $ R = \dfrac{{{f^2}}}{{2d}}。$ | (18) |
在求得轨迹半径R之后、线速度v给定的情况下可以求解出角速度
| $ \omega = \dfrac{v}{R}。$ | (19) |
纯追踪算法中前视距离的大小将会直接影响机器人的轨迹跟踪效果,前视距离较大时,机器人将会以较小的曲率向路径行驶,但系统响应较慢,可能会产生“抄近路”的问题,影响控制精度;当前视距离较小时,机器人将会以较大曲率向路径行驶,机器人会因此频繁转向,产生较大的振荡,降低机器人的稳定性。因此,前视距离的大小对导航十分重要。
通过Python3.5 IDLE进行路径跟踪仿真,结合果园机器人差速运动模型和纯跟踪算法,初始位姿设置为(0,−1,0),前视距离分别设置为2、3、4 m,在0.8 m/s速度下进行仿真,结果如图5所示。
|
图 5 不同前视距离(f )下路径跟踪仿真结果 Fig. 5 Path tracking results at different forward-viewing distances(f) 红色圆点表示目标轨迹点,绿色圆点表示轨迹终点,蓝色曲线表示实际轨迹 The red dots represent the target track points, the green dots represent the end of the track, and the blue curve represents the actual track |
从仿真结果中可以看出,前视距离为2 m时,机器人在曲率较大的路径处的实际运动轨迹较为曲折,实际运动轨迹和目标轨迹出现明显偏差;前视距离为4 m时,机器人虽然会以平滑的运动轨迹行驶,但也出现了实际轨迹与目标轨迹存在较大偏差的问题;只有当前视距离为3 m时,机器人能够较好地追踪目标轨迹,故设定机器人前视距离为3 m。
3 试验验证及结果 3.1 硬件系统组成图6a为果园机器人整体框架,由机器人底盘、工控机、Velodyne 16线激光雷达和9轴IMU组成。机器人长、宽和高分别为60、45和25 cm,整体采用差速转向的结构设计,使其在果园中具有良好的通行能力。机器人左右两侧各安装一个驱动电机,通过链传动的方式带动四轮转动。图6b为果园机器人实物图,除导航所必须的硬件结构,还配备了高清摄像头,可以实时获取果园真实画面。为方便各感器融合,定义果园机器人坐标系,以IMU中心为坐标原点,机器人正前方为
|
图 6 果园机器人基本组成 Fig. 6 Basic composition of orchard robot |
为了验证果园机器人自主导航系统的实际效果,在山东理工大学兰玉彬教授团队与淄博市沂源县山东中以现代智慧农业有限公司共建的智慧化无人果园试验基地进行了试验。该果园果树行距约为4 m,果树高约3.5 m,行距约4 m。图7a为果园真实环境,可以看到果树枝叶茂盛,对GPS信号遮挡十分严重。
|
图 7 点云预处理 Fig. 7 Point cloud pretreatment a:果园真实环境;b:原始点云;c:分割地面后的点云,其中,白色部分为地面点云,红色部分为非地面点云,即果树行点云 a: Real environment of the orchard; b: Original point cloud; c: Point cloud after ground segmentation. In c, the white part is ground point cloud, and the red part is non-ground point cloud, namely, fruit tree row point cloud |
通过三维激光雷达获取点云数据(图7b)后,首先进行预处理降低点云密度,借助滤波算法去除地面和杂草的干扰,采用平面模型拟合当前的地面。由于现实的地面并不是一个“完美的”平面,尤其是在果园这种环境中,地面非常不平整,要很好地完成地面分割,就必须要处理存在一定坡度变化的地面情况,即不能将这种坡度的变化视为非地面,不能因为坡度的存在而引入噪声。一种简单的处理方法就是沿着
分割出地面点云后,利用滤波算法将其过滤掉,处理后的结果如图8a。通过聚类算法将果树行点云簇进行聚类,最终会形成一个将点云包裹的三维Bounding Box,其主要使用了一种基本的数据结构KD树,它是在一个欧几里德空间中组织点的基本数据结构,本质上是一个每个节点都为k对应维点的二叉树,聚类后的效果如图8b。
|
图 8 拟合导航线 Fig. 8 Fitting navigation lines a:去除地面后的点云;b:聚类后的点云;c:生成导航线后的点云;d:存在离散果树的点云;c、d中,绿色直线为拟合得到的果树行直线,红色直线为推算得到的导航线 a: Point cloud after ground removal; b: Point cloud after clustering; c: Point cloud with the navigation line; d: Point clouds with discrete fruit trees. In c and d, the green line is the fruit tree line obtained by fitting, and the red line is the navigation line obtained by calculation |
基于传统的RANSAC算法,提出一种密度自适应的改进方法,根据不同点云集设置不同初始阈值,筛选出最大内点集合,更新并确定最佳阈值,经过多次迭代,更高效且更准确地拟合出果树行直线,根据平行直线关系,推算导航线(图8c)。由图8d可以看到,即使在部分点云缺失和存在离群果树点云的情况下,该算法还是能较好地推算出导航线。
通过多次试验,统计果园机器人实际行驶轨迹与导航线之间的横向偏差和航向偏差,验证本方案的可行性。对比LSM算法、传统RANSAC算法和改进后的RANSAC算法分别在0.8和1.0 m/s的不同速度下产生的横向偏差和航向偏差,每隔10 m进行一次记录,进行5次记录,并取平均值。
3.3 试验结果综合多次试验结果,对比LSM算法、传统RANSAC算法和改进RANSAC算法,当机器人以0.8 m/s的速度行驶,改进后的RANSAC算法产生的横向偏差的最大值和平均值分别为0.10 m和0.084 m,航向偏差的最大值和平均值分别为1.5°和1.34°,相较LSM算法和传统RANSAC算法均为最小,具体结果见表1。但当机器人以1.0 m/s的速度行驶时,各项偏差均明显增大,具体结果见表2。
|
|
表 1 速度0.8 m/s下3种算法产生的偏差结果 Table 1 The deviation results generated by the three algorithms under the speed of 0.8 m/s |
|
|
表 2 速度1.0 m/s下3种算法产生的偏差结果 Table 2 The deviation results generated by the three algorithms under the speed of 1.0 m/s |
果园机器人通过激光雷达采集点云数据,经过点云降噪、分割地面与非地面点云和果树行点云聚类等一系列处理后,依靠改进的RANSAC算法拟合果树行最佳直线,根据平行直线关系,推算得到导航线。通过纯跟踪算法对果园机器人进行运动控制,实现果园机器人的自主导航。基于本文提出的行末换行策略,实现机器人换行作业。通过咨询果园管理专业人员,了解到果园机器人在行距为4 m的果园进行巡检、除草等作业时,横向偏差不得大于0.15 m、航向偏差不得大于2°。本研究试验结果显示:当机器人以0.8 m/s的速度在果园行驶作业时,改进后的RANSAC算法产生的横向偏差不超过0.10 m,航向偏差不超过1.5°。因此,本文提出的导航方法基本满足生产要求,能够极大地提高果园管理的自动化水平,具有比较重要的现实意义。
未来将在保证定位导航精度的前提下,稳步提升果园机器人的行驶速度,提高作业效率。融合视觉算法,提高果园机器人的环境感知能力,实现对杂草和障碍物的识别,进而提高控制精度,使机器人在非标准化果园也能够正常行驶。
| [1] |
王祺, 王艳玲, 俄胜哲. 我国果园机械装备现状及发展思路[J]. 农业机械, 2019(1): 109-111. ( 0) |
| [2] |
LAN Y B, CHEN S D. Current status and trends of plant protection UAV and its spraying technology in China[J]. International Journal of Precision Agricultural Aviation, 2018, 1(1): 1-9. ( 0) |
| [3] |
GONG J L, WANG M X, ZHANG Y F, et al. Flow and sound field analysis of agricultural ultrasonic atomizing nozzle[J]. International Journal of Precision Agricultural Aviation, 2019, 2(2): 32-37. ( 0) |
| [4] |
秦喜田, 刘学峰, 任冬梅, 等. 我国果园生产机械化现状及其发展趋势[J]. 农业装备与车辆工程, 2019, 57(S1): 35-38. ( 0) |
| [5] |
张漫, 季宇寒, 李世超, 等. 农业机械导航技术研究进展[J]. 农业机械学报, 2020, 51(4): 1-18. DOI:10.6041/j.issn.1000-1298.2020.04.001 ( 0) |
| [6] |
陈媛媛, 游炯, 幸泽峰, 等. 世界主要国家精准农业发展概况及对中国的发展建议[J]. 农业工程学报, 2021, 37(11): 315-324. DOI:10.11975/j.issn.1002-6819.2021.11.036 ( 0) |
| [7] |
刘成良, 林洪振, 李彦明, 等. 农业装备智能控制技术研究现状与发展趋势分析[J]. 农业机械学报, 2020, 51(1): 1-18. DOI:10.6041/j.issn.1000-1298.2020.01.001 ( 0) |
| [8] |
何勇, 蒋浩, 方慧, 等. 车辆智能障碍物检测方法及其农业应用研究进展[J]. 农业工程学报, 2018, 34(9): 21-32. DOI:10.11975/j.issn.1002-6819.2018.09.003 ( 0) |
| [9] |
李道亮, 李震. 无人农场系统分析与发展展望[J]. 农业机械学报, 2020, 51(7): 1-12. DOI:10.6041/j.issn.1000-1298.2020.07.001 ( 0) |
| [10] |
周建军, 周文彬, 刘建东, 等. 果园机器人自动导航技术研究进展[J]. 计算机与数字工程, 2019, 47(3): 571-576. ( 0) |
| [11] |
李秋洁, 丁旭东, 邓贤. 基于激光雷达的果园行间路径提取与导航[J]. 农业机械学报, 2020, 51(S2): 344-350. DOI:10.6041/j.issn.1000-1298.2020.S2.040 ( 0) |
| [12] |
莫冬炎, 杨尘宇, 黄沛琛, 等. 基于环境感知的果园机器人自主导航技术研究进展[J]. 机电工程技术, 2021, 50(9): 145-150. DOI:10.3969/j.issn.1009-9492.2021.09.038 ( 0) |
| [13] |
BLOK P M, SUH H K, VAN BOHEEMEN K, et al. Autonomous in-row navigation of an orchard robot with a 2D LIDAR scanner and particle filter with a laser-beam model[J]. Journal of Institute of Control, Robotics and Systems, 2018, 24(8): 726-735. DOI:10.5302/J.ICROS.2018.0078 ( 0) |
| [14] |
姬长英, 周俊. 农业机械导航技术发展分析[J]. 农业机械学报, 2014, 45(9): 44-54. DOI:10.6041/j.issn.1000-1298.2014.09.008 ( 0) |
| [15] |
赛炜, 孙忠涵. 基于激光雷达的机器人智能导航系统研究[J]. 激光杂志, 2019, 40(11): 182-186. ( 0) |
| [16] |
ZHANG H F, HONG Y, QIU J L. An off-policy least square algorithms with eligibility trace based on importance reweighting[J]. Cluster Computing, 2017, 20(4): 3475-3487. DOI:10.1007/s10586-017-1165-0 ( 0) |
| [17] |
FOTOUHI M, HEKMATIAN H, KASHANI-NEZHAD M A, et al. SC-RANSAC: Spatial consistency on RANSAC[J]. Multimedia Tools and Applications, 2019, 78(7): 9429-9461. DOI:10.1007/s11042-018-6475-6 ( 0) |
| [18] |
SANGAPPA H K, RAMAKRISHNAN K R. A probabilistic analysis of a common RANSAC heuristic[J]. Machine Vision and Applications, 2019, 30(1): 71-89. DOI:10.1007/s00138-018-0973-4 ( 0) |
| [19] |
张华强, 王国栋, 吕云飞, 等. 基于改进纯追踪模型的农机路径跟踪算法研究[J]. 农业机械学报, 2020, 51(9): 18-25. DOI:10.6041/j.issn.1000-1298.2020.09.002 ( 0) |
2022, Vol. 43



0)